拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Hyper-V上部署NSVPX 13.0-47.24:从镜像到负载均衡的完整实践

Hyper-V上部署NSVPX 13.0-47.24:从镜像到负载均衡的完整实践

简介:面向需要在Microsoft Hyper-V平台部署Citrix ADC(原NetScaler ADC)的运维与网络工程师,这份NSVPX-HyperV-13.0-47.24虚拟设备包可直接用于创建虚拟机实例,覆盖负载均衡、SSL卸载、应用防火墙及多租户管理等常见应用交付场景,适合从入门验证到生产预研的不同阶段。压缩包共6个文件,其中VHD虚拟磁盘为预配置的系统镜像,XML和VMCX/VMRS保存虚拟机规格与运行状态定义,EXP文件则便于整体导入与备份恢复,整个包约510MB,结构清晰,下载后导入Hyper-V管理器即可快速挂载测试,无需自行构建环境。版本号13.0对应大版本,47.24为更新补丁,适合已掌握ADC基础概念、希望在内网或实验环境动手验证的读者。目前已有440人查看学习,借助这套镜像可演练七层负载均衡策略、TCP优化、内容缓存以及云集成等核心功能,为生产环境选型与实施提供直接参考。

1. 拿到 NSVPX-HyperV-13.0-47.24 镜像后,先想清楚这一步

生产环境里接到一个负载均衡迁移任务,常见场景是你拿到一个名如“NSVPX-HyperV-13.0-47.24”的虚拟机镜像,却不知道它和以前跑的硬件 ADC 有什么区别,也不知道为什么导入 Hyper-V 之后控制台会提示“this product may not be installed on a computer that has microsoft hyperv in”。这句话看着吓人,实际绝大多数情况不是镜像损坏,也不是机器不支持,而是 Hyper-V 的虚拟机代次、动态内存和虚拟交换机没有按 NSVPX 的引导要求来配。下面直接按“镜像认识 → Hyper-V 环境准备 → 导入与启动 → 初始配置 → 踩坑 → 验证”的顺序,把 13.0-47.24 这个版本在 Hyper-V 上的落地路径讲清楚,让新手能一步不卡地把 NSIP 配出来,也让有经验的同事少走几个 VHD 磁盘和虚拟交换机上的弯路。

2. 先认识 Hyper-V 版 NSVPX:镜像类型、资源门槛和虚拟交换机选型

2.1 NSVPX-HyperV 和 ESXi 上的 VPX 有什么本质差别

Citrix ADC 在物理机时代有专用硬件,进入虚拟化后叫 VPX。同一个 VPX 在 VMware ESXi 上发布为 OVA/OVF,在 Hyper-V 上发布为 VHD/VHDX,这就是文件名里 NSVPX-HyperV 的含义。NSVPX-HyperV-13.0-47.24 是 13.0 版本、build 47.24、面向 Hyper-V 平台的虚拟机镜像。功能上它和 ESXi 版没有本质差别,都是一整套负载均衡、SSL 卸载、HTTP/2 加速和 TCP 优化模块,差别集中在硬件兼容层:Hyper-V 版自带的是微软虚拟化平台的网卡驱动和合成中断支持,ESXi 版则依赖 VMXNET3 和 VMware Tools。

这个区别直接影响你部署时的操作习惯。最常见翻车是把 ESXi 的 OVF 包解压后直接给 Hyper-V 用,或者把 Hyper-V 的 VHD 挂到 VMware 里,两者都会在启动阶段卡住。回到标题,如果你手里是一个“NSVPX-HyperV-13.0-47.24”的压缩包,解压后通常能看到一个 VHDX(老版本可能是 VHD)以及一个说明文件,没有 ISO 安装盘。原因很简单,VPX 是预装好的系统镜像,不是传统 Windows 安装流程,引导后直接进入 FreeBSD 内核和 NetScaler 命令行。

所以拿到镜像后第一件事不是急着建 VM,而是确认磁盘文件的格式和大小,再决定用哪一代虚拟机来承载。后面第 3 章会专门讲导入命令,这里先把概念立住:NSVPX 是运行在 Hyper-V 之上的 FreeBSD 系统,不是安装在 Windows 里的服务,宿主机的 Hyper-V 角色只要开着就行,不需要在 NSVPX 里再装任何 agent。理解到这一点,后面遇到报错时就不会动不动怀疑镜像。

