■ 河南 郭建偉
編者按:隨著虛擬化技術(shù)的不斷發(fā)展,越來越多的企業(yè)開始使用虛擬機(jī),來為員工提供適宜的工作環(huán)境。虛擬機(jī)具有配置快捷,易于管理等特點(diǎn)。其中vSphere VMWare提供的虛擬機(jī)產(chǎn)品,具有非常強(qiáng)大的功能,在很多企業(yè)中得到了廣泛應(yīng)用。僅僅部署了虛擬機(jī)是不夠的,還需要掌握相關(guān)的操作技巧,才可以靈活高效的管理虛擬機(jī)。
在每次登錄vSphere Client時,需要輸入賬戶名和密碼。為了實(shí)現(xiàn)快速登錄,有時希望實(shí)現(xiàn)自動登錄操作。此外,在有些特殊情況下,管理員并不想告訴用戶具體的賬戶信息,也可以使用自動登錄來實(shí)現(xiàn)。
在Vmware安裝目錄(默認(rèn) 為“C:Programs FilesVMWareInfrastructureVirtual Infrastrycture ClientLauncher”)下打開名為“VpxClient.exe.confi g”文件,在其中添加“”,“”,“
在vSphere中可以利用其內(nèi)置功能,直接打開目標(biāo)虛擬機(jī)的控制臺,實(shí)現(xiàn)各種控制操作。不過該功能存在一個不可忽視的安全問題。為了便于使用,管理員需要在vCenter中為用戶創(chuàng)建具有一定權(quán)限的賬戶,便于其登錄vSphere主頁面。
當(dāng)然,管理員可以針對該賬戶進(jìn)行權(quán)限的管控。不過凡是具有一定權(quán)限的賬戶,往往存在一定的危險性。利用VNC控制,就可以有效限制用戶的訪問操作。
運(yùn)行vSphere Web Clien t實(shí)現(xiàn)登錄操作,在左側(cè)選擇目標(biāo)主機(jī),在右側(cè)的“配置”面板中點(diǎn)擊“安全配置文件”項(xiàng),點(diǎn)擊右側(cè)的“編輯”按鈕,在打開窗口中選擇“SSH”項(xiàng),點(diǎn)擊“啟動”按鈕,激活SSH登錄功能。
運(yùn)行SecureCRT程序,點(diǎn)擊工具欄上的快速鏈接按鈕,在鏈接窗口內(nèi)中選擇“SSH2”協(xié)議,輸入目標(biāo)主機(jī)IP,點(diǎn)擊連接按鈕,在新建主機(jī)密鑰窗口中點(diǎn)擊“接受并保存”按鈕,之后輸入Roor賬戶和密碼,并取消選擇公鑰文件。
當(dāng)?shù)卿浀紼XSi主機(jī)后,在Shell界面中執(zhí)行“vi/etc/vmware/firewall/vnc.xml”命令,創(chuàng)建名為“vnc.xml”的文件。
輸 入“
該文件的作用是定義了名為“VNC”的安全策略,設(shè)置允許進(jìn)入/傳出的端口范圍,這些端口必須是可用的。每個進(jìn)入的端口號和特定的虛擬機(jī)對應(yīng)。
執(zhí) 行“esxcli network firewall refresh”命令,來刷新防火墻策略。
執(zhí) 行“esxcli network firewall ruleset list |grep vnc”命令,會顯示該策略已經(jīng)激活。
圖1 配置高級參數(shù)信息
在vSphere Web Client中選擇對應(yīng)的虛擬機(jī),在其編輯設(shè)置窗口中的“虛擬機(jī)選項(xiàng)”面板左側(cè)選擇“高級”項(xiàng),點(diǎn)擊“編輯配置”按鈕,在打開列表(如圖1)中的“RemoteDisplay.vnc.enabled”欄中選擇“true”項(xiàng), 在“RemoteDIsplay.password”欄中輸入連接密碼, 在“Remote.vnc.port”欄中輸入具體的端口號(例如“ TCP 8899”),該端口號必須在上述策論的定義的端口范圍內(nèi)。
這樣,就可以使用VNC Viweer,來連接目標(biāo)ESXi主機(jī)的上述特定端口(例如“TCP 8899”),輸入密碼后就可以訪問對應(yīng)的虛擬機(jī)。
在虛擬機(jī)和外界之間復(fù)制粘貼數(shù)據(jù),可以實(shí)現(xiàn)數(shù)據(jù)的快速交換。在vSphere Web Client中選擇對應(yīng)的虛擬機(jī),在其右鍵菜單上點(diǎn)擊“編輯設(shè)置”項(xiàng),在打開窗口中的額“虛擬機(jī)選項(xiàng)”面板左側(cè)選擇“高級”項(xiàng),點(diǎn)擊“編輯配置”按鈕,在列表中的“isolation.tools.copy.disable”欄中選擇“False”項(xiàng), 在“ioslation.tools.copy.disable”欄中選擇“False”項(xiàng),之后重新加載配置信息,就可以實(shí)現(xiàn)上述效果了。
注意:其只能將剪切板中的內(nèi)容進(jìn)行復(fù)制粘貼,無法實(shí)現(xiàn)文件的復(fù)制粘貼。
在vSphere中虛擬機(jī)會自動和外部的ESXi主機(jī)同步時間,在有些情況下,其實(shí)用戶并不愿意實(shí)現(xiàn)時間同步。這樣就避免了修改物理ESXi主機(jī)時間的問題。
因?yàn)樵贓SXi主機(jī)中,往往存在大量的虛擬機(jī)。取消某個虛擬機(jī)的時間同步功能,就可以在其開機(jī)或者恢復(fù)開機(jī)快照時,就不會從ESXi物理主機(jī)同步時間了。這樣,在恢復(fù)快照時,就會使用與該快照對應(yīng)的舊的時間信息。
按照上述方法打開對應(yīng)虛擬機(jī)的編輯配置窗口,將其 中 的“tools.syncTime”,“time.synchronize.contin ue”,“time.synchronize.restore”,“time.synchroni ze.resume.disk”,“time.sy nchronize.shrink”,“time.synchronize.tools.startu p”,“time.synchronize.too ls.enable”,“time.synchro nize.resume.host”的項(xiàng)的值全部設(shè)置為0,就可以實(shí)現(xiàn)時間不同步功能了。
注意:在編輯時需要保證虛擬機(jī)處于關(guān)機(jī)狀態(tài)。
圖2 添加設(shè)備信息
在vSphere 6.5版本中,已經(jīng)可以自動實(shí)現(xiàn)屏幕分辨率自適應(yīng)。
例如,在其提供的VMWare Remote Console中,就可以讓虛擬機(jī)窗口自動適應(yīng)外部的變化。
但是在之前的vSphere版本中,卻沒有提供該自動功能。
例如,可以在老版本的vSphere Web Client中點(diǎn)擊菜單“視圖”→“立即匹配客戶機(jī)”或者“立即匹配窗口”項(xiàng),就可以實(shí)現(xiàn)分辨率匹配操作。
在ESXi主機(jī)中存在多個虛擬機(jī),有時為了便于使用,需要為每個虛擬機(jī)配置一個虛擬網(wǎng)卡,將外部的不同的無線直通到內(nèi)部的虛擬機(jī)之中,讓虛擬機(jī)可以使用無線網(wǎng)卡。
在vSphere Client中選擇對應(yīng)的虛擬機(jī),在其右鍵菜單中點(diǎn)擊“編輯配置”項(xiàng),在打開窗口中的“硬件”面板中點(diǎn)擊“添加”按鈕,在向?qū)Т翱冢ㄈ鐖D2)中選擇“USB控制器”項(xiàng),點(diǎn)擊下一步按鈕,選擇“EHCI+UHCI”或者“xHCI”項(xiàng),分別支持不同的USB版本。
將實(shí)際的無線網(wǎng)卡連接到ESXi主機(jī)上,之后再次添加USB設(shè)備,就可以添加所需的USB無線網(wǎng)卡設(shè)備。
進(jìn)入目標(biāo)虛擬機(jī),執(zhí)行“ifconfig -a”命令,即可看到添加的無線網(wǎng)卡設(shè)備。
在虛擬機(jī)中雖然存在網(wǎng)卡,不過其并非真實(shí)的網(wǎng)卡。按照傳統(tǒng)方式,虛擬機(jī)上的虛擬網(wǎng)卡連接到虛擬交換機(jī),之后橋接到物理網(wǎng)卡。
但是,在很多情況下,需要將外部的真實(shí)網(wǎng)卡直通到內(nèi)部的虛擬機(jī)中,這樣可以實(shí)現(xiàn)更加真實(shí)的功能,而不是橋接的效果。
例如,對于數(shù)據(jù)中心來說,可能希望使用一張F(tuán)C卡,讓該卡不同的端口連接不同的虛擬機(jī),使其可以分別連接到交換機(jī)上,實(shí)現(xiàn)對存儲網(wǎng)絡(luò)的訪問。
在vSphere Client中選擇某臺ESXi主機(jī),在右側(cè)的“配置”面板中選擇“硬件”→“高級設(shè)置”項(xiàng),在右側(cè)點(diǎn)擊“編輯”項(xiàng),在列表中選擇所需的網(wǎng)卡設(shè)備,點(diǎn)擊確定按鈕后,重啟ESXi主機(jī)。這樣,這些網(wǎng)卡設(shè)備就會被直通到虛擬機(jī)中。
在對應(yīng)虛擬機(jī)中點(diǎn)擊“編輯配置”項(xiàng),在打開窗口中的“硬件”面板中點(diǎn)擊“添加”按鈕,在向?qū)Ы缑嬷羞x擇“PCI”設(shè)備箱,在下一步窗口中的“指定要連接的物理PCI/PCIe設(shè)備”列表中選擇直通進(jìn)來的網(wǎng)卡。這樣,該虛擬機(jī)就可以使用ESXi主機(jī)中的真實(shí)網(wǎng)卡進(jìn)行連接了。
利用Python等腳本,可以更加高效的管理虛擬機(jī)。
例如,對于大型數(shù)據(jù)中心來說,在其中存在大量的虛擬機(jī),很多用戶在使用之后,并沒有關(guān)閉虛擬機(jī)的操作,造成大量的虛擬機(jī)處于空轉(zhuǎn)狀態(tài),白白的浪費(fèi)資源。
利用預(yù)設(shè)的腳本,就就可以實(shí)現(xiàn)自動關(guān)機(jī)操作。
出于安全性考慮,很多管理員會根據(jù)需要執(zhí)行快照創(chuàng)建操作,而開機(jī)快照比較占用資源,大量的快照管理起來比較繁瑣,利用腳本可以快速清除無關(guān)的快照,而只保留最新的快照。
這里就以自動關(guān)閉虛擬機(jī)為例進(jìn)行說明,雖然在vSphere中利用“已調(diào)度任務(wù)”功能,可以實(shí)現(xiàn)自動關(guān)機(jī)操作,但是其針對的是單臺的虛擬機(jī),無法對多臺虛擬機(jī)進(jìn)行操作。
在 某 個 目 錄(例 如“/opt/pyfile”)下創(chuàng)建名為“vmbh.py”的文件,其作用是獲取需要關(guān)閉指定ESXi主機(jī)所有的虛擬機(jī)ID信息,其核心是利用了“vimcmd vmsvc/getallvms|grep xxx”指令,來獲取名稱中包含“xxx”的虛擬機(jī)的ID。
創(chuàng)建名為“vmstatus.py”的Python腳本,主要用來獲取哪些虛擬機(jī)屬于開機(jī)狀態(tài),其核心是利用了“vimcmd /vmsvc/power.getstate x”命令,來獲取指定的ID的虛擬機(jī)是否處于開機(jī)狀態(tài),其中的“x”表示具體的虛擬機(jī)ID。
創(chuàng)建名為“vmshutdown.py”的文件,其作用是關(guān)閉指定的的虛擬機(jī),其核心是利用了“vim-cmd vmsvc/power.off x”指令,來關(guān)閉指定的虛擬機(jī)。
創(chuàng)建名為“autoshutdown.py”的文件,其作用是針對指定的IP列表的ESXI主機(jī)中的執(zhí)行檢測特定虛擬機(jī)ID,判斷其是否處于開機(jī)狀態(tài),并執(zhí)行具體的關(guān)機(jī)操作。
限于篇幅這里就不列出具體的Python代碼了。
上述方法的核心思想是利用SSH登錄到指定的ESXi主機(jī)上,利用這些腳本來執(zhí)行搜索合乎要求的虛擬機(jī),如果其處于開機(jī)狀態(tài),就對其進(jìn)行關(guān)機(jī)操作。
為了便于執(zhí)行,可以在Linux中執(zhí)行“crontab -e”命令,輸入“0 1 * * * pyth on /pyfile/ shutdown_vm_daily.py”行,創(chuàng)建所需的計劃任務(wù)。
在執(zhí)行的時間(例如每日凌晨一點(diǎn))執(zhí)行指定的Python腳本,來執(zhí)行關(guān)機(jī)操作。