?

企業KVM 虛擬機部署與管理

2021-01-06 05:29顧武雄
網絡安全和信息化 2020年12期
關鍵詞:聯機命令虛擬化

■ 顧武雄

編者按:想要在Linux 操作系統中通過KVM 虛擬化平臺的使用,來部署多部虛擬機以充分使用硬件資源,來提供更多的應用服務與測試環境,相信Ubuntu 的64 位版本Linux 會是最佳的選擇。本文將指引讀者們,如何通過最簡易與最快速的方法,來部署與管理KVM 虛擬化平臺,打造絕佳的虛擬機運行環境。

下面詳細介紹下具體內容。

認識云服務基礎

現今各行各業在強烈的市場競爭之下,公司與對手之間要較量的就是創新、速度、穩定以及營銷等等,而在這一些成功要件之中,背后的關鍵助力就是云服務,因為傳統的經營營銷策略,已經無法讓大多數的企業在夾縫中求生存了。整個云服務若有良好設計,對內將可提升移動協同商務的效率(B2E),對外則可提供完善的顧客服務(B2C)以及與合作伙伴間的資源集成(B2B)。即便您的公司只是一個不知名的中小企業,若是不懂得好好善用云商機,未來勢必被競爭的市場所淘汰。

然而云服務的部署就好比蓋房子一樣,地基若是不穩固再偉大的應用設計也是惘然。只是一個高效能且穩固的云基礎建設,是否一定得昂貴到讓中小企業無法接受呢?其實并非如此,因為企業IT只要掌握兩項要訣,就可以為企業節省掉可觀的部署成本。第一是完全虛擬化,第二則是善用開放原始碼。

完全虛擬化的服務器部署,每一年可為企業節省掉的硬件采購以及維護費用是相當可觀的,這還不包括相關電費的成本支出。而對于虛擬化平臺的選擇而言,若采用以開放原始碼為主的系統,也將可以大幅節省龐大的軟件授權費用。至于技術支持以及資源的問題,只要我們選擇的開源虛擬化平臺是在業界所被廣泛使用的,那么相關技術人才的尋找便不是問題。同樣的相關網絡資源(例如:社群討論區、在線技術文件)也肯是相當豐富的。

在此建議您不妨試試Linux 中的KVM(Ker nel-based Virtual Machine)虛擬化平臺。在核心架構設計上,它完全支持CPU 的虛擬化技術(Intel VT 或AMD-V),因此它是直接通過與中央處理器的溝通方式,來進行各種虛擬化核心模塊與命令的執行,讓同時多個虛擬機的運行之間互不干擾,進一步則是搭配同樣是開放原始碼的QEMU程序包,來負責處理虛擬化周邊與物理接口設備之間的溝通,借此提供一套完整且高效能虛擬化運作平臺。

部署KVM 的任務準備

在接下來的實戰講解中,筆者將以Ubuntu的64位版本,來作為執行KVM 虛擬化平臺的操作系統。在正式安裝KVM所需要的相關程序包之前,我們最好能夠先檢測一下,目前的CPU 是否已支持虛擬化技術。首先請開啟命令窗口并執行egrep '(vmx|svm)'--color=always /proc/cpuinfo 命令參數,并查看是否內容中有vmx 的關鍵詞,如果有即表示它使用的是Intel處理器并且是支持的。若是找到的是svm 關鍵詞,則表示此處理器是AMD 系列,也同樣是支持的,

接著建議您可以進一步通過“Ubuntu 軟件中心”界面,來搜索并安裝一個名為cpuchecker 的程序包,當然您也可以改選擇在命令提示界面中執行sudo apt-get install cpu-checker。

完成cpu-checker 程序包的安裝之后,就可以開啟命令窗口來執行kvm-ok 命令,便可以知道目前此計算器的BIOS中,是否已經啟用了支持KVM 的虛擬化技術了。若是系統發現目前的計算器BIOS 尚未啟用此功能,則在結果信息之中,將會有KVM (vmx) is disabled by your BIOS信息出現。

接下來我們要開始動手安裝KVM 虛擬化平臺所需要的幾個程序包。首先是ubuntu-virt-server 這個共享的必備程序包,您可以在“Ubuntu 軟件中心”界面中進行搜索與安裝,或是在命令提示列中執行apt-get install ubuntu-virt。接著請如安裝KVM-IPXE 程序包,建議您可以同樣在“Ubuntu 軟件中心”界面中進行搜索與安裝即可。最后則是必須搜索virtmanager 關鍵詞,來安裝一個KVM 專屬的虛擬機管理員工具。

