- RHCSARHCE 紅帽Linux認(rèn)證學(xué)習(xí)指南(第7版)EX200 & EX300
- (美)Michael Jang等
- 4813字
- 2020-11-29 00:29:56
認(rèn)證目標(biāo)2.01 配置Red Hat KVM
在第1章中,我們使用了安裝VM所需要的軟件包配置了物理的64位RHEL 7系統(tǒng)。如果其他都失敗,則此配置步驟可以幫助你創(chuàng)建RHEL 7的多個安裝模式。但是如果RHEL安裝系統(tǒng)沒有所需要的程序包,那該怎么辦呢?
有了正確的程序包,就可以建立KVM模塊、訪問虛擬機(jī)配置命令,并且可以為一組虛擬機(jī)創(chuàng)建詳細(xì)的配置命令。本節(jié)介紹的一些命令在某種程度是后面幾章內(nèi)容的預(yù)覽。例如,與更新有關(guān)的工具將在第7章介紹。但是首先必須討論這樣一個問題:既然真實的物理硬件系統(tǒng)觸手可得,為什么很多人還想使用虛擬機(jī)。
考試內(nèi)幕
管理虛擬機(jī)
RHCSA考試認(rèn)證目標(biāo)要求考生掌握以下內(nèi)容:
● 訪問虛擬機(jī)的控制臺。
● 啟動和退出虛擬機(jī)。
● 將系統(tǒng)配置為在系統(tǒng)引導(dǎo)時啟動虛擬機(jī)。
● 安裝Red Hat企業(yè)版Linux系統(tǒng)作為虛擬客戶機(jī)。
有充足的理由認(rèn)為討論中的虛擬機(jī)采用了Red Hat默認(rèn)的虛擬機(jī)解決方案,即KVM解決方案。雖然在第1章中已經(jīng)在64位系統(tǒng)的RHEL 7安裝過程中安裝了此解決方案,但是考試可能會要求在真實系統(tǒng)上安裝相關(guān)的程序包。此外,Red Hat提供了一個虛擬機(jī)管理器圖形控制臺用來管理虛擬機(jī)。當(dāng)然,這個虛擬機(jī)管理器工具是libvirt庫提供的管理API的一個前端。它也可以用來安裝和配置系統(tǒng),使得系統(tǒng)在引導(dǎo)過程中可以自動啟動。
雖然在第1章曾提到,Red Hat博客指出考生將在預(yù)安裝系統(tǒng)上進(jìn)行考試,但是并沒有把虛擬機(jī)的安裝操作排除在考試之外。因此在本章中要學(xué)習(xí)如何在KVM上建立RHEL 7的安裝模式。
Kickstart安裝方法
RHCSA認(rèn)證目標(biāo)要求考生掌握:
● 用Kickstart方法自動安裝Red Hat企業(yè)版Linux。
為此,每個RHEL安裝模式都包含一個Kickstart文件示例,該文件是以給定的安裝模式為基礎(chǔ)的。本章將學(xué)習(xí)如何用這個文件自動完成安裝。這比我們想象的要難一些,因為首先要修改Kickstart樣本文件,暫時不考慮不同系統(tǒng)的獨特配置參數(shù)。但是系統(tǒng)配置后,就以此Kickstart文件為基線,根據(jù)需要生成任意多個RHEL安裝系統(tǒng)。
訪問遠(yuǎn)程系統(tǒng)和安全傳輸文件
RHCSA認(rèn)證目標(biāo)要求考生掌握以下內(nèi)容:
● 用SSH訪問遠(yuǎn)程系統(tǒng)。
● 在系統(tǒng)間安全傳輸文件。
如果系統(tǒng)管理員都要親自跑到他們所管理的每個系統(tǒng)那里,則他們的大部分時間都要浪費在從這個系統(tǒng)到另一個系統(tǒng)的路上。有了安全Shell(Secure Shell, SSH)這樣的工具,系統(tǒng)管理員可以遠(yuǎn)程執(zhí)行管理操作和安全地傳輸文件。雖然SSH是RHEL 7標(biāo)準(zhǔn)配置中自動安裝的,但是本章后面也會介紹自定義配置選項,如基于密鑰的身份驗證。
2.1.1 選擇虛擬機(jī)的理由
好像每個人都想進(jìn)入虛擬機(jī)這個世界。是的,他們應(yīng)該進(jìn)入這個虛擬機(jī)世界。過去,許多企業(yè)都要為每個服務(wù)分配一個不同的專用物理系統(tǒng)。實際上,為了保證系統(tǒng)的可靠性,企業(yè)可能為每個服務(wù)分配兩個或兩個以上的系統(tǒng)。當(dāng)然,也可以在單個系統(tǒng)上配置多個服務(wù)。事實上,在Red Hat考試中就是這么做的。但是在關(guān)注系統(tǒng)安全的企業(yè)中,為降低風(fēng)險,系統(tǒng)常常專門用于單個服務(wù)。
如果系統(tǒng)經(jīng)過正確配置,則每個服務(wù)都能配置在其專用的虛擬機(jī)上。可在一個本地的物理計算機(jī)上安裝10個虛擬機(jī)。由于不同的服務(wù)通常在不同的時刻使用內(nèi)存和CPU周期,因此超額分配本地物理系統(tǒng)上的內(nèi)存和CPU資源是一個合理的想法。例如,在一個內(nèi)存為256GB的系統(tǒng)中,經(jīng)常可以給此系統(tǒng)的20個虛擬機(jī)各分配16GB的內(nèi)存。
實際上,系統(tǒng)管理員可能用兩個物理系統(tǒng)代替老式網(wǎng)絡(luò)上的20個物理系統(tǒng)。這20個虛擬機(jī)將安裝到一個共享存儲卷上,使用集群文件系統(tǒng)(如GFS2)進(jìn)行格式化,并掛載到每個物理系統(tǒng)上。當(dāng)然,這兩個物理系統(tǒng)需要功能強(qiáng)大的硬件系統(tǒng)的支持,但是其節(jié)省的費用是相當(dāng)可觀的。不僅節(jié)省了硬件成本,也節(jié)省了附加設(shè)備費用、能源消耗和其他費用。
2.1.2 假設(shè)必須安裝KVM
如果你需要在RHEL 7上安裝任何類型的軟件,則GNOME Software工具可以大顯身手。先以普通用戶登錄到GUI環(huán)境。為了從GUI環(huán)境打開這個工具,單擊Applications | System Tools |Software。只要已經(jīng)與RHN網(wǎng)絡(luò)或第三方重構(gòu)發(fā)行版的程序庫建立了正確的連接,就需要花一些時間進(jìn)行搜索。在左側(cè)窗格中單擊Virtualization旁邊的箭頭,就會出現(xiàn)4個虛擬程序包組。單擊Virtualization Hypervisor程序包組并選擇這個組中的第一個程序包,將顯示如圖2-1所示的屏幕。

