为什么80%的码农都做不了架构师?>>>   

感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!
如果转载,请保留作者信息。
博客地址:http://blog.csdn.net/qq_21398167

原博文地址:http://blog.csdn.net/qq_21398167/article/details/46414087

在CentOS7+KVM上实现服务器的迁移   

目录

注:本文使用的virt-manager版本为0.8.4.1

1.使用virt-manager管理多台虚拟机...1

2.使用virt-manager进行虚拟机动态迁移...2

3.使用virt-manager进行虚拟机静态迁移...11

4.动态迁移遇到的问题以及解决方案...15

注:本文使用的virt-manager版本为0.8.4

 

1.使用virt-manager管理多台虚拟机
   在一台机器上的virt-manager可以通过add connection管理其它机器上的虚拟机,一般通过"remote tunnel over ssh"就可以了,前提是建立SSH连接,为了简单起见,最好配置密钥证书认证模式,采用无密码登录。简单配置如下:

$ ssh-keygen -trsa 产生SSH公钥及私钥
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@somehost #拷贝公钥到需要管理的机器上。

配置好以后命令行输入virt-manager打开管理界面。选择fileà Add Connecttion..

依次填入文本框中内容如下:

Hypervisor: QEMU/KVM

Method:SSH

Username:root

Hostname:192.168.0.123  (需要被操作的服务器地址)

然后点击connect连接即可,此时就会出现另一台服务器上的虚拟机供操作。

2.使用virt-manager进行虚拟机动态迁移

 共享存储的动态迁移实验配置图

1.确保网络连接正确,源主机、目的主机和 NFS服务器之间可以互相访问。

2.  确保源主机和目的主机上的 VMM运行正常。

3.  设置 NFS服务器的共享目录。

NFS服务器安装

# yum install nfs*

# yum install rpcbind-*

NFS服务的配置文件为/etc/exports,这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。

/etc/exports文件内容格式:

<输出目录>

[客户端1选项(访问权限,用户映射,其他)]

[客户端2选项(访问权限,用户映射,其他)]

输出目录:

输出目录是指NFS系统中需要共享给客户机使用的目录。

客户端:

客户端是指网络中可以访问这个NFS输出目录的计算机

客户端常用的指定方式

指定ip地址的主机:192.168.0.200

指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0

指定域名的主机:david.bsmart.cn

指定域中的所有主机:*.bsmart.cn

所有主机:*

选项:

选项用来设置输出目录的访问权限、用户映射等。

NFS主要有3类选项:

访问权限选项

设置输出目录只读:ro

设置输出目录读写:rw

用户映射选项

all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);

no_all_squash:与all_squash取反(默认设置);

root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);

no_root_squash:与rootsquash取反;

anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);

anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

其它选项

secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);

insecure:允许客户端从大于1024的tcp/ip端口连接服务器;

sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

async:将数据先保存在内存缓冲区中,必要时才写入磁盘;

wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);

no_wdelay:若有写操作则立即执行,应与sync配合使用;

subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

/home/image*(rw,sync,no_root_squash)    (这里有多少台服务器就需要给每台服务器配置)

重新启动 nfsserver服务

# service nfsserver restart

首先在源主机和目的主机上添加共享存储。这里以源主机为例,目的主机做相同的配置。

添加 NFS存储池到源主机和目的主机的 vit-manager中:点击 Edit menu->HostDetails->Storage tab。 
存储池配置图

添加一个新的存储池。点击左下角的“+”号,弹出一个新的窗口。输入以下参数:

Name:存储池的名字。

Type:选择 netfs:Network Exported Directory。因为本文使用了 NFS 作为共享存储协议。

 

 

 

添加共享存储池

点击“Forward”后,输入以下参数:

Target Path:共享存储在本地的映射目录。本文中这个目录在源主机和目的主机上必须一致。

Format:选择存储类型。这里必须是 nfs。

Host Name:输入共享存储服务器,也就是 NFS服务器的 IP地址或 hostname。

Source Path:NFS服务器上输出的共享目录。 
存储池设置

点击“Finish”后,共享存储添加成功。此时在物理机上查看 Linux系统的文件系统列表,可以看到共享存储映射的目录。

源主机上创建基于共享存储的 KVM虚拟机。

选择共享存储池,点击”New Volume”创建新的存储卷。

输入存储卷参数。本例为虚拟机创建了大小为10G,格式为 qcow2的存储卷。 
添加存储卷

在这个共享存储卷上创建虚拟机。本文创建了一个基于 Window 2008 R2系统的虚拟机。

连接远程物理主机上的 VMM。这里以源主机为例,目的主机做相同的配置。