2.2 Hyper-V 环境验收:第 1 代虚拟机、动态内存、磁盘控制器

在部署之前,我会把宿主机的 Hyper-V 环境过一遍。Windows Server 版本建议 2016 以上,Server 2012 R2 也能跑,但对 VHDX 和 Hyper-V 集成的支持差一些,遇到网络中断和磁盘读写异常时很难排查。宿主机 CPU 需要支持 SLAT,也就是 Intel EPT 或 AMD NPT,否则 Hyper-V 本身能装但虚拟机性能会很难看。内存方面,NSVPX 单实例最低给 2GB,生产上我一般给到 4GB 起步,承载较大并发时 8GB 并不夸张。

创建虚拟机的生成代次是个硬性要求。NSVPX-HyperV 13.0 这个系列,我建议强制使用第 1 代虚拟机和 IDE 控制器。第 2 代虚拟机使用 UEFI 固件,FreeBSD 的引导代码在 Hyper-V 的 UEFI 环境下会撞上安全启动策略,控制台可能直接出现类似“this product may not be installed on a computer that has microsoft hyperv in”的提示。这不是镜像坏了,是虚拟机固件选错了。如果必须用第 2 代,需要关掉 Secure Boot,将固件改成 Microsoft UEFI 兼容模式,但直接用第 1 代最省事。

动态内存也应当关掉。Hyper-V 的动态内存靠气球驱动和内存热插拔桥,FreeBSD 对这块的支持一直不友好,NSVPX 开启动态内存后运行一段时间会出现内存只增不减、进程 statnet 被 killed、网络转发延迟飙升。资源足够就固定内存,千万不要为了省宿主机内存省出生产事故。磁盘控制器默认 IDE 就行,不要换成 SCSI 控制器。VHDX 挂在 SCSI 控制器上需要 Hyper-V 集成服务,NSVPX 镜像不会主动装这些驱动,启动时能识别但读写性能不稳定。固定大小的 VHDX 比动态扩展的 VHDX 更适合跑流量,主机的防病毒软件也要排除 VHDX 文件的扫描路径,否则启动时磁盘锁住,控制台会等很久才出现登录提示。

2.3 虚拟交换机选型:管理口和业务口的 VLAN 划分

NSVPX 启动后至少需要两个网络角色:管理平面和业务平面。在 Hyper-V 里对应两个虚拟网络适配器。管理平面用 NSIP,通常是内网管理段的地址,负责 SSH、Web 管理口和 API;业务平面用 SNIP/VLAN,负责接收前端流量并和后端服务器通信。如果只是做功能验证,可以只建一个外部虚拟交换机,把两个适配器都接上去;生产环境建议物理隔离。

用 Hyper-V Manager 创建外部交换机时,如果勾选了“允许管理操作系统共享此网络适配器”,宿主机自己会保留该网卡上的 IP;不勾选的话宿主机将失去该口上的地址,远程维护可能断连。大多数服务器有多块网卡,我习惯一块物理网卡专门给管理 VM,另一块专门给业务 VM,两个外部交换机分别绑定不同物理网卡,NSVPX 的管理口和业务口也分别接到这两个交换机。

VLAN 规划在虚拟层面也要对齐。Hyper-V 交换机本身可以对端口设置 VLAN ID,比如管理口 VLAN 10,业务口 VLAN 20。但 NSVPX 内部也需要配置对应的 VLAN tag,否则交换机打标后 NSVPX 收不到未打标的流量。这个双向匹配是网络配不通的头号原因。部署前先把网段和 VLAN 画一张表,不要到配置的时候就着控制台临时想。下表是我常用的资源清单,可以作为检查表:

项目配置说明
虚拟机代次第 1 代UEFI/Secure Boot 兼容问题最少
内存4GB 固定生产建议 8GB
vCPU2 核起高并发建议 4 核
磁盘固定 VHDX, 20GB日志分区会膨胀
管理网外部交换 + VLAN 10NSIP 所在网段
业务网外部交换 + VLAN 20SNIP/VIP 所在网段

3. 把 NSVPX-HyperV-13.0-47.24 导入 Hyper-V 并启动:从 VHDX 到控制台的完整命令

3.1 解压镜像并确认磁盘格式:VHD 还是 VHDX

拿到压缩包后,先解压并检查文件。用 PowerShell 可以这样做:

