開源虛擬化KVM(一)搭建部署與概述


一,KVM概述

1.1 虛擬化概述

在計算機技術中,虛擬化意味着創建設備或資源的虛擬版本,如服務器,存儲設備,網絡或者操作系統等等

  • [x] 虛擬化技術分類:
    • 系統虛擬化(我們主要討論的反向)
    • 存儲虛擬化(raid,lvm)
    • 網絡虛擬化(sdn)
    • GPU虛擬化(比特幣)
    • 軟件虛擬化
    • 硬件支持虛擬化

1.1.1 系統虛擬化

  • 這種虛擬化通常表現為在單一系統上運行多個操作系統
  • 這些虛擬操作系統同時運行,每個操作系統又是相互獨立

QQ截圖20180329205226.png-74.4kB

1.1.2 虛擬化的三種實現方式

(1)純軟件仿真

  • 通過模擬完整的硬件環境來虛擬化用戶平台
  • 模擬X86,ARM,PowerPC等多種CPU
  • 效率比較低
  • QEMU,Bochs,PearPC

(2)虛擬化層翻譯

  • 多數的虛擬化而采用虛擬機管理程序Hypervisor
  • Hypervisor是一個軟件層或子系統
    • 也稱為VMM(Virtual Machine Monitor,虛擬機監控器)
  • 允許多種操作系統在相同的物理系統中運行
  • 控制硬件並向用戶操作系統提供訪問底層硬件的途徑
  • 向來賓操作系統提供虛擬化的硬件

QQ截圖20180329222240.png-56.1kB

QQ截圖20180329224952.png-323kB

無硬件輔助的全虛擬化

  • 基於二進制翻譯的全虛擬化
  • Hypervisor運行在Ring 0
  • Guest OS運行在Ring 1
  • 機制:異常,捕獲,翻譯
  • 示例:
    • VMware Workstation
    • QWMU
    • Virtual PC

QQ截圖20180329225949.png-90.3kB

硬件輔助的全虛擬化

  • Intel VT 和 AMD-V創建一個新的Ring -1 單獨給Hypervisor使用
  • Guest OS可以直接使用Ring 0 而無須修改
  • 示例:
    • VMware ESXi
    • Microsoft Hyper-V
    • Xen3.0
    • KVM

QQ截圖20180329225949.png-105.5kB

QQ截圖20180330084828.png-169.7kB

(3)容器技術

1.2 KVM概述與相關參考資料

二,KVM安裝

2.1 實現環境准備

CentOS7.3DVD鏡像下載地址:http://man.linuxde.net/download/CentOS_7_3

2.1.1 生產環境硬件配置

  • CPU必須支持虛擬化技術,在BIOS設置為啟動
  • 目前,多數服務器基礎桌面計算機均處理啟動狀態

QQ截圖20180330091735.png-236.3kB

2.1.2 實驗准備

我們需要先用虛擬機,然后在虛擬機里再用虛擬化,也就是嵌套虛擬化

  • VMware 嵌套虛擬化
    • 產品:Workstation,Player,ESXi
    • 支持:ESXi,Hyper-V,KVM,Xen

QQ截圖20180330091735.png-204.6kB

QQ截圖20180330092445.png-23.6kB

2.2 KVM安裝

裝機時虛擬機需要安裝如下軟件

QQ截圖20180330094613.png-168.2kB

進入后,ifconfig我們發現

QQ截圖20180330094613.png-16.7kB

網卡並沒有IP地址,我們可以通過如下操作,打開網卡配置文件的ONBOOT

[root@localhost network-scripts]# pwd /etc/sysconfig/network-scripts [root@localhost network-scripts]# cat ifcfg-ens32 TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens32 UUID=17fb5987-5317-4bca-8514-9e1b73933184 DEVICE=ens32 #NBOOT=yes #打開這個

然后重啟網絡服務

QQ截圖20180330094613.png-18.2kB

2.2.1 解決CentOS7.3的Xshell連接很慢的問題

