资讯动态

VMware ESXi添加NAS存储实战:NFS协议选型与配置排查指南

发布时间:2026/9/17 21:42:57 来源:尧图企业网站定制
干过虚拟化管理的朋友应该都有印象ESXi主机自带的本地存储用起来虽然省事可到了多主机共享、虚拟机迁移、备份恢复这些场景本地硬盘就成了瓶颈。NAS存储因为部署简单、成本可控是很多中小企业、实验室和自建机房的首选方案。这篇文章我会从实际操作角度把在VMware ESXi中添加NAS存储这件事完整讲一遍包括协议怎么选、图形界面和命令行两种添加方式、权限与网络怎么配、常见问题怎么排查以及我个人踩过的坑。不管你是刚开始接触ESXi的新手还是想在现有环境里补一块共享存储的老手都能直接照着操作。1. NAS存储与ESXi的适配逻辑及选型1.1 为什么不用本地硬盘而用NAS存储先聊一个基础问题本地硬盘到底哪里不够用ESXi主机的本地盘虽然写入速度不差但它是一台主机独占的存储资源。虚拟机文件放在本地盘上最直接的影响就是vMotion、HA、FT这类功能没法用因为其他主机看不到这块盘上的数据。备份也要先把数据拷来拷去时间一长就是灾难。NAS存储的核心价值在于“共享”两个字。一台NAS设备通过以太网把存储空间暴露给网络ESXi主机把它挂载成数据存储所有能访问到这个NAS的主机就都能看到一个共同的存储池。这样虚拟机可以在主机之间在线迁移故障时另一台主机可以接管运维和容灾的玩法一下子打开了。成本上的优势也很明显。SAN存储动辄需要光纤交换机、专用HBA卡配置复杂价格不高根本摸不到。而一台群晖、威联通或者自己攒的NAS只要支持NFS协议就能在ESXi里当数据存储用。很多家里已经有一台NAS的朋友甚至不用添设备就能把虚拟化环境跑起来。当然生产环境下性能要求高还是得认真评估NAS的硬件能力但这不妨碍它在中小场景里成为非常务实的选择。1.2 NFS与iSCSI存储协议怎么选在ESXi里挂NAS存储主要有两种协议NFS和iSCSI。很多人第一次接触时不太清楚区别我按自己的理解讲清楚。NFS是网络文件系统属于文件级协议。NAS把共享目录导出ESXi挂载到某个路径虚拟机文件就放在这个目录里。优点是配置简单一个IP加一个共享路径就能用多台ESXi访问同一个NFS共享完全没有问题因为文件锁和并发访问都由NFS服务和VMware层协调了。iSCSI是网络块存储协议它把远端的块设备模拟成本地盘ESXi需要把iSCSI Target上的空间初始化成VMFS文件系统。块级协议对底层有更强的控制数据库这类高随机IO负载偶尔会有更稳定的表现但配置和运维门槛也更高而且多台主机共享时需要额外搞好SCSI锁和VMFS集群文件系统的逻辑。我用一个表格做个直观对比维度NFSiSCSI协议层级文件级共享块级设备映射配置难度简单创建共享即可需要配置Target、LUN、客户端认证VMFS要求不需要直接使用目录必须初始化VMFS多主机共享天然支持支持但需注意锁机制性能场景适合常规虚拟化负载高IO、数据库场景可能更优ESXi兼容性好NFS 3支持最广泛好但依赖存储厂商实现我个人的倾向是在中小企业、实验环境和自建NAS场景优先选NFS理由很简单就是省心。如果NAS是专门的企业级设备存储团队对iSCSI也熟悉那就按块存储方式走。但如果你是第一次在ESXi里挂NAS我建议先拿NFS走通整条链路后面有需求再试iSCSI。1.3 理解VMFS与NFS数据存储形态ESXi的数据存储大体分两类。一类是VMFS这是VMware自创的集群文件系统运行在块设备之上本地硬盘、SAN LUN、iSCSI Target都可以格式化成VMFS。另一类是NFS数据存储它没有VMFS文件系统的概念ESXi直接把虚拟机文件存放在NAS共享目录中虚拟机仍然以文件夹和VMDK文件的形式存在。很多朋友第一次接触NFS数据存储时会想“这不就是把虚拟机文件放在网络共享文件夹里吗”理解很到位技术上就是这样的。但需要注意ESXi对NFS共享里的文件结构和权限有要求通过vSphere创建的数据存储目录都带隐藏标识不要因为你熟悉群晖的文件管理就直接跑过去手动删改。我就见过有人在NAS上误删了vmdk文件导致虚拟机不可用的案例所以用NFS存储时文件操作最好还是走vSphere界面而不是直接在NAS上管理。了解了这些基础就可以进入实操了。2. 添加NAS存储前的准备主机、NAS、网络与账号2.1 ESXi主机准备版本方面ESXi 6.7、7.0、8.0都支持NFS数据存储最常见的是NFS 3协议NFS 4.1在6.7以后的版本也都支持。建议先把ESXi主机和vCenter Server如果有升级到受支持的版本固件和驱动保持更新减少存储挂载时碰到高级功能缺失的问题。ESXi免费许可证能不能添加NFS数据存储我用过的免费版是可以添加NFS存储的基础挂载和运行虚拟机没问题只是在一些集中管理、备份API的扩展上会有限制。当然真要上生产环境还是建议使用正规的vSphere许可证以免功能受限。还有一个小细节确保ESXi主机时间同步。NFS对时间同步不是刚需但如果你后续想用NFS 4.1的Kerberos认证时间偏差太大会导致认证失败。即使只用NFS 3统一时间也是后续排障的基础。ESXi里把NTP配置好NAS上也启用时间同步提前省很多事。2.2 NAS共享准备以最常见的群晖和威联通为例下面这些步骤基本通用自己攒的开源NAS比如TrueNAS、OpenMediaVault也大同小异。第一步在NAS上启用NFS服务。群晖路径通常在“控制面板 - 文件服务 - NFS”勾选“启用NFS服务”。TrueNAS则在“服务 - NFS”里开启。第二步创建共享文件夹例如在卷上建一个名为vmware的目录然后设置NFS权限。群晖是在“共享文件夹 - 编辑 - NFS权限 - 新增”填写ESXi主机的IP地址权限选择“读写”Squash选项建议选择“不映射任何用户”或“无映射”这对应no_root_squashESXi挂载后才有权限写入。这个设置非常关键后面会专门讲。第三步记录导出路径。群晖通常显示为/volume1/vmware这样的路径TrueNAS可能是/mnt/pool1/vmware。这个路径就是后面在ESXi里填的“挂载路径”。不同的NAS显示方式不同但一定是共享目录在操作系统里的实际路径。第四步检查NAS防火墙。如果NAS开启了防火墙需要放行NFS相关端口。NFS 3通常需要TCP/UDP 111rpcbind、2049NFS可能还有mountd端口。小型局域网图省事的话在隔离网络里关闭NAS防火墙也能跑通但生产环境建议精确放行。2.3 网络规划与IP选型存储网络是整个方案里最容易被忽视的一环。我见过很多环境把NAS和业务流量混在一个普通交换机上结果虚拟机高峰时段延迟飙升存储性能极度不稳定。建议单独规划一个存储子网例如ESXi管理IP是192.168.1.0/24存储网络则用192.168.200.0/24。在ESXi上创建独立的VMkernel端口或vSwitch用于存储流量把NAS也放在这个子网里。这样即使业务流量抖动存储流量也能相对稳定。IP地址一定要使用静态地址不要依赖DHCP。NAS的IP一旦变化ESXi上的数据存储会进入断开状态虚拟机可能直接宕机。ESXi几乎不会自动重新解析一个变化的IP所以在刚部署时就把NAS做成固定IP并在路由器或者防火墙上预留好地址。如果条件允许带宽上尽量往大了看。普通千兆网络跑一两台虚拟机还行虚拟机一多NFS的带宽瓶颈会很明显。很多新项目直接上万兆或者2.5G多网卡绑定配合SSD缓存体验完全不同。3. 图形化方式添加NAS存储vSphere Client操作全流程3.1 进入存储“新建数据存储”向导图形界面是最直观的操作方式适合第一次配置的朋友。用vSphere Client登录到ESXi主机或vCenter Server选择目标主机点击“存储”选项卡然后点击“新建数据存储”按钮。向导第一步会让你选择类型。这里选择“网络文件系统(NFS)”下一步后会出现NFS共享信息填写界面。有一点要提醒如果你是在vCenter环境下操作可能还能看到VMFS、vSAN等选项。此时别选错只有NFS才是挂NAS共享的选项。VMFS需要块设备如果选错后面填IP和共享路径的界面根本不会出现。3.2 填写NAS路径与名称在向导界面里我们需要填这几项服务器IP或FQDN填NAS的存储网络IP例如192.168.200.10。共享/挂载路径填NAS的导出路径例如/volume1/vmware。数据存储名称自定义一个方便识别的名字例如NAS01。名称建议用英文字母、数字和下划线不要使用中文或特殊字符。虽然某些ESXi版本可能支持但为了避免兼容性问题还是稳妥一点。填写完成后先别急着下一步务必核对路径尤其是群晖这类NAS的卷号路径很容易看花眼。我遇到过同事把/volume1和/volume2搞混结果虚拟机全部挂错盘的故事。检查无误再下一步。3.3 NFS版本与挂载选项说明在创建向导中ESXi会要求选择NFS协议版本。常见的选项是NFS 3和NFS 4.1。NFS 3的兼容性最广几乎所有NAS设备都支持配置也最简单推荐大多数场景默认选NFS 3。NFS 4.1有一个很吸引人的特性是支持Kerberos认证更安全但配置远比NFS 3复杂一旦身份认证方面出错就连挂载都会失败。如果你不是特别需要强安全认证没必要一上来就上NFS 4.1。向导里还会有“启用硬件加速”之类的选项这是与VAAI相关的能力能够改善某些存储操作如复制、置零的效率。只要NAS和主机支持保持默认勾选即可。这里还要注意“基于文件系统的精简配置”选项。如果NAS支持稀疏文件/精简配置勾选后虚拟机磁盘能更节省NAS空间但某些NAS的文件系统可能不支持勾了反而不稳。普通环境可以直接不勾空间不够时再扩容。最后点击“完成”系统会进行挂载操作通常几十秒内就能看到结果。3.4 验证挂载结果完成后在主机“存储”列表里可以看到新增的数据存储状态显示“正常”旁边会标出NFS类型。这时候我建议做一个完整验证第一步点击该数据存储进入“文件”页签新建一个文件夹第二步上传一个ISO镜像或虚拟机模板确认写入正常第三步尝试创建一台测试虚拟机完整跑一遍部署流程。这样可以尽早发现NFS权限和网络问题而不是等真正要部署业务时才发现仓库是坏的。如果状态显示“不活跃”或“不可访问”说明挂载没有成功先不要反复点击重试直接去看NAS侧的状态然后对照后面第五部分的排查流程逐项检查。4. 命令行方式添加NAS存储esxcli与SSH实操4.1 开启SSH并查看当前存储图形化配置够方便但做自动化或者排障时命令行反而更高效。ESXi对NFS的命令行支持主要通过esxcli storage nfs子命令完成。第一步在ESXi主机上开启SSH服务。在Host Client里进入“管理 - 服务”找到SSH点击“启动”。生产环境建议操作完成后关闭SSH以减少暴露面。第二步使用SSH工具登录ESXi账号一般为root。第三步查看当前已经挂载的存储esxcli storage filesystem list这个命令会列出所有数据存储包括本地VMFS和NFS。也可以使用df -h查看挂载点和容量。先把环境摸清楚再动手添加新的NFS能避免名称或路径冲突。4.2 使用esxcli添加NFS数据存储添加NFS存储的基本语法如下esxcli storage nfs add --hostNAS_IP --shareNFS_PATH --namedatastore_name --versionnfs3实际执行示例esxcli storage nfs add -H 192.168.200.10 -s /volume1/vmware -v NAS01 -w nfs3参数说明-HNFS服务器IP地址。-sNFS导出的共享路径。-v要为这个数据存储取的名称。-wNFS版本nfs3或者nfs4。执行完成后可以用:esxcli storage nfs list查看是否添加成功。正常的话列表中会显示对应的数据存储名称、挂载路径、版本和状态。如果想删除这个数据存储使用esxcli storage nfs remove -v NAS01需要等该存储上的虚拟机都迁移或关闭后再执行删除否则会直接导致虚拟机失去磁盘。4.3 查看挂载参数与启用NFS 4.1对于NFS 4.1命令几乎一样只是将--versionnfs4。但NFS 4.1默认可能带Kerberos认证实际环境很多NAS并没有集成AD域这时容易挂载失败。我们可以通过--sec-typesys参数指定使用传统UNIX系统认证esxcli storage nfs add -H 192.168.200.10 -s /volume1/vmware -v NASNFS4 -w nfs4 --sec-typesys这种用法适合NFS 4.1的轻量场景。如果NAS上配置了Kerberos且你将vCenter或ESXi加入了域也可以使用--sec-typekrb5i这类选项启动加密认证。但这类配置牵涉到DNS、Kerberos、时钟同步等问题生产环境里若不是强安全要求我还是建议用NFS 3把复杂度降到最低。命令行方式特别适合批量部署或脚本化的场景。比如新上架多台ESXi节点需要同时挂载同一NAS共享可以写好脚本逐台执行效率非常高。不过要注意esxcli添加存储时不会自动检查NAS路径存在与否它只会尝试挂载如果你路径填错后续日志里才会暴露问题。5. 常见问题与排查技巧实录5.1 无法访问NAS共享的排查步骤挂载NFS存储失败最常见的问题是网络不通或共享路径不对。我一般按这个顺序排查先确认ESXi和NAS之间网络通不通。在ESXi SSH里使用vmkping测试NAS的IPvmkping 192.168.200.10如果ping不通先查ESXi的存储VMkernel网络是否配置正确再看NAS的IP是否达到物理交换机端口、VLAN是否都正常。网络不通时后面一切配置都白搭。网络通了再看端口。NFS 3需要端口111和2049NFS 4.1主要需要2049。可以在ESXi里用nc命令测试端口ESXi的精简环境可能没有nc可以临时在NAS或另一台设备上测试nc -zv 192.168.200.10 2049如果端口不通检查NAS端的防火墙规则、NFS服务是否启动。再接下来看共享路径的准确性。许多NAS面板显示的路径和实际挂载需要填写的路径不完全一样比如群晖会写成/volume1/vmware而TrueNAS可能是/mnt/tank/vmware。最稳妥的方法是到NAS的NFS设置页复制导出路径而不是凭记忆输入。最后检查NFS访问权限列表。大多数NAS的NFS共享有来源IP限制功能只允许特定IP列表访问。你需要在NFS权限里加入ESXi主机的存储网络IP。如果ESXi的IP没被放行即便其他配置全对也会挂载失败。5.2 NFS权限与root squash问题挂载成功但无法写文件是我收到咨询最多的问题。现象是数据存储能挂上状态也是“正常”但创建虚拟机时报权限不足或者上传文件失败。原因是ESXi在挂载NFS时使用root身份而NAS默认会对root用户做squash处理把root映射成匿名用户或nobody用户导致对共享目录没有写入权限。这个行为来自NFS协议的“root_squash”默认安全机制。解决办法是在NAS的NFS配置里开启no_root_squash不同NAS界面叫法不同群晖是Squash选“不映射任何用户”TrueNAS是Maproot User设置为root。修改后无需重新挂载NAS会动态生效。然后再尝试创建一个文件夹或上传一个文件基本就好了。这里要特别提醒NFS共享目录在NAS上的实际属主和权限也有影响。比如共享目录的属主是admin权限是750就算no_root_squashESXi的root能够被映射为本地root但跨NFS的权限解析可能仍然受文件系统权限位限制。建议把共享目录的属主设为root权限保持755或777根据安全要求选择同时开启no_root_squashESXi的读写基本就通顺了。5.3 性能优化与注意事项NFS存储的性能不是挂载完就万事大吉的。我用过一段时间后总结出几个影响很大的细节。第一巨帧Jumbo Frames能开则开。ESXi的vSwitch、VMkernel端口、NAS网口、交换机端口都需要统一设置MTU 9000任何一个环节不统一都会造成网络分片性能反而下降。如果风险控制不住保持MTU 1500至少稳定。第二存储流量分离。在ESXi上专门建一个不承载业务流量的vSwitch放NAS存储在NAS侧也可以把存储口和业务口分离减少碰撞和拥塞。这个在虚拟机和NAS都比较忙的环境里尤其重要。第三NAS本身的I/O能力决定上限。机械盘做RAID5跑虚拟机的速度只能说是“能跑”稍高负载就卡。尽量给NAS加SSD缓存或者直接用全闪NAS。虚拟机的操作系统和数据库高随机读写在SSD上的改善非常明显。第四多台ESXi挂载同一个NFS共享时要注意NAS的连接数限制和并发处理能力。我曾经在测试环境里让八台ESXi同时挂同一个群晖NASNAS自带连接数有限部分主机就出现“存储失联”的情况。后来调整NAS的并发连接数和超时参数才稳定下来。生产环境做共享存储之前一定先看一下NAS厂家的规格说明。6. 我踩过的几个坑和最后的小建议最后分享一些个人体会。最早我在实验室里挂NFS存储NAS用的是群晖DS218千兆网络挂载很顺利。但真正把几个Windows虚拟机跑起来之后发现系统操作时有明显卡顿。排查了半天发现交换机上根本没有开启巨帧ESXi的VMkernel却把MTU设成了9000大包一直被分片延迟高得吓人。把所有端口统一改成1500后问题立刻消失。后来我换了支持2.5G的NAS才彻底把性能瓶颈解决。所以性能问题不一定是NAS不行先查网络基础设施。另一个印象深刻的坑是数据存储名称冲突。我同时给多台ESXi添加同一个NAS共享结果用了不同的数据存储名称导致vMotion时集群认为存储名称不一致迁移失败。后来改成全集群统一的名称问题就没了。所以建议在所有主机上把同一个NAS共享的数据存储名称保持一致命名规范要提前定好。还有一次NAS进行了固件升级重启后NFS服务虽然自动启动了但导出的共享目录路径发生了细微变化ESXi上的数据存储显示“不活跃”。当时差点以为虚拟机数据丢了后来发现只是路径失效。重新按新路径挂载后虚拟机文件原封不动地还在共享目录里。这个经历启示我一方面不要轻易变更NAS的共享路径和IP另一方面发生类似问题时不要慌张先把数据存储重新挂载好虚拟机一般都能恢复。如果你也准备在ESXi里用NAS存储我的建议是先在测试环境完整走一遍“创建NFS共享-挂载数据存储-创建虚拟机-做快照-迁移主机”这套流程。很多时候问题都出现在平时没人关注的小细节上比如NAS的权限、名称一致性、网络MTU。把这些细节在测试阶段暴露出来生产环境才能稳得住。等你熟悉了整个流程NAS带来的便利——共享模板、快速迁移、集中备份——会让你觉得当初的折腾特别值。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价