Expand-Archive -Path "D:\download\NSVPX-HyperV-13.0-47.24.zip" -DestinationPath "D:\NSVPX" Get-ChildItem -Path "D:\NSVPX" -Include *.vhd,*.vhdx -Recurse | Select-Object FullName, @{N='SizeGB';E={[math]::Round($_.Length/1GB,2)}}

Expand-Archive只支持 zip,如果拿到的是 7z 或 tar,用 7-Zip 或 tar 解压。SizeGB只是文件大小,不是磁盘实际分区容量,NSVPX 默认分区会占满整个虚拟磁盘,所以文件大小和磁盘容量基本一致。如果只有一个 VHD,而后面想用 VHDX 格式,用 Convert-VHD 转换:

Convert-VHD -Path "D:\NSVPX\nsvpx-13.vhd" -DestinationPath "D:\NSVPX\nsvpx-13.vhdx" -VHDType Fixed

Convert-VHD要求目标路径不能存在同名文件;Fixed类型会把整个镜像大小一次性占满,转换耗时和磁盘空间都要提前留足。如果你的宿主机空间紧张,可以先转成Dynamic,等导入 NSVPX 内部再扩容。但生产建议Fixed,避免运行中 I/O 抖动。

3.2 用 PowerShell 创建第一代 VM 并挂载磁盘:最小化可复现参数

创建虚拟机时,我通常用 PowerShell 而不是图形向导,因为参数能落成脚本,换一台宿主机也能照跑。下面是一个最小可复现的创建脚本:

$vmName = "NSVPX13-01" $vmPath = "D:\HyperV\VMs\NSVPX13-01" $vhdPath = "D:\NSVPX\nsvpx-13.vhdx" $switchMgmt = "vSwitch-Mgmt" $switchData = "vSwitch-Data" New-VM -Name $vmName -MemoryStartupBytes 4GB -Generation 1 -SwitchName $switchMgmt -VHDPath $vhdPath -Path $vmPath Add-VMNetworkAdapter -VMName $vmName -Name "Data0" Connect-VMNetworkAdapter -VMName $vmName -Name "Data0" -SwitchName $switchData Set-VM -VMName $vmName -ProcessorCount 4 -DynamicMemoryEnabled $false -ProcessorCompatibilityEnabled $true Start-VM -Name $vmName

New-VM的-SwitchName会把第一个默认网卡连接到管理交换机,这个网卡名是Network Adapter。Add-VMNetworkAdapter添加第二块网卡用于业务,名字叫Data0,再用Connect-VMNetworkAdapter接到业务交换机。Set-VM里的-DynamicMemoryEnabled $false确保固定内存,-ProcessorCompatibilityEnabled $true允许 VM 在相同代际 CPU 间迁移,对 NSVPX 这种对指令集敏感的 FreeBSD 系统有好处。-VHDPath直接使用现有 VHDX,不要在New-VM里再新建虚拟磁盘,否则会覆盖原镜像。

缺省不设置 MAC 地址时,Hyper-V 会随机生成。如果以后要固定 IP 绑定,建议给每个网卡设置静态 MAC。Hyper-V 默认 OUI 是 00:15:5D,可以使用:

Set-VMNetworkAdapter -VMName $vmName -Name "Network Adapter" -StaticMacAddress "00:15:5D:AA:BB:01" Set-VMNetworkAdapter -VMName $vmName -Name "Data0" -StaticMacAddress "00:15:5D:AA:BB:02"

注意避免使用 00:00:00 开头的 MAC,否则部分交换机会直接丢弃帧。如果镜像大小超过 2TB,必须用第 2 代虚拟机,但 NSVPX 这个版本基本遇不到这种场景,所以第 1 代是安全默认值。

如果拿到的是整个虚拟机目录,比如.vmcx和.vhdx一起打包,可以用Import-VM导入:

Import-VM -Path "D:\NSVPX\NSVPX-HyperV-13.0-47.24\Virtual Machines\*.vmcx" -Copy -GenerateNewId

-Copy会让 Hyper-V 把文件复制到新的 VM 路径,-GenerateNewId避免与源 VM 在 ID 上冲突。不建议用-Register,那会直接沿用原配置,可能覆盖当前主机上已有的 VM。

3.3 启动、控制台登录和首次改密

启动后等待 2-5 分钟,FreeBSD 内核引导完成后进入 nsroot 登录界面。用 VMConnect 打开控制台:

vmconnect.exe $env:COMPUTERNAME $vmName

