- 深度實踐KVM:核心技術、管理運維、性能優化與項目實施
- 肖力 汪愛偉 楊俊俊 趙德祿
- 111字
- 2018-12-31 20:46:21
第2章 開始自己的第一臺虛擬機
通過第1章對KVM的發展歷史、架構及應用場景的介紹,讀者對KVM技術有了初步的了解和認識。本章將介紹如何創建一臺KVM虛擬機、操作步驟及要點。對于熟悉或者使用過KVM虛擬化的讀者,本章內容可以快速閱讀或者跳過。
2.1 服務器BIOS設置
KVM的使用必須有硬件虛擬化支持,所以需要打開CPU的硬件虛擬化特性。對于大多數服務器,如Dell、HP、IBM、浪潮、聯想、華為等,在開機啟動的第一個畫面都會有一些提示的按鍵,圖2-1所示是Dell R610開機啟動的第一個畫面。

圖2-1 Dell R610開機啟動的第一個畫面
該界面提供了如下幾個選項:
?按F2鍵進入System Setup,進去之后可以進行一些BIOS相關的配置。
?按F10鍵進入System Services,進去之后可以配置一些系統服務,主要用于服務器的配置和檢測。
?按F11鍵進入BIOS Boot Manager,進入之后可以選擇啟動介質,比如從硬盤啟動、虛擬DVD設備、USB設備,等等。
?按F12鍵進入PXE,進入之后啟動網絡引導。
提示
不同的廠商服務器,功能鍵的定義會有一些差別,可以根據提示來操作。
在安裝KVM虛擬化之前,需要先確認CPU虛擬化支持是否開啟。在如圖2-1所示的服務器開機界面中按F2鍵,然后進入BIOS配置,選擇Processor Setting,按Enter鍵進入子菜單,其中一項Virtualization Technology必須配置為Enabled(選擇菜單項,按方向鍵右鍵可更改配置),如圖2-2所示。