圖2-1 添加/刪除軟件工具
要安裝KVM程序,你要做的只是從Virtualization Hypervisor、Virtualization Client、Virtualization Platform等程序包組中選擇合適的程序包,如果不記得如表2-1所示的列表,就選擇所有虛擬程序包的最新版本即可。
表2-1 與虛擬化相關(guān)的程序包

這里僅列出了7個程序包。當(dāng)然,在大多數(shù)配置中還需要依賴于其他相關(guān)的程序包。但是,在物理RHEL 7系統(tǒng)上配置虛擬機(jī),真正需要的就是這7個程序包。雖然Virtualization Tools組沒有任何強(qiáng)制安裝的程序包,但是它包含的軟件在實際工作中可能非常有用,例如用于讀取和管理虛擬機(jī)磁盤映像的工具。如果想要顯示虛擬機(jī)磁盤的內(nèi)容或者在超級監(jiān)視程序主機(jī)上管理虛擬機(jī)分區(qū)和文件系統(tǒng),需要使用libguestsfs-tools程序包。
用GNOME Software工具安裝軟件十分容易,只需要選取(或取消)需要的程序包并單擊Apply按鈕。如果還需要安裝它們相關(guān)的程序包,則出現(xiàn)一個完整列表,列出這些程序包,讓用戶選擇。當(dāng)然,在命令行接口要用yum install packagename命令一次安裝一個程序包。另一種方法是安裝Virtualization Host和Virtualization Client程序包組,如下所示:
# yum group install "Virtualization Host" "Virtualization Client"
第7章將詳細(xì)介紹yum和程序包組。
2.1.3 選擇正確的KVM模塊
大多數(shù)情況下,只要選擇了正確的程序包即可。系統(tǒng)會自動加載合適的內(nèi)核模塊。在KVM工作之前,必須加載相關(guān)的內(nèi)核模塊。因此要運行以下命令:
# lsmod | grep kvm
如果KVM模塊正確載入,則會看到如下兩組模塊:
kvm_intel 138567 0 kvm 441119 1 kvm_intel
或
kvm_amd 59887 0 kvm 261575 1 kvm_amd
從模塊的名字可以知道,輸出結(jié)果取決于CPU制造商。如果沒有看到這個輸出信息,則首先要保證已經(jīng)選擇了正確的硬件。第1章中曾指出,在/proc/cpuinfo文件中必須有svm或vmx標(biāo)志。否則,需要對系統(tǒng)的BIOS或UEFI菜單進(jìn)行額外的配置。有些菜單包含了與硬件虛擬技術(shù)有關(guān)的具體選項,應(yīng)該啟動這些選項。
如果/proc/cpuinfo文件有前面提到的兩個標(biāo)志中的一個,下一步的操作是載入可應(yīng)用的模塊。最簡單的方法是使用modprobe命令,下面這個命令也會載入其他相關(guān)的模塊。如果系統(tǒng)使用AMD處理器,則將kvm_intel替換為kvm_amd:
# modprobe kvm_intel
2.1.4 配置虛擬機(jī)管理器
虛擬機(jī)管理器(Virtual Machine Manager)是virt-manager程序包的一部分。在GUI工具中,可以利用同名的一個命令啟動這個程序。或者在GNOME桌面環(huán)境中,選擇Applications | System Tools | Virtual Machine Manager菜單,這個命令會打開如圖2-2所示的Virtual Machine Manager窗口。

