KVM虚拟化学习笔记系列文章列表
----------------------------------------
kvm虚拟化学习笔记(一)之kvm虚拟化环境安装
http://koumm.blog.51cto.com/703525/1288795
kvm虚拟化学习笔记(二)之linux kvm虚拟机安装
http://koumm.blog.51cto.com/703525/1289627
kvm虚拟化学习笔记(三)之windows kvm虚拟机安装
http://koumm.blog.51cto.com/703525/1290191
kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置
http://koumm.blog.51cto.com/703525/1290269
kvm虚拟化学习笔记(五)之windows虚拟机性能调整
http://koumm.blog.51cto.com/703525/1290682
kvm虚拟化学习笔记(六)之kvm虚拟机控制台登录配置
http://koumm.blog.51cto.com/703525/1290996
kvm虚拟化学习笔记(七)之kvm虚拟机克隆
http://koumm.blog.51cto.com/703525/1291793
kvm虚拟化学习笔记(八)之kvm虚拟机vnc配置
http://koumm.blog.51cto.com/703525/1291803
kvm虚拟化学习笔记(九)之kvm虚拟机时间配置
http://koumm.blog.51cto.com/703525/1291862
kvm虚拟化学习笔记(十)之kvm虚拟机快照备份
http://koumm.blog.51cto.com/703525/1291893
kvm虚拟化学习笔记(十一)之kvm虚拟机扩展磁盘空间
http://koumm.blog.51cto.com/703525/1292146
kvm虚拟化学习笔记(十二)之kvm linux虚拟机在线扩展磁盘
http://koumm.blog.51cto.com/703525/1295296
kvm虚拟化学习笔记(十三)之kvm虚拟机磁盘文件读取小结
http://koumm.blog.51cto.com/703525/1298845
kvm虚拟化学习笔记(十四)之kvm虚拟机静态迁移
http://koumm.blog.51cto.com/703525/1298852
kvm虚拟化学习笔记(十五)之kvm虚拟机动态迁移
http://koumm.blog.51cto.com/703525/1300783
kvm虚拟化学习笔记(十六)之kvm虚拟化存储池配置
http://koumm.blog.51cto.com/703525/1304196
kvm虚拟化学习笔记(十七)之KVM到KVM之v2v迁移
http://koumm.blog.51cto.com/703525/1304271
kvm虚拟化学习笔记(十八)之ESXi到KVM之v2v迁移
http://koumm.blog.51cto.com/703525/1304461
kvm虚拟化学习笔记(十九)之convirt集中管理平台搭建
http://koumm.blog.51cto.com/703525/1305553
kvm虚拟化学习笔记(二十)之convirt安装linux系统
http://koumm.blog.51cto.com/703525/1306526
kvm虚拟机的克隆分为两种情况,本文也就通过以下两种情况进行克隆,克隆虚拟机为OEL5.8X64。
本文出自:http://koumm.blog.51cto.com
(1) KVM主机本机虚拟机直接克隆。
(2) 通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移)。
1. 本机虚拟机直接克隆
(1) 查看虚拟机配置文件
[root@node1 ~]# cat /etc/libvirt/qemu/oeltest01.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to
this
xml configuration should be made using:
virsh edit oeltest01
or other application using the libvirt API.
-->
<domain type=
'kvm'
>
<name>oeltest01</name>
<uuid>8f2bb4a7-c7ed-32aa-
3676
-9fb05923269d</uuid>
<memory unit=
'KiB'
>
524288
</memory>
<currentMemory unit=
'KiB'
>
524288
</currentMemory>
<vcpu placement=
'static'
>
1
</vcpu>
<os>
<type arch=
'x86_64'
machine=
'rhel6.4.0'
>hvm</type>
<boot dev=
'hd'
/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset=
'utc'
/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type=
'file'
device=
'disk'
>
<driver name=
'qemu'
type=
'raw'
cache=
'none'
/>
<source file=
'/data/test01.img'
/>
<target dev=
'hda'
bus=
'ide'
/>
<address type=
'drive'
controller=
'0'
bus=
'0'
target=
'0'
unit=
'0'
/>
</disk>
<disk type=
'block'
device=
'cdrom'
>
<driver name=
'qemu'
type=
'raw'
/>
<target dev=
'hdc'
bus=
'ide'
/>
<readonly/>
<address type=
'drive'
controller=
'0'
bus=
'1'
target=
'0'
unit=
'0'
/>
</disk>
<controller type=
'usb'
index=
'0'
>
<address type=
'pci'
domain=
'0x0000'
bus=
'0x00'
slot=
'0x01'
function
=
'0x2'
/>
</controller>
<controller type=
'ide'
index=
'0'
>
<address type=
'pci'
domain=
'0x0000'
bus=
'0x00'
slot=
'0x01'
function
=
'0x1'
/>
</controller>
<
interface
type=
'bridge'
>
<mac address=
'52:54:00:82:39:01'
/>
<source bridge=
'br0'
/>
<model type=
'virtio'
/>
<address type=
'pci'
domain=
'0x0000'
bus=
'0x00'
slot=
'0x03'
function
=
'0x0'
/>
</
interface
>
<serial type=
'pty'
>
<target port=
'0'
/>
</serial>
<console type=
'pty'
>
<target type=
'serial'
port=
'0'
/>
</console>
<input type=
'tablet'
bus=
'usb'
/>
<input type=
'mouse'
bus=
'ps2'
/>
<graphics type=
'vnc'
port=
'5910'
autoport=
'no'
listen=
'0.0.0.0'
>
<listen type=
'address'
address=
'0.0.0.0'
/>
</graphics>
<video>
<model type=
'cirrus'
vram=
'9216'
heads=
'1'
/>
<address type=
'pci'
domain=
'0x0000'
bus=
'0x00'
slot=
'0x02'
function
=
'0x0'
/>
</video>
<memballoon model=
'virtio'
>
<address type=
'pci'
domain=
'0x0000'
bus=
'0x00'
slot=
'0x04'
function
=
'0x0'
/>
</memballoon>
</devices>
</domain>
|
虚拟机磁盘文件: /data/test01.img
虚拟机名称:oeltest01
(2) 开始克隆
# virt-clone -o oeltest01 -n oeltest02 -f /data/test02.img
说明:以oeltest01做为源,克隆oeltest01虚拟机,并创建名称为oeltest02虚拟机,使用磁盘文件/data/test02.img
(3) 启动虚拟机并配置主机名,IP地址等
[root@node1 data]# virsh console oeltest02
kvm控制台配置请见kvm虚拟化学习笔记(六)之kvm虚拟机控制台登录配置。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
连接到域 oeltest02
Escape character
is
^]
Found volume group
"vg"
using metadata type lvm2
2
logical volume(s)
in
volume group
"vg"
now active
Welcome to Oracle Linux Oracle Linux Server release
5.8
Press
'I'
to enter interactive startup.
Starting udev: [ OK ]
Loading
default
keymap (us): [ OK ]
Setting hostname test01: [ OK ]
Setting up Logical Volume Management:
2
logical volume(s)
in
volume group
"vg"
now active
[ OK ]
Checking filesystems
Checking all file systems.
[/sbin/fsck.ext3 (
1
) -- /] fsck.ext3 -a /dev/vg/root
/dev/vg/root: clean,
135384
/
1540096
files,
851398
/
1540096
blocks
[/sbin/fsck.ext3 (
1
) -- /boot] fsck.ext3 -a /dev/hda1
/boot: clean,
39
/
26104
files,
26897
/
104388
blocks
[ OK ]
Remounting root filesystem
in
read-write mode: [ OK ]
Mounting local filesystems: [ OK ]
Enabling local filesystem quotas: [ OK ]
Enabling /etc/fstab swaps: [ OK ]
INIT: Entering runlevel:
5
Entering non-interactive startup
Applying Intel CPU microcode update: [ OK ]
Starting background readahead: [ OK ]
Checking
for
hardware changes [ OK ]
[ OK ] iSCSI daemon: [ OK ]
[ OK ]
Bringing up loopback
interface
: [ OK ]
Bringing up
interface
eth0:
Determining IP information
for
eth0... done.
[ OK ]
Starting auditd: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
Starting irqbalance: [ OK ]
iscsid (pid
1555
)
is
running...
Setting up iSCSI targets: iscsiadm: No records found
[ OK ]
Starting portmap: [ OK ]
Starting NFS statd: [ OK ]
Starting RPC idmapd: [ OK ]
Starting system message bus: [ OK ]
Starting o2cb: [ OK ]
[ OK ] Bluetooth services:[ OK ]
Mounting other filesystems: [ OK ]
Starting PC/SC smart card daemon (pcscd): [ OK ]
Starting acpi daemon: [ OK ]
Starting HAL daemon: [ OK ]
Starting hidd: [ OK ]
Starting monitoring
for
VG vg:
2
logical volume(s)
in
volume group
"vg"
monitored
[ OK ]
Starting autofs: Loading autofs4: [ OK ]
Starting automount: [ OK ]
[ OK ]
Starting hpiod: [ OK ]
Starting hpssd: [ OK ]
Starting sshd: [ OK ]
Starting cups: [ OK ]
Starting xinetd: [ OK ]
Starting console mouse services: [ OK ]
Starting crond: [ OK ]
Starting xfs: [ OK ]
Starting anacron: [ OK ]
[ OK ] atd: [ OK ]
Starting background readahead: [ OK ]
Starting yum-updatesd: [ OK ]
Starting Avahi daemon... [ OK ]
Starting smartd: hdc: drive_cmd: status=
0x41
{ DriveReady Error }
hdc: drive_cmd: error=
0x04
{ AbortedCommand }
ide: failed opcode was:
0xec
[ OK ]
Oracle Linux Server release
5.8
Kernel
2.6
.
18
-
308
.el5 on an x86_64
test01 login: mtrr: type mismatch
for
f0000000,
100000
old: uncachable
new
: write-combining
mtrr: type mismatch
for
f0000000,
400000
old: uncachable
new
: write-combining
Oracle Linux Server release
5.8
Kernel
2.6
.
18
-
308
.el5 on an x86_64
test01 login:
Oracle Linux Server release
5.8
Kernel
2.6
.
18
-
308
.el5 on an x86_64
test01 login: root
Password:
Last login: Sat Sep
7
05
:
21
:
11
on ttyS0
[root@test01 ~]#
[root@test01 ~]#
[root@test01 ~]#
|
(4) 修改主机名,IP地址等
# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 test02 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=test02
GATEWAY=192.168.233.2
修改IP地址
# vi /etc/sysconfig/network-script/ifcfg-eth0
# Virtio Network Device
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=52:54:00:56:bd:2b
IPADDR=192.168.233.142
NETMASK=255.255.255.0
[root@test01 ~]# service network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
[root@test01 ~]#
2. 复制配置文件与磁盘文件克隆
(1) 导入kvm虚拟机配置文件
这里采用oeltest01做为模板,进行克隆。
# virsh shutdown oeltest01
# virsh dumpxml oeltest01 > /etc/libvirt/qemu/oeltest03.xml
(2) 复制kvm虚拟机磁盘文件
本系列文章都是采用虚拟磁盘文件进行测试,没有使用lvm卷。
通过查看配置文件:虚拟磁盘位置<source file='/data/test01.img'/>
(3) 直接编辑修改配置文件
修改name,uuid,disk位置,vnc端口
此时还是将该配置文件注册进来,无法通过virsh edit进行编辑。
[root@node1 data]# vi /etc/libvirt/qemu/oeltest03.xml
<domain type='kvm'>
<name>oeltest03</name>
<uuid>8f2bb4a7-c7ed-32aa-3676-9fb05923260d</uuid>
<memory unit='KiB'>524288</memory>
<currentMemory unit='KiB'>524288</currentMemory>
<vcpu placement='static'>1</vcpu>
<os>
<type arch='x86_64' machine='rhel6.4.0'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source file='/data/test03.img'/>
<target dev='hda' bus='ide'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
</disk>
<controller type='usb' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<controller type='ide' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:82:39:01'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5911' autoport='no' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<video>
<model type='cirrus' vram='9216' heads='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</memballoon>
</devices>
</domain>
(4) 定义新虚拟机配置文件
[root@node1 data]# virsh define /etc/libvirt/qemu/oeltest03.xml
启动虚拟机
[root@node1 data]# virsh start oeltest03
域 oeltest03 已开始
(5) 登录虚拟机进行主机名,IP等修改
[root@node1 data]# virsh console oeltest03
连接到域 oeltest03
Escape character is ^]
Oracle Linux Server release 5.8
Kernel 2.6.18-308.el5 on an x86_64
test01 login: mtrr: type mismatch for f0000000,100000 old: uncachable new: write-combining
mtrr: type mismatch for f0000000,400000 old: uncachable new: write-combining
Oracle Linux Server release 5.8
Kernel 2.6.18-308.el5 on an x86_64
test01 login: root
Password:
Last login: Sat Sep 7 05:21:11 on ttyS0
[root@test01 ~]#
[root@test01 ~]#
修改主机名
# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 test03 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=test03
GATEWAY=192.168.233.2
修改IP地址
# vi /etc/sysconfig/network-script/ifcfg-eth0
# Virtio Network Device
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=52:54:00:56:bd:3b
IPADDR=192.168.233.143
NETMASK=255.255.255.0
service network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
本文到此通过两种方式进行kvm虚拟机克隆,其实各有用处。
再次说明:本文克隆的虚拟机是oel5.8,如果克隆的虚拟机是RHEL/CentOS/OEL6.x操作系统,还需要修改/etc/udev/rules.d/70-persistent-net.rules文件。
本文转自 koumm 51CTO博客,原文链接:http://blog.51cto.com/koumm/1291793,如需转载请自行联系原作者