#將ssh配置文件修改成如下所示 [root@localhost ~]# sed -n '93p;129p' /etc/ssh/sshd_config GSSAPIAuthentication no UseDNS no #重啟動服務 [root@localhost ~]# systemctl restart sshd

2.2.2 解決Centos7.3重啟卡在license information

如果出現license information(license not accepted),即說明需要同意許可信息,輸入1-回車-2-回車-c-回車-c-回車。即可解決

2.2.3 搭建本地yum倉庫光盤源,安裝軟件包

#搭建本地光盤源yum倉庫 [root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# ls CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo CentOS-CR.repo CentOS-Media.repo CentOS-Debuginfo.repo CentOS-Sources.repo [root@localhost yum.repos.d]# mkdir bak [root@localhost yum.repos.d]# mv C* bak/ [root@localhost yum.repos.d]# vim local.repo [root@localhost yum.repos.d]# cat local.repo [local] name=local baseurl=file:///media/cdrom/ gpgcheck=0 enabled=1 [root@localhost yum.repos.d]# mount /dev/sr0 /media/cdrom/ mount: /dev/sr0 寫保護,將以只讀方式掛載 [root@localhost yum.repos.d]# yum -y clean all 已加載插件:fastestmirror, langpacks 正在清理軟件源: local Cleaning up everything Cleaning up list of fastest mirrors [root@localhost yum.repos.d]# yum makecache 已加載插件:fastestmirror, langpacks local | 3.6 kB 00:00 (1/4): local/filelists_db | 3.0 MB 00:00 (2/4): local/group_gz | 155 kB 00:00 (3/4): local/other_db | 1.3 MB 00:00 (4/4): local/primary_db | 3.0 MB 00:00 Determining fastest mirrors 元數據緩存已建立

我們的裝機方式已經安裝了如下軟件組

@base @core @virtualization-hypervisor #虛擬化主機選項 @virtualization-platform #虛擬化平台選項 @virtualization-tools #虛擬化主機選項

我們還需要增加如下軟件包

@virtualization-client @gnome-desktop
#yum安裝包組 [root@localhost ~]# yum -y group install virtualization-client [root@localhost ~]# yum -y group install gnome-desktop

2.2.3 修改虛擬化引擎配置並檢查CPU特性

QQ截圖20180330094613.png-18.7kB

#檢查CPU特性 [root@localhost ~]# grep vmx /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 pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_noitfy hwp_act_window hwp_epp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx smap xsaveopt [root@localhost ~]# egrep '^flags.*(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 pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_noitfy hwp_act_window hwp_epp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx smap xsaveopt 

2.3 KVM遠程管理

[root@localhost ~]# which virsh #查看虛擬機管理命令 /usr/bin/virsh [root@localhost ~]# virsh list --all #查看所有虛擬機 Id 名稱 狀態 ---------------------------------------------------- [root@localhost ~]# startx 切換到圖形界面模式

在圖形界面下選擇左上角Application

QQ截圖20180330094613.png-122.4kB

QQ截圖20180330094613.png-138.4kB

但是,我們在工作中通常需要遠程來管理KVM的環境。而SSH方式是看不到桌面模式的。

2.3.1 KVM的兩種遠程管理方式

(1)SSH圖形化顯示

windows安裝軟件x-manager。然后xshell軟件開啟X11轉發

QQ截圖20180410193227.png-22.9kB

然后我們連接上虛擬機以后,輸入virt-manager出現下圖

QQ截圖20180410193416.png-43kB

(2)VNC圖形化顯示

VNC是一個優秀的遠程管理軟件,它有兩部分組成VNCServer,VNCViewer。

