一,KVM概述
1.1 虛擬化概述
在計算機技術中,虛擬化意味着建立設備或資源的虛擬版本,如服務器,存儲設備,網絡或者操做系統等等node
- [x] 虛擬化技術分類:
- 系統虛擬化(咱們主要討論的反向)
- 存儲虛擬化(raid,lvm)
- 網絡虛擬化(sdn)
- GPU虛擬化(比特幣)
- 軟件虛擬化
- 硬件支持虛擬化
1.1.1 系統虛擬化
- 這種虛擬化一般表現爲在單一系統上運行多個操做系統
- 這些虛擬操做系統同時運行,每一個操做系統又是相互獨立
1.1.2 虛擬化的三種實現方式
(1)純軟件仿真python
- 經過模擬完整的硬件環境來虛擬化用戶平臺
- 模擬X86,ARM,PowerPC等多種CPU
- 效率比較低
- QEMU,Bochs,PearPC
(2)虛擬化層翻譯linux
- 多數的虛擬化而採用虛擬機管理程序Hypervisor
- Hypervisor是一個軟件層或子系統
- 也稱爲VMM(Virtual Machine Monitor,虛擬機監控器)
- 容許多種操做系統在相同的物理系統中運行
- 控制硬件並向用戶操做系統提供訪問底層硬件的途徑
- 向來賓操做系統提供虛擬化的硬件
無硬件輔助的全虛擬化ios
- 基於二進制翻譯的全虛擬化
- Hypervisor運行在Ring 0
- Guest OS運行在Ring 1
- 機制:異常,捕獲,翻譯
- 示例:
- VMware Workstation
- QWMU
- Virtual PC
硬件輔助的全虛擬化docker
- Intel VT 和 AMD-V建立一個新的Ring -1 單獨給Hypervisor使用
- Guest OS能夠直接使用Ring 0 而無須修改
- 示例:
- VMware ESXi
- Microsoft Hyper-V
- Xen3.0
- KVM
(3)容器技術shell
1.2 KVM概述與相關參考資料
二,KVM安裝
2.1 實現環境準備
CentOS7.3DVD鏡像下載地址:http://man.linuxde.net/download/CentOS_7_3vim
2.1.1 生產環境硬件配置
- CPU必須支持虛擬化技術,在BIOS設置爲啓動
- 目前,多數服務器基礎桌面計算機均處理啓動狀態
2.1.2 實驗準備
咱們須要先用虛擬機,而後在虛擬機裏再用虛擬化,也就是嵌套虛擬化windows
- VMware 嵌套虛擬化
- 產品:Workstation,Player,ESXi
- 支持:ESXi,Hyper-V,KVM,Xen
2.2 KVM安裝
裝機時虛擬機須要安裝以下軟件centos
進入後,ifconfig咱們發現api
網卡並無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 #打開這個
而後重啓網絡服務
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特性
#檢查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
可是,咱們在工做中一般須要遠程來管理KVM的環境。而SSH方式是看不到桌面模式的。
2.3.1 KVM的兩種遠程管理方式
(1)SSH圖形化顯示
windows安裝軟件x-manager。而後xshell軟件開啓X11轉發
而後咱們鏈接上虛擬機之後,輸入virt-manager出現下圖
(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
三,建立虛擬機
3.1 使用virt-manager建立虛擬機
- [x] virt-manager 基本使用
- [x] 實驗
- 環境準備
- 建立Windows虛擬機
- 建立Linux虛擬機
(1)咱們須要添加一塊80G的硬盤來存儲操做系統的安裝介質,ISO文件
(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目錄下:
3.1.1 virt-manager基本使用
- [x] 啓動virt-manager
- [x] 虛擬機管理主窗口
- [x] 硬件細節窗口
- 配置虛擬機啓動選項
- 附加USB設備給虛擬機
- 準備工做
- USB重定向
- [x] 虛擬機圖形控制檯
- [x] 添加遠程鏈接
- [x] 顯示虛擬機細節
- [x] 性能監視
(1)使用嚮導的默認配置來建立虛擬機
啓動VNC遠程管理程序鏈接Linux,打開Virtual Machine Manager
點擊建立新的虛擬機
選擇本地安裝iso鏡像
最後新建的虛擬機自動進入裝機狀態
同窗們選擇全英文,最小化裝機便可。因爲我們是嵌套的虛擬化,裝機圖形界面可能稍微有點卡。不過不要緊,等一下就好。
特別提示:
當咱們以virt-manager進行手動管理建立虛擬機時,有可能在進入安裝操做系統界面時大概率遭遇到鍵盤失靈的狀況。若是同窗們遇到這個問題,不要着急,這是由於字符集混亂識別的問題,咱們須要調整一下虛擬機的設置後,便可恢復。
咱們作以下調整便可。
而後咱們正常開機就會進入裝機界面,你會發現鍵盤的操做恢復了。。。
(2)以自定義規劃方式建立虛擬機
咱們發現按照嚮導的默認方式安裝虛擬機,虛擬機的磁盤並無放在咱們規劃好的目錄裏
所以在工做中,咱們須要在安裝過程當中進行自定義存儲池的操做,步驟以下
到此咱們新的VM存儲池就建立完了,可是在存儲池裏咱們還須要建立一個Volume卷(磁盤)
而後就進入操做系統的裝機界面了。裝完機之後咱們查看,磁盤卷位置已經修改。
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的窗口,進入裝機界面
3.3 半虛擬化驅動virtio
3.3.1 使用半虛擬化驅動virtio的目的
沒有virtio的全虛擬化的設備訪問路徑以下圖所示:
擁有virtio的全虛擬化的設備訪問路徑以下圖所示:
3.3.2 virtio的半虛擬化設備統一接口原則
3.3.3 Linux虛擬機直接選擇virtio半虛擬化驅動設備
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
四,管理虛擬機
4.1 libvirt架構概述
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)經過命令來設定虛擬機的主機開啓自動引導啓動
關於主機開機引導時是否自動啓動虛擬機,咱們能夠經過虛擬機的圖形界面或者命令來設置,圖形界面設置方式以下圖所示:
[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 關閉