圖2-2 Virtual Machine Manager窗口
需要時也可以遠(yuǎn)程配置和管理基于KVM的虛擬機(jī)。所需要的全部操作只是連接到遠(yuǎn)程的超級監(jiān)視程序。為此,單擊File | Add Connection,打開Add Connection窗口,在這個窗口中選擇:
● Linux容器或超級監(jiān)視程序(Hypervisor),通常為KVM或Xen(Xen是RHEL 5的默認(rèn)超級監(jiān)視程序,但從RHEL 6起不再支持它)。
● 連接可以是本地的,也可以是使用SSH等連接方法的遠(yuǎn)程連接。
如果選擇遠(yuǎn)程連接,需要提供遠(yuǎn)程系統(tǒng)的主機(jī)名或IP地址。
2.1.5 用超級監(jiān)視程序進(jìn)行配置
每個超級監(jiān)視程序都需要詳細(xì)配置。右擊本地主機(jī)(QEMU)超級監(jiān)視程序,從彈出的菜單中選擇Details,它打開一個根據(jù)本地系統(tǒng)的主機(jī)命名的詳細(xì)信息窗口,如圖2-3所示。

圖2-3 虛擬機(jī)主機(jī)詳細(xì)信息
從表2-2可以看出,Overview選項卡列出虛擬機(jī)配置的基本參數(shù)。下一節(jié)繼續(xù)討論當(dāng)前超級監(jiān)視程序的主機(jī)詳細(xì)信息窗口。
表2-2 虛擬機(jī)主機(jī)詳細(xì)參數(shù)說明

2.1.6 超級監(jiān)視程序的虛擬網(wǎng)絡(luò)
現(xiàn)在我們來分析在虛擬機(jī)管理器中為虛擬機(jī)配置的網(wǎng)絡(luò)。在當(dāng)前超級監(jiān)視程序的主機(jī)詳細(xì)信息窗口中,單擊Virtual Networks標(biāo)簽,默認(rèn)的虛擬網(wǎng)絡(luò)如圖2-4所示,它是用超級監(jiān)視程序為虛擬機(jī)創(chuàng)建的標(biāo)準(zhǔn)網(wǎng)絡(luò)。

