目錄
一、安裝
1.1、先确認CPU是否支援虛拟化
1.2、安裝KVM及相關工具包
1.3、啟動libvirtd并設定為開機啟動
1.4、建立磁盤
1.5、開始安裝虛拟機
二、虛拟機操作
2.1 虛拟機啟停操作
2.2 虛拟機網卡操作
2.3 虛拟機快照
三、擷取幫助
3.1 擷取所有指令幫助
3.2 擷取子指令幫助
一、安裝
1.1、先确認CPU是否支援虛拟化
intel的CPU虛拟化技術是vmx,AMD的CPU是svm:
[root@localhost ~]# grep -E "vmx|svm" /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase tsc_adjust smep
有輸出結果,表示你的CPU支援虛拟化
1.2、安裝KVM及相關工具包
[root@localhost ~]# yum install qemu-kvm qemu-kvm-tools libvirt virt-manager virt-install
1.3、啟動libvirtd并設定為開機啟動
libvirtd程序會建立一個橋接的網上virbr0,而且IP位址是192.168.122.1
[root@localhost ~]# systemctl start libvirtd
[root@localhost ~]# systemctl enable libvirtd
[root@localhost ~]# ifconfig virbr0
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:cb:ca:b0 txqueuelen 0 (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
下面的是為虛拟機配置設定IP位址的服務:
[root@localhost ~]# ps -aux | grep dns
nobody 2877 0.0 0.0 15552 888 ? S 13:06 0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root 2878 0.0 0.0 15524 180 ? S 13:06 0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root 4546 0.0 0.0 112664 980 pts/0 S+ 13:29 0:00 grep --color=auto dns
1.4、建立磁盤
[root@llocalhost ~]# qemu-img create -f qcow2 /opt/CentOS-7-x86_64.qcow2 10G #建立一個格式為qcow2大小為10G的磁盤
Formatting '/opt/CentOS-7-x86_64.raw', fmt=qcow2 size=10737418240
注意:常用的磁盤格式有raw和qcow2。raw是直接從實體磁盤上劃一塊空間出來,建立磁盤時設定的磁盤是10GB,生成出來的磁盤檔案就是10GB,raw格式的磁盤比較占用主控端的資源,但是它的性能相較于qcow2要好。而qcow2格式,隻是設定了一個邏輯大小為10GB,使用磁盤空間最多不能超過10GB,,生成的磁盤檔案開始隻有100KB,這個檔案的大小 ,會随着你的使用增大,但不會超過10GB。
1.5、開始安裝虛拟機
[root@LOCALHOST imgs]# virt-install --virt-type=kvm --name=openstack-load_balancing-node1 --ram=4096 --vcpus=1 --cdrom=/system/iso/CentOS-7-x86_64-Minimal-1511.iso --disk path=/system/imgs/openstack-load_balancing-node1.qcow2,size=100,format=qcow2 --network bridge=br1 --graphics vnc,listen=0.0.0.0,port=60000 --noautoconsole
#參數解釋
--virt-type=kvm 指定虛拟機類型為KVM
--name=openstack-load_balancing-node1 指定虛拟機名稱
--ram=4096 指定記憶體為4096M,預設機關是M
--vcpus=1 指定虛拟CPU個數為1個
--cdrom=/system/iso/CentOS-7-x86_64-Minimal-1511.iso 指定安裝虛拟機用的鏡像
--disk path=/system/imgs/openstack-load_balancing-node1.qcow2,size=100,format=qcow2 指定虛拟磁盤,切記要加上size和format,否則安裝系統時會出現磁盤僅為194K,不能安裝系統的情況
--network bridge=br1 橋接到主控端的br1網卡
--graphics vnc,listen=0.0.0.0,port=60000 使用VNC遠端桌面連接配接,操作安裝系統用,端口為60000;VNC預設的端口為5900,有時可能會被營運商禁用,這時你需要換一個端口試試。
--noautoconsole 不要自動嘗試連接配接到用戶端控制台
注意:要想為虛拟機添加多塊網卡,就需要指定多個“--network” 參數。
指令執行成功,如下圖:

image.png
這時就可以用VNC連接配接圖形界面,進行安裝了:
進入安裝界面,将CentOS 7無規則的網卡命名方式修改為eth0 、eth1這樣,需在上述界面中按上方向鍵選中“Install CentOS Linux 7”,然後按“Tab”鍵進行編輯,給核心傳參,加入“net.ifnames=0 biosdevname=0”。
接下來的系統安裝步驟就不再贅述了。
二、虛拟機操作
2.1 虛拟機啟停操作
檢視:
virsh list --all
開啟:
virsh start openstack-load2
重新開機:
virsh reboot openstack-load2
關機:
virsh shutdown openstack-load2
删除:
virsh undefine openstack-load2
随主控端自啟動:
virsh autostart openstack-load2
恢複:
virsh define /etc/libvirtd/qemu/openstack-load2.xml
注意:要想恢複虛拟機,必須保證虛拟機配置檔案中 <source file='/system/imgs/openstack-load2.qcow2'/>
定義的虛拟磁盤是存在的。
2.2 虛拟機網卡操作
- 列出指定虛拟機的網卡:
指令: virsh domiflist openstack-compute1
- 動态添加虛拟機網卡:
注意:
virsh attach-interface --domain openstack-compute1 --type bridge --source br2 --model virtio --persistent --config
- --domain 後面可以跟虛拟機名稱或者虛拟機ID。
- --persistent 實時更改并将修改寫入配置檔案中
- --config 下一次啟動時生效
- 移除虛拟網卡
注意:虛拟機網卡MAC位址可以通過
virsh detach-interface openstack-load1 --type bridge --mac 52:54:00:0f:0d:df
指令擷取
virsh domiflist openstack-load1
2.3 虛拟機快照
- 列出指定虛拟的所有快照:
virsh snapshot-list openstack-load1
- 為指定虛拟機建立快照:
- 指令格式:
virsh snapshot-create-as 虛拟機名 快照别名
- 指令格式:
virsh snapshot-create-as openstack-load1 openstack-load1-base-180324
- 列出指定虛拟機的快照
virsh snapshot-list openstack-compute1
- 檢視虛拟機目前快照:
virsh snapshot-current openstack-load1
- 為虛拟機恢複至指定快照
[root@LOCALHOST ~]# virsh snapshot-revert --help
NAME
snapshot-revert - Revert a domain to a snapshot
SYNOPSIS
snapshot-revert <domain> [<snapshotname>] [--current] [--running] [--paused] [--force]
DESCRIPTION
Revert domain to snapshot
OPTIONS
[--domain] <string> domain name, id or uuid
[--snapshotname] <string> snapshot name
--current revert to current snapshot
--running after reverting, change state to running
--paused after reverting, change state to paused
--force try harder on risky reverts
-
virsh snapshot-revert openstack-load1 openstack-load1-base-180324 --running
:虛拟機名稱
openstack-load1
是快照名稱,可通過
openstack-load1-base-180324
檢視
virsh snapshot-list 虛機名
表示恢複快照後,将虛拟機狀态改為正在運作
--running
2.4 虛拟機改名
1)終端指令行下檢視虛拟機
[root@kvm-server ~]# virsh list
Id Name State
----------------------------------------------------
4 vmserver004 running
5 vmserver003 running
6 vmserver005 running
2)關閉虛拟機
[root@kvm-server ~]# virsh shutdown vmserver003
3)導出xml檔案
[root@kvm-server ~]# cd /etc/libvirt/qemu
[root@kvm-server qemu]# ls
networks vmserver003.xml vmserver004.xml vmserver005.xml
[root@kvm-server qemu]# virsh dumpxml vmserver003 > test-huanqiu.xml
[root@kvm-server qemu]# ls
networks test-huanqiu.xml vmserver004.xml vmserver005.xml
4)編輯test-huanqiu.xml檔案,将裡面的vmserver003全部替換成test-huanqiu
[root@kvm-server qemu]# sed -i 's/vmserver003/test-huanqiu/g' test-huanqiu.xml
- 重定義
[root@kvm-server qemu]# virsh undefine vmserver003
[root@kvm-server qemu]# virsh define test-huanqiu.xml
若有修改img也将檔案重命名下如:
[root@kvm-server qemu]# vim test-huanqiu.xml
# 将裡面使用的img鏡像檔案名也可以重命名(檔案裡有鏡像檔案路徑)
6)啟動虛拟機
[root@kvm-server qemu]# virsh start test-huanqiu
7) 重命名後檢視
[root@kvm-server qemu]# virsh list
Id Name State
----------------------------------------------------
4 vmserver004 running
5 test-huanqiu running
6 vmserver005 running
2.5 KVM虛拟機硬體配置修改、磁盤擴充以及主機遷移
1,KVM虛拟機硬體配置修改
關機,virsh edit host 編譯虛拟機配置檔案,進行記憶體 、cpu參數修改。修改以後重新開機虛拟機加載最新配置。
2,磁盤擴充
由于非專業搞虛拟化,這裡隻用于測試環境部署使用。更為專業的磁盤擴充請參考其他資料。這裡以linux 66主機的qcow2為例擴充。操作步驟:
(1)關機
(2)擴充
qemu-img resize linuxt66.qcow2 +5G
(3)啟動并登入伺服器擴充磁盤
3,主機遷移
思路:
(1)導出xml檔案
(2)轉移虛拟機磁盤檔案
(3)新伺服器重新定義主機 virsh define host
(4)啟動
三、擷取幫助
3.1 擷取所有指令幫助
virsh --help
3.2 擷取子指令幫助
virsh 子指令 --help