设为首页 收藏本站
云服务器等爆品抢先购,低至4.2元/月
查看: 1139|回复: 0

[经验分享] kvm命令总结和虚机器备份迁移

[复制链接]

尚未签到

发表于 2017-6-24 12:52:05 | 显示全部楼层 |阅读模式
  管理kvm虚拟机命令

  virsh uri:                                          查看当前主机上hypervisor的连接路径;
  virsh connect:
  virsh define:                                     创建一个虚拟机,根据事先定义的xml格式的配置文件;创建以后不会自动启动(也可以认为是识别新添加的而没有识别出来的虚拟机--激活);
  virsh create:                                     创建,创建完成后会自动启动;
  virsh undefine:                                 取消定义的虚拟机(只是针对虚拟机的配置文件的删除)
  virsh list  --all                                  查看虚拟机列表
  virsh destroy  rhel6                           强制关掉虚拟机电源
  virt-install --os-variant list
  virsh start rhel66                               开启rhel66 或 virsh create /etc/libvirt/qemu/rhel66.xml
  virsh shutdown rhel66
  virsh reboot rhel66
  virsh   dominfo  centos-A                    查看虚拟机的信息
  virsh console rhel66
  virsh suspend rhel66                          挂起
  virsh resume  rhel66                          恢复挂起
  virsh pool-list --all  #
  virsh pool-start vmware_pool             #启动存储池
  virsh pool-destroy vmware_pool         #销毁存储池
  virsh pool-undefine vmware_pool       #取消存储池的定义
  virsh pool-info vmware_pool              #查看存储域(池)信息

  1.undefine 和  destroy 删除
  如果说一不小心把正在启动着的 kvm虚拟机配置文件删掉了,也可以进行恢复的,例如:



# virsh  dumpxml   centos-C  > /etc/libvirt/qemu/centos-C.xml       //在关闭虚拟机之前,重新定义一个配置文件即可恢复
  如果是在关闭着的服务器上执行的virsh undefine  centos-C 删除命令,则会把对应的配置文件清空,虚拟机再也启动不了,重新定义也不行
  如果在关闭着的kvm虚拟机上运行destroy命令,则会报错,执行不成功



# virsh  destroy  kvm-name                                          //此命令只针对运行的kvm虚拟机有效,相当于强制拔电源
  如果在运行着的kvm虚拟机上运行此命令,将正在运行的虚拟机强制关闭,此命令可以在kvm卡机,死机,但kvm还未关机的状态下,执行是最好不过的命令了
  # /etc/libvirt/qemu/  虚拟机xml配置文件目录
  # virsh edit rhel66   编辑xml配置文件,vi编辑的不会立即生效
  2.解决virsh shutdown无法关闭KVM虚拟机 (注:以下操作都在客户机,不是宿主机)



# yum -y install  acpid
# service acpid restart
# chkconfig --level 2345 acpid on
# chkconfig acpid --list
  3.解决KVM中宿主机通过console无法连接客户机(注:以下操作都在客户机,不是宿主机)
  a)添加ttyS0的安全许可,允许root登录:
  echo "ttyS0" >> /etc/securetty
  b)在/etc/grub.conf文件中为内核添加参数:
  console=ttyS0
  这步要注意:
  console=ttyS0一定要放在kernel这行中(大约在第16行),不能单独一行,即console=ttyS0是kernel的一个参数,不是单独的
  c)在/etc/inittab中添加agetty:
  S0:12345:respawn:/sbin/agetty ttyS0 115200
  4.kvm虚拟机的重命名
  a)重命名kvm虚拟机最好是将虚拟机先关机,然后再导出其xml文件



# cd /etc/libvirt/qemu
# virsh dumpxml rhel6 > CentOS02.xml
  b)为了让重命名后的虚拟机名字与磁盘文件名一致、我们可以先将之前的磁盘文件命名成CentOS02.img



# cd /var/lib/libvirt/images
# mv rhel6.1.img CentOS02.img
  c)编辑CentOS02.xml文件,修改<name>标签对以及磁盘文件,这里我们将磁盘文件修改成CentOS02.img



<domain type='kvm'>
<name>CentOS02</name>
......  
...省略......
......
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source file='/var/lib/libvirt/images/CentOS02.img'/>
  d)使用virsh undefine命令删除之前的虚拟机,根据新的xml文件定义新的kvm虚拟机只是删除对应的xml配置文件,磁盘文件不会删除



# virsh undefine  rhel6                             //删除rhel6虚拟机

# virsh define /etc/libvirt/qemu/CentOS02.xml       //重新定义新的kvm虚
5.克隆的几种方法:
第一种:直接复制 kvm镜像文件里的镜像(/var/lib/libvirt/images)和 Kvm配置文件里的文件(/etc/libvirt/qemu)然后进行修改,启动即可
第二种:



# virt-clone -o oeltest01 -n oeltest02 -f /var/lib/libvirt/image/test02.img
说明:以oeltest01做为源,克隆oeltest01虚拟机,并创建名称为oeltest02虚拟机,使用磁盘文件/data/test02.img
第三种:图形界面克隆(操作略)
6.快照条件:


磁盘镜像格式,不能是raw格式,不支持,想用快照功能的话,首先要关机,转换镜像格式为 qcow  和 qcow2格式,修改配置文件(如下图1-1),修改其镜像类型和新的镜像格式文件,再重新启动即可
这种将raw格式的镜像虚拟机转换成 qcow2格式的镜像虚拟机,用qemu-img命令进行转换,最好是从原来的raw格式的镜像新生成一个新的qcow2格式的磁盘镜像,在进行配置,方能正常使用;如若在原来的raw镜像文件上直接做修改,让其直接变成qcow2格式的镜像文件,则会毁掉raw(原来的镜像文件),虚拟机则会起不来


切记千万不要这样转换格式,会使原来的失效,虚拟机就不能用了,被覆盖了



# qemu-img convert  -p -f raw  -O qcow2  centos-A.img   centos-A.img
  注意修改镜像名字和磁盘类型
DSC0000.png

7.Kvm  快照  磁盘镜像管理
Kvm创建镜像网址(推荐用virsh命令
http://ilanni.blog.51cto.com/526870/1535627/
创建快照命令   (可以开关机执行此命令均可)



# virsh snapshot-create-as  centos   centos_snap1
查看虚拟机的快照列表



# virsh  snapshot-list    centos-X   (虚拟机名)
查看虚拟机快照的信息



# virsh snapshot-info  centos-X  centos-snap1
恢复快照(注意:恢复快照时,虚拟机一定要处于关机状态下)



# virsh  snapshot-revert centos-X   centos_snap
删除快照



# virsh  snapshot-delete  centos-X   centos_snap1
创建磁盘镜像文件



# qemu-img  create /var/lib/libvirt/images/test  20G (raw格式)
创建一个10G的镜像,格式为qcow2,名字为test.qcow2



# qemu-img  create  /var/lib/libvirt/images/test.qcow2  -f qcow2 10G
查看磁盘镜像信息



# qemu-img info  /var/lib/libvirt/images/test
镜像格式的转换
(使用qemu-img  convert 命令进行转换,在这里原来的test的格式是raw,最后转换成qcow2格式)



# qemu-img convert  -p -f raw  -O qcow2  centos-A.img   centos-A.qcow2
    -p是显示转换进度 -f是指原有的镜像格式, -O是输出的镜像格式
切记千万不要这样转换格式,会使原来的失效,被覆盖了,如果转换之后的镜像也不能用,那么两个镜像就都废了,虚拟机就不能用了。



# qemu-img convert  -p -f raw  -O qcow2  centos-A.img   centos-A.img

8.kvm迁移(物理主机之间的kvm虚机)      静态迁移-----动态迁移
静态迁移:很好理解,关机,将*.xml配置文件 和.img 或.qcow2磁盘镜像文件拷贝到目的地物理主机
动态迁移:在线迁移kvm虚拟机,但是不影响正常服务的使用
动态迁移有两种方法
第一种:就是利用共享nfs服务,进行迁移(不建议使用)
第一种参考网址- - - - > http://www.iyunv.com/Linux/2012-12/75492p3.htm
口述为:一台nfs服务器、两台服务器(vm1,vm2)
  前提环境是在nfs环境上面搭建的kvm虚拟机,才能迁移,也就是说kvm虚拟机所处在的目录就是通过配置,将nfs服务器上挂载过来的磁盘,实际使用的空间是nfs服务器,真正运行在的服务器还是虚拟机所处在的物理机,这样方便迁移
第二种:无共享存储环境下操作(常用)
从entos6.4开始,支持在线的带存储迁移,就时不需要共享存储也能在线迁移

在进行迁移之前需要注意:两台物理主机的主机名不能相同,并且都需要添加hosts解析,否则迁移不成功,切记
A:  在备用宿主机上通过qemu-img  create 命令创建好空文件,大小和要备份的kvm虚拟机一模一样,也要注意格式,名称,大小



# qemu-img create  -f  qcow2  -o preallocation=metadata  centos-X.qcow2  10G
空文件需家预分配参数,否则复制过去的文件会是按照qcow2预分配文件的大小。
B: 设置迁移速度,一般不希望迁移的时候对正常业务造成影响,设置迁移速度限制到600M/s



# virsh  migrate-setspeed   centos-X  600
C:  开始迁移



# virsh   migrate  --live  --copy-storage-all  --unsafe   centos-X  qemu+ssh://192.168.4.211/system
迁移时间随磁盘空间大小而不同,磁盘空间越大,迁移时间越长。迁移的过程是先迁移磁盘,然后迁移内存,迁移内存的时候,一般业务会瞬断下,虚拟机一瞬间会在一边关闭,另一边的宿主机开启
提示:迁移速度和成功率与网络有很大的关系,宿主机的网络尽量是万兆或者千兆多网卡绑定,可以提高迁移速度和成功率

用循环进行监测,是否启动



for  ((i=1;i>0;i++)) ; do virsh list; sleep  2; done
  扩展:
Kvm宿主机系统崩溃的修复方法:
(1)如果是系统故障,使用引导盘进入rescue 模式修复系统故障,无法修复或修复时间无法预计时,重装kvm宿主机系统
(2)如果不能修复,重装宿主机系统
     在重装系统之前,建议先用LiveCD启动机器,建立nfs,现将虚拟机相关镜像文件,xml配置文件复制到备用的宿主机上,在备用宿主机上开启虚拟机,先恢复业务,然后对系统进入彻底重装

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-387516-1-1.html 上篇帖子: 2 云计算系列之KVM的安装与使用 下篇帖子: [ kvm ] 进程的处理器亲和性和vCPU的绑定
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表