圖2-2 開啟CPU虛擬化支持
提示
不同廠商的服務器,CPU Virtualization Technology開關的位置會有些差別,一般都在處理器配置菜單之下。近年來服務器上的CPU一般都支持CPU虛擬化,在系統中可以執行egrep '(vmx|svm)' /prov/CPUinfo 命令查看,如果有輸出內容,說明CPU是支持虛擬化的。
2.2 宿主機CentOS6.5、CentOS7系統安裝與配置技巧
通過2.1節的配置,已經打開了服務器CPU對虛擬化的支持,下面開始安裝宿主機的操作系統。CentOS6.x是目前使用比較多的宿主機操作系統版本,當前最新版本是CentOS6.6。CentOS 7從系統跨度來說,是CentOS的一個大版本升級,其中主要包括內核版本的跨越。CentOS6.x系列使用的是2.6.32.x的內核,CentOS7.x則使用3.10.x的內核。
1.CentOS6.5宿主機系統安裝及配置
在生產環境中,安裝CentOS 6.5系統的宿主機,筆者采用pxe方式來完成批量的宿主機部署。pxe配置過程的資料很多,本書就不做詳細介紹了,下面分享一個宿主機安裝kickstart文件的內容,是筆者實際在生產環境中使用的。
# Kickstart file automatically generated by anaconda # 系統安裝自動生成的kickstart文件 install url --url=http://10.10.10.1/system/CentOS6564 # 指定安裝鏡像的目錄,可以將不同的系統放在不同的目錄,這樣可以完成多個系統安裝 lang en_US.UTF-8 # 宿主機建議使用英文 keyboard us network --onboot yes --device eth0 --mtu=1500 --bootproto dhcp network --onboot yes --device eth1 --noipv4 --noipv6 # 設置網絡,筆者裝機的時候,一般第一個網卡使用dhcp分配IP,第二個網卡關閉。讀者可以根據自己的 實際情況進行修改 rootpw cEmXc2pkKets #配置系統密碼 text reboot # 文本方式安裝,安裝后重啟 firewall --disabled authconfig --useshadow --passalgo=sha512 # 用戶密碼加密seLinux --disabled #關閉SELinux ################################################## # Installation logging level logging --level=info # Do not configure the X Window System skipx ################################################## timezone Asia/Shanghai #配置時區 bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" clearpart --all --initlabel #清除硬盤數據,并創建相應分區 part /boot --fstype ext3 --size=256 part pv.3 --size=40960 part pv.4 --size=100 --grow volgroup datavg --pesize=32768 pv.4 volgroup KVMvg --pesize=32768 pv.3 logvol /datapool --fstype ext4 --name=datapool --vgname=datavg --size=10240--grow #此處創建了一個目錄,用于存放虛擬機,筆者習慣的目錄是/datapool logvol swap --fstype swap --name=swap --vgname=KVMvg --size=8192 logvol / --fstype ext4 --name=root --vgname=KVMvg --size=30720 %packages # 安裝虛擬化需要的包,主要有: @virtualization @Base @Core @additional-devel @base @large-systems @storage-client-iscsi @system-management-snmp @virtualization @virtualization-client @virtualization-platform @virtualization-tools ##################################################### %end
使用上面的kickstart配置文件安裝完宿主機系統,可以通過rpm -q命令檢查一下具體安裝了哪些包。
[root@localhost ~]# rpm -qa|grep -E 'qemu|libvirt|virt' libvirt-client-0.10.2-29.el6.x86_64 #Libvirt的客戶端,最重要的功能之一就是就在宿主機關機時可以通知虛擬機也關機, #使虛擬機系統正常關機,而不是被強制關機,造成數據丟失 gpxe-roms-qemu-0.9.7-6.10.el6.noarch #虛擬機iPXE的啟動固件,支持虛擬機從網絡啟動 libvirt-python-0.10.2-29.el6.x86_64 #libvirt為Python提供的API python-virtinst-0.600.0-18.el6.noarch #一套Python的虛擬機安裝工具 qemu-KVM-0.12.1.2-2.415.el6.x86_64 #KVM在用戶空間運行的程序 Virt-manager-0.9.0-19.el6.x86_64 #基于 Libvirt 的圖像化虛擬機管理軟件 libvirt-0.10.2-29.el6.x86_64 #用于管理虛擬機,它提供了一套虛擬機操作API virt-viewer-0.5.6-8.el6.x86_64 #顯示虛擬機的控制臺console virt-top-1.0.4-3.15.el6.x86_64 #類似于top命令,查看虛擬機的資源使用情況 virt-what-1.11-1.2.el6.x86_64 #在虛擬機內部執行,查看虛擬機運行的虛擬化平臺 qemu-img-0.12.1.2-2.415.el6.x86_64 #用于操作虛擬機硬盤鏡像的創建、查看和格式轉化
在KVM環境中,以上rpm包都是必需的。讀者可以檢查當前系統里面是否已經安裝rpm,如果沒有,可使用“yum install組件名稱”命令直接安裝。
2.CentOS7宿主機系統安裝及配置
CentOS 7宿主機的安裝與CentOS 6的系統安裝方式類似,系統安裝完之后,確認已經安裝了如下的rpm相關包。Libvirt還包含了很多工具的庫,可以使用yum install libvirt*命令安裝。
[root@KVM-host-CentOS7 ~]# rpm -qa|grep -E 'qemu-img|libvirt-[0-9]|virt-install' qemu-img-1.5.3-60.el7_0.10.x86_64 virt-install-0.10.0-20.el7.noarch libvirt-1.1.1-29.el7_0.3.x86_64 [root@KVM-host-CentOS7 ~]# lsmod |grep KVM #查看KVM模塊是否載入 KVM_intel 138567 6 KVM 441119 1 KVM_intel
Libvirt及guestfish相關的工具在平時的運維過程中經常會用到,建議使用yum install libguest*libvirt*命令安裝。
2.3 第一臺虛擬機安裝
本節介紹如何開始安裝第一臺虛擬機。首先需要新建一臺虛擬機,然后通過諸如物理機安裝的方式為虛擬機安裝操作系統。但是一般不會使用pxe、cobbler等網絡引導方式安裝,因為這樣安裝虛擬機系統太慢了。虛擬化相比于物理機,其中一個優勢就是創建快速。所以,一般都會使用ISO鏡像文件安裝第一臺虛擬機,然后將這臺虛擬機做成虛擬機模板,之后的虛擬機都是由這個模板生成的。后面第16章會詳細介紹虛擬機模板的創建。本節將介紹兩個KVM虛擬化中常用的管理工具,用它們來創建虛擬機。
提示
模板的概念在虛擬化中非常重要,實際上絕大多數虛擬機都是通過模板克隆出來的,而不是像物理機那樣安裝出來的。有的云管理平臺還有鏡像市場的概念,就像應用商店,可以上傳、下載各種模板。
1.Virt-Manager使用介紹
Virt-Manager是一個圖形化的虛擬機管理工具,它提供了一個簡易的虛擬機操作界面。要使用它,需要先安裝圖形化界面,下面以CentOS6.5系統為例,需要安裝如下組件。
[root@KVM-host ~]#yum groupinstall -y "Desktop" "Desktop Platform" "Desktop Platform Development" "Fonts" "General Purpose Desktop" "Graphical Administration Tools" "Graphics Creation Tools" "Input Methods" "X Window System" "Chinese Support [zh]" "Internet Browser"
一般來說,服務器都是在IDC機房中的,為了看到宿主機的圖形化界面,還需要安裝配置VNC。
[root@KVM-host ~]#yum install -y tigervnc [root@KVM-host ~]#yum install -y tigervnc-server <!-- 安裝VNC程序軟件包tigervnc和tigervnc-server --> [root@KVM-host ~]#vim /etc/sysconfig/vncservers VNCSERVERS="1:root" #配置宿主機VNC虛擬機顯示器為1,端口是5901 VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost" #虛擬機顯示器[2] 監聽的IP是0.0.0.0,虛擬顯示器[1]監聽127.0.0.1,屏幕分辨率為800×600 [root@KVM-host ~]# vncpasswd #設置VNC密碼 Password: Verify: [root@KVM-host ~]# service vncserver restart #啟動vnc-server Shutting down VNC server: [ OK ] Starting VNC server: 1:root xauth: creating new authority file /root/.Xauthority New 'whcq-netinst-121:1 (root)' desktop is KVM-host:1 Creating default startup script /root/.vnc/xstartup Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/ KVM-host:1.log [ OK ]
配置完成之后,使用VNC Viewer登錄宿主機的圖形界面,在VNC Server組合框中輸入宿主機的“IP:端口”,端口是之前配置的,本例中輸入192.168.106.221:5901,如圖2-3所示。
提示
VNC Viewer使用中,有時候會出現VNC Viewer界面閃退,可以通過修改網絡速度解決這個問題。在如圖2-4所示的位置,取消勾選該復選框,調節滑塊到Best quality。

