KVM虛擬機管理指南(純命令行模式)

使用KVM需要以下幾個前提條件:

    1. CPU必需支持虛擬化,可以在/proc/cpuinfo文件中想找flags,如果是inter的顯示爲vmx,amd的顯示爲svm

    2. CPU必需支持64位操作系統,可以在上述文件中查找lm標記,如果有則支持

    3. 系統必需爲64爲的RHEL,且系統版本爲RHEL6.4及以上爲最佳

    4. 必需在BIOS裏開啓CPU的VT功能

KVM虛擬機文件管理:

    默認的KVM虛擬機工作目錄爲/var/lib/libvirt

    配置文件存在於/etc/libvirt/qemu/目錄下,以主機名稱+xml結尾的文件即其相關虛擬機的配置文件,需要修改其配置,也可以直接修改xml文件實現(不建議)。其中autostart目錄定義的配置文件會隨主機一起啓動,而network定義了虛擬機使用橋接網絡時的網關網卡的相關配置。

KVM配置實例:

    1. 配置安裝RHEL6/Centos 6服務器,並安裝虛擬化軟件

        #yum groupinstall -y "Virtualization" "Virtualization Client" "Virtualization Platform" "Virtualization Tools"

    2. 添加開機啓動,並啓動服務

        #chkconfig libvirtd on

        #service libvirtd start

    3. 鏡像文件管理--直接創建

        創建一個鏡像:# cd /var/lib/libvirt/images ; qemu-img create -f qcow2 test1.img 5G

        更改鏡像格式:# qemu-img convert -f raw -o qcow2 test.img test1.img

        增加鏡像文件空間: # qemu-img resize test1.img 1G

        查看鏡像文件格式:# qemu-img info test1.img

    4. 除了鏡像來管理存儲,kvm還支持存儲池

        定義存儲池:virsh pool-define-as kvm_images dir "/kvm/images"

        查看存儲池:virsh pool-list --all

        建立基於文件夾的存儲池:virsh pool-build kvm_images

        使存儲池生效:virsh pool-start kvm_images

        驗證存儲池:virsh pool-info kvm_images

        創建完存儲池後,就可以通過創建卷的方法來創建虛擬機的磁盤:

        創建卷:virsh vol-create-as kvm_images test1.img 10G --format qcow2

        刷新池:virsh pool-refresh kvm_images

        查看存儲池裏面的卷信息:virsh vol-list kvm_images

        查看單個卷的信息:virsh vol-info test1.img kvm_images

        查看單個卷的詳細信息:virsh vol-dumpxml test1.img kvm_images

    5. 使用virt-install初始化安裝一個Centos系統

        # virt-install --connect qemu:///system \ #如果使用kvm安裝,並且使用的root,默認爲此,基於xen或者其它,可參考man virt-install

        --n test1 \    #指定虛擬機的顯示名稱

        --c /mnt/centos6.4-x86_64.iso    #指定安裝鏡像,也可以指定cdrom直接安裝,如:-c /dev/sr0

        --r 2048 \    #指定內存,默認爲MB

        --arch=x86_64 \    #指定arch模型

        --vcpus=2 --check-cpu --cpuset=0-1 \ #指定cpu0,1作爲虛擬機的CPU,此處綁定了CPU

        --os-type=linux --os-variant=rhel6 \    #指定系統類型和版本

        --disk path=/var/lib/libvirt/images/test1.img,device=disk,bus=virtio,spare=true -s 10 \ #指定磁盤信息,使用virtio驅動加載

        --network bridge=br0 \    #指定橋接模式,並指定通過br0網卡進行橋接

        --noautoconsol --autostart \ #不自動開啓控制檯,並且隨主機自啓動

        --vnc    #提供vnc端口訪問,在這裏可以設置密碼,也可以不設置

        --force

    6. 虛擬機管理--virsh

        虛擬機狀態管理:

            開機:virsh start test1

            關機:virsh shutdown test1

            強制關機:virsh destroy test1

            重新啓動:virsh reboot test1

            通過配置文檔啓動主機:virsh create /etc/libvirt/qemu/test1.xml

            查看主機狀態:virsh list --all

            停止/掛機虛擬機:virsh suspend test1

            保存虛擬機:virsh save test1

            還原虛擬機:virsh resume test1

        從一個已存在的設備配置文件新建一個虛擬機:

            virsh dumpxml test1 >/etc/libvirt/qemu/test2.xml

            qemu-img create -f qcow2 test2.img 20G

            這時需要對其配置中的uuid,id,name,以及新的硬盤鏡像文件,mac地址等信息進行更改,更改完成後,就可以通過下面的命令啓動虛擬機的安安

            virsh create /etc/libvirt/qemu/test2.xml

        修改內存/CPU:

            修改內存大小:virsh setmem test1 4G    #默認單位爲KB

            設置內存的最大值:virsh setmaxmem test1 8G

            增大VCPU數量:virsh setvcpus test1 8

        添加/刪除設備:

            添加一塊硬盤:

                首先需要創建一個鏡像,但是qemu-img創建的鏡像沒有被處理過(分區及格式化),因此可以使用libguestfs插件創建一個可以直接使用的磁盤分區:

                    yum install -y libguestfs

                    virt-make-fs -F qcow2 -t ext4 -s 50G /var/lib/libvirt/image/test1-1.img

                然後將新的磁盤信息錄入到test1.xml文件當中(通過命令virsh edit test1來修改爲佳):

                    <disk type='file' device='disk'>
                        <driver name='qemu' type='qcow2'/>
                        <source file='/var/lib/libvirt/image/test1-1.img'/>
                        <target dev='hdf' bus='virtio' type='virtio'/>
                    </disk>

                最後執行添加設備的命令:

                    virsh attach-device test1 /etc/libvirt/qemu/test1.xml

                如果需要刪除此設備,將xml文件中的設備信息刪除後,執行以下命令即可:

                    virsh detach-device test1 /etc/libvirt/qemu/test1.xml

        備份/還原:

            備份:virsh save --bypass-cache test1 /var/lib/libvirt/save/test1_1.save --running

            還原:virsh restore /var/lib/libvirt/save/test1_1.save --bypass-cache --running

        快照管理:

            如果要使用kvm的快照功能,就必須使用qcow2的磁盤格式,而raw只支持內存快照,如果不是,請參考第3節內容修改

            查看快照:virsh snapshot-list test1

            創建快照:virsh snapshot-create test1 test1.snap1

            恢復到快照:virsh snapshot-revert test1 test1.snap1

            刪除快照:virsh snapshot-delete test1 test1.snap1

    7. KVM虛擬機的遷移

        其實瞭解了上面的操作之後,就明白,KVM虛擬機依靠兩個主要文件來啓動,一個是img文件,一個是xml配置文件。因此遷移的時候,可以直接遷移這兩個文件就能實現靜態遷移。如果img文件存放在共享存儲,則更爲方便,只用遷移xml配置文件,就可以實現靜態遷移。

        當然,virsh命令也可以遷移虛擬機,不過要求目標主機與當前主機的應用環境須保持一致,其命令格式如下:

            virsh migrate --live test1 qemu+tcp//destnationip/system tcp://destnationip

        

結語:KVM還有許多其它方面的功能,如與VM之間的遷移、windows的擴展支持等功能,如果有興趣的同學,可以參考man手冊,其中已經提供了非常詳細的用法說明。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章