zoukankan      html  css  js  c++  java
  • 基于NFS共享存储实现KVM虚拟机动态迁移

    基于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

     这样就可以迁移成功了

     

     

     

     

  • 相关阅读:
    Linux命令之more
    Linux命令之sort
    STM32启动模式
    poll调用深入解析
    STM32 控制步进电机 28BYJ-48
    NEC协议
    家用宽带的上传和下载速度
    Ubuntu14.04更新源
    波特率和比特率【串口为例】
    CentOS: make menuconfig error: curses.h: No such file or directory
  • 原文地址:https://www.cnblogs.com/ZCQ123456/p/11740837.html
Copyright © 2011-2022 走看看