基于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. PTA数据结构与算法题目集(中文) 7-25

    PTA数据结构与算法题目集(中文)  7-25 7-25 朋友圈 (25 分)   某学校有N个学生,形成M个俱乐部.每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈.一个学生可以同时属于若干 ...

  2. centos 64位安装jpeg-6b

    先安装libtool和libtool-ltdl-devel 用find命令查找config.sub和config.guess文件 find / -name config.sub find / -nam ...

  3. C#使用HTML文件中的file文件上传,用C#代码接收上传文件

    单独做图片上传很简单,如果要客户端要上传头像保存到服务器就要稍微麻烦一点点了. 不多说了,直接上源码: private void Upload() { string jsonInfo = string ...

  4. Java 方法之形参和实参 、堆、栈、基本数据类型、引用数据类型

    * 形式参数:用于接收实际参数的变量(形式参数一般就在方法的声明上) * 实际参数:实际参与运算的变量 * 方法的参数如果是基本数据类型:形式参数的改变不影响实际参数. * * 基本数据类型:byte ...

  5. 采用TuesPechkin生成Pdf

    1.需求 前段时间有个需求,要求把网页生成pdf,找了各种插件,才决定使用这个TuesPechkin,这个是后台采用C#代码进行生成 2.做法 我要做的是一个比较简单的页面,采用MVC绑定,数据动态加 ...

  6. Python入门学习指导(VS Code配置向)

    代码编辑器或IDE 推荐Vs Code,Atom和Sublime(本文以Vs Code为例,Sublime对中文支持不是很好,时常弄好了Sublime的乱码,却在复制到其他编辑器时出了问题) Vs C ...

  7. docker中的dockerfile

    什么是dockerfile? Dockerfile是一个包含用于组合映像的命令的文本文档.可以使用在命令行中调用任何命令. Docker通过读取Dockerfile中的指令自动生成映像. docker ...

  8. windows 环境下dos 命令符下进D盘(非c盘系统盘)根目录

    怎么进? 先 cd  D: 然后 直接  D: 即可到D盘根目录,至于为啥要输入2遍D 才进D盘根目录,这就是windows的规定

  9. javascript的数据类型(基本和复杂)

    一.基本数据类型 string number boolean  二.复杂数据类型 Array Date object RegExp Sting Number Boolean 核心:Object fun ...

  10. Linux访问Window共享文件夹的配置步骤

    1. Window下创建用户XXX(作用:Linux mount时需要提供用户和密码) 2. Window下共享文件夹给XXX用户,并根据实际需要设置读取/写入权限 3. Linux下创建挂载的目录 ...