請注意!在執行虛擬機管理員程序包的安裝過程中,可能會出現需要安裝額外程序包的提示信息。請務必點擊“安裝”,才能夠讓此管理工具順利完成安裝與使用。

除了KVM 相關程序包的安裝之外,為了讓后續的各個虛擬機中的Guest OS,能夠經由物理網絡來與Internet 進行聯機,在此還必須加裝一套以太網絡的網橋工具,您可以直接在“Ubuntu 軟件中心”頁面中輸入bridge-utils 關鍵詞,或是選擇在命令提示界面中執行apt-get install bridge-utils 命令,來完成此工具程序的安裝。

接著請在命令窗口之中,執行sudo adduser 'joviku'libvirt 與sudo adduser'joviku' kvm 兩個命令參數,來將選定的用戶JoviKu 入至KVM 虛擬化平臺的兩個默認組之中,以便讓這個用戶帳戶后可以來管理虛擬機的添加、刪除以及修改等操作。在完成將用戶加入這兩個組之后,建議您可以通過執行grep joviku /etc/group 來查看目前這一位用戶,是否確實是這兩個組的成員。

最后我們最好檢查一下虛擬化系統的運作是否正常。請執行virsh -c qemu:///system list 命令,若沒有出現錯誤信息,即表示沒有問題!可以開始準備來創建虛擬機了。

虛擬網絡配置

還記得我們在前面的步驟當中有安裝以太網絡網橋工具(bridgeutils),為了讓后續所創建的虛擬機,都能夠通過物理聯機的網絡卡來與外部網絡聯機,我們還必須進一步修改網絡界面的相關設定。請通過vi或vim 之類的文本編輯器,開啟位于在/etc/network/路徑下的interfaces 配置文件。

請將其中的address、network、netmask、broadcast、gateway、dns-nameservers 域值,修改成您實際所要給予服務器網絡使用的TCP/IP 設定,而這個網絡(eth0)也將會因為其中的bridge_ports eth0與bridge_stp off 的設定,使得虛擬機的Guest OS 可以通過它來連接外部網絡以及Internet。

完成了以太網絡的橋接與TCP/IP 的設定之后,緊接著請重新啟動系統,或是重新啟動網絡界面。前者可以執行sudo reboot 命令,后者則可以sudo /etc/init.d/networking restart 命令即可。

圖1 虛擬機管理員

完成重新啟動之后請執行ifconfig,來查看前面步驟中所創建的br0 橋接網絡是否已經啟用。

確認完成橋接網絡的創建之后,后續我們便可以對于現有的虛擬機開啟網絡配置頁面。其中在NIC 的設備項頁面中,請先選取“源設備”為“選定分享的設備名稱”,然后再輸入所創建的橋接網絡名稱,例如br0。

創建虛擬機

一切就緒后我們就可以開始在KVM 的虛擬化平臺上創建新虛擬機,請從Ubuntu系統選單中,點擊開啟我們所安裝的“虛擬機管理員”程序繼續。

開啟“虛擬機管理員”界面之后,將可以如圖1 所示看到目前正在執行中的虛擬機列表,并且清楚知道主機以及每一個虛擬機的CPU 用量。管理員也可以隨時針對所選取的虛擬機點擊執行、暫停以及關機,若想要進入到Guest OS 的操作,則可以點擊“開啟”即可。

接下來試試創建一個新的虛擬機。在“添加VM”頁面中,首先必須輸入新虛擬機名稱,然后選擇后續安裝Guest OS 的方法,目前提供了本地端安裝媒體、網絡安裝、網絡開機以及匯入現有的磁盤映像四種作法,其中采用本地ISO文件裝載安裝的方式最為常見,也是最迅速安裝Guest OS的最佳選擇。點擊“下一步”。

在此筆者選擇了“使用ISO 映像”,然后點擊“瀏覽”按鈕來加載預先準備好的ISO 文件。接著在完成“OS 類型”以及“版本”的挑選之后,點擊“下一步”繼續。

請注意!即便OS 類型與版本選擇錯誤,一樣可以正常安裝您所準備好的安裝程序,只是必須注意處理器與內存的配置設定,是否足以執行所安裝好的Guest OS 與其應用程序。

點擊“下一步”。

接著需要指派虛擬機可用的內存與CPU 數量,一般來說只要是安裝Windows的操作系統,至少會配置2 048 MB 以上的內存與兩個CPU。在此系統也會顯示目前主機最高可用的資源大小。點擊“下一步”。

