基于NFS共享存储实现KVM虚拟机动态迁移

一:配置环境

二:安装相关的依赖包

三:实现NFS共享存储

四:KVM机配置相同的步骤

五:安装KVM01安装虚拟机

六:实现迁移 

实验初始配置:所有主机关闭防火墙与selinux

[root@localhost ~]# iptables -F

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl disable firewalld

[root@localhost ~]# setenforce 0

[root@localhost ~]# sed -i '/SELINUX/ s/enforcing/disabled/g' /etc/sysconfig/selinux

基于NFS共享存储实现KVM虚拟主机动态迁移

在KVM中可以将运行中的虚拟机从一个KVM主机迁移到另一个KVM主机中运行,而不需要任何停机时间。如果两个KVM主机都能够访问相同的存储池,那么实时迁移工作就很好了。要使存储池在KVM主机上都可访问,您需要使用NFS或GFS2文件系统(集群文件系统)。在本例中,我使用NFS文件系统来存储VM映像文件。在迁移过程中,VM的“内存”内容将被复制到目标KVM主机,而在某个时间点上,将发生迁移VM。注意,当您在KVM主机上共享文件系统时,将不会在网络上传输VM的磁盘映像,因为两个KVM主机都可以访问相同的存储池。

迁移介绍:迁移是指将在KVM上运行的虚拟机系统转移到其他物理机的KVM上运行

静态迁移:在虚拟机关机的情况迁移

动态迁移:在虚拟机上服务正常运行的情况下迁移,要基于共享存储

动态迁移特点:

不会对最终用户造成明显影响

仅有非常短暂的停机时间

动态迁移拓扑图

实验环境:

KVM01  192.168.200.10

KVM02  192.168.200.11

NFS    192.168.200.12

1、 设置3台服务器主机名、配置 /etc/hosts 保证网络连接

2、 两台主机的KVM连接‘NFS共享存储’

3、 在源主机的KVM中新建虚拟机并安装系统

4、 连接KVM、并进行迁移

动态迁移演示

源主机 KVM01 192.168.200.10

目的主机 KVM02 192.168.200.11

NFS共享存储 192.168.200.12 共享 /kvm-share

KVM01与KVM02主机都需安装KVM软件并调整网络模式, 所有服务器确保关闭iptables与selinux。

VMware 虚拟机中 linux 开机前需要勾选Inter VT-x/EPT 或 AMD/RVI(v)

一:配置环境

[root@localhost ~]#hostname KVM01

[root@localhost ~]#bash

[root@localhost ~]#hostname KVM02

[root@localhost ~]#bash

[root@localhost ~]#hostname NFS

[root@localhost ~]#bash

[root@KVM01 ~]# cat /proc/cpuinfo | grep vmx                     #查看是否支持虚拟化功能
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat spec_ctrl intel_stibp flush_l1d arch_capabilities
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat spec_ctrl intel_stibp flush_l1d arch_capabilities

[root@KVM01 ~]# vim /etc/hosts                    #编辑hosts文件

192.168.200.111 KVM01

192.168.200.112 KVM02

192.168.200.113 NFS

[root@KVM01 ~]# scp /etc/hosts 192.168.200.11:/etc

[root@KVM01 ~]# scp /etc/hosts 192.168.200.12:/etc

二:安装相关依赖包

两台KVM都需要安装依赖包

在CentOS7的系统光盘镜像中,已经提供了安装KVM所需软件,通过部署基于光盘镜像的本地yum源,直接使用yum安装所需软件即可。

[root@KVM01 ~]# yum -y groupinstall "GNOME Desktop"       #安装GNOME桌面环境

[root@KVM01 ~]# yum -y install qemu-kvm                   #KVM模块

[root@KVM01 ~]# yum -y install qemu-kvm-tools             #KVM调试工具,可不安装

[root@KVM01 ~]# yum -y install qemu-img                   #qemu组件,创建磁盘,启动虚拟机

[root@KVM01 ~]# yum -y install bridge-utils               #网络支持工具

[root@KVM01 ~]# yum -y install libvirt                    #虚拟机管理工具

[root@KVM01 ~]# yum -y install virt-manage0r              #图形界面管理虚拟机

