入Citrix ADC VPX:部署要點(diǎn)與避坑指南)
簡(jiǎn)介Citrix ADC原NetScaler ADC是面向企業(yè)級(jí)應(yīng)用交付與網(wǎng)絡(luò)安全的核心組件這一壓縮包為Microsoft Hyper-V虛擬化平臺(tái)定制的NSVPX-HyperV-13.0-47.24虛擬設(shè)備版本適用于數(shù)據(jù)中心、混合云及多云環(huán)境中需要部署負(fù)載均衡、SSL卸載、內(nèi)容優(yōu)化和應(yīng)用防火墻的網(wǎng)絡(luò)工程師與架構(gòu)師。壓縮包共含6個(gè)文件包含動(dòng)態(tài)VHD虛擬磁盤、vmcx與vmrs虛擬機(jī)配置及狀態(tài)文件、exp導(dǎo)入導(dǎo)出模板以及XML配置整體大小約510.17MB可較完整地支撐Hyper-V主機(jī)上Citrix ADC實(shí)例的導(dǎo)入與配置。目前已獲440人學(xué)習(xí)下載具有一定參考熱度。借助這套完整文件使用者無需手動(dòng)創(chuàng)建虛擬機(jī)即可快速得到可運(yùn)行的ADC環(huán)境同時(shí)通過配置模板理解網(wǎng)絡(luò)接口、VIP、負(fù)載均衡策略等關(guān)鍵設(shè)置的具體落地方式對(duì)在64位Hyper-V環(huán)境中搭建、驗(yàn)證和評(píng)估Citrix ADC功能有直接幫助。1. Hyper-V 上導(dǎo)入 Citrix ADC VPX一次看起來很常規(guī)的部署把 Citrix ADC 的 NSVPX-HyperV-13.0-47.24 虛擬設(shè)備裝進(jìn) Hyper-V看起來像是再常規(guī)不過的一項(xiàng)工作解壓、導(dǎo)入、啟動(dòng)、配置 NSIP、加載 License。可實(shí)際操作里我見過不少同行在導(dǎo)入階段就開始翻車——VHDX 掛上去了虛擬機(jī)卻起不來或者起來之后管理口一直拒絕連接最后只能把虛擬機(jī)刪掉重來一遍。這臺(tái)設(shè)備本身并不復(fù)雜真正難住人的是對(duì) Hyper-V 平臺(tái)特性和 VPX 啟動(dòng)流程不熟。這篇筆記就按我自己的部署順序從版本選擇、宿主機(jī)準(zhǔn)備、VHDX 導(dǎo)入一直寫到初始化、負(fù)載均衡驗(yàn)證和常見坑照著走一遍能把環(huán)境跑通。2. 版本與宿主機(jī)準(zhǔn)備先把 NSVPX-HyperV-13.0-47.24 的底盤打?qū)?.1 版本命名與平臺(tái)對(duì)照NSVPX-HyperV-13.0-47.24 這個(gè)字符串拆開看比單純點(diǎn)一個(gè)下載按鈕有用得多。NSVPX 指 NetScaler Virtual Appliance也就是 Citrix ADC 的虛擬化形態(tài)HyperV 是平臺(tái)標(biāo)簽明說這份鏡像是給微軟 Hyper-V 用的13.0 是功能版本線47.24 是內(nèi)部構(gòu)建號(hào)。同一個(gè)功能版本VMware 那邊通常是 OVF/OFA 格式KVM 用 qcow2XenServer 用 XVAHyper-V 這邊就是 VHDX。跨平臺(tái)亂套鏡像是最容易犯的低級(jí)錯(cuò)誤。我見過有人把同一構(gòu)建號(hào)的 VHDX 強(qiáng)行塞給 VMware靠轉(zhuǎn)換工具硬跑起來結(jié)果網(wǎng)絡(luò)接口識(shí)別和磁盤控制器驅(qū)動(dòng)全都不對(duì)管理口起不來最后還是要回到對(duì)應(yīng)平臺(tái)重新下包。不同平臺(tái)的 VPX 在虛擬硬件適配上有差異鏡像本身也做了針對(duì)性裁剪老老實(shí)實(shí)按平臺(tái)取用才是正路。另外要注意 13.0 這條版本線的演進(jìn)特點(diǎn)它是 Citrix ADC 在虛擬化平臺(tái)上鋪得比較廣的一條線Hyper-V 版本的 VHDX 形態(tài)比較成熟既有老設(shè)備遷移上來的也有新環(huán)境直接落地的。做生產(chǎn)規(guī)劃時(shí)盡量選當(dāng)前還在主流維護(hù)期內(nèi)的構(gòu)建號(hào)別拿太老的版本來做新項(xiàng)目后面升級(jí)路徑會(huì)越走越窄。2.2 宿主機(jī)要求CPU、內(nèi)存與虛擬交換機(jī)先把宿主機(jī)的資源底線列清楚再動(dòng)手建虛擬機(jī)。下表是我在測(cè)試環(huán)境里反復(fù)驗(yàn)證過的參考值資源項(xiàng)最低要求推薦配置說明CPU2 vCPU4 vCPUVPX 的包處理進(jìn)程對(duì)多核有要求核太少轉(zhuǎn)發(fā)性能上不去內(nèi)存4 GB8 GB固定內(nèi)存不要開動(dòng)態(tài)內(nèi)存磁盤60 GB 可用獨(dú)立數(shù)據(jù)盤VHDX 本身體積不小還要留快照和日志空間虛擬交換機(jī)1 個(gè)外部交換機(jī)外部 內(nèi)部各 1 個(gè)管理面和業(yè)務(wù)面建議走不同交換機(jī)Hyper-V 版本W(wǎng)indows Server 2016Windows Server 2019/2022老版本 Hyper-V 對(duì)新 VHDX 特性支持不完整內(nèi)存這里值得多說一句。Hyper-V 的動(dòng)態(tài)內(nèi)存功能對(duì)普通 Windows 虛擬機(jī)很好用但放到 VPX 上就是隱患。Citrix ADC 的內(nèi)存管理和內(nèi)核分配是按固定值做的你給它 8 GB它就把頁表、包緩沖、會(huì)話表都按 8 GB 來規(guī)劃動(dòng)態(tài)內(nèi)存把容量抽走輕則系統(tǒng)告警重則數(shù)據(jù)面直接 OOM。我在所有 Hyper-V 環(huán)境里都對(duì) VPX 關(guān)閉動(dòng)態(tài)內(nèi)存給固定值省得后面排查問題時(shí)多一個(gè)變量。虛擬交換機(jī)的選擇比想象中更影響后續(xù)配置。外部交換機(jī)綁定物理網(wǎng)卡用于承載業(yè)務(wù)流量?jī)?nèi)部交換機(jī)用于管理通道可以和宿主機(jī)、管理機(jī)組成一套隔離的管理網(wǎng)絡(luò)。很多測(cè)試環(huán)境圖省事把所有網(wǎng)卡都塞進(jìn)同一個(gè)外部交換機(jī)結(jié)果 NSIP 和 VIP 在同一個(gè)廣播域里互相干擾排錯(cuò)時(shí)很難分清是交換機(jī)問題還是 VPX 配置問題。我一般會(huì)建議至少分開管理和業(yè)務(wù)兩個(gè)虛擬交換機(jī)代價(jià)只是多配一塊虛擬網(wǎng)卡收益是后面整個(gè)排錯(cuò)路徑都清晰很多。2.3 虛擬機(jī)代數(shù)Gen1 / Gen2選擇Hyper-V 里新建虛擬機(jī)時(shí)會(huì)要求選虛擬機(jī)代數(shù)這個(gè)選項(xiàng)容易被人一帶而過但它直接決定 VPX 能不能引導(dǎo)。Gen1 走傳統(tǒng) BIOS 啟動(dòng)流程對(duì)老鏡像的兼容性最好Gen2 走 UEFI 啟動(dòng)引導(dǎo)速度快、支持 Secure Boot但前提是鏡像本身帶 UEFI 引導(dǎo)能力。NSVPX-HyperV-13.0-47.24 這類鏡像我個(gè)人的習(xí)慣是默認(rèn)先選 Gen1。VPX 的內(nèi)核引導(dǎo)鏈對(duì) UEFI 的支持是逐步補(bǔ)全的與其賭鏡像版本是否完全適配 UEFI不如直接選一個(gè)幾乎沒有兼容性問題的啟動(dòng)方式。如果你所在環(huán)境只有 Gen2 可用那就先建一臺(tái)測(cè)試機(jī)驗(yàn)證引導(dǎo)確認(rèn)內(nèi)核能完整啟動(dòng)、網(wǎng)卡能被識(shí)別再拿去規(guī)劃生產(chǎn)。別一上來就批量建 Gen2 虛擬機(jī)回頭發(fā)現(xiàn)啟動(dòng)卡在 UEFI Shell 就尷尬了。啟動(dòng)順序也要順手確認(rèn)一遍。無論選哪一代都要確保 VHDX 所在的控制器排在第一位別讓虛擬機(jī)先去嘗試網(wǎng)絡(luò)啟動(dòng)或者從空光驅(qū)引導(dǎo)。Hyper-V 的固件啟動(dòng)順序可以在虛擬機(jī)設(shè)置里調(diào)整把 DVD 驅(qū)動(dòng)器和網(wǎng)絡(luò)啟動(dòng)挪到硬盤后面能省掉不少No bootable device的報(bào)錯(cuò)。3. 導(dǎo)入虛擬設(shè)備VHDX 掛載與第一次啟動(dòng)3.1 解壓與導(dǎo)入VHDX 的路徑和掛載拿到 NSVPX-HyperV-13.0-47.24 的壓縮包后第一步不是雙擊而是先規(guī)劃目錄。我的習(xí)慣是建一個(gè)固定的虛擬機(jī)目錄比如 D:\VMs\NSVPX-HyperV-13.0-47.24\把解壓出來的 VHDX 放進(jìn)去后續(xù)所有檢查點(diǎn)、導(dǎo)出文件都圍繞這個(gè)目錄展開。VHDX 的路徑一旦確定就不要隨意挪動(dòng)因?yàn)?Hyper-V 的檢查點(diǎn)和差異磁盤會(huì)記錄絕對(duì)路徑你把 VHDX 單獨(dú)搬走虛擬機(jī)下次啟動(dòng)直接找不著盤。用 Hyper-V 管理器導(dǎo)入時(shí)可以直接在新建虛擬機(jī)向?qū)Ю镞x擇使用現(xiàn)有虛擬硬盤也可以先建空虛擬機(jī)再把 VHDX 掛上去。我更喜歡用 PowerShell 來做這件事命令更短、參數(shù)更明確New-VM -Name NSVPX-13-47 -MemoryStartupBytes 8GB -BootDevice VHD -VHDPath D:\VMs\NSVPX-HyperV-13.0-47.24\NSVPX-HyperV-13.0-47.24.vhdx這條命令會(huì)創(chuàng)建一個(gè)名為 NSVPX-13-47 的虛擬機(jī)內(nèi)存起步 8 GB啟動(dòng)設(shè)備指定為 VHD直接指向解壓好的 VHDX 文件。BootDevice 參數(shù)是重點(diǎn)它讓 Hyper-V 知道這臺(tái)虛擬機(jī)從虛擬硬盤引導(dǎo)而不用再去光驅(qū)或者網(wǎng)絡(luò)里找啟動(dòng)文件。如果虛擬機(jī)已經(jīng)建好了也可以事后用 Add-VMHardDiskDrive 補(bǔ)掛磁盤Add-VMHardDiskDrive -VMName NSVPX-13-47 -Path D:\VMs\NSVPX-HyperV-13.0-47.24\NSVPX-HyperV-13.0-47.24.vhdx掛載完成后到 Hyper-V 管理器里確認(rèn)一下磁盤控制器類型。Gen1 虛擬機(jī)默認(rèn)走 IDE 控制器Gen2 走 SCSI 控制器VHDX 在兩種控制器下都能工作關(guān)鍵是控制器順序要對(duì)。打開虛擬機(jī)設(shè)置確認(rèn)硬盤排在 DVD 驅(qū)動(dòng)器前面否則可能從空光驅(qū)引導(dǎo)浪費(fèi)時(shí)間。3.2 VM 配置內(nèi)存、CPU、網(wǎng)卡與檢查點(diǎn)導(dǎo)入虛擬機(jī)只是第一步接下來要把 VM 的詳細(xì)配置調(diào)到位。先關(guān)閉動(dòng)態(tài)內(nèi)存給固定值 8 GB這個(gè)在前面已經(jīng)說過原因不再重復(fù)。處理器數(shù)量按 2 核起步、4 核更穩(wěn)的原則來給太多核并沒有意義VPX 的包處理引擎對(duì)核數(shù)的利用有上限不如把內(nèi)存給足。網(wǎng)絡(luò)適配器是這里最需要留意的部分。VPX 的接口編號(hào)和 Hyper-V 虛擬網(wǎng)卡的添加順序直接相關(guān)第一塊添加的網(wǎng)卡通常是接口 0后續(xù)依次遞增。而接口 0 在 VPX 里默認(rèn)承擔(dān)管理通道職責(zé)NSIP 所在接口所以你在 Hyper-V 里添加的第一塊網(wǎng)卡理論上要接到管理網(wǎng)絡(luò)而不是業(yè)務(wù)網(wǎng)絡(luò)。不過實(shí)際部署中我不建議一開始就把接口角色綁得太死。VPX 啟動(dòng)后可以通過 CLI 調(diào)整接口用途先把網(wǎng)卡都接上再根據(jù)規(guī)劃分配。至少添加一塊網(wǎng)卡連接到外部虛擬交換機(jī)用于業(yè)務(wù)流量如果有條件再添加第二塊網(wǎng)卡連接到內(nèi)部虛擬交換機(jī)給管理面一個(gè)獨(dú)立通道。還有一個(gè)容易忽略的配置自動(dòng)檢查點(diǎn)。Hyper-V 的檢查點(diǎn)功能類似于快照但 Citrix ADC 虛擬設(shè)備對(duì)時(shí)間變動(dòng)和磁盤狀態(tài)很敏感自動(dòng)檢查點(diǎn)會(huì)在系統(tǒng)運(yùn)行時(shí)悄悄打快照一旦回滾License 校驗(yàn)和時(shí)鐘都會(huì)出問題。我現(xiàn)在建完 VM 后第一件事就是右鍵關(guān)閉自動(dòng)檢查點(diǎn)改成手動(dòng)避免手滑。3.3 啟動(dòng)過程與控制臺(tái)登錄配置完成后啟動(dòng)虛擬機(jī)用 Hyper-V 的連接窗口打開控制臺(tái)你會(huì)看到一個(gè)文本引導(dǎo)界面不是圖形界面。VPX 的內(nèi)核引導(dǎo)過程和 Linux 類似滾動(dòng)日志、加載驅(qū)動(dòng)、初始化磁盤陣列然后停在登錄提示符或者初始化配置向?qū)Ы缑?。這里不用急著敲鍵盤等它把引導(dǎo)流程完整跑完。如果一切正??刂婆_(tái)會(huì)出現(xiàn)類似 login 的提示默認(rèn)賬號(hào)是 nsroot初始密碼是 nsroot。注意這個(gè)密碼是首次登錄用的如果這個(gè) VHDX 是別人拷貝過來的密碼可能已經(jīng)被改過那就需要找原部署者要密碼或者走恢復(fù)流程重置。我第一次部署時(shí)就在這一步卡了很久以為控制臺(tái)卡死了實(shí)際上只是引導(dǎo)過程比較慢等了兩分鐘才出登錄提示。所以判斷是否正常的標(biāo)準(zhǔn)不是屏幕上有沒有動(dòng)靜而是看硬盤指示燈和 CPU 占用。VPX 首次引導(dǎo)會(huì)有一次磁盤擴(kuò)容和文件系統(tǒng)初始化的過程耐心等就行。4. 系統(tǒng)初始化與網(wǎng)絡(luò)配置NSIP、SNIP、VIP 的落地順序4.1 初始化 NSIP管理地址的規(guī)劃VPX 首次啟動(dòng)后控制臺(tái)通常會(huì)引導(dǎo)你進(jìn)入初始化流程核心就是設(shè)置 NSIPNetScaler IP也可以說是管理地址。規(guī)劃 NSIP 時(shí)不要隨便拿一個(gè) IP 就填它要滿足三個(gè)條件和你的管理網(wǎng)段在同一廣播域、不占用業(yè)務(wù)地址段、能通過默認(rèn)網(wǎng)關(guān)被其他管理機(jī)訪問。在 CLI 下設(shè)置 NSIP 的命令如下set ns config -ipaddress 192.0.2.10 -netmask 255.255.255.0 -gateway 192.0.2.1 save ns config reboot這里 -ipaddress 指定管理地址-netmask 是子網(wǎng)掩碼-gateway 是默認(rèn)網(wǎng)關(guān)。如果管理機(jī)和 VPX 在同一個(gè)子網(wǎng)網(wǎng)關(guān)可以不填但一旦你想跨網(wǎng)段訪問管理頁或者讓 VPX 主動(dòng)向外發(fā)起更新網(wǎng)關(guān)就必須配。save ns config 把配置寫入磁盤reboot 讓新地址生效這一步不能省只 set 不 save重啟后所有配置全丟。關(guān)于 NSIP 還有一個(gè)容易混淆的點(diǎn)它雖然叫管理 IP但 VPX 的系統(tǒng)服務(wù)SSH、HTTP、SNMP默認(rèn)都綁定在這個(gè)地址上相當(dāng)于你以后所有管理操作的入口。所以 NSIP 的規(guī)劃要一次到位后面再改會(huì)讓所有管理端和監(jiān)控系統(tǒng)的配置跟著變牽連面很大。4.2 CLI 配 SNIP 與 VIP負(fù)載均衡最小閉環(huán)NSIP 配好后用 SSH 從管理機(jī)連上去開始配置數(shù)據(jù)面的網(wǎng)絡(luò)對(duì)象。這里面最核心的是兩個(gè) IP 概念SNIPSubnet IP和 VIPVirtual IP。三類 IP 各自分擔(dān)不同職責(zé)放一張表方便對(duì)照IP 類型全稱用途典型位置NSIPNetScaler IP管理設(shè)備的入口管理網(wǎng)段SNIPSubnet IPVPX 發(fā)起到后端服務(wù)器的源地址后端業(yè)務(wù)網(wǎng)段VIPVirtual IP對(duì)外提供負(fù)載均衡服務(wù)的地址客戶端可達(dá)的網(wǎng)段配置 SNIP 的命令很簡(jiǎn)單add ns ip 203.0.113.5 255.255.255.0 -type SNIPSNIP 的作用是讓 VPX 以這個(gè)地址作為源 IP 去連接后端真實(shí)服務(wù)器。它必須和后端服務(wù)器在同一網(wǎng)段否則 VPX 發(fā)起的 TCP 連接可能因?yàn)槁酚刹粚?duì)稱而建立不起來。很多人配置負(fù)載均衡后發(fā)現(xiàn)后端收不到請(qǐng)求檢查下來就是 SNIP 網(wǎng)段和后端不一致回包走了別的路徑。接著創(chuàng)建一個(gè) HTTP 負(fù)載均衡虛擬服務(wù)器綁定兩個(gè)后端服務(wù)add lb vserver vs_web HTTP 203.0.113.10 80 add service svc_web1 192.0.2.11 HTTP 80 add service svc_web2 192.0.2.12 HTTP 80 bind lb vserver vs_web svc_web1 bind lb vserver vs_web svc_web2 save ns configadd lb vserver 創(chuàng)建虛擬服務(wù)器VIP 是 203.0.113.10監(jiān)聽 80 端口協(xié)議是 HTTP。add service 定義后端真實(shí)服務(wù)器192.0.2.11 和 192.0.2.12 是兩臺(tái) Web 節(jié)點(diǎn)。bind 命令把服務(wù)綁定到虛擬服務(wù)器上完成最小負(fù)載均衡拓?fù)?。這套配置在圖形管理臺(tái)里也能點(diǎn)出來但 CLI 更適合腳本化重復(fù)部署生產(chǎn)環(huán)境里大批量設(shè)備初始化時(shí)效率高很多。4.3 管理面與業(yè)務(wù)面的隔離第 2 章里我提過虛擬交換機(jī)要分開這里再補(bǔ)充一下配置層面的隔離。VPX 的管理面和業(yè)務(wù)面如果放在同一個(gè)廣播域NetScaler 的管理協(xié)議報(bào)文SSH、SNMP、HTTP和業(yè)務(wù)流量就會(huì)混在一起安全上不可控排錯(cuò)時(shí)也分不清是哪個(gè)方向的流量出了問題。實(shí)際操作中我是這樣做的接口 0 接內(nèi)部虛擬交換機(jī)只承載管理流量接口 1 和接口 2 接外部虛擬交換機(jī)分別對(duì)應(yīng)兩個(gè)業(yè)務(wù) VLAN。VPX 里的接口角色可以通過 show interface 命令確認(rèn)show interface summary這個(gè)命令會(huì)列出所有接口的鏈路狀態(tài)、速率和 VLAN 歸屬。核對(duì)接口編號(hào)和 Hyper-V 虛擬網(wǎng)卡的對(duì)應(yīng)關(guān)系是部署完成后必做的一步。因?yàn)?VPX 的接口編號(hào)由虛擬網(wǎng)卡的添加順序決定萬一之前那位同事建 VM 時(shí)先加了業(yè)務(wù)網(wǎng)卡再加管理網(wǎng)卡接口 0 實(shí)際接到的是業(yè)務(wù)網(wǎng)絡(luò)如果不檢查就直接配 NSIP管理口就會(huì)落到業(yè)務(wù)交換機(jī)上。5. 部署避坑啟動(dòng)失敗、接口錯(cuò)位與管理口失聯(lián)5.1 啟動(dòng)卡死或報(bào) No bootable device現(xiàn)象虛擬機(jī)電源打開后控制臺(tái)停在黑屏或直接報(bào) No bootable device found鍵盤操作沒有反應(yīng)。原因最常見的是 VHDX 路徑發(fā)生變化Hyper-V 找不到虛擬磁盤其次是啟動(dòng)順序不對(duì)虛擬機(jī)先去嘗試光驅(qū)或網(wǎng)絡(luò)引導(dǎo)還有一種情況是 VHDX 文件本身被占用或損壞比如被另一個(gè)虛擬機(jī)掛載。解決先在虛擬機(jī)設(shè)置里檢查硬盤是否還在、路徑是否正確。路徑?jīng)]問題就檢查啟動(dòng)順序把硬盤挪到第一位。VHDX 文件損壞的情況我用 PowerShell 驗(yàn)證過Get-VMHardDiskDrive -VMName NSVPX-13-47如果這里顯示正常但啟動(dòng)依然失敗把 VHDX 重新掛載到另一臺(tái)正常 VM 上讀一下文件系統(tǒng)能讀出來說明盤沒問題問題在引導(dǎo)配置直接重建虛擬機(jī)把同樣的 VHDX 掛上去即可。5.2 管理 IP 能 ping 通但 SSH 連不上現(xiàn)象從管理機(jī) ping NSIP 正常但 telnet 22 端口超時(shí)Web 管理頁也打不開。原因NSIP 能通說明三層的網(wǎng)絡(luò)路徑?jīng)]問題SSH 連不上通常是系統(tǒng)服務(wù)沒起來或者管理網(wǎng)段的防火墻策略擋了 22 端口。VPX 默認(rèn)只監(jiān)聽部分管理端口如果初始化沒完全走完sshd 可能沒有啟動(dòng)。解決先到控制臺(tái)用 nsroot 登錄執(zhí)行show ns service看 sshd 服務(wù)是否在運(yùn)行。如果服務(wù)沒起來檢查系統(tǒng)是否還在初始化階段等幾分鐘再試。如果服務(wù)正常但連不上回到管理機(jī)上 traceroute 一下 NSIP確認(rèn)中間沒有防火墻丟棄流量。還有一種情況是多個(gè)管理網(wǎng)卡并存SSH 服務(wù)綁定到接口 0但你訪問的是接口 1 的地址這種要在 show ns config 里核對(duì)實(shí)際監(jiān)聽地址。5.3 接口順序漂移業(yè)務(wù)流量走到預(yù)期外現(xiàn)象配置時(shí)接口 1 是業(yè)務(wù)口重啟后流量沒有從接口 1 走后端服務(wù)器收到的源 IP 不對(duì)或者完全收不到請(qǐng)求。原因VPX 的接口編號(hào)由 Hyper-V 添加虛擬網(wǎng)卡的順序決定。如果某次維護(hù)中刪掉了一塊虛擬網(wǎng)卡再重新添加或者虛擬機(jī)遷移到了另一臺(tái)宿主機(jī)網(wǎng)卡順序就可能變化原來接口 1 對(duì)應(yīng)的是業(yè)務(wù)網(wǎng)絡(luò)現(xiàn)在變成了管理網(wǎng)絡(luò)。解決在控制臺(tái)執(zhí)行show interface把每個(gè)接口的鏈路狀態(tài)和速率記下來再對(duì)照 Hyper-V 虛擬交換機(jī)配置確認(rèn)對(duì)應(yīng)關(guān)系。確認(rèn)后發(fā)現(xiàn)錯(cuò)位不要試圖在 VPX 里強(qiáng)行重排接口號(hào)正確的做法是回到 Hyper-V 管理器把虛擬網(wǎng)卡的順序按規(guī)劃重新排列然后重新啟動(dòng) VPX。從此以后我每次遷移完虛擬機(jī)都要走一遍接口核對(duì)流程不再相信反正沒改過配置這種僥幸心理。5.4 License 讀取異?;驎r(shí)鐘跳動(dòng)現(xiàn)象設(shè)備運(yùn)行一段時(shí)間后License 狀態(tài)顯示未激活或者系統(tǒng)時(shí)間突然跳到幾個(gè)月前日志時(shí)間線混亂。原因Hyper-V 的檢查點(diǎn)回滾導(dǎo)致 VPX 系統(tǒng)時(shí)間被恢復(fù)到快照時(shí)刻而 Citrix ADC 的 License 校驗(yàn)依賴系統(tǒng)時(shí)間時(shí)間回退會(huì)觸發(fā)校驗(yàn)失敗。另一個(gè)常見原因是宿主機(jī)時(shí)間同步配置有問題Hyper-V 集成服務(wù)把宿主機(jī)的時(shí)間同步到了虛擬機(jī)但宿主機(jī)自身時(shí)間就不準(zhǔn)。解決先檢查系統(tǒng)時(shí)間確認(rèn)和當(dāng)前時(shí)間一致show date時(shí)間不對(duì)就先校準(zhǔn)配 NTP 服務(wù)器set ntp server 192.0.2.123 enable ntp save ns config然后重新檢查 License 狀態(tài)。如果是檢查點(diǎn)回滾導(dǎo)致的問題回滾前先確認(rèn) License 文件能否重新讀取必要時(shí)聯(lián)系授權(quán)方重新申請(qǐng)。最重要的是防患于未然在 VM 設(shè)置里關(guān)掉自動(dòng)檢查點(diǎn)部署完成后立刻配置 NTP別讓時(shí)間問題變成生產(chǎn)事故的導(dǎo)火索。5.5 配置保存后重啟丟失現(xiàn)象所有配置完成后執(zhí)行了 save ns config但重啟后回到初始狀態(tài)NSIP 沒了虛擬服務(wù)器也沒了。原因大部分是磁盤空間不足。VPX 的配置寫入和系統(tǒng)日志共用一塊虛擬磁盤日志把空間寫滿后配置寫入會(huì)靜默失敗save 命令不報(bào)錯(cuò)但實(shí)際沒有落盤。解決重啟后用 nsroot 登錄執(zhí)行df -h看 / 分區(qū)使用率??臻g滿了就清理日志清理完再次 save ns config。我現(xiàn)在的習(xí)慣是部署完做一次完整配置備份用show ns runningconfig | more把輸出完整記錄下來就算系統(tǒng)真的崩了也能照著跑配一遍不至于推倒重來。6. 裝完怎么驗(yàn)證跑通從 Web 管理臺(tái)到第一組負(fù)載均衡策略6.1 管理面驗(yàn)證從 SSH 到 Web 管理臺(tái)環(huán)境裝完之后很多人的習(xí)慣是看一眼管理頁面能打開就算成功我覺得不夠。管理面驗(yàn)證要拆成三個(gè)層次第一層是 SSH 登錄確認(rèn) CLI 可用第二層是版本和系統(tǒng)狀態(tài)確認(rèn)設(shè)備本身健康第三層才是 Web 管理臺(tái)確認(rèn)圖形界面服務(wù)正常。SSH 登錄后我一般先跑這幾個(gè)命令show ns version show system show ns runningconfigshow ns version 確認(rèn)構(gòu)建號(hào)是預(yù)期中的 NSVPX-HyperV-13.0-47.24防止導(dǎo)入時(shí)拿錯(cuò)包卡。show system 看內(nèi)存、CPU、分區(qū)使用率有沒有異常告警。show ns runningconfig 確認(rèn)配置已經(jīng)完整落盤不是只存在內(nèi)存里的臨時(shí)配置。這三個(gè)命令走完管理面的基礎(chǔ)狀態(tài)就有了底。Web 管理臺(tái)方面NSIP 的 80 端口會(huì)自動(dòng)跳轉(zhuǎn)到 443瀏覽器打開的時(shí)候注意證書告警是正常的VPX 用的是自簽名證書直接放行即可。如果打開后能看到登錄頁說明 HTTP/HTTPS 服務(wù)正常。6.2 數(shù)據(jù)面驗(yàn)證一組最小 HTTP 負(fù)載均衡管理面只是入口真正要驗(yàn)證的是數(shù)據(jù)面能不能把客戶端請(qǐng)求正確分發(fā)到后端。我在第 4 章已經(jīng)配了一組 lb vserver現(xiàn)在就用它做驗(yàn)證。先從管理機(jī)上確認(rèn) VIP 能訪問curl -I http://203.0.113.10/如果 VIP 正常響應(yīng)說明虛擬服務(wù)器的監(jiān)聽、后端服務(wù)綁定、健康檢查三個(gè)環(huán)節(jié)都通了。接下來驗(yàn)證負(fù)載均衡效果多請(qǐng)求幾次看后端分布curl -s http://203.0.113.10/ | grep -i backend具體返回內(nèi)容取決于后端應(yīng)用關(guān)鍵是確認(rèn)兩臺(tái)后端節(jié)點(diǎn)都有流量進(jìn)來。最后看統(tǒng)計(jì)show lb vserver vs_web這里能看到虛擬服務(wù)器的總請(qǐng)求數(shù)、連接數(shù)和各后端服務(wù)的命中分布。如果所有請(qǐng)求都打在同一個(gè)后端節(jié)點(diǎn)上說明健康檢查或者負(fù)載均衡算法出了問題需要回到配置里檢查服務(wù)狀態(tài)。6.3 給 VPX 上定時(shí)體檢的習(xí)慣數(shù)據(jù)面驗(yàn)證通過整套部署就算真正跑通了。從那以后我每次部署完 VPX 都會(huì)強(qiáng)制走一遍固定流程先看版本再看接口對(duì)應(yīng)關(guān)系然后驗(yàn)證 NTP 同步最后用 curl 測(cè)一次 VIP 轉(zhuǎn)發(fā)全部通過才交給業(yè)務(wù)側(cè)。這個(gè)流程用時(shí)不到五分鐘但能避免絕大多數(shù)的裝完跑不起來問題。尤其是接口對(duì)應(yīng)關(guān)系和時(shí)間同步這兩個(gè)點(diǎn)出問題時(shí)的表現(xiàn)最隱蔽排查成本最高提前花兩分鐘確認(rèn)比事后翻半天日志劃算得多。希望這篇筆記里記下來的步驟和坑能讓你部署 NSVPX-HyperV-13.0-47.24 的過程中少走幾步彎路。本文還有配套的精品資源點(diǎn)擊獲取