kvm虚拟化学习笔记(七)之kvm虚拟机克隆

简介:

kvm虚拟机的克隆分为两种情况,本文也就通过以下两种情况进行克隆,克隆虚拟机为OEL5.8X64。

(1) KVM主机本机虚拟机直接克隆。

(2) 通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移)。

1. 本机虚拟机直接克隆

(1) 查看虚拟机配置文件

[root@node1 ~]# cat /etc/libvirt/qemu/oeltest01.xml


view sourceprint?

01.<!-- 

02.WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE 

03.OVERWRITTEN AND LOST. Changes to this xml configuration should be made using: 

04.virsh edit oeltest01 

05.or other application using the libvirt API. 

06.--&gt

07.<domain type='kvm'&gt

08.<name>oeltest01</name&gt

09.<uuid>8f2bb4a7-c7ed-32aa-3676-9fb05923269d</uuid&gt

10.<memory unit='KiB'>524288</memory&gt

11.<currentMemory unit='KiB'>524288</currentMemory&gt

12.<vcpu placement='static'>1</vcpu&gt

13.<os&gt

14.<type arch='x86_64' machine='rhel6.4.0'>hvm</type&gt

15.<boot dev='hd'/&gt

16.</os&gt

17.<features&gt

18.<acpi/&gt

19.<apic/&gt

20.<pae/&gt

21.</features&gt

22.<clock offset='utc'/&gt

23.<on_poweroff>destroy</on_poweroff&gt

24.<on_reboot>restart</on_reboot&gt

25.<on_crash>restart</on_crash&gt

26.<devices&gt

27.<emulator>/usr/libexec/qemu-kvm</emulator&gt

28.<disk type='file' device='disk'&gt

29.<driver name='qemu' type='raw' cache='none'/&gt

30.<source file='/data/test01.img'/&gt

31.<target dev='hda' bus='ide'/&gt

32.<address type='drive' controller='0' bus='0' target='0' unit='0'/&gt

33.</disk&gt

34.<disk type='block' device='cdrom'&gt

35.<driver name='qemu' type='raw'/&gt

36.<target dev='hdc' bus='ide'/&gt

37.<readonly/&gt

38.<address type='drive' controller='0' bus='1' target='0' unit='0'/&gt

39.</disk&gt

40.<controller type='usb' index='0'&gt

41.<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/&gt

42.</controller&gt

43.<controller type='ide' index='0'&gt

44.<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/&gt

45.</controller&gt

46.<interface type='bridge'&gt

47.<mac address='52:54:00:82:39:01'/&gt

48.<source bridge='br0'/&gt

49.<model type='virtio'/&gt

50.<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/&gt

51.</interface&gt

52.<serial type='pty'&gt

53.<target port='0'/&gt

54.</serial&gt

55.<console type='pty'&gt

56.<target type='serial' port='0'/&gt

57.</console&gt

58.<input type='tablet' bus='usb'/&gt

59.<input type='mouse' bus='ps2'/&gt

60.<graphics type='vnc' port='5910' autoport='no' listen='0.0.0.0'&gt

61.<listen type='address' address='0.0.0.0'/&gt

62.</graphics&gt

63.<video&gt

64.<model type='cirrus' vram='9216' heads='1'/&gt

65.<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/&gt

66.</video&gt

67.<memballoon model='virtio'&gt

68.<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/&gt

69.</memballoon&gt

70.</devices&gt

71.</domain>

虚拟机磁盘文件: /data/test01.img

虚拟机名称:oeltest01

image

(2) 开始克隆

# virt-clone -o oeltest01 -n oeltest02 -f /data/test02.img

说明:以oeltest01做为源,克隆oeltest01虚拟机,并创建名称为oeltest02虚拟机,使用磁盘文件/data/test02.img

image

(3) 启动虚拟机并配置主机名,IP地址等

image

[root@node1 data]# virsh console oeltest02
kvm控制台配置请见kvm虚拟化学习笔记(六)之kvm虚拟机控制台登录配置


view sourceprint?

01.连接到域 oeltest02 

02.Escape character is ^] 

03.Found volume group "vg" using metadata type lvm2 

04.2 logical volume(s) in volume group "vg" now active 

05.Welcome to Oracle Linux Oracle Linux Server release 5.8

