KVM是Kernel-based Virtual Machine的簡稱,是一個開源的虛擬化模塊,該文檔是基于CentOS 7.4環境操作的
一、操作系統安裝
本文采用的是CentOS 7.4
1、查看系統版本
cat /etc/redhat-release
2、系統更新
Yum makecache &&yum update && yum upgrade
3、關閉SElinux
setenforce 0 (臨時生效)
vi /etc/sysconfig/selinux
將SElinux=enforcing修改成SElinux=disabled
reboot (重啟后永久生效)
getenforce (查看selinux狀態)
4、安裝防火墻
yum –y install iptables-service
systemctl start iptables.service
systemctl enable iptables.service
二、虛擬化環境配置
1、驗證CPU是否支持KVM
半虛擬化是不能運行與安裝KCM虛擬機的
egrep 'vmx|svm' /proc/cpuinfo
如果結果中有vmx(Intel)或svm(AMD)字樣,說明CPU支持
2、安裝基本軟件包
yum –y install epel-release net-tools vim unzip zip wget
3、安裝KVM軟件包
yum –y install qemu-kvm libvirt virt-install bridge-util virt-viewer acpid kvm python-virtinst tunctl virt-manager qemu-kvm-tools virt-v2v libguestfs-tools
4、驗證安裝結果
4.1查看虛擬機環境
systemctl start libvirtd
virsh –c qemu:///system list
4.2查看kvm模塊支持
lsmod | grep kvm
kvm_intel???????????? 170086? 0
kvm?????????????????? 566340? 1 kvm_intel
irqbypass????????????? 13503? 1 kvm
4.3查看虛擬工具版本
virsh –version
ls -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
qemu-kvm -version
5、查看操作狀態
systemctl status libvirtd
systemctl is-enabled libvirtd
6、配置網橋模式
先把/etc/sysconfig/network-scripts/目錄下的網卡配置文件備份一份(不要備份在當前目錄及其子目錄,其他目錄隨意)
cp /etc/sysconfig/network-scripts/ifcfg-enp6s0 /root/ifcfg-enp6s0.bak
6.1創建ifcfg-br0文件
內容如下:
BOOTPROTO=static
DEVICE=br0
TYPE=Bridge
NM_CONTROLLED=no
IPADDR=192.168.0.121
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=222.88.88.88
DNS2=222.85.85.85
6.2移除掉原來的ifcfg-enp6s0,重新創建該文件
內容如下:
BOOTPROTO=none
DEVICE=enp6s0
NM_CONTROLLED=no
ONBOOT=yes
BRIDGE=br0
6.3重啟網絡服務
systemctl restart network
使用ifconfig驗證結果,多出來一塊網卡br0,現在訪問該服務器使用192.168.0.121就可以了
ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>? mtu 1500
??????? inet 192.168.0.121? netmask 255.255.255.0? broadcast 192.168.0.255
??????? inet6 fe80::a62:66ff:fea2:54f2? prefixlen 64? scopeid 0x20<link>
??????? ether 08:62:66:a2:54:f2? txqueuelen 1000? (Ethernet)
??????? RX packets 973? bytes 98149 (95.8 KiB)
??????? RX errors 0? dropped 0? overruns 0? frame 0
??????? TX packets 84? bytes 13557 (13.2 KiB)
??????? TX errors 0? dropped 0 overruns 0? carrier 0? collisions 0
enp6s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>? mtu 1500
??????? inet6 fe80::a62:66ff:fea2:54f2? prefixlen 64? scopeid 0x20<link>
?? ?????ether 08:62:66:a2:54:f2? txqueuelen 1000? (Ethernet)
??????? RX packets 62930? bytes 66814944 (63.7 MiB)
??????? RX errors 0? dropped 0? overruns 0? frame 0
??????? TX packets 25644? bytes 2550988 (2.4 MiB)
??????? TX errors 0? dropped 0 overruns 0? carrier 0? collisions 0
??????? device interrupt 17? memory 0xcc200000-cc220000
enp7s0: flags=4099<UP,BROADCAST,MULTICAST>? mtu 1500
??????? ether 08:62:66:a2:54:f3? txqueuelen 1000? (Ethernet)
??????? RX packets 0? bytes 0 (0.0 B)
??????? RX errors 0? dropped 0? overruns 0? frame 0
??????? TX packets 0? bytes 0 (0.0 B)
??????? TX errors 0? dropped 0 overruns 0? carrier 0? collisions 0
??????? device interrupt 18? memory 0xcc100000-cc120000
lo: flags=73<UP,LOOPBACK,RUNNING>? mtu 65536
??????? inet 127.0.0.1? netmask 255.0.0.0
??????? inet6 ::1? prefixlen 128? scopeid 0x10<host>
??????? loop? txqueuelen 1? (Local Loopback)
??????? RX packets 60? bytes 7012 (6.8 KiB)
??????? RX errors 0? dropped 0? overruns 0? frame 0
??????? TX packets 60? bytes 7012 (6.8 KiB)
??????? TX errors 0? dropped 0 overruns 0? carrier 0? collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST>? mtu 1500
??????? inet 192.168.122.1? netmask 255.255.255.0? broadcast 192.168.122.255
??????? ether 52:54:00:a9:aa:73? txqueuelen 1000? (Ethernet)
??????? RX packets 0? bytes 0 (0.0 B)
??????? RX errors 0? dropped 0? overruns 0? frame 0
??????? TX packets 0? bytes 0 (0.0 B)
??????? TX errors 0? dropped 0 overruns 0? carrier 0? collisions 0
三、安裝linux虛擬機
1、準備操作系統安裝鏡像文件
make -p/home/iso與本機環境一樣的CentOS7.4,放在/home/iso目錄下
2、創建虛擬機文件存放目錄
nkdir –p /home/kvm-bak
3、使用virt-install創建虛擬機
virt-install -n vm01 -r 2048 --disk /home/kvm-bak/vm01.img,format=qcow2,size=40 --network bridge=br0 --os-type=linux --os-variant=rhel7.4 --cdrom /home/iso/CentOS-7-x86_64-Minimal-1708.iso --vnc --vncport=5910 --vnclisten=0.0.0.0
說明:在linux系統安裝開始就要注意添加提高性能的一些參數,后面就不需要做一些調整了。
參數說明:
--name:指定虛擬機名稱
--ram:分配內存大小。
--vcpus:分配CPU核心數,最大與實體機CPU核心數相同
--disk:指定虛擬機鏡像,size指定分配大小單位為G。
--network:網絡類型,此處用的是默認,一般用的應該是bridge橋接。
--accelerate:加速
--cdrom:指定安裝鏡像iso
--vnc:啟用VNC遠程管理,一般安裝系統都要啟用。
--vncport:指定VNC監控端口,默認端口為5900,端口不能重復。
--vnclisten:指定VNC綁定IP,默認綁定127.0.0.1,這里改為0.0.0.0。
--os-type=linux,windows
--os-variant=
win7:MicrosoftWindows7
winxp:MicrosoftWindowsXP
win2k8:MicrosoftWindowsServer2008
rhel7:RedHatEnterpriseLinux7
?
不用理會提示里面的錯誤,接著往下走
4、打開防火墻的5910端口
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5910 -j ACCEPT
systemctl reload iptables.service
5、使用VNC連接該虛擬機,進行虛擬機系統的安裝
a. VNC Viewer
?
b. 新建連接
提供宿主IP、端口號(在virt-install創建過程中指定的)以及名稱
?
c. Expert頁簽
將ColorLevel的值由原來的 pal8 修改為 rgb222 ,點擊OK按鈕保存(新版VNC Viewer該值默認已經是rgb222)
?
d. 雙擊連接的名稱后,進入安裝界面
?
?
e、接下來就安裝CentOS7.4
過程略,默認是最小化的安裝(估計跟上面使用的鏡像有關)
6、重啟
安裝完CentOS,系統要求重啟,虛擬機重啟后自動關閉了
[root@localhost home]# virsh list? --all
?Id??? 名稱???????????????????????? 狀態
----------------------------------------------------
?-???? vm01?????????????????????????? 關閉
7、手動啟動虛擬機
[root@localhost home]# virsh start vm01
域 vm01 已開始
?[root@localhost home]# virsh list? --all
?Id??? 名稱???????????????????????? 狀態
----------------------------------------------------
?4???? vm01?????????????????????????? running
再次使用VNC連接,發現已經可以連接進去了
?
8、虛擬機開啟電源服務模式
yum -y install acpid
systemctl start acpid.service
systemctl enable acpid.service
四、安裝windows server 2012 R2 datacenter虛擬機
1、上傳鏡像文件到/home/iso目錄
cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso
2、安裝
virt-install -n ws1 -r 4096 --vcpus=4 --disk /home/kvm-bak/ws1.img,format=qcow2,size=40 --network bridge=br0 --accelerate --os-type=windows --os-variant=win2k8 --cdrom /home/iso/cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso --vnc --vncport=5912 --vnclisten=0.0.0.0
--os-variant= 2k8,2k8R2,2k12,2k12R2,2k16,w7,w8,w8.1,w10(根據系統選擇)
3、防火墻放行該端口,使用VNC進行連接安裝系統
安裝完畢后系統會重啟,但是重啟不來,需要手動重啟
賬號:Administrator,密碼:1123456bnm,.
4、網絡配置
同其他windows系統配置那樣,使用的橋接網絡,雖說是虛擬機,但跟真實的物理機一樣
五、簡單配置KVM虛擬機
KVM虛擬機的管理主要是通過virsh命令對虛擬機進行管理
1、網橋配置
如果在虛擬機安裝CentOS的過程中配置了合適的網絡參數,那么這時虛擬機是可以使用網絡的。如果當時采用系統安裝包的默認方式,未啟用網卡,那么此時需要啟動虛擬機的網卡,網卡配置文件是ifcfg-eth0,,配置文件跟普通安裝的沒啥區別,按照實際情況配置即可,默認是dhcp模式
2、配置在宿主端登錄虛擬機shell
當然在宿主端可以通過SSH登錄的,虛擬機也可以直接使用SSH方式登錄,但是直接登錄也是一個不錯的方式.(虛擬機中的文件,不是宿主機中的)
a. 在虛機里運行命令
Cetos7系統:grubby --update-kernel=ALL --args="console=ttyS0"
b.重啟虛擬機reboot
c.在宿主機上進入虛擬控制臺
退出的話使用ctrl+](右方括號)
virsh start vm2
virsh console vm2
3、查看KVM虛擬機配置文件及運行狀態
3.1 kvm虛擬機默認配置文件位置
/etc/libvirt/qemu,autostart目錄是配置kvm虛擬機開機自啟動的目錄
3.2 KVM虛擬機運行狀態
virsh list --all
六、遷移虛擬機
虛擬機建好后,最大的好處就是任由我們折騰,而不用擔心重裝系統的麻煩。所以一定要知道虛擬機怎么復制遷移,這里有兩種情況,一種是本機上鏡像復制,另一種是將本機鏡像遷移到其他服務器上。
1、本機復制
a.先關閉虛擬機
virsh shutdown vm1
b.在 /home 下新建文件夾 /home/kvm-img
mkdir -p /home/kvm-img
c.使用virt-clone克隆vm2為新的虛擬機
virt-clone -o vm1 -n vm2 -f /home/kvm-img/vm2.img
注意:提示圖形設備端口為自動端口,需要進行如下操作查看:
c.1 virsh dumpxml vm2
<graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'>
????? <listen type='address' address='0.0.0.0'/>
</graphics>
c.2在宿主機的防火墻上放行該端口,即可使用VNC連接克隆出的該虛擬機,使用 virsh list --all 查看
d. 開啟vm2,修改IP地址、主機名
virsh start vm2
d.1 修改IP地址
vi /etc/sysconfig/network-scripts/ ifcfg-eth0 靜態配置
BOOTPROTO=static
IPADDR=192.168.0.252
GATEWAY=192.168.0.1
NETMASK=255.255.255.0
DNS1=222.88.88.88
DNS2=222.85.85.85
重啟網絡:service network restart
d.2修改主機名
hostname vm2
vi /etc/hostname?? (echo ‘vm2’ > /etc/hostname)
e. reboot 重啟虛擬機
2. 將虛擬機鏡像遷移到其他服務器上
a. 先將虛擬機的配置文件和鏡像文件放到傳輸到新服務器上
虛擬機配置文件路徑:/etc/libvirt/qemu/vm2.xml
虛擬機鏡像文件路徑:/home/kvm-img/vm2.img
b.在新服務器上編輯要遷移過來的虛擬機
把vm2.xml放在新服務器的/etc/libvirt/qemu/目錄下,把vm2.img放在新服務器的/home/kvm-img/目錄下
編輯vm2.xml文件,將里面所有vm2替換為vm3,然后把UUID換為新的(UUID在線生成)
c.定義新虛擬機
virsh define /etc/libvirt/qemu/vm3.xml
d.給新虛擬機配置新主機名和ip等
vrish start --all ,virsh start vm3, virsh console vm3
3. 克隆或遷移后的虛擬機使用VNC連接
重新指定VNC的端口號,將 /etc/libvirt/qemu/vm3.xml 中的VNC端口號修改你需要的值,然后在防火墻中放行該端口號
七、虛擬機快照
KVM虛擬機要使用快照功能,磁盤格式必須是qcow2,通過查看虛擬機配置文件獲取,路徑:/etc/libvirt/qemu/
1、創建快照
[root@localhost ~]# virsh snapshot-create vm2
已生成域快照 1508564438
快照配置文件在/var/lib/libvirt/qemu/snapshot/虛擬機名稱/下
2、查看當前虛擬機快照版本信息
[root@localhost ~]# virsh snapshot-current vm2
<domainsnapshot>
? <name>1508564438</name> //快照版本號
? <state>shutoff</state>
? <creationTime>1508564438</creationTime>
? <memory snapshot='no'/>
…………. //省略部分內容
3、查看虛擬機鏡像快照信息
[root@localhost ~]# virsh snapshot-list vm2
?名稱?????????????? 生成時間????????????? 狀態
------------------------------------------------------------
?1508564438?????? ????2017-10-21 13:40:38 +0800 shutoff
4、再次創建新快照
[root@localhost ~]# virsh snapshot-create vm2
已生成域快照 1508564761
5、查看快照信息
[root@localhost ~]# virsh snapshot-list vm2
?名稱?????????????? 生成時間????????????? 狀態
------------------------------------------------------------
?1508564438?????????? 2017-10-21 13:40:38 +0800 shutoff
?1508564761?????????? 2017-10-21 13:46:01 +0800 shutoff
6、恢復虛擬機狀態至某個版本
6.1先關閉虛擬機
virsh shutdown vm2
6.2 確認恢復的快照時間進行版本恢復
virsh snapshot-revert vm2 1508564438
7、刪除快照
7.1 查看虛擬機快照
qemu-img info vm2.qcow2
7.2 刪除快照
virsh snapshot-delete vm2 1508564761
已刪除域快照 1508564761
八、virsh常用命令篇
1、查看運行的虛擬機
virsh list
2、查看所有的虛擬機
virsh list –all
3、開啟虛擬機
virsh start vm01 或virsh create /etc/libvert/qemu/vm01.xml(通過配置文件的方式)
4、連接虛擬機
virsh console +域名(虛擬機的名稱)
5、退出虛擬機
ctrl+]
6、關閉虛擬機
6.1 virsh shutdown +域名
這個時候在virsh list發現 test02這個虛擬機還是在運行的,并沒有關閉。我們需要安裝一個acpid的服務并啟動它,什么是ACPI? ACPI是Advanced Configuration and PowerInterface縮寫,高級配置和電源管理接口。acpid中的d則代表daemon。Acpid是一個用戶空間的服務進程,它充當linux內核與應用程序之間通信的接口,負責將kernel中的電源管理事件轉發給應用程序。
Acpid是一個用戶空間的服務進程,它充當linux內核與應用程序之間通信的接口,負責將kernel中的電源管理事件轉發給應用程序。
其實,說明了就是通過這個服務來執行電源關閉的動作,這也是為什么我們執行virsh shutdown +域名無法關機的原因。
(虛擬機安裝acpid服務)
yum install -y acpid
systemctl start acpid.service
systemctl enable acpid.service
如果此時我沒法進入虛擬機安裝acpi協議的話,那么就無法關掉該虛擬機,此時可以用下面這種方法。
6.2? virsh destroy +域名
強制關閉電源
7、掛起虛擬機
virsh suspend +域名
8、恢復被掛起的虛擬機
virsh resume +域名
9、配置開機自啟動虛擬機
virsh autostart +域名
autostart目錄是kvm虛擬機開機自啟動目錄,可以看到該目錄中有KVM配置文件鏈接
10、取消自動啟動
virsh auotstart --disable +域名
11、徹底刪除虛擬機
11.1刪除虛擬機?
virsh destroy +域名
11.2解除標記
virsh undefine +域名
說明:該命令只是刪除vm01的配置文件,并不刪除虛擬磁盤文件
附:重新定義虛擬機配置文件
mv /root/vm01.xml /etc/libvirt/qemu/vm01.xml (備份的虛擬機文件放到虛擬機配置文件存放路徑)
virsh define /etc/libvirt/qemu/vm01.xml
11.3刪除虛擬機文件
12、啟動虛擬機并進入該虛擬機
virsh start 域名 --console
13、導出kvm虛擬機配置文件
virsh dumpxml vm01 > /root/vm01.xml
kvm虛擬機配置文件可以通過這種方式進行備份
14、編輯kvm虛擬機配置文件
virsh edit vm01
virsh edit將調用vi命令編輯/etc/libvirt/qemu/vm01.xml配置文件。也可以直接通過vi命令進行編輯,修改,保存。可以但不建議直接通過vi編輯。
九、kvm虛擬機vnc配置
1、修改qemu.conf
# vi /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"
說明1:vnclisten 默認綁定127.0.0.1 在配置文件里指定VNC 綁定0.0.0.0IP,就不用在安裝kvm虛擬機時指定vnclisten參數了。
說明2:在虛擬主機上有很多個虛擬機的時候,需要指定每個虛擬機的端口,否則將會很亂。
2、修改虛擬機配置文件
# virsh edit oeltest01
<graphics type='vnc' port='5910' autoport='no' listen='0.0.0.0'>?????
? <listen type='address' address='0.0.0.0'/>??????
</graphics>
配置VNC的配置文件,port是指定端口號,autoport是自己分配端口號
3、查看vnc
netstat –tulnp
十、kvm虛擬機時間配置
在虛擬化環境中,虛擬機在長時間運行過程中,時間會變慢,通常的作法是配置ntpdate定時與時間服務器進行時間同步的計劃任務。KVM虛擬機默認采用utc時間,需要專門修改,以及考慮kvm時間同步問題。
1、kvm虛擬機修改時間配置文件
kvm虛擬機采用utc時間,需要先修改配置文件使用KVM虛擬機的時間與虛擬主機同步。
修改utc為localtime,保存退出,重啟虛擬機。
2、關于kvm虛擬機時間問題解決思路
(1) 虛擬機時間慢是所有虛擬化平臺的一共性問題。
(2) 解決時間的最終解決方法就是在生產環境中配置時間服務器,kvm虛擬化服務器與kvm機均都要配置時間同步的計劃任務,這才是解決這一個問題最終解決方案。
示例:如果能訪問互聯網,最簡單了,需要kvm虛擬機與主機時間同步,但是運行一段時間會慢,一定要做時間同步,特別是對時間敏感的環境。?
# crontab -e??
01 */3 * * * /usr/sbin/ntpdate ntp.fudan.edu.cn >> /dev/null 2>&1
十一、KVM的Windows server 虛擬機使用virtio驅動
KVM安裝Windows默認使用的是qemu虛擬化IDE硬盤模式,在這種情況下,IO性能比較低,如果使用virtio的方式可以提高虛擬機IO性能。而virtio所驅動的網卡,也將原來的百兆擴展到千兆。
這里就簡單介紹下如何使用virtio驅動安裝window server 2008. 其它windows版本操作相同,只需選擇對應的驅動即可。
KVM安裝Windows需要使用virtio的驅動:
https://fedoraproject.org/wiki/Windows_Virtio_Drivers#Direct_download
1、下載virtio驅動yum文件并安裝
wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
yum install virtio-win -y
2、查看virtio-win提供的驅動
[root@localhost ~]# rpm -ql virtio-win | grep iso
/usr/share/virtio-win/virtio-win-0.1.141.iso? ?=>virtio-win- latest
/usr/share/virtio-win/virtio-win.iso ?????????=>virtio-win- stable
3、wget方式下載
Stable virtio-win iso: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
Stable virtio-win x86 floppy: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win_x86.vfd
Stable virtio-win amd64 floppy: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win_amd64.vfd
Latest virtio-win iso: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso
Latest virtio-win x86 floppy: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win_x86.vfd
Latest virtio-win amd64 floppy: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win_amd64.vfd
Latest qemu-ga files: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-qemu-ga/
4、安裝window虛擬機時附帶virtio驅動
(1)、安裝windows
使用virtio驅動安裝虛擬機:
virt-install -n ws2 -r 4096 --vcpus=4 --disk /home/kvm-bak/ws2.img,format=qcow2,size=40,bus=virtio --disk path=/usr/share/virtio-win/virtio-win_x86.vfd,device=floppy --network bridge=br0 --accelerate --os-type=windows --os-variant=win2k8 --cdrom /home/iso/cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso --vnc --vncport=5912 --vnclisten=0.0.0.0
提示: 這里是使用的是軟盤方式加載,如果鏡像和驅動都使用cdrom的方式加載,在有些情況系統會找不到啟動鏡像,導致無法啟動. 加載的驅動有x86和amd64兩種類型,64位系統選擇amd64. 32為系統選擇x86.
(2)、 安裝過程中,在選擇磁盤界面會找不到磁盤,選擇“加載驅動”,“瀏覽”,找到“軟盤驅動器”,點開后選擇 “server 2008”確定,驅動加載完成后,磁盤就出現了,繼續安裝即可。
(3)、安裝完成后,在設備管理器中可以看到使用的是virtio:
5、在已安裝的kvm虛擬機上添加virtio驅動
(1)、以傳統的IDE硬盤模式安裝
virt-install -n ws2 -r 4096 --vcpus=4 --disk /home/kvm-bak/ws2.img,format=qcow2,size=40 --network bridge=br0,model=virtio --accelerate --os-type=windows --os-variant=win2k8 --cdrom /home/iso/cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso --vnc --vncport=5912 --vnclisten=0.0.0.0
(2)、加載virtio驅動的iso文件到虛擬機光驅
virsh? attach-disk? ws2 /usr/share/virtio-win/virtio-win.iso hdb --type cdrom
或者使用如下命令:
virsh change-media ws2g hdb /usr/share/virtio-win/virtio-win.iso
舉例:
[root@localhost ~]# virsh? attach-disk? ws2 /usr/share/virtio-win/virtio-win.iso hdb --type cdrom
成功附加磁盤
(3)、修改虛擬機的xml文件
使其能發現virtio類型的設備,否則驅動無法安裝
增加一塊virtio驅動的硬盤:
cd /home/kvm-img
qemu-img? create -f qcow2 test.img 1G
注意test.img的權限問題,否則開啟ws2時會提示test.img文件權限不夠(chmod 777 test.img)
修改虛擬機的xml文件,在原有的"disk type"區域增加一個test磁盤的配置:??
<disk type='file' device='disk'>
????? <driver name='qemu' type='qcow2'/>
????? <source file='/home/kvm-img/test.img'/>
????? <target dev='hdc' bus='virtio'/>?? #注意磁盤,系統盤had,光驅hdb,這個應為hdc
</disk>
修改網卡類型為 virtio, 在 interface type 區域,修改model type=‘virtio‘ :
?<interface type='bridge'>
????? <mac address='52:54:00:39:f9:60'/>
????? <source bridge='br0'/>
????? <model type='virtio'/>
提示:如果不是使用vnc遠程連接,需要新增一個網卡配置,在沒有安裝驅動前,使用上面的配置,虛擬機是斷網狀態。
修改完成之后,開啟虛擬機:virsh start ws2
(4)、手動更新驅動
可以事先把光驅中的驅動文件復制一份到磁盤中,開機后會發現沒有網絡適配器。在計算機設備管理器中找到網絡適配器,然后手動更新,選擇驅動文件所在目錄
更新后的結果顯示:
磁盤控制區:QEMU HARDDISK ATA Device(原有的)和Red Hat VirtIO SCSI controller(新增的)
存儲控制器:Microsoft存儲空間控制器(原有的)和Red Hat VirtIO SCSI controller(新增的)
網絡適配器:Red Hat VirtIO Ethernet Adapter(速度是10.0Gbps)
(5)、再次修改xml文件
virsh edit ws2
原有磁盤信息:
<disk type='file' device='disk'>
? <driver name='qemu' type='qcow2'/>
? <source file='/home/kvm-bak/ws2.img'/>
? <target dev='hda' bus='ide'/>
? <address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
新增的磁盤信息:
<disk type='file' device='disk'>
? <driver name='qemu' type='qcow2'/>
? <source file='/home/kvm-img/test.img'/>
? <target dev='hdc' bus='virtio'/>
? <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
兩者更改后的信息顯示:
<disk type='file' device='disk'>
? <driver name='qemu' type='qcow2'/>
? <source file='/home/kvm-bak/ws2.img'/>
? <target dev='vda' bus='virtio'/>
? <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>?
操作說明:把原有磁盤信息中的address這一行替換為新增磁盤的address這一行,然后把dev='vda' bus='virtio'。
十二、調整虛擬機cpu和內存
1、查看虛擬機配置信息
virsh dumpxml ws2 | head –n 10
<domain type='kvm'>
? <name>ws2</name>
? <uuid>cc86e316-cb50-4983-8eba-c714f3b447f7</uuid>
? <memory unit='KiB'>8388608</memory> #當前內存大小
? <currentMemory unit='KiB'>8388608</currentMemory>? #最大內存大小
? <vcpu placement='static'>6</vcpu> ?#最大cpu數
? <os>
??? <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
??? <boot dev='hd'/>
? </os>
或者:virsh dominfo ws2
2、調整cpu
2.1修改配置文件
<vcpu placement='static'>6</vcpu>的值(需關機)
2.2在線調整虛擬機CPU
# virsh setvcpus ws2 4 (只能增大,不能減小)
同樣,能夠動態調整的最大VCPU個數也不能超過為虛擬機設置的最大VCPU數量
設置VM使用的最大內存或最大CPU可以使用 # virsh edit vm1命令
3、調整內存
3.1修改配置文件
virsh edit ws2
?<memory unit='KiB'>8388608</memory> #當前內存大小 8388608/1024/1024=8G
?<currentMemory unit='KiB'>8388608</currentMemory>? #最大內存大小
3.2在線調整虛擬機內存
virsh setmem ws2 4G (增大或減小)
能夠在線調整的最大內存不能超過為虛擬機分配的最大內存,否則需要關閉虛擬機上調最大內存