WWN,WWNN,WWPN区别

本文详细介绍了WWN(World Wide Name)编号的概念及其在光纤通道设备中的应用,包括WWNN(World Wide Node Number)和WWPN(World Wide Port Number)的区别与联系,并通过实例展示了不同配置下的HBA卡WWN编号的特点。

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

WWN: world wide number 是硬件的全球唯一标示
WWPN: world wide port number 是指端口号
WWNN: world wide node number 是指节点号
 
如果是光纤交换机的话wwn和wwnn是一样的,而wwpn是指每个光纤端口.
如果是HBA卡的话,若是只有一个端口则三者可能一样,若是有多个端口则和交换机差不多.

具体的解释如下图:


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有四个


出处:http://blog.sina.com.cn/s/blog_6b7ae4270101m508.html

### 如何在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、付费专栏及课程。

余额充值