KVM之七:KVM克隆
1、在克隆虚拟机之前,必须先暂停或者停掉kvm 虚拟机。以虚拟机 snale 为例,先暂停虚拟机,如下
[root@kvm ~ ::]#virsh list
Id 名称 状态
----------------------------------------------------
snale running [root@kvm ~ ::]#virsh suspend snale
域 snale 被挂起 [root@kvm ~ ::]#virsh list
Id 名称 状态
----------------------------------------------------
snale 暂停
第一种方法:针对虚拟机本身直接克隆:
1、执行命令virt-clone
[root@kvm ~ ::]#virt-clone -o snale -n snale_clone -f /kvm3/snale_clone.img
正在克隆 snale.img | GB : Clone 'snale_clone' created successfully.
参数说明:
-o :指定源虚拟机
-n :命名新克隆的虚拟机
-f :指定新克隆虚拟机的位置
克隆完成后,在生成硬盘映像文件的同时,也会克隆虚拟机的配置文件:
[root@kvm ~ ::]#ls /kvm3
snale_clone.img
[root@kvm ~ ::]#ls /etc/libvirt/qemu
autostart networks snale2.xml snale_clone.xml snale.xml
查看各虚拟机的状态:
[root@kvm ~ ::]#virsh list --all
Id 名称 状态
----------------------------------------------------
snale 暂停
- snale2 关闭
- snale_clone 关闭
2、启动新克隆的虚拟机,配置计算机名及IP地址:
[root@kvm ~ ::]#virsh start snale_clone
错误:开始域 snale_clone 失败
错误:internal error process exited while connecting to monitor: char device redirected to /dev/pts/
--29T09::.983409Z qemu-kvm: Failed to start VNC server on `0.0.0.0:': socket bind failed: Address already in use
此时是无法启动的,要先修改它的配置文件,更改VNC端口,将port从5901改成5903
[root@kvm qemu ::]#virsh edit snale_clone
编辑了域 snale_clone XML 配置。 [root@kvm qemu ::]#
[root@kvm qemu ::]#virsh start snale_clone
域 snale_clone 已开始 [root@kvm qemu ::]#virsh list
Id 名称 状态
----------------------------------------------------
snale 暂停
snale_clone running


此时我们就可以登录虚拟机进行配置了!
由于虚拟机是centos 6 系列的。克隆进行网络配置,别忘记了修改 /etc/udev/rules.d/70-persistent-net.rules 文件。
第二种方法:复制kvm虚拟机配置文件及磁盘映象文件克隆
1 导出虚拟机 snale 的配置文件到 /etc/libvirt/qemu 目录下并重命名为 snale_cp.xml:
[root@kvm kvm3 ::]#virsh dumpxml snale >/etc/libvirt/qemu/snale_cp.xml
[root@kvm kvm3 ::]#ls /etc/libvirt/qemu
autostart networks snale2.xml snale_cp.xml snale.xml
2 复制kvm 虚拟磁盘文件到 /data/kvm/image 目录下并重命名为snale_cp.img:
[root@kvm ~ ::]#cp /kvm/image/snale.img /kvm3/snale_cp.img
[root@kvm ~ ::]#ls /kvm3
snale_cp.img
3使用vi 或vim 编辑新虚拟机的主配置文件 snale_cp.xml (注:由于此时的虚拟机还未注册,所以暂时不支持virsh edit 编译),修改name,uuid,disk位置,vnc端口:
[root@kvm qemu ::]#vim snale_cp.xml
修改name标签
<name>snale_cp</name>
uuid,随意改下数值
<uuid>192fdc94-c81b-fa35--0c073eee2c27</uuid>
disk标签
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source file='/kvm3/snale_cp.img'/>
vnc port 唯一值,不要重复
<graphics type='vnc' port='' autoport='no' listen='0.0.0.0'>
:wq
4、注册新的虚拟机;
[root@kvm qemu ::]#virsh define /etc/libvirt/qemu/snale_cp.xml
定义域 snale_cp(从 /etc/libvirt/qemu/snale_cp.xml)
5、启动snale_cp:
[root@kvm qemu ::]#virsh start snale_cp
域 snale_cp 已开始
[root@kvm qemu ::]#netstat -lntp|grep
tcp 0.0.0.0: 0.0.0.0:* LISTEN /qemu-kvm


KVM之七:KVM克隆的更多相关文章
- 关于kvm虚拟机的克隆方法总结
kvm虚拟机的克隆分为两种情况,第一种kvm宿主机上对虚拟机直接克隆 第二种通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移). 现笔者将分别两种kvm虚拟机克隆的的详细操作过程都记录 ...
- kvm虚拟机的克隆
kvm虚拟机的克隆分为两种情况 (1) KVM主机本机虚拟机直接克隆. (2) 通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移). 1. 本机虚拟机直接克隆 (1) 查看虚拟机配置 ...
- 转:KVM 虚拟机的克隆
KVM 虚拟机的克隆 首先把需要克隆的源虚拟机先关闭,然后使用以下命令来进行克隆,注意我这里使用的是相对路径. virsh shutdown VM02 virt-clone -o VM02 -n ...
- CentOS 7 安装配置KVM 通过KVM安装CentOS系统
搭建环境 : CentOS 7 [root@KVM ~]# systemctl stop firewalld [root@KVM ~]# systemctl disable firewalld [ro ...
- [qemu][kvm] 在kvm嵌套kvm的虚拟机里启动kvm加速
常规情况下,如果在kvm的虚拟机里,又想使用kvm的虚拟机,会报如下的错误信息: [root@host0 nlb]# Could not access KVM kernel module: No su ...
- KVM到KVM之v2v迁移
1.源KVM虚拟主机node1 (1).查看源KVM虚拟主机上的虚拟机列表,本文计划将oeltest01虚拟机迁移到其它KVM虚拟主机中. (2).查看oeltest01虚拟机磁盘文件位置/data/ ...
- kvm虚拟机最佳实践系列2-创建KVM及KVM优化
创建KVM及KVM优化 把KVM优化与KVM创建放在一起,是因为我们创建的KVM是要用在生产环境中,所以基础优化工作是必备的. 创建KVM 创建系统盘, 大小: 操作系统通常都不到10G,所以系统盘2 ...
- VMWare、KVM、Virtualbox克隆或复制Linux虚拟机后eth0找不到的解决方案
快速处理办法: cat /etc/sysconfig/network-scripts/ifcfg-eth0 sed -i '/UUID/d' /etc/sysconfig/network-script ...
- 006.KVM虚机克隆
一 KVM宿主机内克隆 1.1 查看虚拟机配置 [root@kvm-host ~]# cat /etc/libvirt/qemu/vm01-centos6.8.xml ………… [root@kvm-h ...
随机推荐
- 【mongodb系统学习之二】mongodb的启动
二.mongodb的启动: 1.在mongodb2.6.9的文件夹中建立data目录.logs目录以及 logs目录下的mongodb.log文件,如图: 2.进入到mongodb的bin目录中执 ...
- Linux显示登录Shell信息
Linux显示登录Shell信息 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ finger -p Login Name Tty Idle Login Tim ...
- 序列化Json格式
Json = JsonUtil.Serialize(new { code = 1, msg = "文件删除成功" }); public class JsonUtil { ...
- web开发性能优化---分布式篇
1.分布式架构-独立站点开发 模块化结构化开发,实现多资源分站点,数据分库,为后期实现分布式部署做准备,主要分为以下几部分: web站点: 1.web前端站点 2.图片.文件资源站点 3.管理端站点4 ...
- 初识Go语言
一.Go语言的主要特性: ① 开放源代码的通用计算机编程语言.开放源代码的软件(以下简称开源软件)更容易被修正和改进. ② 虽为静态类型.编译型的语言,但go语言的语法却趋于脚本化,非常简 ...
- python中的递归函数
在python中,函数可以调用其他函数,如果函数调用的是它本身,则称这样的函数为递归函数. 1.利用递归函数计算阶乘 递归函数最简单的例子就是计算阶乘. 阶乘:通项公式为n! = n * (n-1)! ...
- Linux之磁盘与文件系统管理
磁盘及文件系统管理详解 [参考文献:马哥视频] 原文:http://blog.csdn.net/u013008795/article/details/51150075 目前市场上主流的磁盘是机械式硬盘 ...
- Redis总结(七)Redis运维常用命令
redis 服务器端命令 redis 127.0.0.1:6380> time ,显示服务器时间 , 时间戳(秒), 微秒数 1) "1375270361" 2) &quo ...
- JDK 9.0.4安装过程
因为种种问题,怀疑是因为JDK版本不对劲,于是打算将JDK重新搞一下. 不看不知道,看了吓一跳,我的笔记本里现在起码有5.6甚至更多个JDK,JRE,并且由于年久失修,我也不知道这些东西怎么装上去的, ...
- NOIP2017总结
NOIP2017 总结 今年又炸飞天了,day1T1T2加起来不到100分,T3只有10分--怕真的要AFO了. 和去年一模一样day1炸飞天,day2虽然发挥正常但也无力回天 day1 Day1T1 ...