1、KVM安裝部署
(1) yum install virt-install qemu-kvm qemu-img libvirt libvirt-python.x86_64 virt-manager python-virtualenv libvirt-client (2) yum groupinstall -y "虛擬化主機|Virtualization Host" yum install -y virt-manager ssh -X ip:port #帶x11圖形連結虛擬機器
1)kvm相關安裝包及其作用
qemu-kvm主要的KVM程式包 python-virtinst建立虛擬機器所需要的命令列工具和程式庫 virt-managerGUI虛擬機器管理工具 virt-top虛擬機器統計命令 virt-viewerGUI連線程式,連線到已配置好的虛擬機器 libvirtC語言工具包,提供libvirt服務 libvirt-client虛擬客戶機提供的C語言工具包 virt-install基於libvirt服務的虛擬機器建立命令 bridge-utils建立和管理橋接裝置的工具
配置遠端圖形化支援
yum install -y xrdp
手動載入核心模組
[root@master ~]# modprobe kvm [root@master ~]# lsmod |grep kvm kvm5869480 irqbypass135031 kvm
啟動libvirtd服務
systemctl restart libvirtd.service
這個服務會在本地安裝一個虛擬網絡卡
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether 52:54:00:aa:e2:da brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever 4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000 link/ether 52:54:00:aa:e2:da brd ff:ff:ff:ff:ff:ff
安裝完成後他會預設幫您開啟ip轉發和IP偽裝
[root@master ~]# sysctl -p [root@master ~]# sysctl -a |grep ip_forward sysctl: reading key "net.ipv6.conf.all.stable_secret" sysctl: reading key "net.ipv6.conf.default.stable_secret" sysctl: reading key "net.ipv6.conf.ens33.stable_secret" sysctl: reading key "net.ipv6.conf.lo.stable_secret" (*net.ipv4.ip_forward = 1) net.ipv4.ip_forward_use_pmtu = 0 sysctl: reading key "net.ipv6.conf.virbr0.stable_secret" sysctl: reading key "net.ipv6.conf.virbr0-nic.stable_secret"
安裝kvm
1)檢查cpu是否支援虛擬化 [root@kevin ~]# grep vmx /proc/cpuinfo 如果有vmx資訊輸出,就說明支援VT;如果沒有任何的輸出,說明你的cpu不支援,將無法使用KVM虛擬機器。 2)確保BIOS裡開啟虛擬化功能,即檢視是否載入KVM模組 [root@kevin ~]# lsmod | grep kvm kvm_intel1700860 kvm5663401 kvm_intel irqbypass135031 kvm ========================================================= 如果沒有載入,執行以下命令: [root@kevin ~]# modprobe kvm [root@kevin ~]# modprobe kvm-intel [root@kevin ~]# lsmod | grep kvm kvm_intel1700860 kvm5663401 kvm_intel irqbypass135031 kvm ========================================================= 核心模組匯出了一個名為/dev/kvm的裝置,這個裝置將虛擬機器的的地址空間獨立於核心或者任何應用程式的地址空間。 [root@kevin ~]# ll /dev/kvm crw-rw-rw-. 1 root kvm 10, 232 1月29 11:56 /dev/kvm 3)橋接網路 如果沒有brctl命令(用來管理網橋的工具),則需要安裝bridge-utils , [root@kevin ~]# yum -y install bridge-utils [root@kevin ~]# systemctl restart network 配置KVM的網橋模式 [root@kevin ~]# cd /etc/sysconfig/network-scripts/ [root@openstack network-scripts]# cp ifcfg-eno1 ifcfg-br0 [root@openstack network-scripts]# cat ifcfg-br0 TYPE="Bridge"//這一行修改為Bridge PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="none" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="no" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="br0"//修改裝置名稱為br0 #UUID="fdbad04f-dae3-440e-8a8b-01d6a7bc9fe0"//這一行註釋 DEVICE="br0"//修改裝置為br0 ONBOOT="yes" IPADDR="192.168.10.210" PREFIX="24" GATEWAY="192.168.10.1" DNS1="8.8.8.8" [root@openstack network-scripts]# cat ifcfg-eno1 TYPE="Ethernet" BRIDGE=br0//新增這一行 PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="none" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="no" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="eno1" UUID="fdbad04f-dae3-440e-8a8b-01d6a7bc9fe0" DEVICE="eno1" ONBOOT="yes" #IPADDR="192.168.10.210"//註釋掉這幾行 #PREFIX="24" #GATEWAY="192.168.10.1" #DNS1="8.8.8.8" 重啟網絡卡服務 [root@openstack network-scripts]# systemctl restart network 檢視網絡卡 [root@openstack network-scripts]# brctl show bridge name bridge idSTP enabled interfaces br08000.0894ef518b22 noeno1 virbr08000.52540095d7c2 yesvirbr0-nic 檢視ip資訊 [root@openstack network-scripts]# ifconfig |head -20 br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu 1500 inet 192.168.10.210netmask 255.255.255.0broadcast 192.168.10.255 inet6 fe80::a94:efff:fe51:8b22prefixlen 64scopeid 0x20<link> ether 08:94:ef:51:8b:22txqueuelen 1000(Ethernet) RX packets 856bytes 52981 (51.7 KiB) RX errors 0dropped 2overruns 0frame 0 TX packets 120bytes 23450 (22.9 KiB) TX errors 0dropped 0 overruns 0carrier 0collisions 0 eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu 1500 ether 08:94:ef:51:8b:22txqueuelen 1000(Ethernet) RX packets 10077bytes 793083 (774.4 KiB) RX errors 0dropped 0overruns 0frame 0 TX packets 1184bytes 228415 (223.0 KiB) TX errors 0dropped 0 overruns 0carrier 0collisions 0 device interrupt 16 eno2: flags=4099<UP,BROADCAST,MULTICAST>mtu 1500 ether 08:94:ef:51:8b:23txqueuelen 1000(Ethernet) RX packets 0bytes 0 (0.0 B) [root@openstack network-scripts]# ping www.baidu.com PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data. 64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=55 time=2.08 ms 64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=55 time=1.80 ms ........ 4)安裝libvirt及kvm libvirt是管理虛擬機器的API庫,不僅支援KVM虛擬機器,也可以管理Xen等方案下的虛擬機器。 [root@kevin ~]#yum -y install libcanberra-gtk2 qemu-kvm.x86_64 qemu-kvm-tools.x86_64libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarchlibvirt-python.x86_64 libiscsi-1.7.0-5.el6.x86_64dbus-develvirt-clone tunctl virt-manager libvirt libvirt-python python-virtinst 由於要用virt-manager圖形化安裝虛擬機器,所以還需要安裝X-window(這個在前面部署VNC環境裡就已經安裝了) [root@kevin ~]# yum groupinstall "X Window System" 安裝中文字元,解決介面亂碼問題 [root@kevin ~]# yum install -y dejavu-lgc-sans-fonts [root@kevin ~]# yum groupinstall -y "Fonts" 啟用libvirt [root@kevin ~]# systemctl enable libvirtd [root@kevin ~]# systemctl start libvirtd
4)使用virt-manager管理kvm(通過VNC連線伺服器)
提前將ISO系統映象存放到伺服器的一個目錄裡,比如/data/iso
[root@openstack ~]# mkdir /data/iso [root@openstack ios]# ll 總用量 3356384 -rw-r--r--. 1 qemu qemu 3436937216 1月29 11:41 win-server2008_R2.iso

