背景
一般情況下,虛擬機承載主機上不止跑一臺虛擬機,那麼問題來了,如何,難道每臺都從頭根據系統提示一步一步進行安裝?我真會瘋掉的,那有沒有什麼好點的辦法解決?辦法肯定是有的,可以通過克隆技術製作相同的虛擬機,實現虛擬機快速部署。下面我就簡單介紹兩種實現方式。
實現方式:
通過“virt-clone”命令,實現虛擬機克隆。
通過複製磁盤、配置文件,實現虛擬機克隆。
虛擬機承載主機系統:
CentOS 7.2.1511 X86_64
命令實現
前提條件
虛擬機的磁盤格式類型為qcow2。
被克隆主機需要關機。
克隆虛擬機
[root@controller ~]# virt-clone --original windows_2k3 --name windows_2k3_01 --file /data/pool/windows_2k3_01
說明:
--original:指定克隆系統源
--name:指定新虛擬機名稱
--file:指定新虛擬機存放位置
修改虛擬配置文件
[root@controller ~]# virsh edit windows_2k3_01
<graphics type='vnc' port='-1' autoport='yes'>
改為
<graphics type='vnc' port='5911' autoport='no'>
或者
[root@controller ~]# vim /etc/libvirt/qemu/windows_2k3_01.xml
[root@controller ~]# virsh define /etc/libvirt/qemu/windows_2k3_01.xml
添加VNC窗口
[root@controller ~]# cp /lib/systemd/system/[email protected] /lib/systemd/system/vncserver@:11.service
啟動虛擬機
[root@controller ~]# virsh start windows_2k3_01
連接VNC
Copy實現
Copy磁盤鏡像、配置文件
[root@controller ~]# cp /data/pool/windows_2k3 /data/pool/windows_2k3_02
[root@controller ~]# cp /etc/libvirt/qemu/windows_2k3.xml /etc/libvirt/qemu/windows_2k3_02.xml
修改配置文件
[root@controller ~]# vim /etc/libvirt/qemu/windows_2k3_02.xml
改為:<name>windows_2k3_02</name>
刪除:<uuid>3230baaa-88e9-4289-8c96-d6621c35cd97</uuid>
改為:<source file='/data/pool/windows_2k3_02'/>
刪除:<mac address='52:54:00:87:c2:2a'/>
改為:<graphics type='vnc' port='5912' autoport='no'>
[root@controller ~]# virsh define /etc/libvirt/qemu/windows_2k3_02.xml
添加VNC窗口
[root@controller ~]# cp /lib/systemd/system/vncserver@:11.service /lib/systemd/system/vncserver@:12.service
啟動虛擬機
[root@controller ~]# virsh start windows_2k3_02
查看虛擬機列表
[root@controller ~]# virsh list --all
Id 名稱狀態
----------------------------------------------------
12 windows_2k3_01 running
13 windows_2k3_02 running
- windows_2k3 關閉
連接VNC
擴展內容
對配置文件熟悉,修改比較困難,能否自動生成配置文件?可以的,只需要複製磁盤鏡像,通過執行一次“virt-install”命令實現自動生成配置文件,前提需要知道被克隆虛擬主機創建時的硬件配置參數(最重要的是磁盤信息)。
比如之前創建windows_2k3的命令如下
virt-install -n windows_2k3 -r 1024 -vcpus=1 -c /data/iso/windows_server_2003.iso --disk path=/data/pool/windows_2k3,format=qcow2,size=30,bus=ide --hvm --os-type=windows --vnc --vncport 5910 --network network=default --force --autostart
改為
virt-install -n windows_2k3_03 -r 1024 -vcpus=1 -c /data/iso/windows_server_2003.iso --disk path=/data/pool/windows_2k3_03,format=qcow2,size=30,bus=ide --hvm --os-type=windows --vnc --vncport 5913 --network network=default --force --autostart
注意:只需要修改三個地方:-n 、--disk path、--vncport;
FQA
Q1:克隆虛擬機能使用遠程桌面連接?
A1:可以,需要在被克隆主機配置固定IP、創建用戶密碼、開啟遠程功能,系統克隆後就可使用遠程桌面進行連接,連接需要修改IP地址,否則下一虛擬機的克隆會存在IP衝突。
Q2:網絡有重名
A2:我的電腦--屬性--計算機名--更改--輸入新計算機名稱--重啟系統即可。
Q3:克隆linux系統,啟動如何處理網絡問題?
A3:需要處理70-persistent-net.rules和ifcfg-eth0文件
[root@KVM_Clinet ~]# rm -rf /etc/udev/rules.d/70-persistent-net.rules
[root@KVM_Clinet ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
刪除MAC跟UUID,還可以手動配置靜態IP(不是比改項),然後重啟系統。