圖2-3 使用VNC Viewer登錄宿主機圖形界面

圖2-4 VNC Viewer配置網絡速率
VNC Viewer配置完成之后,回到圖2-3所示的界面,單擊Connect按鈕,出現如圖2-5所示界面,提示輸入密碼,此處的密碼是之前通過vncpasswd命令設置的VNC Server密碼。

圖2-5 VNC Viewer登錄界面
輸入正確密碼之后,應該就可以登錄成功了,出現如圖2-6所示界面。

圖2-6 宿主機VNC登錄之后界面
在菜單中,選擇Applications菜單中的System Tools子菜單,選擇打開Virtual Machine Manager,如圖2-7所示。其中列出了當前宿主機上所有的虛擬機,并顯示了簡單的CPU利用率信息。在圖形界面中可以對虛擬化做常規操作,如創建、刪除、編輯、配置及查看遠程終端等。

圖2-7 Virtual Machine Manager界面
2.virt-install命令使用介紹
virt-install是一個在命令行創建KVM虛擬機的工具,使用virt-install配合一些配置參數,最終可以生成一個完整的.xml虛擬機配置文件。
#virt-install --name=testvm --ram=2048 --vCPUs=4 --os-type=Windows --hvm --cdrom=/root/W2003cnent.iso --file=/root/SDG100.img --file-size=10 --bridge=br0 --vnc --vncport=5920
參數說明如下。
?--name:設置虛擬機名稱。
?--ram:配置虛擬機內存,單位是MB。
?--vCPUs:配置CPU個數。
?--hvm:配置使用全虛擬化。
?--os-type:指定操作系統類型,如Linux、Windows。
?--cdrom:使用cdrom安裝系統,指定ISO位置。
?--file:設置虛擬機硬盤文件路徑。
?--file-size:配置虛擬機硬盤文件大小,單位是GB。
?--bridge:配置橋接的網卡。
?--vnc:打開VNC支持。
?--vncport:配置VNC端口。
執行上述命令之后,virt-install會創建一臺名為testvm的虛擬機,并使用W2003cnent. iso鏡像文件安裝系統。此時使用VNC Viewer,在VNC Server中輸入宿主機ip:vncport,便可登錄虛擬機的控制臺,此時虛擬機開始從ISO引導,安裝虛擬機系統的步驟和安裝普通服務器系統是一樣的,這里就不詳述了。
3.Windows虛擬機安裝注意事項
第一次安裝Windows虛擬機的時候,經常會碰到以下幾個問題。
(1)qcow2格式的磁盤如何操作
Virt-Manager默認創建的磁盤格式是RAW格式,如果需要使用qcow2格式的磁盤,必須用qemu-img create手工先創建一個qcow2格式的磁盤鏡像。
qemu-img create Windows-test.qcow2 -f qcow2 50G
然后如圖2-8所示,在Virt-Manager上指定qcow2格式。

