(1)首先通過命令 virt-manager 啟動圖形界面:
點下面的圖標(biāo)創(chuàng)建虛機(jī)
(2)給虛機(jī)命名為 kvm1瓮增,這里選擇從哪里啟動虛機(jī)巩步。如果是安裝新的 OS,可以選擇第一項愉阎。如果已經(jīng)有安裝好的鏡像文件竞膳,選最后一項(如下圖)。
(3)接下來需要告訴 virt-manager 鏡像的位置诫硕,點擊 “Browser”
(4)需要在系統(tǒng)中上傳一個鏡像文件到屬主機(jī)上坦辟,放到 /var/lib/libvirt/images/ 目錄下,這是 KVM 默認(rèn)查找鏡像文件的地方章办。
(5)為虛擬機(jī)分配 CPU锉走、內(nèi)存和磁盤

(6)為虛擬機(jī)命名,并在安裝前配置硬件參數(shù)藕届,點擊“Finish”挪蹭。網(wǎng)絡(luò)選擇三節(jié)課創(chuàng)建的br0網(wǎng)橋,點擊綠色“對勾”開始安裝
(7)控制臺彈出如下圖休偶,安裝linux安裝步驟安裝即可:
virt-manager 可以對虛機(jī)進(jìn)行各種管理操作梁厉,界面直觀友好,很容易上手踏兜。 同時我們也可以用命令 virsh 管理虛機(jī)词顾,比如查看宿主機(jī)上的虛機(jī):
二、遠(yuǎn)程管理kvm虛機(jī)
(1)上一節(jié)我們通過 virt-manager 在本地主機(jī)上創(chuàng)建并管理 KVM 虛機(jī)碱妆。其實 virt-manager 也可以管理其他宿主機(jī)上的虛機(jī)肉盹。只需要簡單的將宿主機(jī)添加進(jìn)來,如下圖:
接下來疹尾,我們就可以像管理本地虛機(jī)一樣去管理遠(yuǎn)程宿主機(jī)上的虛機(jī)了
(2)有些情況下上忍,有一個要配置的地方。 因為 KVM(準(zhǔn)確說是 Libvirt)默認(rèn)不接受遠(yuǎn)程管理纳本,需要按下面的內(nèi)容配置被管理宿主機(jī)中的兩個文件:
vim /etc/default/libvirt-bin
start_libvirtd="yes"
libvirtd_opts="-d -l"
vim /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
unix_sock_group = "libvirtd"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
auth_unix_ro = "none"
auth_unix_rw = "none"
auth_tcp = "none"
然后重啟 Libvirtd 服務(wù)就可以遠(yuǎn)程管理了窍蓝。
systemctl restart libvirt-bin
三、virsh命令行下管理虛擬機(jī)
virsh 既有命令行模式繁成,也有交互模式吓笙,在命令行直接輸入 virsh 就進(jìn)入交互模式, virsh 后面跟命令參數(shù)朴艰,則是命令行模式观蓄;
(1)基礎(chǔ)操作 --- 命令行下管理虛擬機(jī)
語法結(jié)構(gòu):
virsh <command> <domain-id> [OPTIONS]
help 列出命令下的所有參數(shù)
help list 列出 list 命令下的參數(shù)
幫助菜單
virsh list 列出當(dāng)前宿主機(jī)上處于運行狀態(tài)的虛擬機(jī)
virsh list --all 列出當(dāng)前宿主機(jī)上所有的虛擬機(jī)
virsh start vm1 (虛擬機(jī)name) 開啟某一臺虛擬機(jī)
virsh shutdown vm1 (虛擬機(jī)name) 正常關(guān)閉一臺虛擬機(jī)
virsh destroy vm1 強(qiáng)制關(guān)閉某一臺虛擬機(jī)
virsh autostart vm1 開機(jī)自啟動虛擬機(jī)vm1
virsh autostart --disable vm1 關(guān)閉開機(jī)自啟動
virsh edit vm1 編輯某個虛擬機(jī)的配置文件
virsh pool-list 列出存儲池
qemu-img create -f qcow2 -o size=9G /export/kvm/test.qcow2
創(chuàng)建一個大小為 50G 的混移,格式為 qcow2 的磁盤鏡像
查看磁盤信息:
qemu-img info /export/kvm/test.qcow2
命令行下創(chuàng)建 && 管理虛擬機(jī)
Virt-install:命令行下創(chuàng)建虛擬機(jī)的命令,不過在它后面需要跟上很多的參數(shù)
--name: 虛擬機(jī)的名字侮穿。
--disk Location: 磁盤映像的位置歌径。
--graphics : 怎樣連接 VM ,通常是 SPICE 亲茅。
--vcpu : 虛擬 CPU 的數(shù)量回铛。
--ram : 以兆字節(jié)計算的已分配內(nèi)存大小。
--location : 指定安裝源路徑
--network : 指定虛擬網(wǎng)絡(luò)克锣,通常是 virbr0 或者自己設(shè)定的 br0
例如:
virt-install --name=test --disk path=/export/kvm/test.qcow2 --ram=1024 --vcpus=1 --graphics spice --location=/export/download/software/iso/CentOS-7.3-x86_64-DVD.iso --network bridge=br0
注:以此安裝操作之后茵肃,會在桌面顯示一個 virtviewer ,進(jìn)入到安裝步驟
(2)除了這些簡單命令袭祟,實際在 virsh 形式下還有更多的命令:
virsh help 打印幫助
virsh attach-device 從一個 XML 文件附加裝置
virsh attach-disk 附加磁盤設(shè)備
virsh attach-interface 獲得網(wǎng)絡(luò)界面
virsh destroy 刪除一個域
virsh detach-device 從一個 XML 文件分離設(shè)備
virsh detach-disk 分離磁盤設(shè)備
virsh detach-interface 分離網(wǎng)絡(luò)界面
virsh define 從一個 XML 文件定義(但不開始)一個域
virsh undefine 刪除一個虛機(jī)域
克隆一個虛機(jī):
virt-clone -o vm2 -n vm4 -f /var/lib/libvirt/images/vm4.qcow2
四验残、KVM 通過virsh console連入虛擬機(jī)
新安裝一臺虛擬機(jī)后,是無法通過virsh console 命令連入虛擬機(jī)中的巾乳,這時我們需要開啟虛擬機(jī)的console功能您没。
1、centos7以下胆绊,及其他情況
(1)添加ttyS0的許可氨鹏,允許root登陸
[root@localhost ~]# echo "ttyS0" >> /etc/securetty
(2)編輯/etc/grub.conf中加入console=ttyS0
(3)編輯/etc/inittab,在最后一行加入內(nèi)容:S0:12345:respawn:/sbin/agetty ttyS0 115200
(4)重啟服務(wù)器
reboot
(5)宿主機(jī)上測試
virsh console vm-name
(6)退出console連接的虛擬機(jī)li
按 ctrl+] 組合鍵退出virsh console
2压状、對于centos7
(1)在虛機(jī)里運行
[root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0"
(2)重啟虛機(jī)
[root@localhost ~]# reboot
即可
3仆抵、VNC Viewer 遠(yuǎn)程管理kvm主機(jī)
(1)在window中安裝VNC Viewer 軟件,一直下一步完成
(2)打開vnc viewer 軟件連接kvm主機(jī)
(3)點擊Continue种冬,即可連接里面的虛機(jī)
五镣丑、KVM虛擬化透傳
KVM 虛擬化需要處理器對虛擬化技術(shù)的支持,當(dāng)我們需要進(jìn)行虛擬機(jī)嵌套虛擬機(jī)時碌廓,我們需要讓虛擬機(jī)中處理器對 VT 功能的支持達(dá)到透傳的效果传轰。
nested 虛擬機(jī)嵌套( kvm on kvm ):nested 技術(shù),簡單的說谷婆,就是在虛擬機(jī)上跑虛擬機(jī)。
KVM 虛擬機(jī)嵌套和 VMWare 原理不同辽聊, VMWare第一層是用的硬件虛擬化技術(shù)纪挎,第二層就是完全軟件模擬出來的,所以 VMWare 只能做兩層嵌套跟匆。 KVM 是將物理 CPU 的特性全部傳給虛擬機(jī)异袄,所有理論上可以嵌套 N 多層。
1玛臂、查看一層客戶端是否支持 VT
grep vmx /proc/cpuinfo
查詢未果烤蜕,證明一層 KVM 的虛擬機(jī)封孙,并未將宿主機(jī)處理器的 VT 功能成功透傳。所以讽营,沒有對 VT功能的支持虎忌,我們不能實現(xiàn)在該層虛擬機(jī)中嵌套KVM 虛擬機(jī)。
2橱鹏、在物理服務(wù)器上為嵌套虛擬機(jī)做準(zhǔn)備 --- CPU 虛擬化透傳
(1) vim /etc/modprobe.d/kvm-nested.conf
在文件中添加下面語句(由于截圖問題膜蠢,實際不需要加空行)
options kvm_intel nested=1
在宿主機(jī)啟用 kvm_intel 模塊的嵌套虛擬化功能,并且使透傳永久有效
(2)重新加載 kvm 模塊
modprobe -r kvm_intel -r參數(shù):remove掉kvm_intel模塊
modprobe kvm_intel 加載kvm_intel模塊
(3)驗證是否加載成功
cat /sys/module/kvm_intel/parameters/nested
Y ---“Y” 表示 cpu 虛擬化透傳功能開啟
3莉兰、編輯需要做虛擬化透傳的虛擬機(jī)的配置文件
virsh edit centos7 ( Virtual Machine Name )
<cpu mode='host-passthrough'>
host-passthrough 直接將物理 CPU 暴露給虛擬機(jī)使用挑围,在虛擬機(jī)上完全可以看到的就是物理 CPU的型號
4、進(jìn)入虛擬機(jī)中查看cpu是否透傳成功
在一層虛擬機(jī)中查看cpu是否支持虛擬化
補充:
1糖荒、虛擬機(jī)配置文件保存位置:
/etc/libvirt/qemu/**.xml
2杉辙、虛擬機(jī)鏡像文件保存位置:
/var/lib/libvirt/images/