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