#看一下系統里是否有必須的包 [root@localhost ~]# rpm -qa | grep vnc tigervnc-license-1.3.1-9.el7.noarch #必須的 gtk-vnc2-0.5.2-7.el7.x86_64 gvnc-0.5.2-7.el7.x86_64 tigervnc-server-minimal-1.3.1-9.el7.x86_64 #必須的 
#安裝vnc-server [root@localhost ~]# yum -y install tigervnc-server #安裝服務端軟件包 [root@localhost ~]# cat /etc/sysconfig/vncservers #查看vnc配置文件 # THIS FILE HAS BEEN REPLACED BY /lib/systemd/system/vncserver@.service [root@localhost ~]# ll /lib/systemd/system/vncserver@.service #原來這才是配置文件 -rw-r--r--. 1 root root 1880 11月 16 2016 /lib/systemd/system/vncserver@.service #然后我們需要創建vnc密碼 [root@localhost ~]# vncpasswd Password: Verify: #啟動vnc-server [root@localhost ~]# vncserver New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1 Creating default startup script /root/.vnc/xstartup Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/localhost.localdomain:1.log [root@localhost ~]# ps aux | grep vnc root 6241 0.9 1.6 250192 31032 pts/0 Sl 10:07 0:00 /usr/bin/vnc :1 -desktop localhost.localdomain:1 (root) -auth /root/.Xauthority -geometry 1024x768 -rfbwait 30000 -rfbauth /root/.vnc/passwd -rfbport 5901 -fp catalogue:/etc/X11/fontpath.d -pn root 6250 0.0 0.2 96716 4068 pts/0 S 10:07 0:00 /usr/bin/vncconfig -iconic root 6991 0.0 0.0 112668 972 pts/0 S+ 10:07 0:00 grep --color=auto vnc 

然后我們需要關閉Centos7.3的防火牆

[root@localhost ~]# service firewalld stop #不然vnc客戶端連接不上 Redirecting to /bin/systemctl stop firewalld.service [root@localhost ~]# systemctl disable firewalld.service #永久關閉防火牆

接下來我們在windows主機上安裝vnc客戶端

https://www.realvnc.com/en/connect/download/viewer/ 可以下載vnc viewer

QQ截圖20180402103131.png-1.8kB

QQ截圖20180402103827.png-25.1kB

QQ截圖20180402104005.png-15.9kB

QQ截圖20180402104026.png-9.6kB

QQ截圖20180402104113.png-537.3kB

三,創建虛擬機

3.1 使用virt-manager創建虛擬機

  • [x] virt-manager 基本使用
  • [x] 實驗
    • 環境准備
    • 創建Windows虛擬機
    • 創建Linux虛擬機

QQ截圖20180402111815.png-42.8kB

(1)我們需要添加一塊80G的硬盤來存儲操作系統的安裝介質,ISO文件

QQ截圖20180403220908.png-28.3kB

(2)利用fdisk分出一塊40G的分區

[root@localhost ~]# ll /dev/sdb* brw-rw----. 1 root disk 8, 16 Apr 4 08:48 /dev/sdb brw-rw----. 1 root disk 8, 17 Apr 4 08:48 /dev/sdb1 #40G 

(3)創建LVM邏輯卷

[root@localhost ~]# ll /dev/sdb* brw-rw----. 1 root disk 8, 16 Apr 4 08:48 /dev/sdb brw-rw----. 1 root disk 8, 17 Apr 4 08:48 /dev/sdb1 [root@localhost ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created. [root@localhost ~]# vgcreate vmvg /dev/sdb1 Volume group "vmvg" successfully created [root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree cl 1 2 0 wz--n- 19.00g 0 vmvg 1 0 0 wz--n- 40.00g 40.00g [root@localhost ~]# vgdisplay #查看vg詳細 --- Volume group --- VG Name cl System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 19.00 GiB PE Size 4.00 MiB Total PE 4863 Alloc PE / Size 4863 / 19.00 GiB Free PE / Size 0 / 0 VG UUID 6ROh78-78oc-QfPu-1YnI-pW76-TiFa-4kWjSQ --- Volume group --- VG Name vmvg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 40.00 GiB PE Size 4.00 MiB Total PE 10239 Alloc PE / Size 0 / 0 Free PE / Size 10239 / 40.00 GiB #vmvg可用的PE一共10239 VG UUID Hxeycr-8UEv-qiF2-JTZi-txEl-E5G7-Iho3x5 [root@localhost ~]# lvcreate -n lvvm1 -l 10239 vmvg #將vmvg可以用PE全部分配給lvvm1 Logical volume "lvvm1" created. [root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root cl -wi-ao---- 17.00g swap cl -wi-ao---- 2.00g lvvm1 vmvg -wi-a----- 40.00g [root@localhost ~]# mkfs.ext4 /dev/vmvg/lvvm1 格式化lvvm1 