如果启动很快但黑屏,先检查 VM 是否第 1 代,并确认 Secure Boot 关闭。进入控制台后,输入默认账号nsroot,默认密码nsroot,系统会要求立即修改密码。修改后执行保存:

> save ns config

这一步不做,后续配置全部丢失。另外,NSVPX 控制台不支持鼠标复制粘贴,建议在宿主机上开启 PowerShell 的快速编辑模式,或者直接用 SSH 连接 NSIP,前提是你能先通过控制台配好 IP。到这一步 NSVPX 已经能开机,但还没有网络地址,下一章讲怎么把 NSIP 配出来。

4. 配置 NSIP、SNIP 和默认路由:让 NSVPX 从“能开机”变成“可管理”

4.1 登录后先看当前网络参数:show ns config 和 show interface

登录后,先输入:

> show ns config

输出里会显示 NSIP、动态路由、hostname 等。新部署的 NSVPX 默认可能没有 IP,也可能从 DHCP 拿到地址。Hyper-V 的虚拟交换机默认不提供 DHCP,如果你的管理网有 DHCP,那么 NSIP 可能已经存在。无论如何,先执行:

> show interface summary

确认网卡状态。输出里可以看到 1/1、1/2 这样的接口编号,对应 Hyper-V 里两个网卡。第一块通常是管理口,第二块是业务口,但也有相反的情况。插拔顺序不同,接口编号也会变,所以不要凭直觉,要看链路状态和 MAC 地址。如果接口状态显示 DOWN,去宿主机检查虚拟交换机和物理网卡连接;如果 UP 但没有流量,重点检查 VLAN 配置。

4.2 用 set network params 配置 NSIP 和网关

假设管理网段是 192.168.10.0/24,NSIP 设为 192.168.10.10,网关为 192.168.10.1,则在控制台输入:

> set network params -nsip 192.168.10.10 -netmask 255.255.255.0 -gateway 192.168.10.1 > save ns config

set network params会立即修改当前内存中的配置,save后才写入启动配置。这里有个常踩的坑:-netmask只能写点分十进制,不能写 24,NetScaler CLI 不认192.168.10.10/24这种写法。

配置完后从宿主机 ping 测试:

Test-Connection 192.168.10.10 -Count 4

如果通了,就可以把网络管理交给 SSH 或浏览器了。默认 Web 管理端口是 443,地址是https://192.168.10.10。不推荐直接暴露 NSIP 到公众网,生产环境至少用 ACL 限制管理源。网关是默认路由,如果只有 NSIP 一个地址,也可以用add route:

> add route 0.0.0.0 0.0.0.0 192.168.10.1

两者效果一样,但set network params更全面,它会同时调整主机名、NSIP 和默认路由。

4.3 业务子网的 SNIP 与 VLAN 配置:参数表与命令

NSIP 只是管理地址,要让负载均衡能把流量转发给后端服务器,还需要 SNIP。SNIP 是 NSVPX 发起连接时使用的源 IP,必须与后端服务器路由可达。假设业务子网是 192.168.20.0/24,SNIP 为 192.168.20.20:

> add ns ip 192.168.20.20 255.255.255.0 -type SNIP > save ns config

如果业务流量打了 VLAN 标签,先在接口上绑定 VLAN:

> add vlan 20 > bind vlan 20 -ifnum 1/2 > save ns config

这里-ifnum 1/2是业务口编号,VLAN 20 对应 Hyper-V 交换机上给该端口设置的 VLAN ID。两侧不一致则不通。参数表整理如下:

对象CLI 命令常见错误
NSIPset network params -nsip ...掩码写成 /24
SNIPadd ns ip ... -type SNIP忘记设 type 导致当成 VIP
VLANadd vlan 20; bind vlan 20 -ifnum 1/2只加 VLAN 不绑定接口
路由add route 0.0.0.0 0.0.0.0 网关掩码和网关写反

配置完成后,用show ns ip验证:

> show ns ip

可以看到每个 IP 的类型。SNIP 的状态是 UP,才能证明 ARP 已能解析到后端网关。如果 SNIP 状态 DOWN,检查 Hyper-V 业务交换机是否配置了正确的 VLAN,以及物理交换机端口是否允许该 VLAN 通过。

最后,管理访问安全建议:默认 NSIP 上所有协议都是可访问的,生产环境建议限制。在 CLI 里输入:

