1. 为什么你需要vCenter配合iSCSI共享存储如果你正在搭建或者管理一个企业的虚拟化平台比如VMware vSphere环境那你肯定对“存储”这两个字又爱又恨。爱的是它是所有虚拟机VM的家数据安全、性能高低都系于它一身恨的是传统直连存储DAS或者昂贵的光纤通道FCSAN要么扩展性差要么成本高得吓人。这时候iSCSI协议搭配vCenter的管理能力就成了一个非常“香”的解决方案。简单来说iSCSI就是把SCSI命令打包进TCP/IP网络包里让服务器可以通过普通的以太网线去访问远端的块存储设备。这就像给你的服务器装上了一双“网络手”可以跨越机房去直接抓取存储阵列上的“数据块”。而vCenter作为VMware虚拟化套件的“大脑”它的核心任务之一就是高效、统一地管理这些存储资源。把iSCSI共享存储挂载到vCenter意味着你可以把所有ESXi主机的存储池统一起来实现虚拟机的高可用HA、动态迁移vMotion这些高级功能再也不需要把虚拟机文件拷来拷去。我见过不少刚开始接触虚拟化的朋友总觉得共享存储是大型企业才玩得转的“高端货”。其实不然现在很多中小型企业甚至工作室完全可以用一台性能不错的服务器装上TrueNAS、StarWind VSAN或者Windows Server自带的iSCSI目标服务就能搭建出一套经济实惠的共享存储。然后通过vCenter来集中管理瞬间提升整个IT架构的灵活性和可靠性。接下来我就手把手带你走一遍从零开始配置vCenter挂载iSCSI共享存储的完整流程里面会包含我踩过的一些坑和确保稳定的经验。2. 搭建你的iSCSI存储服务器从硬盘到LUN在让vCenter去连接之前我们得先把存储的“供给端”准备好。这里我以一款非常流行且功能强大的开源存储系统——TrueNAS Core以前叫FreeNAS为例。它基于FreeBSD提供了友好的Web管理界面配置iSCSI服务非常直观。当然如果你用的是其他系统比如Linux使用targetcli或Windows Server核心概念和步骤都是相通的。2.1 准备物理磁盘与创建卷首先你得在存储服务器上安装好TrueNAS系统。系统本身通常安装在一个小容量的U盘或SSD上而我们要用来提供共享存储的数据盘需要另外添加。进入TrueNAS的Web管理界面找到“存储”Storage相关菜单。第一步是识别新加的硬盘。在“磁盘”Disks列表里你应该能看到所有连接的磁盘包括系统盘和新的数据盘。记下数据盘的设备名比如ada1、da2之类的。接下来是关键操作创建物理卷和存储池。在TrueNAS里这个概念被整合为“池”Pool。我建议不要直接用单块硬盘而是用多块硬盘组成一个ZFS池这样能获得数据校验、快照等强大功能。即使你只有一块大盘也可以先创建单盘池。进入“存储” - “池”Pools点击“添加”ADD。给池起个名字比如tank_iscsi。在“可用磁盘”里选择你要用的数据盘点击右箭头添加到“数据VDEV”中。VDEV是ZFS池的基本组成单元。对于简单的起步选择“条带”Stripe类型即可注意单盘条带无冗余重要数据请用镜像或RAIDZ。点击“创建”Create。系统会格式化磁盘并创建池。现在你就有了一个可以存放数据的“大仓库”存储池。但iSCSI协议不是直接访问整个池而是访问池里划分出来的一个逻辑单元也就是LUNLogical Unit Number。所以我们需要在池里创建一个“文件”在ZFS里叫数据集Dataset或zvol来充当这个LUN。2.2 配置iSCSI目标服务与LUN映射有了存储池我们开始配置iSCSI服务端也就是“目标”Target。启动服务进入“服务”Services页面找到“iSCSI”服务确保它的状态是“运行中”Running。如果没有点击右边的开关启动它。创建门户Portal进入“共享”Sharing - “块共享iSCSI”Block Shares (iSCSI)。首先配置“门户”Portals。门户定义了iSCSI服务监听的IP地址和端口默认3260。通常添加一个IP选择存储服务器本身的IP如192.168.1.100端口保持默认。创建启动器组Initiator Group这一步用于做访问控制规定哪些客户端启动器可以连接。在“启动器组”Initiator Groups里点击“添加”。你需要填写“启动器”Initiators。这里填的是客户端的iSCSI限定名IQN。但是在vCenter/ESXi端我们通常先不在这里做严格限制而是放在后面的网络ACL。所以为了测试方便你可以先留空或者填写一个通配符iqn.*注意安全生产环境需严格指定。给这个组起个名字比如esxi_hosts。创建目标Target这是iSCSI服务端的核心标识。在“目标”Targets页面点击“添加”。你需要输入一个目标名称系统会自动生成一个完整的IQN如iqn.2005-10.org.freenas.ctl:tank_iscsi_target。你可以用默认的。关联刚才创建的“门户组”和“启动器组”。创建扩展Extent扩展就是具体的存储块也就是LUN的“后端”。有两种类型设备直接对应磁盘或分区和文件推荐。选择“文件型扩展”File-based extent。起个名字如vm_datastore_lun0。指定文件路径浏览选择到你之前创建的存储池如tank_iscsi然后输入一个文件名比如lun0。TrueNAS会自动在池的根目录创建这个文件。指定大小这就是你打算分配给vCenter的存储容量比如500G。注意不要超过池的可用空间。其他选项如块大小保持默认。最终映射关联目标与扩展在“关联目标/扩展”Associated Target/Extent页面点击“添加”。这里就是把“目标”和“扩展”连接起来并指定一个LUN编号通常从0开始。选择你刚才创建的目标和扩展LUN ID填0点击保存。至此你的iSCSI存储服务器就配置好了。它现在正“举着”一个写着特定IQN的牌子目标后面连着一块500G的“虚拟硬盘”LUN等待网络上的客户端vCenter/ESXi来认领。3. 在vCenter中配置软件iSCSI适配器现在我们把视角切换到vSphere环境。假设你已经有一套vCenter Server管理着至少一台ESXi主机。我们的操作主要在vCenter的Web Client如vSphere Client中进行因为vCenter可以统一管理所有主机的存储。重要前提确保ESXi主机管理网络vmk0能够与你的iSCSI存储服务器IP如192.168.1.100通信。防火墙规则要放行3260端口。第一步是在每台需要连接该共享存储的ESXi主机上启用并配置软件iSCSI适配器。这是ESXi内置的功能不需要额外硬件HBA卡。在vSphere Client中导航到“主机和集群”Hosts and Clusters。选中你要配置的ESXi主机进入“配置”Configure选项卡。在“存储”部分选择“存储适配器”Storage Adapters。你会看到已有的适配器比如本地SATA控制器。点击“添加软件适配器”Add software adapter的按钮图标是一个带加号的存储适配器选择“添加软件iSCSI适配器”。系统会提示确认并自动创建一个名为vmhbaXX如vmhba65的iSCSI适配器。创建完成后在适配器列表里选中这个新的iSCSI适配器。在适配器详情区域点击“网络端口绑定”Network Port Binding下的“添加”Add。这是关键步骤它决定了ESXi主机通过哪张物理网卡和哪个VMkernel端口去访问iSCSI存储。你应该选择一个专门用于存储流量的VMkernel适配器vmk1并确保它所在的物理网卡如vmnic1是连接存储网络的。绑定后iSCSI流量就会通过指定的网络路径。接下来配置“动态发现”Dynamic Discovery或“静态发现”Static Discovery。我习惯用静态发现更直接。点击“静态发现”Static Discovery下的“添加”Add。输入你的iSCSI存储服务器的IP地址和端口192.168.1.100端口3260。点击“确定”。最后回到适配器列表右键点击新加的iSCSI适配器选择“重新扫描存储适配器”Rescan storage adapter。或者你也可以在适配器详情页点击“重新扫描”按钮。这会触发ESXi主机向刚才指定的目标IP发起发现请求。如果一切网络配置正确在重新扫描后你会在适配器下方的“设备”Devices列表中看到一个或多个新设备。这些设备的名字通常包含存储服务器IQN的一部分以及LUN ID。例如你可能会看到一个名为naa.xxxxxxxxxxxx或eui.yyyyyyyyyyyy的设备容量正是你之前设置的500G。看到这个就说明ESXi主机已经成功“看到”了远端iSCSI存储服务器提供的LUN。4. 创建数据存储并投入实战使用发现磁盘设备只是第一步接下来我们要把这个“裸磁盘”格式化成vSphere能够识别和使用的数据存储Datastore。还是在ESXi主机的“配置” - “存储”下这次点击“数据存储”Datastores。点击“新建数据存储”Create new datastore启动创建向导。类型选择选择“VMFS”。VMFS是vSphere专用的高性能集群文件系统允许多台ESXi主机同时读写同一个存储。名称与设备选择给你的数据存储起个直观的名字比如iSCSI_VM_Store。然后在设备列表里选择你刚刚发现的、来自iSCSI的那个500G磁盘。注意别选成本地磁盘。VMFS版本选择最新的兼容版本如VMFS 6。它支持更大的文件和数据存储功能也更丰富。分区配置通常选择“使用所有可用分区”Use all available partitions。确认设置点击“完成”。vCenter会开始格式化这个LUN创建VMFS文件系统。格式化完成后你就能在“数据存储”列表中看到这个新的iSCSI_VM_Store了。它的容量、可用空间都会显示出来。现在这个数据存储就可以像本地存储一样使用了。真正的威力现在才开始体现因为你配置的是共享存储所以其他ESXi主机只要按照第3步的流程配置好软件iSCSI适配器并指向同一个目标在重新扫描后它们也能看到同一个LUN设备。但是注意其他主机不需要再格式化它们只需要对这个已有的VMFS数据存储进行一次“重新扫描”vCenter就会自动识别并挂载它。这样同一个数据存储就同时出现在多台主机的存储列表里了。你可以做以下操作来验证其共享性在一台主机上右键点击这个iSCSI数据存储选择“浏览文件”创建一个测试文件夹。然后到另一台主机上浏览同一个数据存储你会立刻看到刚才创建的文件夹。创建一台虚拟机将其硬盘位置指定在这个iSCSI数据存储上。然后你可以尝试对这个虚拟机进行vMotion实时迁移在不停机的情况下把它从一台ESXi主机迁移到另一台。迁移过程中虚拟机的内存状态通过网络传输而其磁盘文件因为放在共享存储上完全不需要移动。这就是共享存储带来的核心便利之一。5. 性能调优与日常维护要点配置通了只是开始要让它稳定高效地跑起来还有些细节需要注意。这些都是我实际运维中积累的经验。网络是性能的生命线iSCSI性能极度依赖网络。强烈建议为iSCSI存储流量划分独立的VLAN并使用至少1Gbps推荐10Gbps或更高的专用物理网卡。在vSphere端做好“网络端口绑定”确保iSCSI流量走正确的路径。在存储服务器端也可以考虑启用巨帧Jumbo FramesMTU 9000但这需要网络中的所有设备交换机、ESXi主机、存储服务器都支持并统一配置配置不当反而会引起问题。多路径MPIO配置为了提高可用性和带宽你可以为ESXi主机配置多个VMkernel端口绑定到iSCSI适配器并连接到存储服务器的多个网络接口。这样vSphere会自动启用多路径功能。你需要将存储端口的“路径选择策略”Path Selection Policy, PSP从默认的“最近使用”MRU改为“循环”Round Robin, RR或“固定”Fixed。这可以在数据存储的设备详情里进行配置。启用多路径后不仅提供了链路冗余还能聚合带宽。监控与告警在vCenter中密切关注数据存储的使用率设置告警避免空间用尽导致虚拟机宕机。同时监控存储的延迟Latency、IOPS等性能指标。如果发现性能瓶颈首先要排查网络然后是存储服务器本身的磁盘性能是否是HDD瓶颈是否应该用SSD缓存。安全加固初期测试可以用宽松的ACL但生产环境务必收紧。在TrueNAS的iSCSI配置中使用“网络ACL”Network ACL功能只允许来自ESXi主机存储网络IP段的连接。在“启动器组”中精确填写每台ESXi主机的IQN你可以在ESXi主机的iSCSI适配器属性里找到它的启动器IQN。双向认证CHAP是更高级的安全选项配置稍复杂但能提供连接层面的身份验证大型或对安全要求高的环境可以考虑。最后别忘了备份你的存储服务器配置和vCenter的存储配置。定期对重要的虚拟机进行快照或备份到异地。共享存储让运维变得更灵活但良好的管理习惯依然是数据安全的最后一道防线。当你熟悉了整个流程后你会发现用vCenter管理iSCSI共享存储就像给整个虚拟化平台装上了一个稳定而强大的“共享硬盘”无论是扩容、迁移还是保障业务连续性都变得游刃有余。