圖2-4 虛擬機(jī)主機(jī)詳細(xì)信息
你會注意到,根據(jù)配置,這個給定的網(wǎng)絡(luò)在虛擬機(jī)引導(dǎo)時會自動啟動。因此,如果在虛擬機(jī)上配置了合適的虛擬網(wǎng)卡,并利用動態(tài)主機(jī)配置協(xié)議(DHCP)的一個客戶端命令,就可以自動從給定的IP地址段中分配得到一個IP地址。從圖中可以看到,當(dāng)把流量轉(zhuǎn)發(fā)給物理網(wǎng)卡時,這個給定的IP地址還可以用網(wǎng)絡(luò)地址轉(zhuǎn)換技術(shù)(Network Address Translation, NAT)進(jìn)行轉(zhuǎn)換。
利用圖中左下角的按鈕可以添加新的虛擬網(wǎng)絡(luò)、啟動或停止一個正在工作的虛擬網(wǎng)絡(luò)以及刪除這個網(wǎng)絡(luò)。練習(xí)2-1要求建立第二個虛擬網(wǎng)絡(luò)。
2.1.7 練習(xí)2-1:創(chuàng)建第二個虛擬網(wǎng)絡(luò)
本練習(xí)將利用GUI虛擬機(jī)管理器在標(biāo)準(zhǔn)KVM超級監(jiān)視程序上創(chuàng)建第二個虛擬網(wǎng)絡(luò)。這個練習(xí)需要將RHEL 7系統(tǒng)配置為虛擬主機(jī),如本章前面所述。
(1)如果詳細(xì)信息窗口沒有打開,則右擊標(biāo)準(zhǔn)本地主機(jī)(QEMU)超級監(jiān)視程序,在彈出的菜單中選擇Details。
(2)在以本地系統(tǒng)名稱表示的Host Details窗口中,選擇Virtual Networks標(biāo)簽。
(3)單擊Virtual Network標(biāo)簽左下角的加號(+)按鈕,打開Create A New Virtual Network Wizard。
(4)閱讀操作指示,接下來要按照出現(xiàn)的指示進(jìn)行操作。單擊Forward繼續(xù)。
(5)給新的虛擬網(wǎng)絡(luò)指定一個名字。本書使用outsider名字。單擊Forward繼續(xù)。
(6)如果還沒有輸入IP地址,則在Network文本框中輸入192.168.100.0/24 IP地址。系統(tǒng)會自動為其他網(wǎng)絡(luò)信息計算正確記錄,如圖2-5所示。

圖2-5 定義IPv4地址
實際經(jīng)驗
注意,要防止輸入的IP地址與本地網(wǎng)絡(luò)上的現(xiàn)有硬件(如路由器或無線接入點)的IP地址發(fā)生沖突。例如,如果電纜“調(diào)制解調(diào)器”在接口中使用192.168.100.1 IP地址,則超級監(jiān)視程序上使用的192.168.100.0/24網(wǎng)絡(luò)地址就會使Linux主機(jī)無法訪問這個電纜調(diào)制解調(diào)器。如果遇到這樣的硬件,則要改變網(wǎng)絡(luò)地址,如圖2-5所示。
(7)現(xiàn)在可以在這個已配置的網(wǎng)絡(luò)中選擇可分配給DHCP客戶端的IP地址段。按照第1章的表1-2,我們?yōu)榇司W(wǎng)絡(luò)上的outsider1.example.org系統(tǒng)分配了一個靜態(tài)IP地址。只要前面提到的192.168.100.100這個IP地址在DHCP可分配的IP地址段之外,就不需要做任何改變。修改后單擊Forward繼續(xù)下一步。
(8)作為可選項,可以定義一個IPv6地址段。IPv6是RHCE考試的內(nèi)容,第12章將進(jìn)行介紹。單擊Forward繼續(xù)下一步。
(9)現(xiàn)在,我們想要得到這樣一個系統(tǒng),它可以把網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)給物理網(wǎng)絡(luò),因為這是此網(wǎng)絡(luò)與其他虛擬網(wǎng)絡(luò)(可能在其他虛擬主機(jī)上)上的系統(tǒng)進(jìn)行通信的方法。目標(biāo)可以是任何工作于NAT模式的物理設(shè)備,以便向遠(yuǎn)程主機(jī)隱藏這些系統(tǒng)。如果我們不把來自虛擬機(jī)的路由消息限制到某個特定物理網(wǎng)卡,則使用Forwarding to Physical Network下的默認(rèn)設(shè)置就可以了。這些選項在本章后面討論Network Interfaces標(biāo)簽時討論。做適當(dāng)?shù)倪x擇后單擊Forward繼續(xù)下一步操作。
(9)檢查所做配置的摘要。如果滿意,單擊Finish按鈕。現(xiàn)在新建的虛擬機(jī)系統(tǒng)和網(wǎng)卡可以使用該outsider網(wǎng)絡(luò)。
1.超級監(jiān)視程序的虛擬存儲
現(xiàn)在來介紹為虛擬機(jī)管理器中的虛擬機(jī)配置的虛擬存儲空間。在當(dāng)前超級監(jiān)視程序的主機(jī)詳細(xì)信息窗口中單擊Storage標(biāo)簽。在圖2-6所示的默認(rèn)文件系統(tǒng)目錄中,把/var/lib/libvirt/images目錄配置為虛擬映像。這樣的映像文件實質(zhì)上是一個非常大的文件,它們從硬盤中保留了存儲空間供虛擬機(jī)用。

