KVM虛擬機管理及性能優化
阿新 • • 發佈:2018-08-07
eat 數據 fin 恢復刪除 func hostname ddr 控制 恢復 KVM虛擬機管理及性能優化
本章接上一篇文章繼續為大家講解KVM的操作命令、KVM文件管理、虛擬機的克隆、虛擬機快照以及 KVM性能優化。?
本章接上一篇文章繼續為大家講解KVM的操作命令、KVM文件管理、虛擬機的克隆、虛擬機快照以及 KVM性能優化。
?
- 使用KVM命令集管理虛擬機
-
KVM關機開機命令
# virsh -h //查看命令幫助 # virsh list --all //查看虛擬機狀態 # virsh shutdown CentOS7.4-x86_64 //關閉虛擬機 # virsh start CentOS7.4-x86_64 //啟動虛擬機 # virsh destroy CentOS7.4-x86_64 //強制關機 # virsh create /etc/libvirt/qemu/CentOS7.4-x86_64.xml //通過配置文件啟動虛擬機
?
-
掛起和恢復
# virsh suspend CentOS7.4-x86_64 //掛起虛擬機 # virsh resume CentOS7.4-x86_64 //恢復虛擬機
-
設置隨宿主機開機自啟動
# virsh autostart CentOS7.4-x86_64
-
導出虛擬機配置
# virsh dumpxml CentOS7.4-x86_64 > /etc/libvirt/qemu/test01.xml
-
刪除虛擬機
# virsh shutdown CentOS7.4-x86_64 //先關閉 # virsh undefine CentOS7.4-x86_64 //再刪除
?
-
通過備份恢復刪除的虛擬機
# cd /etc/libvirt/qemu/ # mv test01.xml CentOS7.4-x86_64 # virsh define CentOS7.4-x86_64 //重新定義虛擬機
-
修改配置文件
# virsh edit CentOS7.4-x86_64 # vim /etc/libvirt/qemu/CentOS7.4-x86_64.xml
?
- KVM文件管理
- 通過文件管理可以直接查看、修改、復制虛擬機的內部文件。例如:系統因為配置問題無法啟動時,可以直接修改虛擬機的文件。虛擬機的磁盤文件有 raw和 qcow2 兩種格式。 KVM默認格式是raw,raw格式性能最好、速度最快,其缺點是不支持一些新的功能,如鏡像、Zlib磁盤壓縮、AES加密等。
- 這裏介紹本地yum安裝的libguestfs-tools後產生的命令行工具(這個工具可以查看qcow2格式的磁盤文件)
?
-
1:轉換raw格式磁盤文件至qcow2格式
?# yum install libguestfs-tools -y //安裝命令行工具 # qemu-img info /vdir/CentOS-7.4-x86_64.img //查看當前磁盤格式 關機後 磁盤轉換成qcow2格式 # virsh shutdown CentOS7.4-x86_64 # qemu-img convert -f raw -O qcow2 /vdir/CentOS-7.4-x86_64.img /vdir/CentOS-7.4-x86_64.qcow2
?
-
2:修改xml配置文件
?# virsh edit CentOS7.4-x86_64 //編輯xml配置文件 <devices> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type=‘file‘ device=‘disk‘> <driver name=‘qemu‘ type=‘qcow2‘/> #修改qcow2 <source file=‘/vdir/CentOS-7.4-x86_64.qcow2‘/> #修改qcow2 <target dev=‘vda‘ bus=‘virtio‘/> <address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x06‘ function=‘0x0‘/> </disk>
?
-
3:命令使用
virt-cat 命令類似cat
virt-edit 命令用於編輯文件,用法與vim基本一致
virt-df 命令用於查看虛擬機磁盤信息
?# virt-cat -a /vdir/CentOS-7.4-x86_64.qcow2 /etc/hostname //查看虛擬機主機名 # virt-df -h CentOS7.4-x86_64 //查看虛擬機掛載磁盤信息 # virt-edit -a /vdir/CentOS-7.4-x86_64.qcow2 /etc/resolv.conf //編輯DNS客戶機配置文件
?
? -
虛擬機克隆
# virt-clone -o CentOS7.4-x86_64 -n test01 -f /vdir/test01.qcow2 //從 CentOS7.4-x86_64 克隆 test01
?
-
虛擬機快照
# virsh start test01 # virsh snapshot-create test01 //創建快照 # virsh snapshot-current test01 //查看快照版本信息 # virsh snapshot-list test01 //查看快照信息 # virsh snapshot-revert test01 1533636617 //恢復虛擬機至1533636617 # virsh snapshot-delete test01 1533636876 //刪除快照
?
?
?
-
KVM性能優化
KVM的優化思路及步驟?
KVM采用全虛擬化技術,全虛擬化要由一個軟件來模擬硬件層,故有一定的損耗,特別是I/O,因此需要優化。 -
1:CPU優化
所有guestcpu 不要超過物理機的CPU總數,建議復制主機CPU配置。 - 2:內存優化
-
1) :KSM(相同頁合並)開啟KSM會將相同的內存合並
# cd /sys/kernel/mm/ksm/ //這個目錄可查看內存頁共享的情況 # ll //查看 pages_shared 記錄了KSM共享的總頁面數 pages_sharing 文件中記錄了當前共享頁面數 # echo 1 > run //臨時開啟KSM 或者可以在/etc/rc.local 添加 echo 1 > /sys/kernle/mm/ksm/ 開機自啟動 # cat run //查看KSM是否開啟 0為關閉 1為開啟 # echo 1000 > pages_to_scan // 決定每次查看多少個頁面 默認100 最大不超過2000 越大越好
- 2) :對內存設置限制
-
為了防止某個虛擬機無節制的使用資源
# virsh memtune test01 //查看虛擬機test01 內存限制
? -
設置強制最大內存
virsh memtune test01 --hard-limit 1024000 --live //設置強制最大內存100MB 在線生效
?
?
- 3) :大頁後端內存
-
提升大頁後端內存,減少客戶機消耗的內存並提高TLB命中率從而提升KVM性能
# cat /proc/meminfo //查看內存信息,無可用大頁
# echo 25000 > /proc/sys/vm/nr_hugepages //指定大頁需要的內存頁面數(臨時生效) # sysctl -w vm.nr_hugepages=25000 //效果和上面一樣(永久生效) # cat /proc/meminfo | grep HugePage
?
-
編輯虛擬機的XML配置文件來使用大頁分配內存
virsh destroy test01 //關閉虛擬機 # virsh edit test01 //編輯xml配置文件 <currentMemory unit=‘KiB‘>2097152</currentMemory> <memoryBacking><hugepages/></memoryBacking> //添加使用大頁 <vcpu placement=‘static‘>1</vcpu> # mount -t hugetlbfs /dev/hugepages/ //掛載hugetlbfs文件系統 # systemctl restart libvirtd.service //重啟服務
?
- 3:I/O優化
- 控制每臺虛擬機對磁盤資源的消耗
-
調整I/O的權重 ,權重越高寫入磁盤的優先級越高。
# virsh blkiotune test01 //查看權重 # virsh blkiotune test01 --weight 500 //設置權重500 範圍在100~1000 # virsh blkiotune --help //查看使用幫助
?
- 系統調優工具
-
用來監控和收集系統各個組件的數據,並依據數據提供的信息動態調整系統設置,達到動態優化系統的目的。
# yum install tuned -y //安裝tuned工具 # systemctl start tuned.service //啟動tuned工具 # tuned-adm active //查看當前優化方案 # tuned-adm list //查看預先設定好的優化方案
KVM虛擬機管理及性能優化