> add ns acl -name MGMT_ONLY -action ALLOW -srcIP 192.168.10.0 -srcIPMask 255.255.255.0 -destIP 192.168.10.10 -destIPMask 255.255.255.255 > add ns acl -name MGMT_DENY -action DENY -srcIP 0.0.0.0 -srcIPMask 0.0.0.0 -destIP 192.168.10.10 -destIPMask 255.255.255.255

注意 ACL 顺序,前面的规则先匹配。这个配置不要在生产第一次就做,先把管理访问打开,确认能远程操作后再收紧。如果误把管理 ACL 配错,NSIP 会连不上,只能再回到控制台用rm ns acl删除。

5. 排障集:NSVPX-HyperV 启动报错、网络不通和性能异常的常见问题

5.1 出现“this product may not be installed on a computer that has microsoft hyperv in”提示:先检查虚拟机和宿主机的虚拟化状态

现象:创建虚拟机后启动,控制台很快出现这一行英文提示并退出,或者反复重启。第一时间感觉像是镜像被打包错了,实际上多半是部署方式不对。

原因:这个报错最容易出现在两种配置下。第一种是把 NSVPX 做成了第 2 代虚拟机且开启 Secure Boot,FreeBSD 引导在 UEFI 环境下没有正确的引导证书,Hyper-V 的固件把系统拦了下来;第二种是宿主机本身是一台虚拟机,比如在 VMware 虚拟机里开启 Hyper-V 再跑 NSVPX,双重虚拟化会让 NSVPX 检测到 Microsoft Hyper-V 环境异常,直接拒绝引导。

解决:依次做两件事。第一,删掉现有 VM,用第 1 代重新创建;第二,创建 VM 后不着急启动,进入“固件”菜单确认 Secure Boot 关闭。如果宿主是虚拟机,进入宿主机的处理器设置,把“向虚拟机公开虚拟化技术”打开。需要明确的是,Hyper-V 套 Hyper-V 不是 Citrix 支持的生产组合,遇到这种情况赶紧换成物理 Hyper-V 主机。这个报错不代表镜像损坏,也不用重新下载同一个 NSVPX-HyperV-13.0-47.24 文件,改代次绝大多数能解决。

5.2 导入后无法 ping 通 NSIP:VLAN ID 和网卡连接方向是重灾区

现象:NSVPX 能启动,NSIP 看着也配置了,但从宿主机和另外一台机器都 ping 不通。用控制台看接口状态是 UP,也不报错,就是没有回应。

原因:常见三种。一是 Hyper-V 虚拟机网卡连到了专用或内部交换机,外部根本到不了;二是 Hyper-V 交换机上设了 VLAN ID,但 NSVPX 里没有对应 VLAN,打标流量到不了 FreeBSD 协议栈;三是网卡顺序搞错,把业务口当成了管理口,NSIP 配置在业务接口上,而业务接口又没有配置正确的默认路由。

解决:在 Hyper-V 里确认管理网卡连接到“外部”交换机,并查看该外部交换机绑定的物理网卡是否有链路。在 NSVPX 控制台执行show interface summary,记录每个接口的 MAC 地址,再回到 Hyper-V 的虚拟机设置里对照 MAC 找到哪个是管理口。VLAN 不一致时,把 NSVPX 侧的 VLAN 和交换机侧对齐,或者暂时把交换机端口 VLAN 去掉再测试。这个定位过程其实就是一层层排除,不要先改配置,先把物理链路确认完。

5.3 内存固定 vs 动态内存:NSVPX 不欢迎 Hyper-V 动态内存

现象:运行一段时间后 NSVPX 出现不断重启、进程 statnet 被 killed、HTTP 请求延迟忽高忽低,查看/var/log/messages有内存不足的记录。

原因:Hyper-V 动态内存依赖气球驱动通知内存上下限,NSVPX 的 FreeBSD 内核在 PCI 热插拔内存事件下会产生内存碎片,特别是内存超卖严重时更明显。很多同事因为宿主机内存紧张给 NSVPX 开了动态内存,最后业务流量一大立即翻车。

解决:在宿主机上对这台 VM 固定分配内存,执行Set-VM -VMName NSVPX13-01 -DynamicMemoryEnabled $false。修改时要先关闭 VM 再启动。如果实在无法固定,至少把最小内存和最大内存设为相同值,本质上等于关闭动态。固定内存后观察一个业务低峰期,如果不再重启,基本就是这个问题。

5.4 磁盘从 VHD 转换到 VHDX 后引导失败:分区表问题

现象:用Convert-VHD把 VHD 转成 VHDX,然后创建第一代虚拟机启动,卡在“No boot device available”,或者进入 FreeBSD loader 后找不到内核。

原因:NSVPX 老镜像的分区表是 BIOS 风格,转换后如果磁盘控制器从 IDE 变成了 SCSI,或者目标 VHDX 类型从 Fixed 变成了 Dynamic,分区引导扇区会因地址偏移丢失。新同学容易在Convert-VHD时顺手指定-VHDType Dynamic,结果镜像能打开但是引导区对不上。

解决:转换时保持VHDType和源一致。可以先查询源类型:

Get-VHD -Path "D:\NSVPX\nsvpx-13.vhd" | Select-Object VhdFormat, VhdType

创建 VM 时把磁盘挂到 IDE 控制器,不要选 SCSI。如果已经启动失败,不要在磁盘上做任何写操作,重新转换到一个新的固定 VHDX,再启动。转换这个动作本身是可靠的,但前提是源文件没有被防病毒软件或其他进程占用。

5.5 版本升级后功能异常:13.0 build 47.24 的特征及升级前检查

现象:从 13.0-47.24 升级到更新 build 后,原有的负载均衡虚拟服务器还在,但 SSL 证书绑定失效,或者 SNIP 路由表被重置,排障时发现系统里残留了多个版本的功能文件。

原因:跨 build 升级会重建部分系统配置,Citrix 的配置数据库在 major 或 minor 版本之间并不完全向后兼容。47.24 这个 build 属于 13.0 中期,很多生产环境上来就跳了好几个 build,没按 release note 做中间版本升级,导致配置迁移时字段对不上。

解决:升级前至少做三件事:save ns config备份配置;show ns config记录当前版本和功能序列号;用 tar 导出/nsconfig目录到外部存储。升级后在维护窗口内回滚最省事。不要直接复制 VHDX 文件恢复,那样会把 Hyper-V 的磁盘锁和网卡 MAC 一起带回来,反而更容易出问题。

6. 验证 NSVPX 真的能转发流量:最小负载均衡配置和一组排错命令

6.1 一分钟配置 HTTP 负载均衡

NSVPX 配置好 NSIP/SNIP 后,可以先不连真实业务,用一个最小 HTTP 负载均衡测试转发链路。假设后端服务器是 10.1.1.10,HTTP 服务端口 80,VIP 用业务网段 192.168.20.100:

> add server RS1 10.1.1.10 > add service SRV_HTTP RS1 HTTP 80 > add lb vserver LB_V1 HTTP 192.168.20.100 80 > bind lb vserver LB_V1 SRV_HTTP > save ns config

add server只定义后端 IP,add service定义端口和协议,add lb vserver定义对外 VIP,bind把服务挂到 VIP 下。顺序不能乱,bind 时服务名写错会直接报错。

6.2 用统计和抓包确认转发

配置完成后,在客户端访问http://192.168.20.100,如果能看到后端页面,说明基本链路已通。再看统计:

> show lb vserver LB_V1 > stat lb vserver -detail

如果 Hits 数增长但响应慢,用 nstrace 看包:

> nstrace -size 100M -traceoutput /var/trace

nstrace 会自动抓取所有网卡流量,文件生成在/var/trace下,用 WinSCP 等工具下载后用 Wireshark 分析。重点看源地址和目的地址是否经过 SNIP 转换,以及回应包是否回到 NSVPX 的网卡。如果出现后端服务器直接从自己的网卡回包给用户,说明路由不对称,需要在 NSVPX 上配置源 NAT 或调整后端路由。

6.3 从 Hyper-V 迁移到另一台宿主机时的习惯

迁移 NSVPX 的 Hyper-V VM 时,不要直接复制 VHDX 到新机器再导入,一定要用 Export-VM / Import-VM,并选择复制网卡配置。我以前贪图省事,同一个 VHDX 复制了两份同时启动,Hyper-V 自动分配的媒体访问控制地址冲突,导致交换机上 ARP 抖动,业务抓包全是乱码。现在我的习惯是每个实例单独复制 VHDX,手动给每块网卡配置独立静态 MAC 地址,确认无误后启动,再在 NSVPX 里执行save ns config。这个习惯后来帮我在 13.0 版本里少踩了不少坑,希望帮到你。

本文还有配套的精品资源,点击获取

返回列表