您還必須配置所要使用的新虛擬硬盤大小,當然也可以選定裝載一個現有的虛擬硬盤映像文件。如果將“現在分配整個磁盤”設定勾選,則此虛擬機完成創建后,此虛擬硬盤將會產生一個選定大小的映像文件。這樣直接采用固定虛擬磁盤大小的優點在于提升I/O 的運行效能,因為它省去了許多系統進行計算的任務,但相對地是當此類型虛擬硬盤數量很多時,將會占用掉許多主機硬盤的可用空間。至于如果取消勾選,則虛擬硬盤物理文件大小,將會隨實際存放的數據多寡而增長。

圖2 安裝Guest OS

最后您將可以檢視到前面步驟中所配置的各項設定。而在“高級選項”的網絡類型設定部分,您可以決定要采用默認的NAT 轉譯聯機方式,還是要改成“Specify shared device name”設定,并且選定前面步驟中所預先創建好的網絡橋接名稱,讓虛擬機與物理主機使用同一個網段地址,來聯機外部網絡與Internet。此外您還可以勾選“在安裝前自定義配置”選項,以便在完成此設定之后,自動開啟此虛擬機的屬性配置頁面。

虛擬機高級配置

關于虛擬機的屬性配置,您可以隨時在此虛擬機關機狀態時來開啟它,因為有許多的設定項是無法在虛擬機啟動狀態下,來進行修改與生效的,例如CPU 數量與內存大小修改等等。如果只是想要修改此虛擬機的名稱與描述,則是可以不需要將虛擬機關機的。若是想要添加其它硬件給此虛擬機使用,請點擊頁面左下角的“加入硬件”按鈕繼續。

在“加入新的虛擬硬件”頁面中,可以看到各種可加入的硬件,這包括了存儲設備、網卡、輸入設備、圖形設備、聲音設備、串行端口與并列端口設備、USB 設備等等。在此以存儲設備(Storage)為例子,您可以為目前的虛擬機加入新的虛擬硬盤,并且設定其容量大小或是選定現有的虛擬硬盤映像文件,以及選定設備的類型、模式以及存儲格式。點擊“完成”。

完成新虛擬硬盤的添加之后,將可以看到在所加入的硬盤界面之中(例如:IDE Disk2),看到此虛擬硬盤的高級設定頁面,您可以根據實際的需要來修改默認的設定。舉例來說,您可以將一些含有重要數據的現有VMWare vmdk虛擬硬盤,裝載至KVM 現有的虛擬機之中,但為了預防其中的文件數據遭到誤刪,則可以在此將此虛擬硬盤設定成“只讀”即可。也可以在此隨時將某一個聯機中的虛擬硬盤進行移除。

必須注意的是移除的操作,僅是移除其聯機設定而不會刪除虛擬硬盤文件。

如圖2 所示便是一個啟動安裝中的Windows 7 虛擬機,您可以通過上方功能列圖標的點擊,讓它以全屏幕的方式來進行操作。

虛擬機高級管理

在KVM 虛擬機的管理中,無論是針對整個虛擬機還是某個虛擬硬盤,皆是可以進行共享、復制以及遷移的。先以虛擬硬盤的分享來說,您可以隨時針對虛擬機中的任一虛擬硬盤,啟用“可分享”設定以便讓其它虛擬機也可以來進行訪問。若是想要針對某一個虛擬機進行復制,則只要在該虛擬機上方,按下鼠標右鍵點擊“分身”繼續。

在“制作虛擬機分身”頁面中,您除了需要設定新虛擬機的名稱之外,還可以修改關于網絡聯機的細節設定。而當來源虛擬機裝載多個虛擬硬盤時,您可自行決定哪一些虛擬硬盤要制作分身。完成設定后點擊“分身”按鈕即可。

關于KVM 虛擬機的復制,除了可以通過圖形界面的操作來完成之外,您也可以使用命令工具來進行。在此我們只要執行sudo virt-clone 命令,搭配—connect=qemu:///system 相關參數設定,來選定所要復制的虛擬機名稱以及新復制的虛擬硬盤存放路徑即可。

當網絡中有多部的KVM 虛擬化平臺主機時,將它可以通過相互連接的方式,來對于現行運作中的虛擬機進行遷移。在“遷移虛擬機”設定頁面中,您只要設定好新的主機并決定是否要采用脫機遷移(速度較快),即可開始進行虛擬機的遷移操作。而在“高級選項”設定中,則可以進一步設定是否要采用libvirt 的幕后程序穿隧遷移,以及設定最大停機時間,必要的話還可以自定義聯機地址、端口以及帶寬限制。

