VMware上安裝kvm
阿新 • • 發佈:2019-01-28
1.5 mon png spa bios virtio inf inux 配置信息 一. 在VMware上安裝kvm
- 開啟VMware虛擬機cpu的虛擬化
- 進入虛擬機centos7系統,查看cpu信息是否開啟虛擬化
grep -E ‘(vmx|svm)’ /proc/cpuinfo
出現如下,表示開啟cpu虛擬化成功: - 安裝軟件包
yum -y install qemu-kvm libvirt virt-install
解釋:qemu-kvm 用來用戶管理使用kvm的包
libvirt 用來系統管理kvm的工具
virt-install 用來安裝kvm虛擬機的工具 - 啟動libvirtd服務,會產生一個虛擬網卡
systemctl start libvirtd systemctl enable libvirtd
查看虛擬網卡是否生成
-
準備磁盤和鏡像,準備安裝kvm虛擬機
raw格式:
第一步生成磁盤文件:qemu-img create -f raw /opt/CentOS-7-x86_64.raw 10G
第二步在宿主機裏面上傳一個鏡像文件
第三步創建虛擬機:virt-install --virt-type kvm --name CentOS-7-x86_64 --ram 1024 --cdrom=/tmp/CentOS-7.2-x86_64-DVD-1511.iso --disk path=/opt/CentOS-7-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
解釋:--virt-type 指定格式為kvm
--name 指定虛擬機名字
--ram 指定虛擬機內存大小 單位M
--cdrom 指定鏡像文件路徑
--disk path 指定磁盤文件路徑
--network 指定網絡模式qcow2格式:
創建虛擬機磁盤
qemu-img create -f qcow2 /tmp/test.qcow2 10G
創建虛擬機virt-install --virt-type kvm --name CentOS-7-x86_64 --ram 1024 --cdrom=/tmp/CentOS-7.2-x86_64-DVD-1511.iso --disk /tmp/CentOS-7-x86_64.qcow2,foramt=qcow2 --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
- 在win上用VNC連接
輸入完成創建虛擬機的命令後,會看到以下提示
然後迅速用vnc連接虛擬機,輸入ip為宿主機ip,默認端口5900
按tab鍵,輸入net.ifnames=0 biosdevname=0
這個是用來設置默認網卡名的,如eth0,這裏不設置的話默認網卡名很亂
然後就可以正常安裝系統了 - 宿主機查看虛擬機狀態
virsh list --all
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
cat /etc/libvirt/qemu/rh7-1.xml
不能直接vim修改,需要使用virsh edit rh7-1 命令修改
將<vcpu placement=‘static‘>1</vcpu> 修改為
<vcpu placement=‘auto‘ current="1">4</vcpu>
然後保存退出,修改xml文件需要重啟kvm虛擬機,才能生效。 - 重啟完後執行:
virsh setvcpus rh7-1 --live
四. 內存熱添加
- 修改xml文件,調整最大內存
virsh edit rh7-1 <memory unit=‘KiB‘>2048576</memory>
將2048576改為合適的值
- 重啟kvm虛擬機
- 查看當前內存
virsh qemu-monitor-command rh7-1 --hmp --cmd info balloon
修改內存virsh qemu-monitor-command rh7-1 --hmp --cmd balloon 512
五. 網絡
- 橋接(可以讓我們遠程ssh連接)
1) brctl show 查看橋接信息
這樣的橋接不能直接用xshell連接的,需要做一個橋接,讓虛擬機的網段和宿主機一樣,這樣才能連接
2) 新建一個橋接網卡(用腳本的方式)#!/bin/bash brctl addbr br0 brctl addif br0 eth0 ip addr del dev eth0 10.201.1.33/24 ifconfig br0 10.201.1.33/24 up route add default gw 10.201.1.254
3) 修改KVM虛擬機的xml,讓它使用br0橋接網卡
virsh edit rh7-1 <interface type=‘bridge‘> <source bridge=‘br0‘/>
重啟虛擬機
進入虛擬機,修改網卡信息
六. KVM優化
- CPU緩存優化:
因為一個KVM在宿主機上就是一個進程,只要是進程就要受CPU調度,如果一開始這個進程運行在cpu0上,那麽這個進程的cpu緩存也在cpu0上。一旦這個進程被cpu調度到cpu1上去,那麽cpu0上的緩存就用不到了,就會出現緩存miss。降低性能。
可以通過綁定進程和cpu的方式來解決這個問題:
taskset -cp 1 25718
1代表cpu編號
25718代表進程PID -
內存優化:
1) 大頁內存(默認開啟)cat /sys/kernel/mm/transparent_hugepage/enabled
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等。
七. 添加硬盤
- 新建一塊硬盤:
qemu-img create -f qcow2 /vhost/testdisk.img 20G
- 修改xml文件, 在<dick></dick>後增加一塊磁盤信息
virsh edit centos7
其中source file應填寫新建鏡像文件的位置信息 - 重啟虛擬機
進入虛擬機後使用fdisk -l命令可以看到一塊新的磁盤/dev/sdb - 格式化磁盤
- 掛載磁盤
八. 在原有硬盤基礎上擴容qemu-img resize test01.qcow2 +2G
VMware上安裝kvm