(4)掛載邏輯卷

[root@localhost ~]# mkdir /vm
[root@localhost ~]# mount /dev/vmvg/lvvm1 /vm/
[root@localhost ~]# df -hT
Filesystem             Type      Size  Used Avail Use% Mounted on /dev/mapper/cl-root xfs 17G 3.7G 14G 22% / devtmpfs devtmpfs 901M 0 901M 0% /dev tmpfs tmpfs 912M 0 912M 0% /dev/shm tmpfs tmpfs 912M 8.9M 903M 1% /run tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda1 xfs 1014M 144M 871M 15% /boot tmpfs tmpfs 183M 0 183M 0% /run/user/0 /dev/mapper/vmvg-lvvm1 ext4 40G 49M 38G 1% /vm [root@localhost ~]# echo "mount /dev/vmvg/lvvm1 /vm/" >> /etc/rc.local 

(5)創建iso鏡像文件存放目錄

[root@localhost ~]# mkdir /ios root@localhost ~]# cd /iso/ [root@localhost iso]# ls CentOS-6.5-x86_64-bin-DVD1.iso

將光盤安裝鏡像文件上傳到/ios目錄下:

QQ截圖20180404091939.png-20.8kB

3.1.1 virt-manager基本使用

  • [x] 啟動virt-manager
  • [x] 虛擬機管理主窗口
  • [x] 硬件細節窗口
    • 配置虛擬機啟動選項
    • 附加USB設備給虛擬機
    • 准備工作
    • USB重定向
  • [x] 虛擬機圖形控制台
  • [x] 添加遠程連接
  • [x] 顯示虛擬機細節
  • [x] 性能監視

(1)使用向導的默認配置來創建虛擬機

啟動VNC遠程管理程序連接Linux,打開Virtual Machine Manager

1.png-343.1kB

點擊創建新的虛擬機

2.png-17.4kB

選擇本地安裝iso鏡像

3.png-40.8kB

4.png-28.2kB

5.png-39.3kB

6.png-51.8kB

7.png-28.7kB

1.png-42.5kB

2.png-23.2kB

1.png-24.4kB

1.png-30.1kB

最后新建的虛擬機自動進入裝機狀態

同學們選擇全英文,最小化裝機即可。由於咱們是嵌套的虛擬化,裝機圖形界面可能稍微有點卡。不過沒關系,等一下就好。

1.png-15.9kB

特別提示:

當我們以virt-manager進行手動管理創建虛擬機時,有可能在進入安裝操作系統界面時大幾率遭遇到鍵盤失靈的情況。如果同學們遇到這個問題,不要着急,這是因為字符集混亂識別的問題,我們需要調整一下虛擬機的設置后,即可恢復。
我們做如下調整即可。

123.png-74.5kB

125.png-76.3kB

124.png-73kB

然后我們正常開機就會進入裝機界面,你會發現鍵盤的操作恢復了。。。

(2)以自定義規划方式創建虛擬機

我們發現按照向導的默認方式安裝虛擬機,虛擬機的磁盤並沒有放在我們規划好的目錄里

1.png-46.8kB

因此在工作中,我們需要在安裝過程中進行自定義存儲池的操作,步驟如下

1.png-33.4kB

2.png-25.5kB

2.png-34.7kB

3.png-21.7kB

4.png-19.1kB

5.png-67.9kB

6.png-17.2kB

到此我們新的VM存儲池就創建完了,但是在存儲池里我們還需要創建一個Volume卷(磁盤)

22.png-32.6kB

33.png-28.9kB