[root@KVM01 ~]# yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils libvirt virt-manager

检测KVM模块安装是否成功

[root@KVM01 ~]# lsmod | grep kvm

kvm_intel 174841 0

kvm 578518 1 kvm_intel

irqbypass 13503 1 kvm

注意:使用yum安装完桌面后,将系统默认的运行target修改为graphical.target。重启系统后进入图形界面,若不修改系统的默认运行target,重启时可能会出错。

开启服务,安装完成后还需要开启libvirtd服务

[root@KVM01 ~]# systemctl start libvirtd

[root@KVM01 ~]# systemctl enable libvirtd

三:实现NFS存储共享

NFS SERVER:配置共享目录 /kvm-share

[root@NFS ~]# cat /etc/exports

/kvm-share 192.168.200.111(rw,sync,no_root_squash)

/kvm-share 192.168.200.112(rw,sync,no_root_squash)

[root@NFS ~]# mkdir /kvm-share

[root@NFS ~]# systemctl start nfs

两台KVM主机上的操作:

查看共享是否成功

[root@KVM01 ~]# showmount -e 192.168.200.113

Export list for 192.168.200.113:

/kvm-share 192.168.200.112,192.168.200.111

[root@KVM02 ~]# showmount -e 192.168.200.113

Export list for 192.168.200.113:

/kvm-share 192.168.200.112,192.168.200.111

 四:KVM机配置相同的步骤

点击QEMU/KVM

 用xftp将镜像传到/virtual/IOS下

创建共享存储池

 在kvm-share中创建一个共享存储卷

 五:KVM01安装虚拟机

KVM01:192.168.200.10 在共享存储上创建虚拟机

新建虚拟机

前进

选择自己上传的镜像

内存可以按自己需求调大调小

 选中自己创建的共享存储池

点击管理选中自己创建的存储卷

设置在安装前定义自己的配置

网络如果之前做过BRIDGE配置选桥接

我没有做,所以选择NET模式

设置主机引导,这里需要在将自己的镜像选定一下,因为有时会自动取消选定

 

点击开始安装,后面的跟安装Linux相同,这里不做赘述

六:实现迁移

KVM迁移:打开virt-manager 选择文件 选择Add Connection

源主机连接目标主机

如果遇到下面的错误需要安装openssh-askpass

[root@KVM01 ~]# yum -y install openssh-askpass

[root@KVM02 ~]# yum -y install openssh-askpass

输入密码

 连接到会有新的一个QEMU/KVM后面有自己的ip

尝试迁移

有相同的报错做如下操作

[root@KVM01 ~]# virsh shutdown centos7.0

域 centos7.0 被关闭

[root@KVM01 ~]# virsh edit centos7.0

<driver name='qemu' type='raw' cache='none'/>

[root@KVM01 ~]# virsh start centos7.0

域 centos7.0 已开始

[root@KVM01 ~]# virsh list --all

Id 名称 状态

----------------------------------------------------

2 centos7.0 running

 这样就可以迁移成功了