在源主机上打开 virt-manager应用程序,连接localhost本机虚拟机列表。点击 File->Add Connection,弹出添加连接窗口,输入以下各项:

Hypervisor:选择 QEMU。

Connection:选择连接方式 。本文选择 SSH连接。

Hostname:输入将要连接的主机名或 IP地址,这里填写目的主机名 victory4。 
添加远程 VMM 连接

点击 Connect,输入 SSH连接的密码后,将显示源主机和目的主机上的虚拟机列表。

管理远程 VMM

从源主机动态迁移 KVM虚拟机到目的主机。

在源主机上启动虚拟机 Windwos2008 R2。

在虚拟机中,开启实时网络服务(用来验证迁移过程中服务的可用性)。

准备动态迁移,确保所有的虚拟存储设备此时是共享的,包括 ISO和 CDROM。

在源主机的 virt-manager窗口中,右键点击等待迁移的虚拟机,选择“Migrate ”。

New host:选择目的主机的 hostname。

Address:填入目的主机的 IP地址。

Port and Bandwith:指定连接目的主机的端口和传输带宽,本文中没有设定,使用默认设置。
虚拟机迁移设置

点击“Migrate”和“Yes”开始动态迁移虚拟机。 
图 11. 虚拟机迁移进度

3.使用virt-manager进行虚拟机静态迁移

关闭server02上的虚拟机vm02-win2003,然后将虚拟磁盘镜像vm02-win2003se.img文件上传到server01。

  [root@server02 home]# sftp 10.8.0.124

Connecting to 10.8.0.124...

  root@10.8.0.124's password:

sftp> put vm02-win2003se.img

Uploading wm02-win2003 to/root/vm01-wi2003se.img

vm02-win2003se.img 100% 10G11.1MB/s 15:21

  sftp> exit

  

方法一、图形界面导入磁盘镜像

     在server01上导入vm02-win2003se.img文件,

  整个过程跟创建新VM差不多,与新建不一同的是,这里选择导入从server02上传过来的img镜像。

  

  

  

其他设置的信息同server02上img虚拟机的信息一致

  

  

       单击“Finish”,VMM便自动运行该虚拟机了。

    迁移过程中,server02 vm02-win2003se的静态网络配置在server01vm11-win2003se中变成了动态获取。

  

方法二、使用命令导入磁盘镜像

       在/etc/libvirt/qemu目录下,有与虚拟机相对应的xml配置文件。

   如果使用命令导入磁盘镜像的话,从源主机拷贝镜像文件和 XML 配置文件到目的主机中。也就是说,除了vm02-win2003se.img镜像文件外,还需要将server02 /etc/libvirt/qemu目录下的vm02-win2003se.xml文件也传到server01上,并且放到/etc/libvirt/qemu目录下。然后对 xml 进行适当的修改并激活。

     由于vm02-win2003se.img镜像文件放在/root目录下,故需将vm02-win2003se.xml中source file的值改为/root/vm02-win2003se.img

  <disk type='file' device='disk'>

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

  <source file='/root/ vm02-win2003se.img '/>

  <target dev='hda' bus='ide'/>

 <address type='drive' controller='0' bus='0' unit='0'/>

  </disk>

     激活虚拟机配置文件

    # virsh define /etc/libvirt/vm02-win2003se.xml

     至此,便完成的虚拟机的迁移,server01上有一个名为vm02-win2003se的虚拟机。如何要将此虚拟机改名为vm11-win2003se的话,需在xml文件中的第二行对name时行修改,xml文件和镜像文件也修改也一致比较好。

  启动该虚拟机

  #virsh start vm02-win2003se

4.动态迁移遇到的问题以及解决方案

动态迁移的一些必要条件:

1.关闭防火墙  Iptable –F

2.配置文件/etc/hosts 添加对应的IP和主机名(192.168.0.121 hostname)

3关闭 selinux服务

问题1: 
error: internal error hostname on destination resolved to localhost, butmigration requires an FQDN

因为默认情况下hostname是 localhost,我们需要把目标的hostname修改一下,临时的也可以。 
#hostname target 
问题2: 
error: internal error Attempt to migrate guest to the same host00020003-0004-0005-0006-000700080009 
     这个在mail list中有大牛说是服务器提供商的问题,你可以用#dmidecode -s system-uuid查看一下这个ID,理论上是#virsh sysinfo | grep uuid及# virsh capabilities | grep uuid,这三个ID是一样的。

修改一下libvirtd的配置文件 
#sed -i "/#host_uuid/ahost_uuid = \"`uuidgen`\""/etc/libvirt/libvirtd.conf 
    重启一下libvirtd服务 
# /etc/init.d/libvirtd restart 
    然后再查看一下 