44.png-34.7kB

1.png-28.9kB

2.png-33.8kB

然后就進入操作系統的裝機界面了。裝完機以后我們查看,磁盤卷位置已經修改。

QQ截圖20180404212916.png-41.5kB

3.2 使用virt-install創建虛擬機

#創建一塊虛擬機的存儲磁盤 [root@localhost ~]# qemu-img create -f qcow2 /vm/chensiqi.qcow2 10G #qcow2格式磁盤 /vm/chensiqi.qcow2磁盤位置 10G為磁盤大小 Formatting '/vm/chensiqi.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off [root@localhost ~]# ll -h /vm/ 總用量 1.1G -rw-------. 1 qemu qemu 8.1G 4月 9 12:26 centos6.5-2.qcow2 #真占了8G -rw-r--r-- 1 qemu qemu 193K 4月 9 12:09 chensiqi.qcow2 #只是小文件 drwx------ 2 root root 16K 4月 4 09:03 lost+found

我們通過qemu-img來創建的磁盤在最初只是個小文件,直到磁盤空間被占滿。
然而我們通過virt-manager創建的磁盤卻真的占了8G

#創建一個虛擬機 [root@localhost ~]# virt-install \ #創建虛擬機命令 > --name=vm1 \ #虛擬機的名字 > --disk path=/vm/chensiqi.qcow2 \ #虛擬磁盤路徑 > --vcpus=1 --ram=1024 \ #分配的CPU和內存大小 > --cdrom=/iso/CentOS-6.5-x86_64-bin-DVD1.iso \ #系統安裝盤位置 > --network network=default \ #網絡模式,default為NAT > --graphics vnc,listen=0.0.0.0 \ #虛擬機的顯示類型為VNC > --os-type=linux \ > --os-variant=rhel6 

執行上邊的命令就會彈出Virt Viewer的窗口,進入裝機界面

QQ截圖20180410200507.png-456.4kB

3.3 半虛擬化驅動virtio

3.3.1 使用半虛擬化驅動virtio的目的

沒有virtio的全虛擬化的設備訪問路徑如下圖所示:

QQ截圖20180410200507.png-157.1kB

擁有virtio的全虛擬化的設備訪問路徑如下圖所示:

QQ截圖20180410200507.png-152.5kB

3.3.2 virtio的半虛擬化設備統一接口原則

QQ截圖20180410200507.png-151.1kB

3.3.3 Linux虛擬機直接選擇virtio半虛擬化驅動設備

QQ截圖20180410210541.png-59.1kB

QQ截圖20180410210635.png-61.3kB

3.4 QEMU Guest Agent

  • [x] 如果VM中安裝了QEMU guest agent,Host就可以使用libivrt向VM發送命令,例如“凍結”,“釋放”文件系統,虛擬CPU的熱添加及移除等。
  • [x] RHEL/CetnOS7中有相應的安裝包。qemu-guest-agent-xxx.rpm
  • [x] Windows需要手工安裝
#這個管理包已經安裝 [root@localhost ~]# rpm -qa | grep qemu-guest-agent qemu-guest-agent-2.5.0-3.el7.x86_64 [root@localhost ~]# which virsh /usr/bin/virsh

通過libvirt來使用QEMU guest agent

QQ截圖20180410220134.png-230.8kB

四,管理虛擬機

4.1 libvirt架構概述

QQ截圖20180410222125.png-103kB

libvirtd是一個守護進程,virsh,virt-install等等都是依靠這個守護進程來間接訪問qemu-kvm及配置文件。如果我們關閉這個進程,那么virsh,virsh-install,virt-manager就都不能訪問了。(同學們可以試一下)

4.2 使用virt-manager管理虛擬機

  • [x] virt-manager主要功能:
    • 定義和創建虛擬機
    • 硬件管理
    • 性能監視
    • 虛擬機的保存和恢復,暫停和繼續,關閉和啟動
    • 控制台
    • 在線和離線遷移
  • [x] virt-manager
    • 方法1:Applications菜單>System Tools>Virtual Machine Manager (virt-manager)
    • 方法2 :在SSH會話中輸入virt-manager

