25個實用的VMware ESXi命令

cxs86621發表於2015-05-11
【TechTarget中國原創】vCenter Server一直是管理VMware環境的主要工具。儘管透過vCenter Server執行變更及修改操作具有諸多優勢,但在每個VMware管理員的職業生涯中難免會遇到vCenter無法使用的情況。vCenter不可用時,使用vSphere client直接連線主機能夠在很多方面幫到你,但仍舊有很多工無法完成。

排除故障時,知道如何使用至關重要,而且對常見的Linux命令以及ESXi命令有一個基本的瞭解對你來說永遠都不是什麼壞事兒。

Linux shell命令


首先,讓我們瞭解一些常見的Linux shell命令。這些命令並非ESXi的專用命令,你會發現很多命令也可以在大多數的Linux發行版中使用。

find/cat/grep –在試圖查詢指定的檔案或者在某個檔案中查詢字串時這三個命令非常重要。find命令可以基於檔名或者模式查詢指定的檔案,cat命令用於顯示檔案內容,grep用於在單個或多個檔案內查詢指定的字串。

find /path/to/vm/folder –i name "*delta*" – 列出虛擬機器所有的增量磁碟。

cat hostd.log | grep error –在hostd.log中查詢所有的"error"字串

head/tail –檢視檔案內容時這兩個命令非常有用。儘管可以使用cat命令顯示檔案完整的內容,但head以及tail命令可以用於顯示檔案開頭或結尾的部分,忽略了檔案的中間內容。進行故障診斷時tail命令尤為有用,尤其是可以使用-f標記實時監控日誌檔案發生的變化。

tail -f /var/log/vmkernel.log – 實時檢視vmkernel日誌發生的變化

less –顯示大檔案內容時less命令非常有用。透過在cat命令的輸出內容之後輸入“|”less,可以分頁顯示輸出結果,而且可以向前或向後滾動瀏覽。

cat /var/log/vpxa.log | less –在螢幕上分頁顯示vpxa.log檔案的內容。

df/vdf –這兩個命令顯示檔案系統的可用空間。df命令顯示本地檔案系統以及資料儲存的容量、已用空間以及可用空間。為檢視ESXi主機不同隨機磁碟的使用情況,必須使用vdf命令。這兩個命令都可以用於發現由於可用空間不足而可能導致的任何問題。

ps/kill –這兩個命令分別用於查詢ESXi主機內部執行的服務、強制終止這些服務。ps命令包括很多命令列開關,但最常用的是檢索正在執行的程式的ID,然後就可以使用Kill命令終止相應的服務。

vi – 如果之前不熟悉vi命令,那麼在學習時大多會遇到麻煩。Vi是一個文字編輯器,用於修改檔案內容—vSphere管理員透過命令列shell進行故障診斷時必須要具備該技能。

ESXi專用命令


接下來讓我們瞭解一些在ESXi命令列shell下最常用的命令。這些ESXi命令不僅能夠幫助你進行故障診斷,還可以用於日常維護以及效能監控。

services.sh – Linux服務通常使用services命令管理,管理ESXi服務是透過使用services.sh命令實現的。Services.sh命令支援的引數包括stop、start、restart,透過這三個引數可以停止、啟動或重啟所有的ESXi服務。

services.sh restart – 重啟所有的ESXi服務

/etc/init.d – 執行位於/etc/init.d目錄下的指令碼可以啟動或停止對應的服務。如果只想重啟vCenter Server Agent(vpax服務),可以執行/etc/init.d/vpxa restart 命令。而services.sh restart將重啟所有服務。

/etc/init.d/vpxa restart – 重啟主機上的 vCenter Agent 

cat /etc/chkconfig.db – 檢視所有ESXi服務的執行狀態。

vmkping –我們都熟悉ping命令的用法及功能。Vmkping命令更進一步,允許使用Vmkernel的IP堆疊透過特定的介面傳送ICMP資料包。這意味著你可以透過vMotion網路而非管理網路傳送ping包。

vmkping –I vmk1 10.10.10.1 – 透過vmkl介面向10.10.10.1傳送ICMP請求

nc –組合使用vmkping、nc命令(netcat),可以確認ESXi主機與特定IP之間的網路連通性。儘管vmkping命令透過ICMP確認連通性,但有時我們想確認是否可以訪問特定的TCP埠(例如iSCSI的TCP埠是3260)。

nc –z 10.10.10.10 3260 – 測試是否能夠訪問10.10.10.10的3260埠。

Vmkfstools-如果需要透過命令列管理VMFS資料卷以及虛擬磁碟,那麼vmkfstools命令就派上用場了。使用vmkfstools命令可以建立、克隆、擴充套件、重新命名並刪除VMDK檔案。除了虛擬磁碟選項,你還可以使用vmkfstools命令建立、擴充套件、增大、回收檔案系統的資料塊。

vmkfstools –i test.vmdk testclone.vmdk – 將test.vmdk克隆為testclone.vmdk

esxtop –對ESXi主機進行效能監控以及故障診斷時,很少有工具能夠提供和esxtop同樣多的資訊。除提供和Linux top命令類似的功能外,esxtop還可以收集很多VMware專有的指標,包括中斷、記憶體、網路、磁碟介面卡、磁碟裝置以及電源管理。

