一. 在vmware上安裝kvm
開啟vmware虛拟機cpu的虛拟化
進入虛拟機centos7系統,檢視cpu資訊是否開啟虛拟化
<code>grep -e ‘(vmx|svm)’ /proc/cpuinfo</code>
出現如下,表示開啟cpu虛拟化成功:
安裝軟體包
<code>yum -y install qemu-kvm libvirt virt-install</code>
解釋:qemu-kvm 用來使用者管理使用kvm的包
libvirt 用來系統管理kvm的工具
virt-install 用來安裝kvm虛拟機的工具
啟動libvirtd服務,會産生一個虛拟網卡
檢視虛拟網卡是否生成
準備磁盤和鏡像,準備安裝kvm虛拟機
raw格式:
第一步生成磁盤檔案:
<code>qemu-img create -f raw /opt/centos-7-x86_64.raw 10g</code>
第二步在主控端裡面上傳一個鏡像檔案
第三步建立虛拟機:
解釋:--virt-type 指定格式為kvm
--name 指定虛拟機名字
--ram 指定虛拟機記憶體大小 機關m
--cdrom 指定鏡像檔案路徑
--disk path 指定磁盤檔案路徑
--network 指定網絡模式
建立虛拟機磁盤
<code>qemu-img create -f qcow2 /tmp/test.qcow2 10g</code>
建立虛拟機
在win上用vnc連接配接
輸入完成建立虛拟機的指令後,會看到以下提示
然後迅速用vnc連接配接虛拟機,輸入ip為主控端ip,預設端口5900
按tab鍵,輸入net.ifnames=0 biosdevname=0
這個是用來設定預設網卡名的,如eth0,這裡不設定的話預設網卡名很亂
然後就可以正常安裝系統了
主控端檢視虛拟機狀态
<code>virsh list --all</code>
virsh start rh7-1 開啟虛拟機
virsh start|reboot|shutdown 虛拟機名稱
檢視kvm節點(伺服器)資訊:virsh nodeinfo
檢視指定虛拟機的資訊:virsh dominfo 虛拟機名稱
強制關閉指定的虛拟機virsh destroy 虛拟機名稱
virsh autostart nsd #設定虛拟機開機自起動
virsh autostart --disable nsd #關閉自起動
虛拟機描述檔案預設路徑: /etc/libvirt/qemu
檢視磁盤鏡像檔案資訊qemu-img info /var/lib/libvirt/images/nsd.qcow2
如果用shutdown關閉不掉,需要在kvm中安裝 acpi 服務,并且開啟 acpd 服務
yum -y install acpid
/etc/init.d/acpid start
ip ad li 檢視虛拟機ip
二. libvirt 服務
三. cpu熱添加
虛拟機要和主控端用的系統版本一緻才可以熱添加
檢視虛拟機的配置資訊xml
<code>cat /etc/libvirt/qemu/rh7-1.xml</code>
不能直接vim修改,需要使用virsh edit rh7-1 指令修改
将<vcpu placement='static'>1</vcpu> 修改為
<vcpu placement='auto' current="1">4</vcpu>
然後儲存退出,修改xml檔案需要重新開機kvm虛拟機,才能生效。
重新開機完後執行:
<code>virsh setvcpus rh7-1 --live</code>
四. 記憶體熱添加
修改xml檔案,調整最大記憶體
将2048576改為合适的值
重新開機kvm虛拟機
檢視目前記憶體
<code>virsh qemu-monitor-command rh7-1 --hmp --cmd info balloon</code>
修改記憶體
<code>virsh qemu-monitor-command rh7-1 --hmp --cmd balloon 512</code>
五. 網絡
橋接(可以讓我們遠端ssh連接配接)
1) brctl show 檢視橋接資訊
這樣的橋接不能直接用xshell連接配接的,需要做一個橋接,讓虛拟機的網段和主控端一樣,這樣才能連接配接
2) 建立一個橋接網卡(用腳本的方式)
3) 修改kvm虛拟機的xml,讓它使用br0橋接網卡
重新開機虛拟機
進入虛拟機,修改網卡資訊
六. kvm優化
cpu緩存優化:
因為一個kvm在主控端上就是一個程序,隻要是程序就要受cpu排程,如果一開始這個程序運作在cpu0上,那麼這個程序的cpu緩存也在cpu0上。一旦這個程序被cpu排程到cpu1上去,那麼cpu0上的緩存就用不到了,就會出現緩存miss。降低性能。
可以通過綁定程序和cpu的方式來解決這個問題:
taskset -cp 1 25718
1代表cpu編号
25718代表程序pid
記憶體優化:
1) 大頁記憶體(預設開啟)
<code>cat /sys/kernel/mm/transparent_hugepage/enabled</code>
2) ksm記憶體合并
[ksmd] linux預設開啟的程序
i/o優化
1) virtio:linux預設核心自帶的,可以優化io,win需要手動安裝
2) linux io排程算法:
檢視目前排程算法:dmesg | grep -i scheduler
cat /sys/block/sda/queue/scheduler
2.6 核心:預設:cfq
3.10核心:預設:deadline
如果硬碟為ssd硬碟,則一定要使用noop算法,發揮它最大的性能。
資料庫如果不是ssd硬碟,建議用deadline
virt-install 安裝虛拟機
不使用swap分區
隻分一個/
不使用lvm等。
七. 添加硬碟
建立一塊硬碟:
<code>qemu-img create -f qcow2 /vhost/testdisk.img 20g</code>
修改xml檔案, 在<dick></dick>後增加一塊磁盤資訊
virsh edit centos7
其中source file應填寫建立鏡像檔案的位置資訊
進入虛拟機後使用fdisk -l指令可以看到一塊新的磁盤/dev/sdb
格式化磁盤
挂載磁盤
八. 在原有硬碟基礎上擴容
<code>qemu-img resize test01.qcow2 +2g</code>