針對KVM 虛擬機的管理也有它自己的默認偏好設定,可以修改成符合自己喜好的風格。您只要從操作窗口的下拉選單之中,點擊“偏好設定”繼續。首先在“一般”頁面中,可以決定是否要啟用系統狀態的圖標于窗口界面之中。

在“統計”頁面中,則是可以設定要每間隔多久更新一次狀態信息,以及設定要保留多少的維護歷史之記錄。在I/O 的監視部分則可以決定是否要輪詢磁盤與網絡的I/O 狀態。在“VM 詳細數據”頁面中,可以設定控制面板的縮放功能,以及變更抓取鍵的組合設定。對于新建的虛擬機,則可以決定是否安裝音頻設備,以及是否安裝圖形管理功能與修改默認的虛擬硬盤映像文件存儲格式。

最后在“回饋意見”頁面中,您可以決定哪一些操作功能要進行回報。針對一些已經不再使用的虛擬機,我們可以通過鼠標的右鍵菜單來執行刪除操作。執行后將會開啟“刪除確認”提示。在此如果您只是要刪除虛擬機而不要刪除相關的虛擬硬盤文件,則可以取消在清單之中有關于img 或是其它格式的文件。后續這一些保存的虛擬硬盤文件,仍可以被其它KVM 虛擬機甚至于兼容的虛擬化平臺所裝載與訪問。

在上一步驟中若您點擊了“刪除”操作,為了避免誤刪的風險,系統將會再一次出現確認提示信息,若是您將其中的“不要再問我”項勾選,往后對于虛擬機的刪除操作,將不會再出現這個確認信息,因此必須謹慎小心。

KVM 常用命令與工具

本文最后讓我們來看看在KVM 管理中,幾個最常用的命令技巧。首先若想知道目前有哪一些虛擬機正在執行,只要執行virsh -c qemu:///system list 即可。如果您想要查看到的是目前所有虛擬機的狀態,則必須改執行virsh -connect qemu:///system list -all即可。對于現行虛擬機的啟動與關機,則可以執行virsh-c qemu:///system start虛擬機名稱,以及virsh -c qemu:///system shutdown 虛擬機名稱。

想想看在如今許多人使用的Android 系列手機與平板上,是否也能夠通過簡易的App 操作界面,來進行KVM 虛擬機的管理呢?答案是可以的,您只要在互聯網搜尋中輸入KVM 關鍵詞(例如:KVM for Android Tools)即可找到相關的移動App,這包括了須付費與免費的版本,而它們的管理方式皆是通過SSH 的安全聯機設定,來控管所有以KVM 為基礎的虛擬機。無論如何這一些App 都可以協助您在虛擬化平臺的移動管理上更加得心應手。

究竟還有哪一些好用的工具可以來管理KVM 虛擬化平臺呢?建議您不妨參考這個 網 站http://www.linuxkvm.org/page/Management_Tools,來下載與評估您偏好的管理工具。另外在這個網站上您還可以下載到許多以KVM 為基礎的虛擬化平臺,例如Proxmox VE 開放原始碼就是一個相當不錯的虛擬化平臺,讓您的企業在計劃部署私有云基礎平臺的過程之中,能有更多不一樣的選擇。

結論

在Ubuntu Linux 操作系統中所能夠選擇使用的虛擬化平臺不僅有KVM,其實像是其它知名的Xen Hypervisor與Oracle VirtualBox 等開源軟件,也都是相當不錯的選擇。關于虛擬化平臺的選擇與規劃,全看實務上的用途為何,并非都得要使用付費的授權軟件不可。因為許多時候您會發現,許多付費軟件的功能可能都是用不著的,或是可以善用其它可行作法來加以替代的。

以免費的KVM 來說便相當適用在個人的測試環境需求、開發人員的測試環境、中小企業的應用服務器部署三大用途。

猜你喜歡
聯機命令虛擬化
只聽主人的命令
多聯機焓差實驗室制冷量測試不確定度分析
海爾發布全球首個物聯多聯機云服務平臺
再立標桿,天加GHP燃氣多聯機 助力神木市LNG站建設
安裝和啟動Docker
基于OpenStack虛擬化網絡管理平臺的設計與實現
局部UV上光工藝探究
對基于Docker的虛擬化技術的幾點探討
移防命令下達后
H3C CAS 云計算管理平臺上虛擬化安全防護的實現
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合