最近要在外網搞一套監控系統,正好有一臺服務器配置比較高,也沒跑什么重要的業務,就拿來劃了一個KVM虛擬機,可能是平時各種虛擬機用的比較多,配置起來感覺比想象中簡單的多,簡單記錄下過程
準備工作
宿主機為centos 6.8 64位,檢查宿主機CPU是否支持虛擬化:
cat /proc/cpuinfo | egrep '(vmx|svm)' | wc -l;
結果大于0表示支持
安裝kvm
KVM核心軟件包:
如果服務器上有桌面環境,想使用圖形界面管理器virt-manager,可以安裝完整的KVM環境:
驗證內核模塊是否加載:
lsmod | grep kvm
啟動虛擬機管理接口服務:
/etc/init.d/libvirtd start
設置開機啟動:
chkconfig libvirtd on
啟動libvirtd后,會自動創建了一個網卡,并啟動dnsmasq服務,用來為虛擬機分配IP地址
創建虛擬機
下載虛擬機要安裝的ISO系統鏡像文件,之后需創建存儲池,指定在宿主機上虛擬機磁盤的存儲位置,創建存儲目錄:
mkdir -p /opt/kvm
定義一個儲存池和綁定目錄:
virsh pool-define-as vmspool --type dir --target /opt/kvm
建立并激活存儲池:
virsh pool-build vmspoolvirsh pool-start vmspool
使用存儲池創建虛擬機,并通過vnc連接:
virt-install /--hvm / #全虛擬化--name=zabbix /#虛擬機名字--ram=4096 / #分配內存--vcpus=4 / #分配CPU數--cdrom=/opt/kvm/iso/CentOS-7-x86_64-DVD-1511.iso / #使用的ISO--virt-type=kvm / #虛擬機類型--disk path=/opt/kvm/zabbix.qcow2,device=disk,format=qcow2,bus=virtio,cache=writeback,size=100 / #磁盤大小,格式--network netwrok=default / #網絡設置,defalut為NAT模式--accelerate / #KVM內核加速--graphics vnc,listen=0.0.0.0,port=5922,password=123123/ #vnc配置--force /--autostart
之后使用vnc客戶端連接 宿主機IP:5922,即可使用圖形安裝系統;也可以選擇nographics模式,無需vnc在命令行下安裝,建議使用vnc
安裝完成后會生成:
配置網絡
KVM可以配置兩種:
配置NAT網絡
默認會有一個叫default的NAT虛擬網絡,查看NAT網絡:
virsh net-list --all
如果要創建或者修改NAT網絡,要先編輯default.xml:
virsh net-edit default
重新加載和激活配置:
virsh net-define /etc/libvirt/qemu/networks/default.xml
啟動NAT網絡:
virsh net-start defaultvirsh net-autostart default
啟動NAT后會自動生成一個虛擬橋接設備virbr0,并分配IP地址,查看狀態:
brctl show
正常情況下libirtd啟動后就會啟動virbr0,并自動添加IPtables規則來實現NAT,要保證打開ip_forward,在/etc/sysctl.conf中:
net.ipv4.ip_forward = 1sysctl -p
啟動虛機并設置自動獲取IP即可,如果想手動指定虛擬機IP,要注意配置的IP需在NAT網段內
配置橋接網絡
系統如果安裝了桌面環境,網絡會由NetworkManager進行管理,NetworkManager不支持橋接,需要關閉NetworkManger:
chkconfig NetworkManager offchkconfig network onservice NetworkManager stopservice network start
不想關閉NetworkManager,也可以在ifcfg-br0中手動添加參數"NM_CONTROLLED=no"
創建網橋:
virsh iface-bridge eth0 br0
創建完后ifconfig會看到br0網橋,如果eth0上有多個IP,更改下相應的文件名, 如:ifcfg-eth0:1改為ifcfg-br0:1
編輯虛擬機的配置文件,使用新的網橋:
virsh edit zabbix
找到網卡配置,改為:
<interface type='bridge'> <mac address='52:54:00:7a:f4:9b'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/></interface>
我是用的br0,為虛擬機添加多塊網卡只需復制多個interface,并確保mac address和PCI地址不同即可
重新加載配置:
virsh define /etc/libvirt/qemu/zabbix.xml
重啟虛擬機:
virsh shutdown zabbixvirsh start zabbix
之后使用VNC連接虛擬機并設置下網絡即可
常用操作
KVM相關操作都通過vish命令完成,參數雖然多,但是功能一目了然,很直觀
創建虛擬機快照:
virsh snapshot-create-as --domain zabbix --name init_snap_1
也可以簡寫成:
virsh snapshot-create-as zabbix init_snap_1
快照創建后配置文件在/var/lib/libvirt/qemu/snapshot/zabbix/init_snap_1.xml
查看快照:
snapshot-list zabbix
刪除快照:
snapshot-delete zabbix init_snap_1
排錯
1、ERROR Format cannot be specified for unmanaged storage.
virt-manager 沒有找到存儲池,創建儲存池即可
2、KVM VNC客戶端連接閃退
使用real vnc或者其它vnc客戶端連接kvm閃退,把客戶端設置中的ColourLevel值設置為rgb222或full即可
3、virsh shutdown 無法關閉虛擬機
使用該命令關閉虛擬機時,KVM是向虛擬機發送一個ACPI的指令,需要虛擬機安裝acpid服務:
yum -y install acpid && /etc/init.d/acpid start
否則只能使用virsh destroy 強制關閉虛擬機
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答
圖片精選