4.3 使用virsh來管理虛擬機

4.3.1 virsh概述

  • [x] virsh是使用libvirt management API構建的管理工具
  • [x] virsh的名稱的含義是virtualization shell。它有兩種工作模式
    • 立即模式
        [root@localhost ~]# virsh list --all Id 名稱 狀態 ---------------------------------------------------- 3 centos6.5-2 running 14 vm2 running - centos6.5 關閉 
    • 交互模式
        [root@localhost ~]# virsh
    歡迎使用 virsh,虛擬化的交互式終端。
    
    輸入:'help' 來獲得命令的幫助信息 'quit' 退出 virsh # list --all Id 名稱 狀態 ---------------------------------------------------- 3 centos6.5-2 running 14 vm2 running - centos6.5 關閉 virsh # 

4.3.2 關於virsh的命令幫助

virsh所支持的命令有很多,建議同學們從virsh的幫助里查看

[root@localhost ~]# virsh --help virsh [options]... [<command_string>] virsh [options]... <command> [args...] options: -c | --connect=URI hypervisor connection URI -d | --debug=NUM debug level [0-4] -e | --escape <char> set escape sequence for console -h | --help this help -k | --keepalive-interval=NUM keepalive interval in seconds, 0 for disable -K | --keepalive-count=NUM number of possible missed keepalive messages -l | --log=FILE output logging to file -q | --quiet quiet mode -r | --readonly connect readonly -t | --timing print timing information -v short version -V long version --version[=TYPE] version, TYPE is short or long (default short) commands (non interactive mode): **以下省略若干字** 

4.3.3 virsh常用命令

命令 概述
attach-device 使用XML文件中的設備定義在虛擬機中添加設備
attach-disk 在虛擬機中附加新磁盤設備
attach-interface 在虛擬機中附加新網絡接口
create 從XML配置文件生成虛擬機並啟動新虛擬機
define 為虛擬機輸出XML配置文件
destroy 強制虛擬機停止
detach-device 從虛擬機中分離設備,使用同樣的XML描述作為命令attach-device
detach-disk 從虛擬機中分離磁盤設備
detach-interface 從虛擬機中分離網絡接口
domblkstat 顯示正在運行的虛擬機的塊設備統計
domid 顯示虛擬機ID
domifstat 顯示正在運行的虛擬機的網絡接口統計
dominfo 顯示虛擬機信息
domname 顯示虛擬機名稱
domstate 顯示虛擬機狀態
domuuid 顯示虛擬機UUID
dumpxml 輸出虛擬機XML配置文件
help 打印基本幫助信息
list 列出所有虛擬機
migrate 將虛擬機遷移到另一台主機中
nodeinfo 有關管理程序的輸出信息
quit 退出這個互動終端
reboot 重新啟動虛擬機
restore 恢復以前保存在文件中的虛擬機
resume 恢復暫停的虛擬機
save 將虛擬機當前狀態保存到某個文件中
setmaxmem 為管理程序設定內存上限
setmem 為虛擬機設定分配的內存
setvcpus 修改為虛擬機分配的虛擬CPU數目
shutdown 關閉某個虛擬機
start 啟動未激活的虛擬機
suspend 暫停虛擬機
undefine 刪除與虛擬機關聯的所有文件
vcpuinfo 顯示虛擬機的虛擬CPU信息
vcpupin 控制虛擬機的虛擬CPU親和性
version 顯示virsh版本

4.3.4 實操演示virsh管理虛擬機

(1)通過命令開啟和關閉虛擬機

#交互模式管理虛擬機
#啟動虛擬機
[root@localhost ~]# virsh   #進入交互模式
歡迎使用 virsh,虛擬化的交互式終端。