vscsiStats – 需要進一步監控儲存I/O的效能時,vscsiStats命令就能夠派上用場了。vscsiStats命令能夠幫助你收集與虛擬機器磁碟I/O負載相關的效能資料。進行容量規劃或者遷移後端儲存時,使用vscsiStats命令收集到的資料可謂價值連城。

vim-cmd –vim-cmd是構建在hostd程式之上的命令空間,允許終端使用者呼叫幾乎所有的vSphere API。Vim-cmd提供了一些ESXi子命令管理不同的虛擬基礎設施,而且和vimsh相比,更容易使用。

dcui –登入到ESXi主機時,VMware直接使用者控制檯介面(DCUI)提供了基於選單的主機管理功能。DCUI提供了很多不同的功能,比如root密碼維護、網路維護。有時你可能只能透過SSH訪問主機,但幸運的是,在命令列下執行dcui命令就可以進入基於選單的DCUI系統。

vm-support –曾經想過收集ESXi主機所有的支援及日誌資訊嗎?Vm-support命令恰好能夠滿足你的要求。如果之前與VMware的技術支援熱線聯絡過,那麼很可能用過這個命令。

esxcli命令探究


esxcli命令用途廣泛,我們不能簡單地將其歸為單個命令。esxcli包括許多不同的名稱空間,允許你控制ESXi提供的幾乎所有裝置。下面列出了使用最頻繁(肯定不是所有)的名稱空間:

esxcli hardware – 想獲取ESXi主機的硬體及配置資訊時,esxcli硬體名稱空間就能夠派上用場了。

esxcli hardware cpu list – 獲取CPU資訊(系列、型號以及快取)

esxcli hardware memory get – 獲取記憶體資訊(可用記憶體以及非一致記憶體訪問)

esxcli iscsi – iscsi名稱空間可以被用於監控並管理硬體iSCSI及軟體iSCSI設定。

esxcli iscsi software –用於啟用/禁用軟體iSCSI initiator。

esxcli iscsi adapter –用於設定軟硬體iSCSI介面卡的發現、CHAP以及其他設定

esxcli iscsi sessions – 用於列出主機上已建立的iSCSI會話。

esxcli network –需要監控vSphere網路並對如下網路元件進行調整時,包括虛擬交換機、VMkernel網路介面、防火牆以及物理網路卡等,esxcli網路名稱空間就派上用場了。

esxcli network nic –列出並修改網路卡資訊,比如名字、喚醒網路卡以及速度。

esxcli network vm list – 列出有一個活動網路埠的虛擬機器的網路資訊。

esxcli network vswitch –檢索並管理VMware的標準交換機以及分散式虛擬交換機。

esxcli network ip – 管理VMkernel埠,包括管理、vMotion以及FT網路。還可以修改主機的所有IP棧,包括DNS、IPsec以及路由資訊。

esxcli software – 軟體名稱空間可以用於檢索ESXi主機已安裝的軟體及驅動並可以安裝新元件。

esxcli software vib list – 列出ESXi主機上已經安裝的軟體及驅動。

esxcli storage – 可能是最常用的esxcli命令名稱空間之一,包括了管理連線到vSphere的儲存的所有資訊。

esxcli storage core device list – 列出當前儲存裝置

esxcli storage core device vaai status get –獲得儲存裝置支援的VAAI的當前狀態。

esxcli system – 透過該命令使你能夠控制ESXi的高階選項,比如設定syslog並管理主機狀態。

esxcli system maintenanceMode set –enabled yes/no – 將主機設定為維護模式

檢視並更改ESXi高階設定(提示:使用esxcli system settings 
advanced list –d 命令檢視非預設設定)

esxcli system syslog –檢視 Syslog 及配置資訊

esxcli vm – ESXi的虛擬機器名稱空間用於列出執行在主機上的虛擬機器的各種資訊,如果需要可以強制關閉這些虛擬機器。

esxcli vm process list –列出已啟動的虛擬機器的程式資訊。

esxcli vm process kill – 停止正在執行的虛擬機器的程式,關閉虛擬機器或者強制關閉虛擬機器電源。

esxcli vsan – ESXi的VSAN名稱空間包括配置並維護VSAN的很多命令,包括資料儲存、網路、預設域名以及策略配置。

esxcli vsan storage – 配置VSAN使用的本地儲存,包括增加、刪除物理儲存並修改自動宣告。

esxcli vsan cluster – 本地主機脫離/加入VSAN叢集。

esxcli esxcli – esxcli命令包括一個稱為esxcli的名稱空間,透過使用esxcli名稱空間,你可以獲得更多資訊。

esxcli esxcli command list – 列出所有的esxcli命令及其提供的功能。

當然,上述命令及示例並未涵蓋ESXi提供的所有功能。所有的ESXi命令有多個開關及選項,提供了多種功能。透過輸入-h引數可以獲得相關幫助資訊。

透過命令列進行故障診斷是一件很棘手的事兒,但透過對25個ESXi命令有一個深入的理解,你應該能夠順利解決大多數問題。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16163290/viewspace-1647367/,如需轉載,請註明出處,否則將追究法律責任。

相關文章