圖2-8 Virt-Manager需要手工選擇qcow2方式
提示
在使用virt-install命令,磁盤鏡像格式為qcow2時,在virt-install命令中要特別指明磁盤格式,否則會出現鏡像復制之后虛擬機系統不能啟動的現象,這往往是初學者容易忽視的地方。
(2)光驅自動消失問題
Windows系統安裝的時候,重啟后找不到光盤。
KVM新創建虛擬機,第一次掛載的光驅,重啟后自動消失,這是一個功能,專門針對Linux系統,但是Windows系統安裝的時候需要多次重啟,所以安裝時第一次重啟后,會出現如圖2-9所示的界面,需要再手工掛載一下Windows系統ISO鏡像。

圖2-9 Virt-Manager需要手工選擇再加載光驅一次
也可以修改虛擬機的xml配置文件,光驅配置的xml文件如下:
<disk type='file' device='cdrom'> <driver name='qemu' type='raw' cache='none'/> <source file='/home/CentOS-7.0-1406-x86_64-DVD.iso'/> <target dev='hdb' bus='ide'/> <readonly/> </disk>
(3)鼠標不同步問題
Windows在KVM上會出現鼠標不同步問題,如圖2-10所示,再添加一個USB鼠標設備就可以解決。

圖2-10 Virt-Manager需要手工添加USB指針設備
添加一個USB鼠標設備的xml文件如下:
<input type='tablet' bus='usb'/>
提示
如果添加兩次USB設備,Windows系統虛擬機系統啟動會藍屏,所以只能添加一次USB設備。
4.Linux虛擬機安裝注意事項
Linux系統的安裝除了會碰到Windows系統安裝的qcow2磁盤格式問題、鼠標不同步的問題,Linux虛擬機的安裝還可以使用一種非常有意思的方式,就是可以直接指定內核文件路徑,然后直接加載,如圖2-11所示。

圖2-11 通過指定內核文件安裝虛擬機
提示
內核文件需要使用安裝光盤中的images下的pxe內核文件。
系統引導起來之后,會根據kickstart文件來下載系統,然后安裝,如圖2-12和圖2-13所示。

圖2-12 虛擬機啟動后根據kickstart文件路徑下載安裝文件

圖2-13 隨后根據kickstart文件安裝系統
2.4 本章小結
本章介紹了如何安裝宿主機、如何安裝虛擬機及虛擬機安裝時的一些注意事項。讀者可以正式開始自己的虛擬化環境搭建了,在搭建的時候,還有許多技術點需要了解,下一章將為讀者介紹KVM虛擬機CPU、內存方面的技術及應用場景。
- The DevOps 2.3 Toolkit
- 小創客玩轉圖形化編程
- Arduino by Example
- C#完全自學教程
- Java技術手冊(原書第7版)
- Express Web Application Development
- Java系統化項目開發教程
- SQL Server實用教程(SQL Server 2008版)
- 深度學習入門:基于Python的理論與實現
- SQL Server 2008實用教程(第3版)
- 前端架構設計
- 熱處理常見缺陷分析與解決方案
- Mastering Responsive Web Design
- VBA Automation for Excel 2019 Cookbook
- JavaScript Security