輸入:'help' 來獲得命令的幫助信息 'quit' 退出 virsh # list #顯示所有啟動狀態的虛擬機 Id 名稱 狀態 ---------------------------------------------------- 3 centos6.5-2 running 14 vm2 running virsh # list --all #顯示所有虛擬機 Id 名稱 狀態 ---------------------------------------------------- 3 centos6.5-2 running 14 vm2 running - centos6.5 關閉 virsh # start centos6.5 #啟動名稱為centos6.5的虛擬機 域 centos6.5 已開始 virsh # list --all Id 名稱 狀態 ---------------------------------------------------- 3 centos6.5-2 running 14 vm2 running 15 centos6.5 running #已經啟動了 #關閉虛擬機 virsh # shutdown 14 #shutdown優雅的關閉計算機,但有時我們這樣關閉不了 域 14 被關閉 virsh # list --all Id 名稱 狀態 ---------------------------------------------------- 3 centos6.5-2 running 14 vm2 running #仍舊在運行 - centos6.5 關閉 virsh # destroy 14 #destroy強制關閉虛擬機 域 14 被刪除 virsh # list --all Id 名稱 狀態 ---------------------------------------------------- 3 centos6.5-2 running - centos6.5 關閉 - vm2 關閉 #被強制關閉了。

(2)通過命令來設定虛擬機的主機開啟自動引導啟動

關於主機開機引導時是否自動啟動虛擬機,我們可以通過虛擬機的圖形界面或者命令來設置,圖形界面設置方式如下圖所示:

QQ截圖20180418093116.png-54.3kB

[root@localhost ~]# virsh list --all Id 名稱 狀態 ---------------------------------------------------- 1 vm2 running #設置主機開機自動引導后,重啟我們發現虛擬機自動開啟 - centos6.5 關閉 - centos6.5-2 關閉 

我們通過命令來控制虛擬機的開機自動引導

[root@localhost ~]# virsh 歡迎使用 virsh,虛擬化的交互式終端。 輸入:'help' 來獲得命令的幫助信息 'quit' 退出 virsh # help autostart #查看autostart的幫助 NAME autostart - 自動開始一個域 SYNOPSIS autostart <domain> [--disable] DESCRIPTION 設置一個域在啟動時自動開始. OPTIONS [--domain] <string> 域名,id 或 uuid #可以通過域名,id或uuid來控制 --disable 禁止自動啟動 virsh # list --all Id 名稱 狀態 ---------------------------------------------------- 1 vm2 running - centos6.5 關閉 - centos6.5-2 關閉 virsh # autostart centos6.5 #開啟虛擬機的開機自引導 域 centos6.5標記為自動開始 virsh # autostart centos6.5 --disable #關閉虛擬機開機自引導 域 centos6.5取消標記為自動開始 virsh # autostart centos6.5 域 centos6.5標記為自動開始 

重啟主機后,我們發現虛擬機已經可以自動啟動

[root@localhost ~]# virsh list --all Id 名稱 狀態 ---------------------------------------------------- 1 vm2 running 2 centos6.5 running - centos6.5-2 關閉 

(3)通過命令進行虛擬機的暫停和喚醒

[root@localhost ~]# virsh
歡迎使用 virsh,虛擬化的交互式終端。

輸入:'help' 來獲得命令的幫助信息 'quit' 退出 virsh # help suspend #查看命令幫助 NAME suspend - 掛起一個域 SYNOPSIS suspend <domain> DESCRIPTION 掛起一個運行的域。 OPTIONS [--domain] <string> 域名,id 或 uuid virsh # list --all Id 名稱 狀態 ---------------------------------------------------- 1 vm2 running 2 centos6.5 running - centos6.5-2 關閉 virsh # suspend vm2 #暫停虛擬機 域 vm2 被掛起 virsh # list --all Id 名稱 狀態 ---------------------------------------------------- 1 vm2 暫停 #成功 2 centos6.5 running - centos6.5-2 關閉 virsh # resume vm2 #喚醒虛擬機 域 vm2 被重新恢復 virsh # list --all Id 名稱 狀態 ---------------------------------------------------- 1 vm2 running 2 centos6.5 running - centos6.5-2 關閉 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM