关于WWN,WWPN,WWNN

本文详细介绍了WWN(World Wide Name)的概念及其在光纤通道存储网络中的作用。WWN包括WWNN和WWPN两种类型,前者标识不可拆分的独立设备,后者标识设备端口。文章还解释了在配置基于WWN的区域划分时为何应使用WWPN而非WWNN。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

what is WWN

WWN是HBA卡用的编号吧,每一个光纤通道设备都有一个唯一的标识,称为WWN(world wide name),由IEEE负责分配。在有多台主机使用磁盘阵列时,通过WWN号来确定哪台主机正在使用指定的LUN(或者说是逻辑驱动器),被使用的LUN其他主机将无法使用。
比如下图的例子:

 

WWN概念包含WWPN、WWNN。

一个不可拆分的独立的设备有WWNN,一个端口有WWPN。

比如一台SAN交换机,不可拆分,有一个WWNN,它有一堆端口,每个端口有一个WWPN。一块多口光纤HBA,卡本身有一个WWNN,每个端口有一个WWPN,单口的HBA也是,不过只有一个WWNN和一个WWPN。但主机就没有WWNN,因为卡和主机是可以分离的,单纯一个主机本身并不一定是SAN环境中的设备。

有WWNN的好处是:即使不去看连线,也可以清楚地知道,哪些端口是在一个物理设备上


wwn:有两种表示方法:  wwpn  wwnn
对于主机来说:
单个hba卡(单口)的情况下: wwnn只有一个     wwpn和wwnn一样
单个hba卡(双口)的情况下: wwnn只有一个     wwpn有两个
两个hba卡(单口)的情况下: wwnn有两个      wwpn有两个
两个hba卡(双口)的情况下: wwnn有两个      wwpn有四个

 

 

When configuring World Wide Name (WWN) based zoning, it is important to always use the World Wide Port Name (WWPN), not the World Wide Node Name (WWNN). With many systems, the WWNN is based on the Port WWN of the first adapter detected by the HBA driver. If the adapter the WWNN was based on were to fail, and you based your zoning on the WWNN, your zoning configuration would become invalid. Subsequently, the host with the failing adapter would completely lose access to the storage attached to that switch.

### 如何在VM虚拟机中设置WWPN WWPN(World Wide Port Name)是一个全球唯一的标识符,通常用于光纤通道网络中的设备识别。在虚拟环境中,可以通过特定的配置来为虚拟机分配WWPN。 #### 配置方法 1. **通过虚拟机硬件设置** 在 VMware vSphere 环境中,可以为虚拟机的虚拟 SCSI 控制器或虚拟 HBA 卡指定 WWPNWWNN 值。这些值通常是自动生成的,但也支持手动修改。具体操作如下: - 打开 vSphere Client 并导航到目标虚拟机。 - 编辑虚拟机设置 (`Edit Settings`)。 - 添加一个新的 `Fibre Channel` 设备或者编辑现有的 Fibre Channel 适配器。 - 在高级选项中找到 `Node WWN` 和 `Port WWN` 字段,并输入所需的 WWPNWWNN 值[^1]。 2. **通过命令行工具配置** 使用 `vmware-cmd` 或者 PowerCLI 工具也可以完成 WWPN 的配置。以下是使用 PowerCLI 的示例脚本: ```powershell # 连接到 vCenter Server Connect-VIServer -Server vcenter.example.com -User administrator@vsphere.local -Password 'password' # 获取虚拟机对象 $vm = Get-VM -Name "MyVirtualMachine" # 修改虚拟 HBA 的 WWPNWWNN Set-ScsiController -ScsiController ($vm | Get-ScsiController)[0] -Type ParaVirtual -Confirm:$false ``` 上述脚本会更改第一个 SCSI 控制器的相关属性。如果需要更具体的调整,则需进一步细化参数[^1]。 3. **注意事项** - WWPNWWNN 必须遵循 IEEE 标准规定的格式,即十六进制表示法下的全局唯一标识符。 - 如果在同一 FC SAN 中存在重复的 WWPNWWNN,可能会引发冲突,因此务必确保其唯一性[^2]。 --- ### 示例代码 以下是一段 Python 脚本,展示如何利用 pyVmomi SDK 设置 VM 的 WWPN(假设已安装并导入必要的库): ```python from pyVim.connect import SmartConnect, Disconnect from pyVmomi import vim def set_wwpn(host, user, password, vm_name, wwpn_value): si = SmartConnect(host=host, user=user, pwd=password) content = si.RetrieveContent() # 查找虚拟机 vm = None for child in content.rootFolder.childEntity: if hasattr(child.vmFolder, 'childEntity'): vms = child.vmFolder.childEntity for _vm in vms: if _vm.name == vm_name: vm = _vm if not vm: raise Exception(f"未能找到名为 {vm_name} 的虚拟机") # 更新虚拟 HBA 属性 spec = vim.vm.ConfigSpec() controller_key = vm.config.hardware.device[0].key # 假设第一个控制器为目标 device_spec = vim.vm.device.VirtualDeviceSpec() device_spec.operation = vim.vm.device.VirtualDeviceSpec.Operation.edit device_spec.device = vm.config.hardware.device[controller_key] device_spec.device.portWorldWideName = int(wwpn_value.replace(':', ''), 16) spec.deviceChange.append(device_spec) task = vm.ReconfigVM_Task(spec=spec) result = task.info.result Disconnect(si) return result # 测试调用 set_wwpn('vcenter.example.com', 'administrator@vsphere.local', 'password', 'TestVM', '10:00:00:XX:YY:ZZ:AA:BB') ``` 此代码片段展示了如何连接至 vCenter、定位虚拟机以及更新其虚拟 HBA 的 WWPN 属性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值