基于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. Codeforces Round #627 (Div. 3)

    1324A - Yet Another Tetris Problem(思维) 题意 给一个数组,每一个数组中的元素大小表示在竖直方向的方块数量,元素相邻怎竖直方向的方块也相邻,类似于俄罗斯方块当底层被 ...

  2. PTA数据结构与算法题目集(中文) 7-4

    PTA数据结构与算法题目集(中文)  7-4 是否同一颗二叉搜索树 给定一个插入序列就可以唯一确定一棵二叉搜索树.然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到.例如分别按照序列{2, 1, ...

  3. 微信小程序分享至朋友圈的方法

    最近研究怎么实现微信小程序分享至朋友圈,对就是朋友圈. 微信小程序目前没有直接提供方法来将小程序分享至朋友圈,不过可以采用曲线救国的方式来达到目的. 方法分两步: 1.通过浏览器将希望分享的东西风向至 ...

  4. Docker多网卡

    # 查看所有网络 docker network ls # 如果要查看更加详细的虚拟网卡,如下指令 docker network inspect [NetWorkEthName | NetWorkEth ...

  5. 这份Java Web必读书单,值得所有Java工程师一看!

    点击蓝色"程序员书单"关注我哟 加个"星标",每天带你读好书! 经过了10多年的发展,Java Web从开发框架到社区都已经非常成熟,而目前市面上最流行的Jav ...

  6. 工作中常用的Android系统ADB命令收集

    ​工作中常用的Android系统ADB命令收集如下:先收藏以备以后查阅! ​ adb --help //adb帮助 adb start-server //启动adb server adb kill-s ...

  7. 30.2 案例:ArrayList本身数据可以重复,写出去重的方法

    package day30_HashSet; /* * ArrayList特点(实现List接口) 有序.可以重复.可以使用索引 *使用ArrayList实现数据去重 * */ import java ...

  8. MySQL中的事务和MVCC

    本篇博客参考掘金小册--MySQL 是怎样运行的:从根儿上理解 MySQL 以及极客时间--MySQL实战45讲. 虽然我们不是DBA,可能对数据库没那么了解,但是对于数据库中的索引.事务.锁,我们还 ...

  9. 14-jmeter分布式环境

    1.分布式概念: jmeter做性能时,会消耗本地机器资源 本机无法没有限制的创建运行线程(一般500线程就差不多会报错) 一般这时候会用到分布式的环境 2.环境: 前提条件:环境一致(有时候可以直接 ...

  10. buuctf misc wp 01

    buuctf misc wp 01 1.金三胖 2.二维码 3.N种方法解决 4.大白 5.基础破解 6.你竟然赶我走 1.金三胖 root@kali:~/下载/CTF题目# unzip 77edf3 ...