# virsh capabilities | grep uuid

问题3:
error: unable to set user and group to '107:107' on '/image/vmtest/disk.img':No such file or directory 
    如果顺利进入到这步的话,就很简单了,没有directory直接创建一个就可以,没有disk.img直接create一个 
注:创建的磁盘应该和源虚拟机的磁盘是一样的大小(更大应该是可以)和格式(raw还是qcow2)

qemu-img create /image/vmtest/disk.img+sizeG

问题4: 
error: Unable to resolve address 'target' service '49155': Name or service notknown 
    在/etc/hosts添加解析的ip和target的域名即可

转载于:https://my.oschina.net/shadai/blog/699040

CentOS7下 libvirt+virt-manager 虚拟机迁移配置及错误处理相关推荐

  1. Centos7下Nginx代理和二级域名配置

    Centos7下Nginx代理和二级域名配置 nginx的安装步骤请阅读上一篇文章. 一.nginx的反向代理配置 编辑nginx的配置文件(找到自己的配置文件) vim /usr/local/ngi ...

  2. CentOS7下搭建Nginx+PHP7的安装配置

    一.安装编译工具及库文件: yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 环境要求 nginx是C ...

  3. CentOS7下安装MySQL5.7安装与配置(转)

    原文地址:http://www.centoscn.com/mysql/2016/0626/7537.html 安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在M ...

  4. CentOS7下分布式文件系统FastDFS的安装 配置 (单节点)

    背景 FastDFS是一个开源的轻量级分布式文件系统,为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,解决了大容量存储和负载均衡的问题,特别适合以文件为载体 ...

  5. CentOS7下安装MySQL5.7安装与配置(YUM)

    安装环境:CentOS7 64位,MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/ 1 ...

  6. CentOS7下Mysql Cluster 7.4安装配置

    Mysql Cluster 7.4安装配置(部分图片未显示) 1 环境说明 1.1 所依赖环境 CentOS7.2  (需关闭防火墙) JDK7 1.2 五大服务器IP部署 管理节点 MGM1:10. ...

  7. ubuntu 配置桥接网卡_ubuntu下使用qemu安装虚拟机并配置桥接网络

    一.虚拟机的创建:       1.ubuntu下安装好qemu后,使用如下命令创建虚拟机: qemu-img create -f qcow2 voltdb.img 10g -f qcow2是指:qe ...

  8. CentOS7下PHPNginxMysql编译安装及sytemd配置

    闲话少叙,直接开始 yum安装依赖 复制以下内容,回车直接安装编译php,nginx,mysql所需的依赖 shyum install -y\kenel-devel gcc gcc-c++ patch ...

  9. linux tunl0 ip,Centos7下lvs负载均衡lvs-tun模式配置

    一.架构 director:172.28.18.69 vip:172.28.18.70 real server1:172.28.18.71 real server2:172.28.18.78 二.两台 ...

最新文章

  1. 非主流图片编辑软件_快火拼多多直播发言软件怎么下载
  2. css3是什么 ptml_CSS3
  3. 飞机大战HTML5游戏源码,基于Canvas制作的网页版飞机大战游戏+飞机大战手机端
  4. 95-190-741-源码-WindowFunction-窗口流简介
  5. Converse3D 引擎介绍
  6. 一行命令开启VNC 和windows之间复制粘贴功能
  7. 计算机网络数据链路层之其基础概述
  8. 啦啦外卖41.7亲测可用!插件齐全!含顾客APP,商家APP ,骑手APP!需要的拿去研究
  9. m2接口和nvme协议接口_B85主板有M.2接口吗?支持NVMe协议吗?
  10. デュナリス / 风奶
  11. socket套接字各个接口
  12. unity简单小球下落
  13. 【rabbitMQ】真就一篇就够!!
  14. 7z SFX Builder v2.3.1 7Z自解压生成器中文版
  15. 服务器如何多个网站和数据库,网站和数据库分两个服务器
  16. 浩瀚的CAD/CAM软件 2021
  17. 论文笔记:Dual Contrastive Loss and Attention for GANs
  18. 毕业辨答 24PPPT模板
  19. Qt入门视频教程地址分享
  20. jenkins fastlane淌坑记录

热门文章

  1. http协议、cookie与session介绍
  2. react key值警告问题
  3. win 2008 R2 域服务器策略同步异常解决方案。
  4. scala学习手记2 - scala中的循环
  5. 教你使用faceBook的chisel来提高调试效率
  6. DELL-S4810恢复出厂配置
  7. SQLServer2008设置开启INTERNET远程连接
  8. Windows 8(Windows Developer Preview)先体验
  9. 20160828小结
  10. JavaScript对象创建对象的四种方式