器虛擬化實戰(zhàn):從ESXi到vCenter集群部署與避坑指南)
簡介這份文檔面向企業(yè)IT運維人員、虛擬化架構(gòu)師及數(shù)據(jù)中心規(guī)劃者系統(tǒng)講解VMware服務(wù)器虛擬化解決方案的完整設(shè)計思路幫助應(yīng)對服務(wù)器數(shù)量激增帶來的資金、人力與管理壓力。資源共1個doc文件壓縮包約3.39MB內(nèi)容以方案文檔形式呈現(xiàn)便于直接查閱與內(nèi)部傳閱。文檔圍繞vCompute、vStorage、vNetwork三大方向展開先概述服務(wù)器整合、商業(yè)連續(xù)性與測試開發(fā)三類場景再進入實施方案設(shè)計涵蓋需求分析、方案拓撲圖、軟硬件需求、基礎(chǔ)架構(gòu)服務(wù)層、應(yīng)用程序服務(wù)層、虛擬應(yīng)用程序?qū)蛹爱惖厝轂?zāi)技術(shù)并延伸至降低TCO、提升運營效率與服務(wù)水平、舊硬件投資保護及同類產(chǎn)品比較等章節(jié)。目前已有2732人學(xué)習(xí)適合需要搭建vSphere環(huán)境、規(guī)劃vCenter Server與Lab Manager部署、或準備虛擬化方案匯報的讀者參考可快速獲取從架構(gòu)分層到容災(zāi)設(shè)計的整體框架與落地要點。1. 從一份“詳細.doc”說起VMware 服務(wù)器虛擬化到底解決什么問題如果你手里真拿到過一份叫《VMware服務(wù)器虛擬化解決方案(詳細).doc》的文件大概率會發(fā)現(xiàn)它長得像一份售前方案一堆拓撲圖、一堆“高可用”“資源池”“遷移”字眼但真到機房上架、裝 ESXi、劃 VLAN、配存儲的時候能直接抄的步驟并不多。服務(wù)器虛擬化這件事核心不是把物理機變成虛擬機而是把 CPU、內(nèi)存、存儲、網(wǎng)絡(luò)這四類資源從“綁定在單臺機器上”變成“可調(diào)度、可度量、可回收”的資源池。VMware 的 ESXi vCenter 組合就是目前企業(yè)里最常見、資料最全、踩坑記錄最多的一條路線。這篇筆記面向三類人一是第一次要把幾臺物理服務(wù)器整合成虛擬化集群的運維二是已經(jīng)在用 VMware Workstation 但想搞清楚服務(wù)器版和桌面版差在哪的工程師三是需要給團隊寫一份能落地的虛擬化實施方案的人。我會按“先想清楚架構(gòu) → 再裝出最小可用集群 → 再談存儲和網(wǎng)絡(luò) → 最后說避坑和驗證”的順序?qū)憛?shù)和命令都給到能直接改的程度。VMware 官網(wǎng)中文下載、vmware workstation pro 17、vmware 虛擬機安裝教程這些熱搜詞背后其實混著桌面虛擬化和服務(wù)器虛擬化兩撥需求這篇只講服務(wù)器側(cè)桌面版只在對比時提一句。2. 先定架構(gòu)再動手ESXi、vCenter 和集群的邊界怎么劃2.1 為什么不是裝完 ESXi 就完事很多人第一次接觸服務(wù)器虛擬化會把它等同于“在服務(wù)器上裝個 VMware”。裝完 ESXi 確實能開虛擬機但那只是單機模式。單機模式的問題在于沒有統(tǒng)一管理入口、沒有集群級 HA、沒有 vMotion、沒有資源池和權(quán)限體系。你管 3 臺還能忍管 30 臺就是災(zāi)難。所以架構(gòu)第一步要分清三個層次ESXi 是虛擬化內(nèi)核負責跑虛擬機vCenter Server 是管理平面負責把多臺 ESXi 組織成集群集群和資源池是調(diào)度單元負責 HA、DRS 和權(quán)限邊界。常見做法是3 臺以上物理主機組成一個 vSphere 集群每臺主機裝 ESXivCenter 以虛擬機形式跑在集群里或獨立管理主機上。管理網(wǎng)絡(luò)、vMotion 網(wǎng)絡(luò)、存儲網(wǎng)絡(luò)、虛擬機業(yè)務(wù)網(wǎng)絡(luò)必須分開哪怕一開始只有一臺交換機也要用 VLAN 隔開。這不是潔癖是后面排錯時能救命的分層。2.2 最小可用集群的硬件與網(wǎng)絡(luò)規(guī)劃下面這張表是我一般會先填完再上架的規(guī)劃表字段可以根據(jù)自己機房改但維度別省。項目最小可用推薦說明物理主機數(shù)23 及以上2 臺只能做基礎(chǔ) HA維護窗口緊每臺 CPU16 核32 核起按虛擬機 vCPU 超分比 1:4 估算每臺內(nèi)存128 GB256 GB 起內(nèi)存是最先耗盡的資源管理網(wǎng)卡1 張 1GbE2 張 10GbE 冗余管理、vMotion 可共用但建議分開存儲本地 RAID10共享 SAN/NAS共享存儲才能跨主機 vMotion交換機千兆萬兆存儲和 vMotion 吃帶寬網(wǎng)絡(luò)劃分上我一般會切四個 VLAN管理 VLAN 給 ESXi 管理地址和 vCentervMotion VLAN 只跑遷移流量存儲 VLAN 給 iSCSI 或 NFS業(yè)務(wù) VLAN 給虛擬機。每個 VLAN 在 vSphere 標準交換機或分布式交換機上建對應(yīng)的端口組。標準交換機夠用分布式交換機在主機多的時候省事但學(xué)習(xí)成本高第一次做建議先用標準交換機跑通。2.3 版本和授權(quán)要先確認別裝到一半發(fā)現(xiàn)沒許可ESXi 和 vCenter 的版本要匹配vCenter 版本不能低于它管理的 ESXi 大版本。授權(quán)方面vSphere 有標準版、企業(yè)版等不同級別HA 和 vMotion 在不同版本里的支持情況不一樣動手前先在 VMware 官網(wǎng)中文下載頁面確認當前版本的功能矩陣。熱搜里常出現(xiàn)“vmware 17 許可證密鑰”那是 Workstation Pro 的桌面版授權(quán)和服務(wù)器側(cè)的 vSphere 授權(quán)不是一回事別混用。服務(wù)器側(cè)授權(quán)一般按 CPU 或按核心訂閱具體以你采購的合同為準這里不展開。提示先把管理網(wǎng)絡(luò)的 IP、網(wǎng)關(guān)、DNS、NTP 全部規(guī)劃好再裝 ESXi。NTP 不同步會導(dǎo)致 vCenter 證書和日志時間錯亂后面排查會非常痛苦。3. 裝出第一臺 ESXi 并接入 vCenter 的最小步驟3.1 制作安裝介質(zhì)并完成 ESXi 基礎(chǔ)配置ESXi 安裝本身不復(fù)雜關(guān)鍵是安裝后的配置。下面以常見流程為例命令在 ESXi Shell 或 DCUI 里執(zhí)行。# 查看當前管理網(wǎng)絡(luò)配置 esxcli network ip interface ipv4 get # 設(shè)置管理地址、掩碼、網(wǎng)關(guān)按自己規(guī)劃改 esxcli network ip interface ipv4 set -i vmk0 -t static -I 10.10.10.11 -N 255.255.255.0 -g 10.10.10.1 # 設(shè)置 DNS 和主機名 esxcli network ip dns server add -s 10.10.10.2 esxcli system hostname set --fqdn esxi01.lab.local # 開啟 SSH 和 ESXi Shell方便后續(xù)排錯 vim-cmd hostsvc/enable_ssh vim-cmd hostsvc/start_ssh # 配置 NTP時間同步是證書和日志的基礎(chǔ) esxcli system ntp set -s ntp.lab.local esxcli system ntp set --enabled true這幾條命令的邏輯是先把管理地址固定下來再配 DNS 和主機名然后開 SSH 方便遠程操作最后配 NTP。參數(shù)里-i vmk0是管理接口-I是 IP-N是掩碼-g是網(wǎng)關(guān)。改完用esxcli network ip interface ipv4 get復(fù)查一遍。NTP 服務(wù)器填你環(huán)境里真實存在的沒有就先用網(wǎng)關(guān)或內(nèi)部時間源。3.2 部署 vCenter Server Appliance 并納管主機vCenter 現(xiàn)在以 VCSA 形式部署安裝分兩階段第一階段把安裝程序跑到目標 ESXi 或 vCenter 上第二階段做配置。安裝時幾個關(guān)鍵參數(shù)部署規(guī)模按主機數(shù)和虛擬機數(shù)選小環(huán)境選“小型”存儲選共享存儲或本地都行但生產(chǎn)建議放共享SSO 域默認vsphere.local密碼要符合復(fù)雜度。裝完后登錄 vCenter把 ESXi 主機加進來# 在 vCenter 的 MOB 或使用 govc 命令行納管主機govc 需提前配置環(huán)境變量 export GOVC_URLhttps://vcenter.lab.local export GOVC_USERNAMEadministratorvsphere.local export GOVC_PASSWORD你的密碼 export GOVC_INSECURE1 # 創(chuàng)建數(shù)據(jù)中心和集群 govc datacenter.create LabDC govc cluster.create -dcLabDC LabCluster # 把 ESXi 主機加入集群 govc cluster.add -dcLabDC -clusterLabCluster -hostname10.10.10.11 -usernameroot -passwordESXi密碼 -noverifygovc是 VMware 官方的命令行工具適合批量操作。-noverify跳過證書校驗實驗環(huán)境可以用生產(chǎn)環(huán)境建議導(dǎo)入正確證書。納管后檢查主機狀態(tài)是否為“已連接”如果顯示“未連接”先看管理網(wǎng)絡(luò)通不通、DNS 能不能解析 vCenter 和主機名。3.3 創(chuàng)建第一臺虛擬機并驗證基礎(chǔ)功能主機納管成功后先建一臺測試虛擬機驗證網(wǎng)絡(luò)和存儲。創(chuàng)建時注意客戶機操作系統(tǒng)類型選對虛擬硬件版本按 ESXi 版本選磁盤置備方式實驗環(huán)境用“精簡置備”省空間生產(chǎn)按性能需求選“厚置備延遲置零”或“厚置備置零”。網(wǎng)卡選 VMXNET3比 E1000 性能好。# 用 govc 創(chuàng)建一臺測試虛擬機 govc vm.create -dcLabDC -clusterLabCluster -dsdatastore1 \ -poolResources -netVM Network -c2 -m4096 \ -disk40G -disk.controllerpvscsi -gubuntu64Guest \ -onfalse test-vm01參數(shù)說明-c是 vCPU 數(shù)-m是內(nèi)存 MB-disk是磁盤大小-g是客戶機操作系統(tǒng)標識-onfalse表示創(chuàng)建后不開機。創(chuàng)建完開機裝系統(tǒng)確認能拿到 IP、能訪問網(wǎng)關(guān)。這一步跑通說明管理網(wǎng)絡(luò)、存儲、虛擬機網(wǎng)絡(luò)基本正常。4. 存儲和網(wǎng)絡(luò)虛擬化方案里最容易翻車的兩塊4.1 共享存儲選型與 iSCSI 掛載沒有共享存儲vMotion 和 HA 都無從談起。常見選擇是 iSCSI SAN、NFS 或 FC。iSCSI 性價比高配置也不復(fù)雜。掛載 iSCSI 存儲的步驟先在存儲設(shè)備上劃 LUN 并配置訪問控制然后在 ESXi 上添加軟件 iSCSI 適配器配置發(fā)現(xiàn)地址最后新建數(shù)據(jù)存儲。# 啟用軟件 iSCSI 適配器 esxcli iscsi software set --enabledtrue # 添加動態(tài)發(fā)現(xiàn)目標 esxcli iscsi adapter discovery sendtarget add -a 10.10.20.100:3260 -A vmhba64 # 重新掃描適配器 esxcli storage core adapter rescan -A vmhba64 # 查看識別到的設(shè)備 esxcli storage core device listvmhba64是軟件 iSCSI 適配器名稱不同主機可能不同用esxcli storage core adapter list確認。發(fā)現(xiàn)地址填存儲設(shè)備的 IP 和端口默認 3260。掃描后如果看不到設(shè)備檢查存儲側(cè)是否允許該主機 IQN 訪問以及網(wǎng)絡(luò) VLAN 是否放通。新建數(shù)據(jù)存儲時塊大小和置備方式按業(yè)務(wù)選VMFS6 是當前主流。4.2 標準交換機與端口組配置網(wǎng)絡(luò)這塊標準交換機vSwitch是基礎(chǔ)。每臺主機至少一個 vSwitch 承載管理、vMotion、存儲和業(yè)務(wù)。生產(chǎn)環(huán)境建議管理和業(yè)務(wù)分開vMotion 和存儲可以共用但最好獨立。端口組是虛擬機接網(wǎng)絡(luò)的入口VLAN ID 填對否則虛擬機之間不通。# 創(chuàng)建 vSwitch 并添加物理上行鏈路 esxcli network vswitch standard add -v vSwitch1 esxcli network vswitch standard uplink add -u vmnic1 -v vSwitch1 # 創(chuàng)建端口組并指定 VLAN esxcli network vswitch standard portgroup add -p vMotion -v vSwitch1 esxcli network vswitch standard portgroup set -p vMotion --vlan-id 20 # 給 vMotion 配置 VMkernel 接口 esxcli network ip interface add -i vmk1 -p vMotion esxcli network ip interface ipv4 set -i vmk1 -t static -I 10.10.20.11 -N 255.255.255.0這幾條命令先建交換機再加物理網(wǎng)卡然后建端口組并打 VLAN最后給 vMotion 建 VMkernel 接口。vmnic1是第二塊物理網(wǎng)卡具體名稱用esxcli network nic list查。vMotion 的 VMkernel 接口必須開 vMotion 服務(wù)用esxcli network ip interface set -i vmk1 --enable-vmotion開啟。配完用vmkping測試主機之間 vMotion 網(wǎng)絡(luò)通不通。4.3 存儲和網(wǎng)絡(luò)配好后的驗證清單配完別急著上業(yè)務(wù)先跑一遍驗證主機之間 vMotion 能不能通、共享存儲能不能同時被多臺主機看到、虛擬機能不能跨主機遷移、HA 能不能在主機斷電時觸發(fā)。這些驗證做完方案才算立住。常見做法是先建兩臺測試虛擬機分別放在不同主機上做一次 vMotion 和一次 HA 模擬斷電。注意vMotion 要求源和目標主機都能訪問同一共享存儲且 vMotion 網(wǎng)絡(luò)互通。如果遷移報錯先看存儲掛載狀態(tài)再看 vMotion VMkernel 是否啟用。5. 避坑與排查那些方案文檔里不會寫的翻車現(xiàn)場5.1 主機納管后顯示“未連接”現(xiàn)象ESXi 裝好、網(wǎng)絡(luò)也通加到 vCenter 后狀態(tài)一直是“未連接”或“無響應(yīng)”。原因通常是 DNS 解析問題或時間不同步。vCenter 和 ESXi 必須能互相正向和反向解析NTP 偏差過大也會導(dǎo)致證書校驗失敗。解決在 ESXi 和 vCenter 上分別用nslookup和ping驗證解析檢查 NTP 狀態(tài)esxcli system ntp get必要時重啟管理代理services.sh restart。5.2 虛擬機遷移報“無法訪問共享存儲”現(xiàn)象vMotion 到一半失敗提示目標主機無法訪問虛擬機文件。原因一般是目標主機沒掛載同一數(shù)據(jù)存儲或者存儲路徑不一致。解決在目標主機上esxcli storage filesystem list確認數(shù)據(jù)存儲已掛載檢查 iSCSI 會話esxcli iscsi session list必要時重新掃描適配器。如果用的是本地存儲vMotion 本來就不支持別硬試。5.3 管理網(wǎng)絡(luò)能通但虛擬機網(wǎng)絡(luò)不通現(xiàn)象ESXi 管理地址能 ping 通虛擬機卻拿不到 IP 或上不了網(wǎng)。原因通常是端口組 VLAN ID 配錯或者物理交換機端口沒放通對應(yīng) VLAN。解決在 ESXi 上esxcli network vswitch standard portgroup list看端口組 VLAN在物理交換機上確認 trunk 口允許的 VLAN 列表。還有一個常見坑是虛擬機網(wǎng)卡類型選成 E1000某些系統(tǒng)下性能差換成 VMXNET3 試試。5.4 存儲性能突然下降現(xiàn)象虛擬機磁盤延遲升高業(yè)務(wù)變慢。原因可能是 iSCSI 網(wǎng)絡(luò)和業(yè)務(wù)網(wǎng)絡(luò)混跑帶寬被占滿也可能是存儲 LUN 的隊列深度不夠。解決把 iSCSI 流量放到獨立 VLAN 和獨立物理網(wǎng)卡檢查esxcli storage core device stats get看延遲必要時調(diào)整存儲多路徑策略為“循環(huán)”或“最近使用”。5.5 快照用多了導(dǎo)致存儲爆滿現(xiàn)象數(shù)據(jù)存儲使用率飆升虛擬機變慢甚至無法開機。原因快照文件會隨虛擬機運行不斷增長長期不合并會占滿存儲。解決快照只用于短期變更窗口用完立即合并刪除。用esxcli storage filesystem list看剩余空間在 vCenter 里刪除快照時選“合并”。血淚經(jīng)驗是別把快照當備份用它扛不住。6. 進階技巧用 govc 和 PowerCLI 把重復(fù)操作腳本化6.1 批量創(chuàng)建虛擬機的參數(shù)化腳本當你要建幾十臺虛擬機時圖形界面點不過來。我一般用 govc 寫一個參數(shù)化腳本把虛擬機名、CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)做成變量循環(huán)創(chuàng)建。#!/bin/bash # 批量創(chuàng)建虛擬機參數(shù)從 CSV 讀取 export GOVC_URLhttps://vcenter.lab.local export GOVC_USERNAMEadministratorvsphere.local export GOVC_PASSWORD你的密碼 export GOVC_INSECURE1 while IFS, read -r name cpu mem disk net; do echo 創(chuàng)建虛擬機: $name govc vm.create -dcLabDC -clusterLabCluster -dsdatastore1 \ -poolResources -net$net -c$cpu -m$mem \ -disk$disk -disk.controllerpvscsi -gubuntu64Guest \ -onfalse $name done vm-list.csvCSV 格式是名稱,CPU,內(nèi)存MB,磁盤,網(wǎng)絡(luò)每行一臺。腳本邏輯是逐行讀取調(diào)用govc vm.create創(chuàng)建。參數(shù)說明和前面單臺創(chuàng)建一致。這個腳本適合初始化測試環(huán)境生產(chǎn)環(huán)境建議加上錯誤處理和日志記錄比如判斷上一條命令返回值失敗就跳過并記錄。6.2 用 PowerCLI 做集群健康檢查PowerCLI 是 VMware 的 PowerShell 模塊適合做巡檢。下面這段檢查集群內(nèi)主機連接狀態(tài)、告警和存儲使用率。# 連接 vCenter Connect-VIServer -Server vcenter.lab.local -User administratorvsphere.local -Password 你的密碼 # 檢查主機連接狀態(tài) Get-VMHost | Select-Object Name, ConnectionState, PowerState # 檢查集群內(nèi)告警 Get-Cluster LabCluster | Get-AlarmAction # 檢查數(shù)據(jù)存儲使用率 Get-Datastore | Select-Object Name, CapacityGB, FreeSpaceGB, {NUsedPercent;E{[math]::Round(($_.CapacityGB - $_.FreeSpaceGB) / $_.CapacityGB * 100, 2)}}這段腳本先連 vCenter然后分別查主機狀態(tài)、集群告警和存儲使用率。UsedPercent是計算字段超過 80% 就該關(guān)注了。PowerCLI 可以配合計劃任務(wù)定期跑輸出到文件或郵件。我一般會把它做成每日巡檢比人工點界面靠譜。6.3 驗證方案是否真的可用方案寫完不算完要驗證。我的習(xí)慣是先做一次單主機故障模擬拔掉一臺主機的管理網(wǎng)線或直接關(guān)機看 HA 是否在預(yù)期時間內(nèi)重啟虛擬機再做一次存儲鏈路斷開看多路徑是否切換最后做一次 vMotion 壓力測試同時遷移多臺虛擬機看網(wǎng)絡(luò)和存儲是否扛得住。這些驗證做完你才知道方案里的參數(shù)是不是拍腦袋寫的。提示驗證前確認備份可用別在沒備份的情況下做故障模擬。后悔藥在虛擬化里通常很貴。我自己的教訓(xùn)是第一次做服務(wù)器虛擬化時覺得網(wǎng)絡(luò)隨便配配就行結(jié)果 vMotion 和 iSCSI 混在一個 VLAN 里遷移慢到懷疑人生后來拆開才正常。虛擬化方案里網(wǎng)絡(luò)和存儲的分層規(guī)劃比主機配置本身更影響體驗。希望幫到你。本文還有配套的精品資源點擊獲取