圖2-6 虛擬機(jī)存儲詳細(xì)信息
這些大型文件會很容易摧毀很多系統(tǒng)。控制這些文件的一個辦法是給/var/lib/libvirt/images目錄分配一個專用的分區(qū)或邏輯卷。
由于我們已經(jīng)把一個分區(qū)的絕大部分可用空間分配給/home目錄,因此選擇在這個目錄下創(chuàng)建一個專用存儲區(qū)。例如,用戶“michael”有一個/home/michael/KVM目錄,用來保存虛擬硬盤驅(qū)動器所需要用到的VM文件。
下面的命令首先要以普通用戶的身份建立一個目錄,然后以root用戶身份登錄到系統(tǒng),給這個目錄設(shè)置合適的SELinux安全上下文,再刪除/var/lib/libvirt/images目錄,最后重建這個目錄并連接到用戶的目錄上。
$ mkdir /home/michael/KVM $ su - root # semanage fcontext -a -t virt_image_t '/home/michael/KVM(/.*)? ' # restorecon /home/michael/KVM # rmdir /var/lib/libvirt/images # ln -s /home/michael/KVM /var/lib/libvirt/images
這樣配置的一個優(yōu)點是,保留了/var/lib/libvirt/images目錄的默認(rèn)SELinux配置,這些配置參數(shù)是由/etc/selinux/targeted/contexts/files目錄中的file_contexts文件定義的。換言之,該配置在SELinux的relabel之后仍然有效。有關(guān)SELinux的重新標(biāo)志(relabel)將在第4章介紹。
2.超級監(jiān)視程序的網(wǎng)絡(luò)接口
現(xiàn)在分析在虛擬機(jī)管理器中為虛擬機(jī)配置的網(wǎng)絡(luò)接口。在當(dāng)前超級監(jiān)視程序的主機(jī)詳細(xì)信息窗口中,單擊Network Interfaces標(biāo)簽。圖2-7所示的網(wǎng)絡(luò)接口設(shè)備僅指定了回環(huán)接口。如果系統(tǒng)上還安裝了其他接口,如以太網(wǎng)適配器,也會看到這些接口。

圖2-7 虛擬機(jī)網(wǎng)卡
如果本地系統(tǒng)通過一個標(biāo)準(zhǔn)以太網(wǎng)卡或無線適配器進(jìn)行連接,則默認(rèn)配置就足夠了。一個正確配置的虛擬機(jī)即使考慮到第1章提到的防火墻、IP地址轉(zhuǎn)發(fā)選項,也應(yīng)該能夠訪問外部網(wǎng)絡(luò)。在RHEL 7中,每個虛擬網(wǎng)絡(luò)都關(guān)聯(lián)著一個虛擬開關(guān),如virbr0。當(dāng)流量轉(zhuǎn)發(fā)到物理主機(jī)之外時,虛擬開關(guān)默認(rèn)在NAT模式下操作。
采用與Virtual Network和Storage標(biāo)簽相同的方法添加另一個網(wǎng)絡(luò)接口,方法是單擊Network Interface標(biāo)簽左下角的加號按鈕,打開Configure Network Interfaces窗口,這個窗口可用于配置4種不同類型的網(wǎng)絡(luò)接口中的任何一個:
● Bridge(橋接) 把一個物理接口與一個虛擬接口綁定在一起。
● Bond(綁定) 連接兩個或兩個以上的網(wǎng)絡(luò)接口,就像它們是一個接口一樣。
● Ethernet(以太網(wǎng)方式) 配置一個接口。
● VLAN 配置一個接口,使其帶有IEEE 802.1Q VLAN標(biāo)記。
- 阿里云數(shù)字新基建系列:云原生操作系統(tǒng)Kubernetes
- 無蘋果不生活 OS X Mountain Lion隨身寶典
- 高性能Linux服務(wù)器構(gòu)建實戰(zhàn):運維監(jiān)控、性能調(diào)優(yōu)與集群應(yīng)用
- 循序漸進(jìn)學(xué)Docker
- Learning Bootstrap
- Joomla! 3 Template Essentials
- Windows 7案例教程
- Cassandra 3.x High Availability(Second Edition)
- 寫給架構(gòu)師的Linux實踐:設(shè)計并實現(xiàn)基于Linux的IT解決方案
- Linux系統(tǒng)最佳實踐工具:命令行技術(shù)
- Hadoop Real-World Solutions Cookbook
- iOS 10快速開發(fā):18天零基礎(chǔ)開發(fā)一個商業(yè)應(yīng)用
- 電腦辦公(Windows 7 + Office 2013)入門與提高
- Linux從入門到精通
- Embedded Systems Architecture