基于NFS共享存储实现KVM虚拟机动态迁移的更多相关文章

  1. 基于本地存储的kvm虚拟机在线迁移

    基于本地存储的kvm虚拟机在线迁移 kvm虚拟机迁移分为4种(1)热迁移基于共享存储(2)热迁移基于本地存储(3)冷迁移基于共享存储(4)冷迁移基于本地存储 这里介绍的是基于本地存储的热迁移 动态块迁 ...

  2. kvm虚拟机动态迁移

    相比KVM虚拟机静态迁移中需要拷贝虚拟机虚拟磁盘文件,kvm虚拟机动态迁移无需拷贝虚拟磁盘文件,但是需要迁移到的虚拟主机之间需要有相同的目录结构虚拟机磁盘文件,本文这部分内容通过nfs来实现,当然也可 ...

  3. 虚拟机在 OpenStack 里没有共享存储条件下的在线迁移[转]

    原文链接:http://www.ibm.com/developerworks/cn/cloud/library/1508_wangyx_openstacklivemigrate/ 迁移(Migrati ...

  4. 虚拟机在 OpenStack 里没有共享存储条件下的在线迁移

    虚拟机在 OpenStack 里没有共享存储条件下的在线迁移 本文尝试回答与 Live migration 相关的几个问题:Live migration 是什么?为什么要做 Live migratio ...

  5. 烂泥:NFS做存储与KVM集成

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 以前有关NFS的文章,我们介绍的都是NFS的使用挂载等等.这篇文章我们介绍有关NFS作为存储使用. 既然本篇文章的主题是有关NFS的,我们还是先把NFS ...

  6. NFS 共享存储实战

    目录 NFS 共享存储实战 一.NFS概述 二.NFS部署 部署NFS客户端backup和web01 统一web.nfs.backup的用户权限 代码部署步骤 三.NFS配置详解 NFS存储小结 四. ...

  7. NFS共享存储服务

    NFS共享存储服务                一.NFS共享                  1)NFS(Network File System)网络文件系统                   ...

  8. NFS共享存储服务 (如果厌倦了外面的生活,那就来我身边吧,帮我插秧)

    NFS共享存储服务     1.NFS概述 2.在服务器使用NFS发布共享资源 3.在客户机中访问NFS共享资源 1.NFS概述: NFS是一种基于TCP/IP传输的网络文件系统协议.通过使用NFS协 ...

  9. 部署YUM源仓库与NFS共享存储服务

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 一.YUM YUM (Yellow dog Updater Modified) ●基于RPM包构建的软件更新机制 ●可以自动解决依赖关系 ●所有 ...

随机推荐

  1. 七、【Docker笔记】Docker中网络基础配置

    一个系统一般都包含多个服务组件,这些大量的服务组件不可能放在同一个容器中,这就需要多个容器之间可以互相通信.Docker提供了两种方式来实现网络服务:映射容器端口到宿主主机.容器互联机制. 一.端口映 ...

  2. FastJson反序列化和构造函数之间的一点小秘密

    各位看官大家下午好,FastJson想必大家都很熟悉了,很常见的Json序列化工具.今天在下要和大家分享一波FastJson反序列化和构造函数之间的一点小秘密. 下面先进入大家都深恶痛绝的做题环节.哈 ...

  3. DALI 48V驱动

    DALI-CC-30W-48V技术手册 产品名称:DALI-CC-30W-48V 支持协议:IEC 62386-101:2018,IEC 62386-102:2018,IEC 62386-207:20 ...

  4. android注册验证码的使用

    主要是创建了验证码的生成类. 通过此生成类,与imageview相互联系起来,实现验证码显示.并添加点击事件,实现验证码的切换. 实验的截图如下:(验证码可以点击切换) 具体的关于验证码的生成类如下: ...

  5. MTK Android 读取SIM卡参数,获取sim卡运营商信息

    android 获取sim卡运营商信息(转)   TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TE ...

  6. Linux服务器架设篇,Windows中的虚拟机linux上不了外网怎么办?

    1.将电脑的网线口直连路由器内网接口(确保该路由器可以直接正常上网,切记不可以使用宽带连接和无线网连接). 2.在实体机电脑可以上网的前提下,在命令框窗口输入 ipconfig 3.记录下电脑以太网的 ...

  7. C++ memset函数用法

    #include<stdio.h>#include<string.h>int main(){ char buffer[] = "I love you!"; ...

  8. Python库-NumPy

    NumPy是一个开源的Python科学计算库,用于快速处理任意维度的数组. 创建NumPy数组 #创建一维数组 list1 = [1,2,3,4] array1= np.array(list1)#用p ...

  9. Python Requests-学习笔记(10)-会话对象

    会话对象让你能够跨请求保持某些参数.它也会在同一个Session实例发出的所有请求之间保持cookies. 会话对象具有主要的Requests API的所有方法. 我们来跨请求保持一些cookies: ...

  10. 挑战全网最幽默的Vuex系列教程:第一讲 Vuex到底是什么鬼

    先说两句 官方已经有教程了,为什么还要写这个教程呢?说实话,还真不是我闲着蛋疼,官方的教程真的是太官方了,对于刚入门 Vuex 的童鞋来说,想必看官方的教程,很多地方就如同看圣经一样,比如「欧玛尼玛尼 ...