建虛擬機(jī)全流程:從模板部署到資源分配與故障排查)
簡介面向虛擬化運(yùn)維人員或 VMware 初學(xué)者這份 docx 文檔系統(tǒng)梳理了 vCenter 創(chuàng)建虛擬機(jī)的完整流程重點(diǎn)解決通過內(nèi)容庫管理 ISO 鏡像并快速部署 CentOS 7 虛擬機(jī)的問題。文檔先介紹如何在 vCenter 中創(chuàng)建 ISO 內(nèi)容庫并配置與 ESXi 一致的存儲(chǔ)位置再說明從已有內(nèi)容庫克隆 ISO 鏡像到目標(biāo)庫的操作要點(diǎn)最后分步講解新建虛擬機(jī)時(shí)如何選擇 ESXi 主機(jī)、設(shè)置兼容性與客戶機(jī)操作系統(tǒng)類型并在 CD/DVD 設(shè)備中掛載克隆好的 ISO 鏡像。文字步驟配合關(guān)鍵截圖直觀易用。資源包為單份 Word 文檔docx大小 2.05MB結(jié)構(gòu)清晰適合直接閱讀、打印或作為實(shí)驗(yàn)練習(xí)參考。目前已有 349 人學(xué)習(xí)下載。對正在搭建 vCenter 實(shí)驗(yàn)環(huán)境或需要規(guī)范化批量部署虛擬機(jī)的運(yùn)維人員這是一份簡明實(shí)用的操作手冊有助于減少因步驟遺漏導(dǎo)致的部署失敗提升虛擬機(jī)交付效率。1. 在 vCenter 里創(chuàng)建虛擬機(jī)從模板部署到資源分配的完整落地流程很多人拿到一份 vCenter 創(chuàng)建虛擬機(jī)的操作文檔第一反應(yīng)是「這有什么好寫的下一步下一步就完了」。但真正在生產(chǎn)環(huán)境里動(dòng)過手的人都知道vCenter 建虛機(jī)這件事坑全藏在細(xì)節(jié)里存儲(chǔ)策略選錯(cuò)導(dǎo)致虛擬機(jī)無法遷移、網(wǎng)卡類型不匹配導(dǎo)致千兆業(yè)務(wù)只有百兆速度、模板克隆后 Linux 機(jī)器網(wǎng)卡起不來、資源池超賣導(dǎo)致宿主機(jī) CPU 就緒時(shí)間飆升。這些不是玄學(xué)是每一步選擇背后的原理沒吃透。這份實(shí)操文檔的價(jià)值不在「如何點(diǎn)完向?qū)А苟凇该恳徊綖槭裁催@么選、參數(shù)怎么定、哪些默認(rèn)值要改」。它適合剛接手虛擬化平臺(tái)的新人照著走一遍流程也適合被虛擬機(jī)性能問題折騰過的運(yùn)維用來對照檢查自己的分配習(xí)慣。2. 創(chuàng)建前的規(guī)劃命名規(guī)范、計(jì)算資源與存儲(chǔ)策略的三維選型2.1 命名規(guī)范與資源位置規(guī)劃在 vCenter 里創(chuàng)建虛擬機(jī)第一個(gè)決定不是點(diǎn)「新建虛擬機(jī)」按鈕而是想清楚這臺(tái)機(jī)器放在哪、叫什么名字。很多初學(xué)的人隨手把虛擬機(jī)建在數(shù)據(jù)中心根節(jié)點(diǎn)下集群、資源池、文件夾全是亂的等到虛擬機(jī)數(shù)量過百運(yùn)維排查問題全靠猜。合理的做法是先看目標(biāo)集群里有沒有建立文件夾和資源池的層級規(guī)劃。我一般會(huì)建議按「業(yè)務(wù)線 - 環(huán)境 - 應(yīng)用」三級來組織文件夾例如「訂單系統(tǒng)」文件夾下再分「生產(chǎn)」和「測試」兩個(gè)子文件夾虛擬機(jī)命名則采用「業(yè)務(wù)代碼-環(huán)境-角色-序號」的格式比如order-prod-web-01。這樣的命名方式在 vCenter 的搜索框里一搜就能定位配合標(biāo)簽功能還能做進(jìn)一步的維度管理。資源池的規(guī)劃又是一個(gè)常見盲區(qū)。很多人以為資源池是拿來分 CPU 內(nèi)存用的其實(shí)更關(guān)鍵的作用是「預(yù)留和限制」的控制點(diǎn)。生產(chǎn)環(huán)境的虛擬機(jī)建議直接放在集群根節(jié)點(diǎn)下讓 DRS 自動(dòng)調(diào)度測試環(huán)境的虛擬機(jī)可以放進(jìn)一個(gè)帶 CPU 限額的資源池防止壓測時(shí)把宿主機(jī)資源吃光影響生產(chǎn)業(yè)務(wù)。這個(gè)決策直接影響后續(xù)虛擬機(jī)性能必須在創(chuàng)建前就定下來。2.2 存儲(chǔ)策略選擇Thick 還是 Thin這是個(gè)性能問題存儲(chǔ)配置是新建虛擬機(jī)向?qū)Ю镒钊菀住改J(rèn)到底」的一步但恰恰是這一步?jīng)Q定了虛擬機(jī)后續(xù)的性能基調(diào)和運(yùn)維復(fù)雜度。虛擬機(jī)磁盤格式有厚置備延遲置零、厚置備快速置零和精簡置備三種很多人只知道「精簡省空間」卻不清楚它在生產(chǎn)環(huán)境里的性能代價(jià)和存儲(chǔ)水位風(fēng)險(xiǎn)。厚置備快速置零在創(chuàng)建時(shí)就分配好全部空間并清零讀寫性能最穩(wěn)定適合數(shù)據(jù)庫等高 IO 應(yīng)用。厚置備延遲置零同樣預(yù)先分配空間但不清零首次寫入時(shí)性能會(huì)打折。精簡置備按實(shí)際使用量增長創(chuàng)建速度快適合桌面虛擬化和測試環(huán)境但最怕存儲(chǔ)池空間規(guī)劃失控——虛擬機(jī)刪了文件但未回收空間存儲(chǔ)水位持續(xù)上漲最后整池爆滿。具體怎么選我通常會(huì)看存儲(chǔ)設(shè)備的類型和業(yè)務(wù)對延遲的敏感性。全閃存陣列上跑核心業(yè)務(wù)選厚置備快速置零普通 SAS 盤上的開發(fā)測試虛擬機(jī)選精簡置備。如果底層是超融合架構(gòu)還要額外關(guān)注存儲(chǔ)策略里是否啟用了去重和壓縮這些功能會(huì)改變空間計(jì)算的邏輯。2.3 網(wǎng)絡(luò)與計(jì)算資源參數(shù)CPU 預(yù)留、內(nèi)存預(yù)留和網(wǎng)卡類型新建虛擬機(jī)向?qū)Ю?CPU 和內(nèi)存的配置看似簡單但「給幾核幾 G」的定義方式有很多大學(xué)問。vCenter 里 CPU 配置涉及插槽數(shù)、每個(gè)插槽的內(nèi)核數(shù)、CPU 預(yù)留、CPU 限制和份額。插槽數(shù)和內(nèi)核數(shù)的設(shè)置直接關(guān)系到虛擬機(jī)內(nèi)部操作系統(tǒng)的許可證授權(quán)比如某些數(shù)據(jù)庫按物理 CPU 插槽計(jì)費(fèi)你就需要把內(nèi)核盡量集中到少量插槽上。內(nèi)存配置方面預(yù)留是一個(gè)容易被忽略的選項(xiàng)。虛擬機(jī)內(nèi)存預(yù)留意味著宿主機(jī)必須保留等量的物理內(nèi)存給這臺(tái)虛擬機(jī)禁止回收和超賣。對于 SQL Server、Oracle 這類對內(nèi)存延遲敏感的應(yīng)用我習(xí)慣開啟全部內(nèi)存預(yù)留對于普通的 Web 服務(wù)器則關(guān)閉預(yù)留讓 ESXi 的內(nèi)存回收機(jī)制發(fā)揮作用提高宿主機(jī)密度。網(wǎng)卡類型的選擇也藏著性能坑。新版 vCenter 創(chuàng)建 Linux 虛擬機(jī)默認(rèn)推薦 VMXNET3但有些老舊操作系統(tǒng)鏡像沒有集成對應(yīng)驅(qū)動(dòng)啟動(dòng)后網(wǎng)卡無法識別。此時(shí)需要改用 E1000E 兼容模式或者準(zhǔn)備驅(qū)動(dòng)軟盤在系統(tǒng)安裝時(shí)加載。這個(gè)細(xì)節(jié)不處理好克隆出來的虛擬機(jī)必現(xiàn)網(wǎng)絡(luò)不通的問題。3. 通過模板部署虛擬機(jī)的完整流程自定義規(guī)范與克隆參數(shù)調(diào)優(yōu)3.1 從模板部署的標(biāo)準(zhǔn)操作路徑模板部署是生產(chǎn)環(huán)境批量創(chuàng)建虛擬機(jī)的主流方式比從頭安裝操作系統(tǒng)快得多也更容易保證系統(tǒng)配置的一致性。在 vCenter 里從模板部署虛擬機(jī)有兩種方式基于 vCenter 的克隆部署和基于內(nèi)容庫的部署。前者適合同集群內(nèi)的快速復(fù)制后者適合跨 vCenter 甚至跨站點(diǎn)的標(biāo)準(zhǔn)化分發(fā)?;?vCenter 的克隆流程大致如下在虛擬機(jī)模板上右鍵選擇「從此模板新建虛擬機(jī)」輸入虛擬機(jī)名稱并選擇存放位置數(shù)據(jù)中心或文件夾選擇計(jì)算資源集群、主機(jī)或資源池選擇存儲(chǔ)位置和存儲(chǔ)策略選擇是否勾選「自定義此虛擬機(jī)的操作系統(tǒng)」并配置客戶機(jī)操作系統(tǒng)自定義規(guī)范設(shè)置操作系統(tǒng)信息主機(jī)名、IP、DNS、域等完成部署并啟動(dòng)虛擬機(jī)這里最關(guān)鍵的一步是第 5 項(xiàng)「客戶機(jī)操作系統(tǒng)自定義規(guī)范」。如果跳過這一步克隆出來的虛擬機(jī)主機(jī)名和 IP 都跟模板一模一樣多臺(tái)機(jī)器同時(shí)上線就會(huì)發(fā)生 IP 沖突和主機(jī)名重復(fù)。自定義規(guī)范需要提前在 vCenter 的「策略和配置文件」里創(chuàng)建好按照 Windows 和 Linux 分開配置。3.2 自定義規(guī)范的核心參數(shù)配置Linux 和 Windows 的自定義規(guī)范參數(shù)差異很大。Windows 需要配置產(chǎn)品密鑰、管理員密碼、時(shí)區(qū)、工作組或域、網(wǎng)絡(luò)設(shè)置其中 Sysprep 的版本必須跟模板里的 Windows 版本嚴(yán)格匹配——Windows Server 2016 模板對應(yīng) Sysprep 2016 版本版本不匹配會(huì)直接導(dǎo)致自定義失敗。Linux 的自定義規(guī)范相對簡單但同樣有版本匹配問題。vCenter 里的 Linux 自定義是通過 guest customization 工具執(zhí)行的不同版本的 Linux 對應(yīng)不同的工具版本。我踩過最典型的一個(gè)坑模板是 CentOS 7自定義規(guī)范里選了 RHEL 7 的選項(xiàng)結(jié)果克隆后 /etc/hostname 沒改IP 倒是配上了但主機(jī)名還是模板里的名字監(jiān)控系統(tǒng)里全是重名告警。網(wǎng)絡(luò)配置部分的參數(shù)決定了虛擬機(jī)能否按預(yù)期接入網(wǎng)絡(luò)。靜態(tài) IP 模式下需要填對子網(wǎng)掩碼、網(wǎng)關(guān)和 DNSDHCP 模式下啥都不用填但得確認(rèn)目標(biāo)網(wǎng)絡(luò)里有 DHCP 服務(wù)。如果虛擬機(jī)要同時(shí)配置多個(gè)網(wǎng)卡自定義規(guī)范里要按順序指定每個(gè)網(wǎng)卡的 IP順序搞錯(cuò)會(huì)導(dǎo)致業(yè)務(wù) IP 配到了管理網(wǎng)卡上。3.3 克隆后的初始化檢查清單克隆部署完成后第一件事不是直接接入業(yè)務(wù)而是做一輪初始化檢查。我習(xí)慣按下面的清單走一遍確認(rèn)主機(jī)名是否按照自定義規(guī)范正確修改確認(rèn)所有網(wǎng)卡的 IP、網(wǎng)關(guān)、DNS 是否符合規(guī)劃檢查/etc/hosts或 Windows 的 hosts 文件里是否殘留模板的解析記錄檢查 SSH 主機(jī)密鑰是否已重新生成Linux 場景檢查 Windows 的 SID 是否已通過 Sysprep 重新生成確認(rèn)虛擬機(jī)時(shí)間同步是否正常NTP 服務(wù)是否隨系統(tǒng)啟動(dòng)這些檢查看著瑣碎但每一條都對應(yīng)著生產(chǎn)環(huán)境里真實(shí)發(fā)生過的故障。比如 SSH 主機(jī)密鑰不重新生成多臺(tái)克隆機(jī)指紋一樣運(yùn)維平臺(tái)做主機(jī)信任時(shí)會(huì)直接報(bào)沖突。4. 空白虛擬機(jī)創(chuàng)建與手動(dòng)安裝系統(tǒng)ISO 掛載和引導(dǎo)參數(shù)設(shè)置4.1 創(chuàng)建空白虛擬機(jī)并掛載 ISO 鏡像不是所有場景都能用模板部署。有時(shí)候需要從零開始安裝一套全新的操作系統(tǒng)版本或者模板里沒有你需要的系統(tǒng)類型這時(shí)候就要走「新建空白虛擬機(jī) 手動(dòng)掛載 ISO 安裝」的路線。這個(gè)流程雖然步驟更多但對系統(tǒng)的掌控力最強(qiáng)。在 vCenter 里新建空白虛擬機(jī)時(shí)「客戶機(jī)操作系統(tǒng)」的選擇需要跟實(shí)際要安裝的系統(tǒng)一致。這個(gè)選擇不僅影響虛擬機(jī)名稱后綴還會(huì)影響虛擬硬件的兼容性配置——選錯(cuò)系統(tǒng)類型后續(xù)安裝完系統(tǒng)后虛擬機(jī)的硬件版本可能不被識別。比如要裝 Windows Server 2022客戶機(jī)操作系統(tǒng)類型需要選到對應(yīng)的版本這樣虛擬硬件才會(huì)默認(rèn)啟用必要的虛擬化特性。ISO 鏡像的掛載有兩種方式一是通過數(shù)據(jù)存儲(chǔ)瀏覽上傳 ISO 到存儲(chǔ)上再掛載到虛擬光驅(qū)二是通過內(nèi)容庫管理 ISO在虛擬機(jī)設(shè)置里直接選擇內(nèi)容庫中的 ISO 文件。第二種方式更規(guī)范適合團(tuán)隊(duì)協(xié)作場景ISO 文件不用每人傳一份到存儲(chǔ)。掛載 ISO 后虛擬機(jī)的引導(dǎo)順序也很關(guān)鍵。默認(rèn)情況下虛擬機(jī)從硬盤引導(dǎo)如果硬盤上沒有引導(dǎo)記錄會(huì)直接報(bào)沒有可引導(dǎo)設(shè)備。需要在虛擬機(jī)設(shè)置的「引導(dǎo)選項(xiàng)」里調(diào)整引導(dǎo)順序把 CD/DVD 光驅(qū)放在硬盤之前或者臨時(shí)勾選「強(qiáng)制進(jìn)入 BIOS 設(shè)置界面」手動(dòng)選擇一次性引導(dǎo)設(shè)備。我用一個(gè) bash 式的操作習(xí)慣做參考創(chuàng)建虛擬機(jī)時(shí)就把光驅(qū)設(shè)為第一個(gè)引導(dǎo)設(shè)備裝完系統(tǒng)后再把硬盤調(diào)回第一位避免后續(xù)重啟時(shí)從 ISO 反復(fù)引導(dǎo)。4.2 安裝過程中的 VMware Tools 安裝與驅(qū)動(dòng)驗(yàn)證手動(dòng)安裝系統(tǒng)的過程跟物理機(jī)基本一樣但有一個(gè)額外且必須做的事安裝 VMware Tools新版叫 open-vm-tools。VMware Tools 不僅提供鼠標(biāo)無縫切換、剪貼板共享這些體驗(yàn)類功能更重要的是它包含了虛擬機(jī)與 ESXi 交互所需的驅(qū)動(dòng)和服務(wù)比如內(nèi)存氣球驅(qū)動(dòng)、網(wǎng)絡(luò)驅(qū)動(dòng)優(yōu)化、時(shí)間同步模塊。沒裝 VMware Tools 的虛擬機(jī)會(huì)在 vCenter 里顯示一個(gè)黃色感嘆號并且無法正常執(zhí)行 shutdown 和 reboot 操作。Windows 系統(tǒng)的 VMware Tools 安裝很簡單掛載后運(yùn)行 setup 即可。Linux 系統(tǒng)則建議用系統(tǒng)自帶的 open-vm-tools 包通過包管理器安裝# 以 CentOS/RHEL 系為例 sudo yum install -y open-vm-tools # 以 Ubuntu/Debian 系為例 sudo apt-get install -y open-vm-tools # 安裝完成后啟動(dòng)并設(shè)置開機(jī)自啟 sudo systemctl enable --now vmtoolsd這里有個(gè)安裝源的問題如果操作系統(tǒng) ISO 是精簡版的可能默認(rèn)軟件源里沒有 open-vm-tools需要用原版安裝源或提前準(zhǔn)備好的離線包。open-vm-tools 裝完后vmware-toolbox-cmd命令可以查看虛擬機(jī)的資源狀態(tài)和宿主機(jī)信息這是驗(yàn)證虛擬化環(huán)境是否正常的一個(gè)直接手段。驅(qū)動(dòng)的驗(yàn)證同樣不能忽略。Windows 系統(tǒng)裝完 VMware Tools 后打開設(shè)備管理器確認(rèn)所有設(shè)備沒有黃色感嘆號Linux 系統(tǒng)通過ethtool -i eth0查看網(wǎng)卡驅(qū)動(dòng)類型確認(rèn)是 vmxnet3 而不是 e1000——如果是 e1000說明網(wǎng)卡類型選得不對需要關(guān)機(jī)后改成 vmxnet3 再開機(jī)驗(yàn)證。4.3 引導(dǎo)參數(shù)設(shè)置的常見誤區(qū)手動(dòng)安裝系統(tǒng)時(shí)引導(dǎo)參數(shù)設(shè)置有一些經(jīng)常翻車的地方。Linux 安裝時(shí)如果設(shè)置了錯(cuò)誤的inst.stage2參數(shù)指向不存在的安裝源安裝程序會(huì)卡在啟動(dòng)界面找不到安裝介質(zhì)。Windows 安裝時(shí)如果 UEFI 引導(dǎo)和 BIOS 引導(dǎo)模式選錯(cuò)裝出來的系統(tǒng)無法直接引導(dǎo)或者反過來在設(shè)置為 UEFI 的虛擬機(jī)上裝了傳統(tǒng) BIOS 模式系統(tǒng)開機(jī)直接黑屏。還有一個(gè)容易忽略的是虛擬機(jī)的固件類型。vCenter 里創(chuàng)建虛擬機(jī)時(shí)可以選擇 BIOS 或 UEFI 固件這個(gè)選擇在創(chuàng)建后不能隨意更改。UEFI 模式下 Windows 虛擬機(jī)需要磁盤上存在 EFI 系統(tǒng)分區(qū)BIOS 模式下則需要 MBR 引導(dǎo)。模板克隆時(shí)如果模板用了 UEFI克隆出來的虛擬機(jī)也必須保持 UEFI混合使用會(huì)導(dǎo)致啟動(dòng)失敗。這個(gè)約束在新手期幾乎必然踩一次。5. 虛擬機(jī)資源限制配置預(yù)留、份額、限制的實(shí)際調(diào)優(yōu)參數(shù)5.1 份額與預(yù)留的計(jì)算邏輯虛擬機(jī)的性能問題很多不是宿主機(jī)硬件不夠而是資源分配策略不合理。vCenter 的資源管理有三個(gè)核心杠桿份額Shares、預(yù)留Reservation和限制Limit。理解這三個(gè)參數(shù)的關(guān)系是調(diào)優(yōu)虛擬機(jī)性能的基礎(chǔ)。份額是「相對權(quán)重」而非「絕對能力」。當(dāng)多臺(tái)虛擬機(jī)爭搶同一宿主機(jī)的 CPU 資源時(shí)份額比例決定了誰能搶到更多。默認(rèn)份額是「正?!沟燃壝款w vCPU 的權(quán)重為 1000。如果你有兩臺(tái)虛擬機(jī)一臺(tái)份額設(shè)為高一臺(tái)設(shè)為低當(dāng)宿主機(jī) CPU 資源緊張時(shí)高份額的虛擬機(jī)可以獲得更多 CPU 時(shí)間片。但注意只要宿主機(jī)資源沒到瓶頸份額對單臺(tái)虛擬機(jī)的性能沒有任何影響。預(yù)留則是「最低保障」設(shè)定后宿主機(jī)必須為這臺(tái)虛擬機(jī)保留對應(yīng)的 CPU 或內(nèi)存資源。預(yù)留可以在 CPU 或內(nèi)存層面獨(dú)立設(shè)置比如 CPU 預(yù)留 4GHz 意味著宿主機(jī)必須保證 4GHz 的 CPU 計(jì)算能力給這臺(tái)虛擬機(jī)。預(yù)留值設(shè)得過高會(huì)降低宿主機(jī)的整體可調(diào)度容量導(dǎo)致能容納的虛擬機(jī)數(shù)量變少。限制參數(shù)正好相反它給虛擬機(jī)的資源使用設(shè)置一個(gè)硬頂。生產(chǎn)環(huán)境里一般不會(huì)主動(dòng)給核心業(yè)務(wù)虛擬機(jī)設(shè)置 CPU 限制但對于測試環(huán)境或者多租戶共享的集群限制往往是防止資源被單個(gè)租戶耗盡的唯一手段。合理的做法是核心業(yè)務(wù)設(shè)預(yù)留 默認(rèn)份額測試業(yè)務(wù)設(shè)限額 低份額。5.2 內(nèi)存預(yù)留與 NUMA 架構(gòu)的影響內(nèi)存預(yù)留對性能的影響比很多人想象中更大。虛擬機(jī)的內(nèi)存預(yù)留有三個(gè)檔位不預(yù)留、部分預(yù)留、全部預(yù)留。ESXi 的內(nèi)存回收機(jī)制包括透明頁共享、內(nèi)存壓縮和交換這些機(jī)制會(huì)在物理內(nèi)存不足時(shí)將虛擬機(jī)內(nèi)存頁回收或換出到存儲(chǔ)設(shè)備上的交換文件。如果虛擬機(jī)啟用了全部內(nèi)存預(yù)留ESXi 不會(huì)回收它的任何內(nèi)存頁內(nèi)存訪問延遲最好但宿主機(jī)能跑的虛擬機(jī)密度會(huì)顯著下降。NUMA 架構(gòu)是另一個(gè)需要考慮的因素?,F(xiàn)代 x86 服務(wù)器都是多路 CPU每個(gè) CPU 對應(yīng)一組本地內(nèi)存訪問本地內(nèi)存和遠(yuǎn)端內(nèi)存的延遲不同。VMware 的 NUMA 調(diào)度器默認(rèn)會(huì)嘗試把虛擬機(jī)及其內(nèi)存放在同一個(gè) NUMA 節(jié)點(diǎn)上但前提是虛擬機(jī)的 vCPU 數(shù)量和內(nèi)存大小不超過單節(jié)點(diǎn)的物理資源。創(chuàng)建超大虛擬機(jī)時(shí)vCPU 超過單 NUMA 節(jié)點(diǎn)核數(shù)內(nèi)存跨越兩個(gè)節(jié)點(diǎn)導(dǎo)致訪問遠(yuǎn)端內(nèi)存的概率上升性能可能下降 10% 到 20%。要規(guī)避 NUMA 問題創(chuàng)建虛擬機(jī)時(shí)優(yōu)先選擇「每個(gè)插槽的內(nèi)核數(shù)」等于物理機(jī)單 NUMA 節(jié)點(diǎn)核數(shù)的配置。比如宿主機(jī)是 2 路 32 核每路 32 核是一個(gè) NUMA 節(jié)點(diǎn)那么給虛擬機(jī)配 64 核時(shí)最好設(shè)置為 2 個(gè)插槽 × 32 核而不是 1 個(gè)插槽 × 64 核。這個(gè)細(xì)節(jié)在 vCenter 的資源分配界面可以直接控制。5.3 資源分配的實(shí)戰(zhàn)參數(shù)參考不同業(yè)務(wù)類型的虛擬機(jī)資源分配參數(shù)差異很大我在下面的表里給出常用的參考值。這些值不是硬性標(biāo)準(zhǔn)但可以作為一個(gè)合理的起點(diǎn)再根據(jù)監(jiān)控?cái)?shù)據(jù)逐步調(diào)整業(yè)務(wù)類型CPU 預(yù)留CPU 份額CPU 限制內(nèi)存預(yù)留內(nèi)存份額典型配置核心數(shù)據(jù)庫全部高無全部高16 vCPU / 64GB業(yè)務(wù)應(yīng)用服務(wù)無正常無部分(50%)正常8 vCPU / 16GBWeb 前端集群無低8 vCPU無低4 vCPU / 8GB批處理任務(wù)無低16 vCPU無正常8 vCPU / 32GB測試環(huán)境無正常24 vCPU無正常8 vCPU / 16GB這個(gè)表的選取邏輯是核心數(shù)據(jù)庫對延遲最敏感預(yù)留拉滿保證性能下限Web 前端集群可以橫向擴(kuò)容單機(jī)設(shè)限避免故障時(shí)拖垮宿主機(jī)批處理任務(wù)對時(shí)間不敏感但吃 CPU份額可以降低讓其他業(yè)務(wù)優(yōu)先測試環(huán)境限制放寬但跟生產(chǎn)物理隔離。資源分配后一定要通過 vCenter 的性能圖表驗(yàn)證效果。查看 CPU 就緒時(shí)間、內(nèi)存交換率、磁盤延遲這幾個(gè)關(guān)鍵指標(biāo)如果就緒時(shí)間持續(xù)高于 5%說明 CPU 超賣嚴(yán)重需要調(diào)高份額或遷移部分虛擬機(jī)到其他宿主機(jī)如果內(nèi)存交換率高說明物理內(nèi)存不足開啟內(nèi)存預(yù)留或增加宿主機(jī)內(nèi)存是僅有的兩個(gè)出路。6. 虛擬機(jī)創(chuàng)建常見問題排查五個(gè)高頻故障的處理記錄6.1 故障一模板克隆后網(wǎng)絡(luò)不通IP 未按自定義規(guī)范配置現(xiàn)象從模板克隆一臺(tái) Linux 虛擬機(jī)啟動(dòng)后訪問不到在 vCenter 控制臺(tái)里看到網(wǎng)卡顯示了 IP但實(shí)際 ping 不通網(wǎng)關(guān)。原因自定義規(guī)范里的網(wǎng)絡(luò)配置只改了網(wǎng)卡的 IP 地址沒有重新啟動(dòng) NetworkManager 服務(wù)或者模板里的網(wǎng)卡設(shè)備名與自定義規(guī)范指定的網(wǎng)卡名不一致。常見于 CentOS 7 使用/etc/sysconfig/network-scripts/ifcfg-eth0文件而實(shí)際網(wǎng)卡名為 ens192 的場景。解決先到 vCenter 控制臺(tái)用ip addr確認(rèn)網(wǎng)卡實(shí)際名稱和 IP 配置手動(dòng)修正網(wǎng)卡配置文件后重啟網(wǎng)絡(luò)服務(wù)如果自定義規(guī)范配置時(shí)勾選了「使用 DHCP」檢查網(wǎng)絡(luò)內(nèi) DHCP 服務(wù)是否可用如果模板克隆后反復(fù)出現(xiàn)這個(gè)情況建議在模板里預(yù)先做一次克隆前的網(wǎng)絡(luò)清理刪除網(wǎng)卡配置文件中的 UUID 和設(shè)備綁定信息讓克隆后的機(jī)器重新生成配置。6.2 故障二Windows 虛擬機(jī)克隆后提示「嘗試運(yùn)行 Sysprep 時(shí)出錯(cuò)」現(xiàn)象從 Windows 模板克隆自定義規(guī)范走到最后一步時(shí)報(bào)錯(cuò)提示 Sysprep 運(yùn)行失敗克隆出來的虛擬機(jī)沒有被正確自定義。原因vCenter 的 Windows 自定義通過 Sysprep 工具完成而 Sysprep 的版本必須與虛擬機(jī)內(nèi)的 Windows 版本嚴(yán)格對應(yīng)。常見的原因是模板里是 Windows Server 2019但 vCenter 自定義規(guī)范里選擇了 Windows Server 2016 的 Sysprep 選項(xiàng)或者模板系統(tǒng)已經(jīng)運(yùn)行過 Sysprep 導(dǎo)致狀態(tài)文件殘留。解決先在 vCenter 的「策略和配置文件」中檢查自定義規(guī)范對應(yīng)的 Sysprep 版本并對照模板中 Windows 的版本如果模板內(nèi)殘留C:\Windows\Panther\unattend.xml或Sysprep\Sysprep.xml文件建議先手動(dòng)清理再重新封裝模板封裝模板的正確流程是在 Windows 內(nèi)以管理員權(quán)限運(yùn)行C:\Windows\System32\Sysprep\sysprep.exe選擇「進(jìn)入系統(tǒng)全新體驗(yàn) (OOBE)」勾選「通用」關(guān)機(jī)后再轉(zhuǎn)為模板。6.3 故障三虛擬機(jī)開機(jī)黑屏控制臺(tái)無輸出現(xiàn)象從 ISO 手動(dòng)安裝系統(tǒng)時(shí)虛擬機(jī)開機(jī)后電源狀態(tài)是運(yùn)行中但控制臺(tái)黑屏或者卡在某一畫面不動(dòng)。原因ISO 鏡像引導(dǎo)模式與虛擬機(jī)固件不匹配例如 UEFI 固件加載傳統(tǒng) BIOS 引導(dǎo)的 ISO也可能是虛擬機(jī)配置了多個(gè)顯示器但控制臺(tái)選中了錯(cuò)誤的一個(gè)還有可能是 ISO 鏡像文件損壞或者存儲(chǔ)上的 ISO 文件被上傳時(shí)截?cái)?。解決先確認(rèn)虛擬機(jī)固件類型在虛擬機(jī)設(shè)置里查看「引導(dǎo)選項(xiàng)」是否為 UEFI如果固件是 UEFI確認(rèn) ISO 支持 UEFI 引導(dǎo)Windows 原生支持Linux 需要 iso 鏡像里包含 EFI 引導(dǎo)文件排除固件問題后在控制臺(tái)窗口的「切換顯示器」菜單里切換顯示輸出最后用存儲(chǔ)的數(shù)據(jù)校驗(yàn)功能驗(yàn)證 ISO 文件大小與源文件是否一致。6.4 故障四虛擬機(jī)可遷移狀態(tài)異常vMotion 報(bào)錯(cuò)現(xiàn)象將虛擬機(jī)執(zhí)行熱遷移時(shí)提示「虛擬機(jī)兼容性檢查失敗」或「目標(biāo)主機(jī)無法訪問虛擬機(jī)網(wǎng)絡(luò)」。原因虛擬機(jī)所在的存儲(chǔ)策略與目標(biāo)主機(jī)不兼容或者虛擬機(jī)使用了不可遷移的虛擬設(shè)備比如 PCI 直通設(shè)備、RDM 裸設(shè)備映射網(wǎng)絡(luò)方面源主機(jī)和目標(biāo)主機(jī)不在同一個(gè)二層網(wǎng)絡(luò)虛擬機(jī)端口組不匹配。解決在虛擬機(jī)設(shè)置里確認(rèn)是否存在直通設(shè)備或 RDM 設(shè)備如果有需要先停掉虛擬機(jī)再遷移檢查源集群和目標(biāo)集群的存儲(chǔ)策略是否一致跨集群遷移時(shí)需要目標(biāo)集群有相同的存儲(chǔ)策略定義網(wǎng)絡(luò)方面推薦使用分布式交換機(jī)VDS并保證目標(biāo)主機(jī)上有相同的端口組配置。6.5 故障五虛擬機(jī)性能極差卡頓明顯現(xiàn)象虛擬機(jī)剛創(chuàng)建完跑起來很流暢運(yùn)行一兩天后明顯變卡打開應(yīng)用要等很久。原因宿主機(jī)資源超賣嚴(yán)重CPU 就緒時(shí)間過高或者存儲(chǔ) IO 達(dá)到瓶頸磁盤延遲增大還有可能是虛擬機(jī)的快照殘留過大快照層數(shù)據(jù)堆積導(dǎo)致磁盤性能下降。解決打開 vCenter 的性能監(jiān)控切換到「高級」視圖查看 CPU 就緒時(shí)間、內(nèi)存交換率、磁盤平均延遲三個(gè)指標(biāo)如果 CPU 就緒時(shí)間普遍高于 10%需要考慮遷移部分虛擬機(jī)到其他宿主機(jī)或者調(diào)整份額如果磁盤延遲高于 20ms檢查存儲(chǔ)陣列的負(fù)載和存儲(chǔ)策略如果是快照問題刪除所有舊快照并執(zhí)行一次 storage vMotion 重新落盤。7. 驗(yàn)證虛擬機(jī)創(chuàng)建結(jié)果的完整自查清單從配置確認(rèn)到連通性測試虛擬機(jī)創(chuàng)建完成后設(shè)定完整的驗(yàn)證閉環(huán)能避免多數(shù)線上事故。我的習(xí)慣是把驗(yàn)證分為三層虛擬化層、操作系統(tǒng)層和應(yīng)用層。虛擬化層驗(yàn)證主要是檢查 vCenter 里的虛擬機(jī)配置與申請單是否一致。打開虛擬機(jī)編輯設(shè)置逐一核對 CPU 核數(shù)、內(nèi)存大小、磁盤容量、網(wǎng)卡數(shù)量和端口組。這里有個(gè)細(xì)節(jié)磁盤容量和內(nèi)存大小在虛擬機(jī)運(yùn)行期間可以熱添加但熱添加的效果需要客戶機(jī)操作系統(tǒng)支持Windows Server 2012 以上和較新的 Linux 內(nèi)核都支持在線識別但確認(rèn)最終生效最穩(wěn)妥的方式是看客戶機(jī)操作系統(tǒng)內(nèi)的實(shí)際資源而不是只看 vCenter 顯示配置。操作系統(tǒng)層驗(yàn)證的常用手段是進(jìn)到系統(tǒng)內(nèi)部查看。Linux 用lscpu、free -h、df -h和ip addr分別確認(rèn) CPU、內(nèi)存、磁盤和網(wǎng)絡(luò)配置是否與規(guī)劃一致Windows 用「系統(tǒng)信息」和「設(shè)備管理器」確認(rèn)特別留意網(wǎng)卡是否識別為 VMXNET3 以及磁盤是否顯示為 VMware Virtual disk。應(yīng)用層驗(yàn)證取決于虛擬機(jī)承載的業(yè)務(wù)。如果是 Web 服務(wù)用 curl 或?yàn)g覽器訪問本地端口確認(rèn)服務(wù)可用如果是數(shù)據(jù)庫用客戶端連接測試并執(zhí)行一條查詢語句如果是消息隊(duì)列確認(rèn)消費(fèi)者連接數(shù)達(dá)到預(yù)期。這一步是最終驗(yàn)收的依據(jù)不能省。還有一個(gè)被很多人忽略的驗(yàn)證項(xiàng)是虛擬機(jī)的時(shí)間同步。虛擬機(jī)的操作系統(tǒng)時(shí)鐘漂移是一個(gè)長期問題模板或克隆機(jī)器如果 NTP 服務(wù)沒配好時(shí)間偏差會(huì)持續(xù)累積。Linux 虛擬機(jī)建議在/etc/chrony.conf或/etc/ntp.conf中配置 NTP 服務(wù)器并確認(rèn)服務(wù)開機(jī)自啟Windows 虛擬機(jī)建議保留 VMware Tools 的時(shí)間同步設(shè)置并額外配置外部 NTP 源# 以 Chrony 為例編輯 /etc/chrony.conf # 添加公司內(nèi)部的 NTP 服務(wù)器地址示例 server ntp.internal.example.com iburst # 重啟 chronyd 并確認(rèn)同步狀態(tài) sudo systemctl restart chronyd sudo chronyc sources -v這個(gè)操作看起來簡單但實(shí)際生產(chǎn)里 NTP 沒同步導(dǎo)致認(rèn)證失敗、日志時(shí)間異常的案例太多了。服務(wù)端和客戶端時(shí)間偏差超過五分鐘Kerberos 認(rèn)證直接失效數(shù)據(jù)庫主從復(fù)制也可能因?yàn)闀r(shí)間戳錯(cuò)亂報(bào)主鍵沖突。從那以后每次創(chuàng)建完虛擬機(jī)我都強(qiáng)制走一遍時(shí)間同步驗(yàn)證流程同時(shí)檢查系統(tǒng)日志里是否有驅(qū)動(dòng)加載失敗的記錄。這份習(xí)慣幫我提前發(fā)現(xiàn)了不少克隆機(jī)器的遺留問題節(jié)省了大量排查時(shí)間希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取