(1)首先經過命令 virt-manager 啓動圖形界面:
點下面的圖標建立虛機linux
(2)給虛機命名爲 kvm1,這裏選擇從哪裏啓動虛機。若是是安裝新的 OS,能夠選擇第一項。若是已經有安裝好的鏡像文件,選最後一項(以下圖)。vim
(3)接下來須要告訴 virt-manager 鏡像的位置,點擊 「Browser」centos
(4)須要在系統中上傳一個鏡像文件到屬主機上,放到 /var/lib/libvirt/images/ 目錄下,這是 KVM 默認查找鏡像文件的地方。服務器
(5)爲虛擬機分配 CPU、內存和磁盤網絡
(6)爲虛擬機命名,並在安裝前配置硬件參數,點擊「Finish」。網絡選擇三節課建立的br0網橋,點擊綠色「對勾」開始安裝
dom
(7)控制檯彈出以下圖,安裝linux安裝步驟安裝便可:tcp
virt-manager 能夠對虛機進行各類管理操做,界面直觀友好,很容易上手。 同時咱們也能夠用命令 virsh 管理虛機,好比查看宿主機上的虛機: 測試
(1)上一節咱們經過 virt-manager 在本地主機上建立並管理 KVM 虛機。其實 virt-manager 也能夠管理其餘宿主機上的虛機。只須要簡單的將宿主機添加進來,以下圖:
ui
接下來,咱們就能夠像管理本地虛機同樣去管理遠程宿主機上的虛機了centos7
(2)有些狀況下,有一個要配置的地方。 由於 KVM(準確說是 Libvirt)默認不接受遠程管理,須要按下面的內容配置被管理宿主機中的兩個文件:
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 服務就能夠遠程管理了。
systemctl restart libvirt-bin
virsh 既有命令行模式,也有交互模式,在命令行直接輸入 virsh 就進入交互模式, virsh 後面跟命令參數,則是命令行模式;
(1)基礎操做 --- 命令行下管理虛擬機
語法結構:
virsh <command> <domain-id> [OPTIONS]
help 列出命令下的全部參數
help list 列出 list 命令下的參數
幫助菜單
virsh list 列出當前宿主機上處於運行狀態的虛擬機
virsh list --all 列出當前宿主機上全部的虛擬機
virsh start vm1 (虛擬機name) 開啓某一臺虛擬機
virsh shutdown vm1 (虛擬機name) 正常關閉一臺虛擬機
virsh destroy vm1 強制關閉某一臺虛擬機
virsh autostart vm1 開機自啓動虛擬機vm1
virsh autostart --disable vm1 關閉開機自啓動
virsh edit vm1 編輯某個虛擬機的配置文件
virsh pool-list 列出存儲池
qemu-img create -f qcow2 -o size=9G /export/kvm/test.qcow2
建立一個大小爲 50G 的,格式爲 qcow2 的磁盤鏡像
查看磁盤信息:
qemu-img info /export/kvm/test.qcow2
命令行下建立 && 管理虛擬機
Virt-install:命令行下建立虛擬機的命令,不過在它後面須要跟上不少的參數
--name: 虛擬機的名字。
--disk Location: 磁盤映像的位置。
--graphics : 怎樣鏈接 VM ,一般是 SPICE 。
--vcpu : 虛擬 CPU 的數量。
--ram : 以兆字節計算的已分配內存大小。
--location : 指定安裝源路徑
--network : 指定虛擬網絡,一般是 virbr0 或者本身設定的 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 ,進入到安裝步驟
(2)除了這些簡單命令,實際在 virsh 形式下還有更多的命令:
virsh help 打印幫助
virsh attach-device 從一個 XML 文件附加裝置
virsh attach-disk 附加磁盤設備
virsh attach-interface 得到網絡界面
virsh destroy 刪除一個域
virsh detach-device 從一個 XML 文件分離設備
virsh detach-disk 分離磁盤設備
virsh detach-interface 分離網絡界面
virsh define 從一個 XML 文件定義(但不開始)一個域
virsh undefine 刪除一個虛機域
克隆一個虛機:
virt-clone -o vm2 -n vm4 -f /var/lib/libvirt/images/vm4.qcow2
新安裝一臺虛擬機後,是沒法經過virsh console 命令連入虛擬機中的,這時咱們須要開啓虛擬機的console功能。
一、centos7如下,及其餘狀況
(1)添加ttyS0的許可,容許root登錄
[root@localhost ~]# echo "ttyS0" >> /etc/securetty
(2)編輯/etc/grub.conf中加入console=ttyS0
(3)編輯/etc/inittab,在最後一行加入內容:S0:12345:respawn:/sbin/agetty ttyS0 115200
(4)重啓服務器
reboot
(5)宿主機上測試
virsh console vm-name
(6)退出console鏈接的虛擬機li
按 ctrl+] 組合鍵退出virsh console
二、對於centos7
(1)在虛機裏運行
[root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0"
(2)重啓虛機
[root@localhost ~]# reboot
便可
KVM 虛擬化須要處理器對虛擬化技術的支持,當咱們須要進行虛擬機嵌套虛擬機時,咱們須要讓虛擬機中處理器對 VT 功能的支持達到透傳的效果。
nested 虛擬機嵌套( kvm on kvm ):nested 技術,簡單的說,就是在虛擬機上跑虛擬機。
KVM 虛擬機嵌套和 VMWare 原理不一樣, VMWare第一層是用的硬件虛擬化技術,第二層就是徹底軟件模擬出來的,因此 VMWare 只能作兩層嵌套。 KVM 是將物理 CPU 的特性所有傳給虛擬機,全部理論上能夠嵌套 N 多層。
一、查看一層客戶端是否支持 VT
#grep vmx /proc/cpuinfo
查詢未果,證實一層 KVM 的虛擬機,並未將宿主機處理器的 VT 功能成功透傳。因此,沒有對 VT功能的支持,咱們不能實如今該層虛擬機中嵌套KVM 虛擬機。
二、在物理服務器上爲嵌套虛擬機作準備 --- CPU 虛擬化透傳
(1)# vim /etc/modprobe.d/kvm-nested.conf
# 在文件中添加下面語句(因爲截圖問題,實際不須要加空行)
options kvm_intel nested=1
# 在宿主機啓用 kvm_intel 模塊的嵌套虛擬化功能,而且使透傳永久有效
(2)從新加載 kvm 模塊
# modprobe -r kvm_intel -r參數:remove掉kvm_intel模塊
# modprobe kvm_intel 加載kvm_intel模塊
(3)驗證是否加載成功
#cat /sys/module/kvm_intel/parameters/nested
Y ---「Y」 表示 cpu 虛擬化透傳功能開啓
三、編輯須要作虛擬化透傳的虛擬機的配置文件
#virsh edit centos7 ( Virtual Machine Name )
<cpu mode='host-passthrough'>
host-passthrough 直接將物理 CPU 暴露給虛擬機使用,在虛擬機上徹底能夠看到的就是物理 CPU的型號
四、進入虛擬機中查看cpu是否透傳成功
在一層虛擬機中查看cpu是否支持虛擬化