image

image

image

image

image

image
5)解決KVM虛擬機器在使用vnc連線時滑鼠不同步的問題
在VNC介面中感覺virt-manager管理的虛擬機器介面總是滑鼠跟不上,指到哪兒也看不出來,介面上一直顯示press control_l+a/t_l來移動滑鼠!十分鬱悶!
想要修改滑鼠和宿主機介面同步方法如下:
[root@openstack ~]# cd /etc/libvirt/qemu [root@openstack qemu]# ls networkstest-win2008.xml [root@openstack qemu]# cp test-win2008.xml /opt/ [root@openstack qemu]# vim test-win2008.xml//在<devices>標籤中新增下面這段配置 <devices> ...... <input type='tablet' bus='usb'/>//即新增這句話即可! ...... </devices> [root@openstack qemu]# virsh define /etc/libvirt/qemu/test-win2008.xml 定義域 test-win2008(從 /etc/libvirt/qemu/test-win2008.xml)
然後重啟虛擬機器後,發現虛擬機器中的滑鼠就會好事了,開啟VNC檢視虛擬機器介面後預設情況下虛擬機器中的滑鼠指標和實體機的滑鼠指標就是重合的,且兩者運動速度也是同步的,
這下就徹底解決了滑鼠指標漂移/不同步的情況了!
6)重定向USB裝置
(即將宿主機上的USB裝置指定到目標虛擬機器上)。適合掛載銀行前置機裝置!
先將USB裝置插到宿主機上,接著在virt-manager介面裡開啟虛擬機器,然後虛擬機器介面上欄裡開啟”虛擬機器”->”重定向USB裝置(R)”。(特別注意:如下選擇將usb裝置掛載到虛擬機器上後,不要關閉這個掛載介面,否則usb掛載動作就會結束!)

image

image
檢視虛擬機器,發現指定的USB裝置已經掛載到該虛擬機器上了!

image
如果要解除安裝該虛擬機器上掛載的這個USB裝置,即在”重定向裝置usb(R)”裡將這個USB裝置去掉,然後”確定”即可!

image

image