基于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
这样就可以迁移成功了

基于NFS共享存储实现KVM虚拟机动态迁移的更多相关文章
- 基于本地存储的kvm虚拟机在线迁移
基于本地存储的kvm虚拟机在线迁移 kvm虚拟机迁移分为4种(1)热迁移基于共享存储(2)热迁移基于本地存储(3)冷迁移基于共享存储(4)冷迁移基于本地存储 这里介绍的是基于本地存储的热迁移 动态块迁 ...
- kvm虚拟机动态迁移
相比KVM虚拟机静态迁移中需要拷贝虚拟机虚拟磁盘文件,kvm虚拟机动态迁移无需拷贝虚拟磁盘文件,但是需要迁移到的虚拟主机之间需要有相同的目录结构虚拟机磁盘文件,本文这部分内容通过nfs来实现,当然也可 ...
- 虚拟机在 OpenStack 里没有共享存储条件下的在线迁移[转]
原文链接:http://www.ibm.com/developerworks/cn/cloud/library/1508_wangyx_openstacklivemigrate/ 迁移(Migrati ...
- 虚拟机在 OpenStack 里没有共享存储条件下的在线迁移
虚拟机在 OpenStack 里没有共享存储条件下的在线迁移 本文尝试回答与 Live migration 相关的几个问题:Live migration 是什么?为什么要做 Live migratio ...
- 烂泥:NFS做存储与KVM集成
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 以前有关NFS的文章,我们介绍的都是NFS的使用挂载等等.这篇文章我们介绍有关NFS作为存储使用. 既然本篇文章的主题是有关NFS的,我们还是先把NFS ...
- NFS 共享存储实战
目录 NFS 共享存储实战 一.NFS概述 二.NFS部署 部署NFS客户端backup和web01 统一web.nfs.backup的用户权限 代码部署步骤 三.NFS配置详解 NFS存储小结 四. ...
- NFS共享存储服务
NFS共享存储服务 一.NFS共享 1)NFS(Network File System)网络文件系统 ...
- NFS共享存储服务 (如果厌倦了外面的生活,那就来我身边吧,帮我插秧)
NFS共享存储服务 1.NFS概述 2.在服务器使用NFS发布共享资源 3.在客户机中访问NFS共享资源 1.NFS概述: NFS是一种基于TCP/IP传输的网络文件系统协议.通过使用NFS协 ...
- 部署YUM源仓库与NFS共享存储服务
镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 一.YUM YUM (Yellow dog Updater Modified) ●基于RPM包构建的软件更新机制 ●可以自动解决依赖关系 ●所有 ...
随机推荐
- Java并发基础06. 线程范围内共享数据
假设现在有个公共的变量 data,有不同的线程都可以去操作它,如果在不同的线程对 data 操作完成后再去取这个 data,那么肯定会出现线程间的数据混乱问题,因为 A 线程在取 data 数据前可能 ...
- STM32CubeMX的安装
1.下载STM32CubeMX 在ST的官方网站上下载STM32CubeMXXX软件的安装包. 下载的安装包如下图所示.双击SetupSTM32CubeMX-5.0.1.exe. 安装STM32Cub ...
- PTA数据结构与算法题目集(中文) 7-8
PTA数据结构与算法题目集(中文) 7-8 7-8 哈利·波特的考试 (25 分) 哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是 ...
- HTTP Session例子
HTTP协议是“一次性单向”协议.服务端不能主动连接客户端,只能被动等待并答复客户端请求.客户端连接服务端,发出一个HTTP Request,服务端处理请求,并且返回一个HTTP Response给客 ...
- SpringBoot基础01-yaml配置文件
1.配置文件 1)SpringBoot使用一个全局的配置文件,配置文件名是固定的: application.properties application.yml 2)配置文件的作用:修改SpringB ...
- java web数据库的增删改查详细
本次课上实验是完成数据库的增删改查. 包括增加用户信息.删除用户信息.多条件查找用户信息.修改用户信息(主要是复选框单选框等的相关操作.) 下面下看一下各个界面的样子. 总页面:显示全部页面:增加页面 ...
- Python安装MySQL数据库模块
背景 折腾: [记录]使用Python操作MySQL数据库 的过程中,需要去安装MySQLdb. 下载MySQLdb 去官网: http://pypi.python.org/pypi/MySQL-py ...
- loadrunner vuser 限制修改
- 014-预处理指令-C语言笔记
014-预处理指令-C语言笔记 学习目标 1.[掌握]枚举 2.[掌握]typedef关键字 3.[理解]预处理指令 4.[掌握]#define宏定义 5.[掌握]条件编译 6.[掌握]static与 ...
- 008-进制-C语言笔记
008-进制-C语言笔记 学习目标 1.[掌握]include预处理指令 2.[掌握]多文件开发 3.[了解]认识进制 4.[掌握]进制之间的互相转换 5.[掌握]原码,反码,补码 6.[掌握]位运算 ...