KVM 实战虚拟机克隆

KVM克隆虚拟机

使用克隆的方式保存两台vm配置完全一致。

  • 暂停虚拟机(suspend)用于克隆
[root@sh-kvm-2 ~]# virsh suspend kvm-1
[root@sh-kvm-2 ~]# less /dev/vg_shkvm2/kvm-3
Domain kvm-1 suspended
  • 使用下面命令进行克隆
virt-clone \
 --connect qemu:///system \
 --original kvm-1 \
 --name kvm-3 \
 --file /dev/vg_shkvm2/kvm-3
 # 或者
 virt-clone --connect qemu:///system --original aniu-saas-1 --name aniu-saas-2 --file /dev/cl/aniu-saas-2 --check all=off
 # ERROR    This will overwrite the existing path '/dev/cl/aniu-saas-2' (Use --check path_exists=off or --check all=off to override)

此操作大概会持续两到三分钟,依赖于原生vm的大小

  • 克隆完成,可以重启原生虚拟机kvm-1
virsh resume kvm-1
  • 启动克隆的虚拟机(kvm-2)

克隆虚拟机是原始VM的一个副本,所有VM属性(VCPUs、内存、磁盘空间)和磁盘内容将是相同的。克隆命令负责生成一个新的MAC地址对于VM克隆并更新适当的网络控制器配置文件(即。因此避免重复的MAC地址,需要修改克隆虚拟机的MAC

[root@sh-kvm-2-1 ~]# ifconfig -a | grep HWaddr
eth1      Link encap:Ethernet  HWaddr 52:54:00:C3:87:E7
# 把查到的MAC地址添加到ifcfg-eth0,改掉原来的MAC地址,注释UUID,修改IPADDR,然后重启network
[root@sh-kvm-2-1 network-scripts]# cat ifcfg-eth0  # 修改完成后的eth0网卡配置文件
DEVICE="eth0"
BOOTPROTO="static"
BROADCAST="192.168.0.255"
DNS1="114.114.114.114"
GATEWAY="192.168.0.1"
HWADDR="52:54:00:C3:87:E7"
IPADDR="192.168.0.95"
NETMASK="255.255.255.0"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="050e9024-3a2b-46b8-a21f-2925aa7d4bec"
  • 重启网络报错
[root@sh-kvm-2-1 network-scripts]# /etc/init.d/network restart
Shutting down loopback interface:  [  OK  ]
Bringing up loopback interface:  [  OK  ]
Bringing up interface eth0:  Device eth0 does not seem to be present, delaying initialization.
[FAILED]

这种情况是网卡mac故障导致的,修复过程:

[root@sh-kvm-2-1 ~ ]# cd /etc/udev/rules.d
[root@sh-kvm-2-1 rules.d]# cat 70-persistent-net.rules # 编辑70-persistent-net.rules,修改eth0的MAC地址为上面通过ifconfig命令搜出来的

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", aTTR{address}=="52:54:00:C3:87:E7", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# 修改完成,完后重启网络,成功
# 另一种方法:

rm -rf /etc/udev/rules.d/70-persistent-net.rules # 然后reboot重启即可

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏.NET技术

elasticsearch同步mongodb--mongo connector的使用

mongodb-win32-x86_64-3.4.6-signed.msi  (如果已经安装可以忽略)

1942
来自专栏逸鹏说道

Javascript缓存投毒学习与实战

0x00 起因 不久前@三好学生师傅买了一个wooyun wifi,然后聊到了缓存投毒: ? 然后看到wooyun wifi的这个说明: 默认情况下该功能附带缓...

3965
来自专栏lonelydawn的前端猿区

初学redis之windows服务配置与启动

初学redis首先要配置好服务, redis在Linux上的安装只要按照官方指导来,很快很简单。 下面来谈谈redis在windows上的安装。 官网虽然没给r...

2045
来自专栏零基础使用Django2.0.1打造在线教育网站

零基础使用Django2.0.1打造在线教育网站(四):简易留言簿基础开发

努力与运动兼备~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

2495
来自专栏梦魇小栈

adb设备信息查询修改刷机等命令

ADB很强大,记住一些ADB命令有助于提高工作效率。 通过ADB命令查看wifi密码、MAC地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装APK...

3042
来自专栏晓晨的专栏

如何高效的编写与同步博客 (.NET Core 小工具实现)

1301
来自专栏贾鹏辉的技术专栏@CrazyCodeBoy

React Native应用部署/热更新-CodePush最新集成总结(新)

React Native应用部署/热更新-CodePush最新集成总结(新) ---- 更新说明: 此次博文更新适配了最新版的CodePush v1.17....

6266
来自专栏技术博文

SSDB 配置文件

SSDB 的配置非常简单, 附带的 ssdb.conf 你不用修改便可以使用. 如果你要高度定制, 还是需要修改一些配置的. 下面做介绍. SSDB 的配置文件...

2655
来自专栏IMWeb前端团队

让chrome插件在手机上跑起来

本文作者:IMWeb moonye 原文出处:IMWeb社区 未经同意,禁止转载 创建一个chrome的插件,并让这个插件能够作为一个app,运行在终...

1935
来自专栏Porschev[钟慰]的专栏

Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识

前言   前面经过五篇Node.js的学习,基本可以开始动手构建一个网站应用了,先用这一篇了解一些构建网站的知识!   主要是些基础的东西...   如何去创建...

3017

扫码关注云+社区