06.Press 'I' to enter interactive startup. 

07.Starting udev: [  OK  ] 

08.Loading default keymap (us): [  OK  ] 

09.Setting hostname test01:  [  OK  ] 

10.Setting up Logical Volume Management:   2 logical volume(s) in volume group "vg" now active 

11.[  OK  ] 

12.Checking filesystems 

13.Checking all file systems. 

14.[/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a /dev/vg/root 

15./dev/vg/root: clean, 135384/1540096 files, 851398/1540096 blocks 

16.[/sbin/fsck.ext3 (1) -- /boot] fsck.ext3 -a /dev/hda1 

17./boot: clean, 39/26104 files, 26897/104388 blocks 

18.[  OK  ] 

19.Remounting root filesystem in read-write mode:  [  OK  ] 

20.Mounting local filesystems:  [  OK  ] 

21.Enabling local filesystem quotas:  [  OK  ] 

22.Enabling /etc/fstab swaps:  [  OK  ] 

23.INIT: Entering runlevel: 5

24.Entering non-interactive startup 

25.Applying Intel CPU microcode update: [  OK  ] 

26.Starting background readahead: [  OK  ] 

27.Checking for hardware changes [  OK  ] 

28.[  OK  ] iSCSI daemon: [  OK  ] 

29.[  OK  ] 

30.Bringing up loopback interface:  [  OK  ] 

31.Bringing up interface eth0: 

32.Determining IP information for eth0... done

33.[  OK  ] 

34.Starting auditd: [  OK  ] 

35.Starting system logger: [  OK  ] 

36.Starting kernel logger: [  OK  ] 

37.Starting irqbalance: [  OK  ] 

38.iscsid (pid  1555) is running... 

39.Setting up iSCSI targets: iscsiadm: No records found 

40.[  OK  ] 

41.Starting portmap: [  OK  ] 

42.Starting NFS statd: [  OK  ] 

43.Starting RPC idmapd: [  OK  ] 

44.Starting system message bus: [  OK  ] 

45.Starting o2cb:  [  OK  ] 

46.[  OK  ] Bluetooth services:[  OK  ] 

47.Mounting other filesystems:  [  OK  ] 

48.Starting PC/SC smart card daemon (pcscd): [  OK  ] 

49.Starting acpi daemon: [  OK  ] 

50.Starting HAL daemon: [  OK  ] 

51.Starting hidd: [  OK  ] 

52.Starting monitoring for VG vg:   2 logical volume(s) in volume group "vg" monitored 

53.[  OK  ] 

54.Starting autofs:  Loading autofs4: [  OK  ] 

55.Starting automount: [  OK  ] 

56.[  OK  ] 

57.Starting hpiod: [  OK  ] 

58.Starting hpssd: [  OK  ] 

59.Starting sshd: [  OK  ] 

60.Starting cups: [  OK  ] 

61.Starting xinetd: [  OK  ] 

62.Starting console mouse services: [  OK  ] 

63.Starting crond: [  OK  ] 

64.Starting xfs: [  OK  ] 

65.Starting anacron: [  OK  ] 

66.[  OK  ] atd: [  OK  ] 

67.Starting background readahead: [  OK  ] 

68.Starting yum-updatesd: [  OK  ] 

69.Starting Avahi daemon... [  OK  ] 

70.Starting smartd: hdc: drive_cmd: status=0x41 { DriveReady Error } 

71.hdc: drive_cmd: error=0x04 { AbortedCommand } 

72.ide: failed opcode was: 0xec

73.[  OK  ] 

74.Oracle Linux Server release 5.8

75.Kernel 2.6.18-308.el5 on an x86_64 

76.test01 login: mtrr: type mismatch for f0000000,100000 old: uncachable new: write-combining 

77.mtrr: type mismatch for f0000000,400000 old: uncachable new: write-combining 

78.Oracle Linux Server release 5.8

79.Kernel 2.6.18-308.el5 on an x86_64 

80.test01 login: 

81.Oracle Linux Server release 5.8

82.Kernel 2.6.18-308.el5 on an x86_64 

83.test01 login: root 

84.Password: 

85.Last login: Sat Sep  7 05:21:11 on ttyS0 

86.[root@test01 ~]

87.[root@test01 ~]

88.[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

image

# virsh dumpxml oeltest01 > /etc/libvirt/qemu/oeltest03.xml

image

(2) 复制kvm虚拟机磁盘文件

本系列文章都是采用虚拟磁盘文件进行测试,没有使用lvm卷。

通过查看配置文件:虚拟磁盘位置<source file='/data/test01.img'/>

image

(3) 直接编辑修改配置文件

修改name,uuid,disk位置,vnc端口

此时还是将该配置文件注册进来,无法通过virsh edit进行编辑。


[root@node1 data]# vi /etc/libvirt/qemu/oeltest03.xml

view sourceprint?

01.<domain type='kvm'>    

02.  <name>oeltest03</name>       

03.  <uuid>8f2bb4a7-c7ed-32aa-3676-9fb05923260d</uuid>

04.  <memory unit='KiB'>524288</memory>    

05.  <currentMemory unit='KiB'>524288</currentMemory>    

06.  <vcpu placement='static'>1</vcpu>    

07.  <os>    

08.    <type arch='x86_64' machine='rhel6.4.0'>hvm</type>    

09.    <boot dev='hd'/>    

10.  </os>    

11.  <features>    

12.    <acpi/>    

13.    <apic/>    

14.    <pae/>    

15.  </features>    

16.  <clock offset='utc'/>    

17.  <on_poweroff>destroy</on_poweroff>    

18.  <on_reboot>restart</on_reboot>    

19.  <on_crash>restart</on_crash>    

20.  <devices>    

21.    <emulator>/usr/libexec/qemu-kvm</emulator>    

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

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

24.      <source file='/data/test03.img'/>

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

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

27.    </disk>    

28.    <disk type='block' device='cdrom'>    

29.      <driver name='qemu' type='raw'/>    

30.      <target dev='hdc' bus='ide'/>    

31.      <readonly/>    

32.      <address type='drive' controller='0' bus='1' target='0' unit='0'/>    

33.    </disk>    

34.    <controller type='usb' index='0'>    

35.      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>    

36.    </controller>    

37.    <controller type='ide' index='0'>    

38.      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>    

39.    </controller>    

40.    <interface type='bridge'>    

41.      <mac address='52:54:00:82:39:01'/>    

42.      <source bridge='br0'/>    

43.      <model type='virtio'/>    

44.      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>    

45.    </interface>    

46.    <serial type='pty'>    

47.      <target port='0'/>    

48.    </serial>    

49.    <console type='pty'>    

50.      <target type='serial' port='0'/>    

51.    </console>    

52.    <input type='tablet' bus='usb'/>    

53.    <input type='mouse' bus='ps2'/>    

54.    <graphics type='vnc' port='5911' autoport='no' listen='0.0.0.0'>

55.      <listen type='address' address='0.0.0.0'/>    

56.    </graphics>    

57.    <video>    

58.      <model type='cirrus' vram='9216' heads='1'/>    

59.      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>    

60.    </video>    

61.    <memballoon model='virtio'>    

62.      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>    

63.    </memballoon>    

64.  </devices>    

65.</domain>

(4) 定义新虚拟机配置文件

[root@node1 data]# virsh define /etc/libvirt/qemu/oeltest03.xml

image

启动虚拟机

[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文件。










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1536391,如需转载请自行联系原作者
目录
相关文章
|
存储 运维 数据挖掘
虚拟化数据恢复—误还原快照导致虚拟机上数据库丢失的数据恢复案例
虚拟化数据恢复环境&故障: vmfs文件系统,存储的数据是SqlServer数据库及其他办公文件。 工作人员误将快照还原,导致了SqlServer数据库数据的丢失,需要恢复原来的SqlServer数据库文件。
403 22
|
编解码 Linux 虚拟化
在Hyper-V虚拟化的图形处理中,怎么调整虚拟机的屏幕分辨率?
在Hyper-V虚拟化中,调整虚拟机屏幕分辨率对提升用户体验和确保应用程序兼容性至关重要。高分辨率可提供清晰图像、提高工作效率,并避免显示异常。调整方法包括通过增强会话模式、虚拟机内部设置或手动编辑配置文件。注意事项包括正确安装显卡驱动、避免过高分辨率及及时保存设置。
|
存储 SQL 数据库
虚拟化数据恢复—Vmware虚拟机误还原快照的数据恢复案例
虚拟化数据恢复环境: 一台虚拟机从物理机迁移到ESXI虚拟化平台,迁移完成后做了一个快照。虚拟机上运行了一个SQL Server数据库,记录了数年的数据。 ESXI虚拟化平台上有数十台虚拟机,EXSI虚拟化平台连接了一台EVA存储,所有的虚拟机都存放在EVA存储上。 虚拟化故障: 工组人员误操作将数年前迁移完成后做的快照还原了,也就意味着虚拟机状态还原到数年前,近几年数据都被删除了。 还原快照相当于删除数据,意味着部分存储空间会被释放。为了不让这部分释放的空间被重用,需要将连接到这台存储的所有虚拟机都关掉,需要将不能长时间宕机的虚拟机迁移到别的EXSI虚拟化平台上。
558 50
|
安全 Linux KVM
Linux虚拟化技术:从Xen到KVM
Xen和KVM是Linux平台上两种主要的虚拟化技术,各有优缺点和适用场景。通过对比两者的架构、性能、安全性、管理复杂性和硬件依赖性,可以更好地理解它们的适用场景和选择依据。无论是高性能计算、企业虚拟化还是云计算平台,合理选择和配置虚拟化技术是实现高效、稳定和安全IT环境的关键。
1117 8
|
存储 持续交付 虚拟化
|
存储 数据挖掘 数据库
虚拟化数据恢复—VMFS简介&误删除虚拟机的数据恢复案例
物理区:物理上连续的磁盘空间,即通常意义上的分区。 本地区:VMFS管理的物理区分为保留区和本地区,前面一部分是保留区,后面部分是本地区。本地区又分为元文件区和数据区。 元文件:与NTFS的元文件类似,属于FS的管理用数据。VMFS有6个元文件:.VH.SF/.FBB.SF/.FDC.SF/.SBC.SF/.PBC.SF/.PB2.SF。 元文件区:6个元文件占用的所有空间,在本地区的前面部分。 数据区:用于存放文件数据。 datastore:在ESX服务器上看到的VMFS存储空间。 LV:logical volume,所指的范围其实和本地区一样,即虚拟化卷。 LVM逻辑卷组:用来管理跨dis
|
KVM 虚拟化
KVM虚拟机的热迁移
这篇文章详细介绍了KVM虚拟机的热迁移过程,包括临时迁移和永久迁移的步骤,以及可能遇到的故障和解决方案。
855 1
KVM虚拟机的热迁移
|
存储 运维 虚拟化
虚拟化数据恢复——Hyper-V虚拟化故障导致虚拟机文件丢失的数据恢复案例
在Windows Server上部署的Hyper-V虚拟化环境中,因存储中虚拟机数据文件丢失导致服务瘫痪。北亚企安数据恢复工程师通过物理检测、操作系统及文件系统检测,确定为人为格式化造成,并通过镜像硬盘、重组RAID、分析并恢复文件索引项等步骤,成功恢复数据,最终在新Hyper-V环境中验证并迁移所有虚拟机,确保用户业务恢复正常运行。
|
存储 Linux 调度
KVM 虚拟化的功能特性
【10月更文挑战第13天】虚拟化技术创建实体资源的虚拟版本,提升资源利用率。KVM(Kernel-based Virtual Machine)作为全虚拟化解决方案,借助Linux内核实现Hypervisor功能,通过模块化方式提供高效的虚拟化环境。
|
存储 SQL 数据挖掘
虚拟化数据恢复—VMware虚拟机vmdk文件被误删除的数据恢复案例
虚拟化数据恢复环境: 某品牌服务器(部署VMware EXSI虚拟机)+同品牌存储(存放虚拟机文件)。 虚拟化故障: 意外断电导致服务器上某台虚拟机无法正常启动。查看虚拟机配置文件发现这台故障虚拟机除了磁盘文件以外其他配置文件全部丢失,xxx-flat.vmdk磁盘文件和xxx-000001-delta.vmdk快照文件还在。管理员联系VMware工程师寻求帮助。VMware工程师尝试新建一个虚拟机来解决故障,但发现ESXi存储空间不足。于是将故障虚拟机下的xxx-flat.vmdk磁盘文件删除,然后重建一个虚拟机并且分配固定大小的虚拟磁盘。
1041 9