KVM虛擬機器的管理主要是通過virsh命令對虛擬機器進行管理。廢話不多說,下面列出kvm日常管理中的命令
1)檢視KVM虛擬機器配置檔案及執行狀態 KVM虛擬機器預設配置檔案位置: /etc/libvirt/qemu/ autostart目錄是配置kvm虛擬機器開機自啟動目錄。 virsh命令幫助 # virsh -help 或直接virsh命令和,再執行子命令。如下所示。 # virsh 歡迎使用 virsh,虛擬化的互動式終端。 輸入:'help' 來獲得命令的幫助資訊 'quit' 退出 virsh # help ....... 檢視kvm虛擬機器狀態 #virsh list --all 2)KVM虛擬機器開機 # virsh start oeltest01 3)KVM虛擬機器關機或斷電 關機 預設情況下virsh工具不能對linux虛擬機器進行關機操作,linux作業系統需要開啟與啟動acpid服務。在安裝KVM linux虛擬機器必須配置此服務。 # chkconfig acpid on # service acpid restart virsh關機 # virsh shutdown oeltest01 強制關閉電源 # virsh destroy wintest01 4)通過配置檔案啟動虛擬機器 # virsh create /etc/libvirt/qemu/wintest01.xml 5)配置開機自啟動虛擬機器 # virsh autostart oeltest01 autostart目錄是kvm虛擬機器開機自啟動目錄,可以看到該目錄中有KVM配置檔案連結。 6)匯出KVM虛擬機器配置檔案 # virsh dumpxml wintest01 > /etc/libvirt/qemu/wintest02.xml KVM虛擬機器配置檔案可以通過這種方式進行備份。 7)新增與刪除KVM虛擬機器 刪除kvm虛擬機器 # virsh undefine wintest01 說明:該命令只是刪除wintest01的配置檔案,並不刪除虛擬磁碟檔案。 重新定義虛擬機器配置檔案 通過匯出備份的配置檔案恢復原KVM虛擬機器的定義,並重新定義虛擬機器。 # mv /etc/libvirt/qemu/wintest02.xml /etc/libvirt/qemu/wintest01.xml # virsh define /etc/libvirt/qemu/wintest01.xml 8)編輯KVM虛擬機器配置檔案 # virsh edit wintest01 virsh edit將呼叫vi命令編輯/etc/libvirt/qemu/wintest01.xml配置檔案。也可以直接通過vi命令進行編輯,修改,儲存。 可以但不建議直接通過vi編輯。 # vim /etc/libvirt/qemu/wintest01.xml 9)irsh console 控制檯管理linux虛擬機器 配置virsh console見下文 kvm虛擬化學習筆記(六)之kvm虛擬機器控制檯登入配置 # virsh console oeltest01 10)其它virsh命令 掛起伺服器 # virsh suspend oeltest01 恢復伺服器 # virsh resume oeltest01 virsh命令豐富。可以執行各種維護任務,本文只是從維護與管理的角度例舉了常用的命令,為該命令的使用提供一個思路。 -------------------------------------------其他命令------------------------------------------- 1)建立虛擬機器 [root@localhost ~]# virt-install --name=centos1 \ #生成一個虛擬機器 --ram 1024 --vcpus=1 \ --disk path=/root/centos1.img,size=10 \ --accelerate --cdrom /root/CentOS-6.5-x86_64-bin-DVD1.iso \ --graphics vnc,port=5921 --network bridge=br0 2)virsh的其他操作 [root@localhost /]# virsh start centos1 #啟動虛擬機器 [root@localhost /]# virt-viewer centos1 #如果有圖形介面的話,可以進入虛擬機器的介面 [root@localhost ~]# virsh shutdown centos1 #關閉虛擬機器 [root@localhost /]# virsh reboot centos1 #重啟虛擬機器 [root@localhost /]# virsh suspend centos1 #暫停虛擬機器 [root@localhost /]# virsh resume centos1 #恢復虛擬機器 [root@localhost /]# virsh autostart centos1 #自動載入虛擬機器 -------------------------------------------virsh引數如下------------------------------------------- autostart #自動載入指定的一個虛擬機器 connect #重新連線到hypervisor console #連線到客戶會話 create #從一個SML檔案建立一個虛擬機器 start #開始一個非活躍的虛擬機器 destroy #刪除一個虛擬機器 define #從一個XML檔案定義一個虛擬機器 domid #把一個虛擬機器名或UUID轉換為ID domuuid #把一個鬱悶或ID轉換為UUID dominfo #檢視虛擬機器資訊 domstate #檢視虛擬機器狀態 domblkstat #獲取虛擬機器裝置快狀態 domifstat #獲取虛擬機器網路介面狀態 dumpxml #XML中的虛擬機器資訊 edit #編輯某個虛擬機器的XML檔案 list #列出虛擬機器 migrate #將虛擬機器遷移到另一臺主機 quit #退出非互動式終端 reboot #重新啟動一個虛擬機器 resume #重新恢復一個虛擬機器 save #把一個虛擬機器的狀態儲存到一個檔案 dump #把一個虛擬機器的核心dump到一個檔案中以方便分析 shutdown #關閉一個虛擬機器 setmem #改變記憶體的分配 setmaxmem #改變最大記憶體限制值 suspend #掛起一個虛擬機器 vcpuinfo #虛擬機器的cpu資訊 version #顯示virsh版本 3)virt-clone,如果我們要建幾個一樣的虛擬機器,這個命令,非常有用! # virt-clone --connect=qemu:#/system -o centos1 -n centos3 -f /root/centos3.img #克隆centos1 正在克隆 centos1.img | 10.0 GB 00:07 Clone 'centos3' created successfully. libguestfs-tools是虛擬機器一個管理包,很有用的工具 [root@localhost ~]# yum -y install libguestfs-tools #安裝工具包 4)未登入的情況下,檢視映象目錄 [root@localhost ~]# virt-ls centos.img /home #檢視centos.img映象檔案中/home目錄 tank 5)未登入的情況下,將映象檔案中的檔案copy出來 [root@localhost ~]# virsh list --all #檢視所有的虛擬機器名稱 Id 名稱 狀態 ---------------------------------------------------- 1 centos1 running 2 centos6.5 running - arch 關閉 - arch1 關閉 - arch2 關閉 - arch3 關閉 - arch5 關閉 - centos3 關閉 - ubuntu 關閉 - ubuntu1 關閉 [root@localhost ~]# virt-copy-out -d centos1 /etc/passwd /tmp #將centos1中的檔案copy到tmp下面 6)檢視虛擬機器的分割槽情況 [root@localhost ~]# virt-filesystems -d centos1 /dev/sda1 /dev/VolGroup/lv_root [root@localhost ~]# virt-list-partitions /root/centos.img /dev/sda1 /dev/sda2 [root@localhost ~]# virt-df centos.img Filesystem 1K-blocks Used Available Use% centos.img:/dev/sda1 495844 34510 435734 7% centos.img:/dev/VolGroup/lv_root 8780808 2842056 5492700 33% 7)mount虛擬機器 [root@localhost ~]# guestmount -a /root/centos.img -m /dev/VolGroup/lv_root --rw /mnt/usb [root@localhost ~]# cd /mnt/usb/ [root@localhost usb]# ls bin dev home lib64 media mnt opt root selinux sys usr boot etc lib lost+found misc net proc sbin srv tmp var 8)修改kvm中虛擬機器的記憶體大小 [root@nfs ~]# virsh edit vm01 ##注意vi直接編輯不生效 vm01 df8604c1-dcf3-fa98-420f-6eea7b39c395 1048576 ###本來開始設定為1G,現在這個單位是k 1048576 修改為1.5G [root@nfs ~]# expr 1536 \* 1024 1572864</p> <p>[root@nfs ~]# virsh list Id Name State ---------------------------------- 1 win2003 running 3 vm01 running [root@nfs ~]# virsh shutdown vm01 ###修改配置檔案後需要重新啟動下虛擬機器,先關閉它 Domain vm01 is being shutdown >[root@nfs ~]# virsh list ###確認已經被關閉 Id Name State ---------------------------------- 1 win2003 running [root@nfs ~]# virsh start vm01 ###啟動它 Domain vm01 started [root@nfs ~]# virsh list Id Name State ---------------------------------- 1 win2003 running 3 vm01 running 到機器上檢視記憶體大小: [root@vm01 liuxiaojie]# free -m total used free shared buffers cached Mem: 1505 618 886 0 29 361 -/+ buffers/cache: 227 1277 Swap: 2000 0 2000 9)刪除一個虛擬機器(vm01),可以刪除一個狀態為“shut off”的虛擬機器 [root@nfs qemu]# virsh undefine vm01 [root@nfs qemu]# rm -f /home/data/vm01.img 10)刪除一個域 [root@nfs web01]# virsh list --all Id Name State ---------------------------------- 1 web01 running ##處於工作狀態 - myweb01 shut off - myweb03 shut off - mywin2003 shut off - myxp shut off - xp shut off [root@nfs web01]# virsh undefine web01 ##處於工作狀態也能刪除! Domain web01 has been undefined [root@nfs web01]# virsh list Id Name State ---------------------------------- 1 web01 running [root@nfs web01]# virsh destroy web01 Domain web01 destroyed [root@nfs web01]# virsh list --all ##web01已經沒有了! Id Name State ---------------------------------- - myweb01 shut off - myweb03 shut off - mywin2003 shut off - myxp shut off - xp shut off [root@nfs web01]# virsh define web01 error: Failed to open file 'web01': No such file or directory -------------------------------------------virsh相關命令------------------------------------------- 1)安裝libvirt #yum install kvm virt-* libvirt 2)檢查是否安裝成功 #lsmod |grep kvm 3)相關命令 #virsh -c qemu:#/system list #virsh list #virsh list --all #檢視所有狀態的虛擬機器 #virsh shutdown myWin7 #關閉myWin7虛擬機器 #virsh destroy myWin7 #刪除myWin7虛擬機器 #virsh start node4 #開機虛擬機器 #virsh define /etc/libvirt/qemu/node5.xml #根據主機配置文件新增虛擬機器 #virsh dumpxml node4 > /etc/libvirt/qemu/node6.xml #將node4虛機的配置檔案儲存至node6.xml #virsh edit node6 #修改node6的配置檔案 #virsh suspend vm_name #暫停虛擬機器 #virsh resume vm_name #恢復虛擬機器 4)vm配置檔案路徑 /etc/libvirtd/qemu/***.xml 可以通過vim對配置檔案進行管理,編輯後需要#service libvirtd restart(不會對現有VM有影響。)