在Linux和Windows上查看 块存储的WWN号

在底层块存储上创建一个LUN后,会有一个全球唯一标识符 WWN用来识别这块硬盘,当你将这块硬盘挂载到服务器时,如果你这时需要扩容,但是服务器上有多块容量一样大的磁盘,这个时间就需要要出磁盘对应的WWN号了,然后在底层存储扩容。

下面将介绍Linux和Windows分别如何查看磁盘的wwn号

1. Linux

在linux系统查看比较简单,假设你不知道系统中那块盘是物理LUN直接输入如下命令:

lsscsi --scsi_id -s -g

复制代码
[0:0:0:0]    disk    VMware   Virtual disk     2.0   /dev/sda   -  /dev/sg0    107GB
[0:0:1:0]    disk    VMware   Virtual disk     2.0   /dev/sdb   -  /dev/sg1    562GB
[0:0:2:0]    disk    VMware   Virtual disk     2.0   /dev/sdc   -  /dev/sg2   1.07TB
[0:0:3:0]    disk    EMC      Invista          6200  /dev/sdd   36000144000000010e00e0d0d1db7b2c9  /dev/sg3   1.29TB
[3:0:0:0]    cd/dvd  NECVMWar VMware SATA CD00 1.00  /dev/sr0   -  /dev/sg4
  • lsscsi: 列出所有 SCSI 设备的基础信息
  • --scsi_id:输出所有物理LUN的 wwn/Serial Number
  • -s:显示设备的容量大小
  • -g:字符设备路径(底层调试用)

可以看出设备/dev/sdd就是一个物理LUN设备,36000144000000010e00e0d0d1db7b2c9 就是WWN号,输出信息描述如下:

  • [0:0:3:0]:SCSI 总线地址(host:channel:target:lun)
  • disk:设备类型
  • EMC/Invista:厂商 / 型号
  • 6200:SCSI 设备的固件版本号
  • /dev/sdd:块设备路径(数据读写用)
  • 36000144000000010e00e0d0d1db7b2c9 :wwn号
  • /dev/sg3:字符设备路径(底层调试用)

如果你知道哪块盘是物理LUN可以使用指定设备路径:
udevadm info --query=all --name=/dev/sdd | grep -w ID_SERIAL

复制代码
 E: ID_SERIAL=36000144000000010e00e0d0d1db7b2c9

2. Windows

如果你想查看所有设备的WWN,如下

powershell执行

Get-PhysicalDisk | select FriendlyName,UniqueId,@{Name='SizeGB'; Expression={[math]::Round($_.Size/1GB,2)}}

复制代码
FriendlyName        UniqueId                         SizeGB
------------        --------                         ------
EMC Invista         6000144000000010E00E0D0D1DB7AD61 1740.8
VMware Virtual disk 6000C292EE2FBBCAB535BEA8370249BB    100
EMC Invista         6000144000000010E00E0D0D1DB7B3E5    200
  • Get-PhysicalDisk: PowerShell 专用于获取本地所有物理磁盘的基础信息(包括机械盘、SSD、FC/SAS 存储 LUN 等),是查询物理磁盘的 "入口命令",不会包含逻辑卷 / 动态卷的抽象信息,只对应物理硬件。
  • select: 全称是 Select-Object,作用是筛选 / 提取指定字段,只保留你关心的信息
  • Name='SizeGB': 重新定义字段名称
  • $_.Size:获取管道传入的字节大小
  • 1GB:换算成GB
  • 2:小数点保留2位

在显示wwn的同时显示盘符:

不支持查看动态卷

Get-PhysicalDisk | ForEach-Object { $pd = $_; $_ | Get-Disk | Get-Partition | Get-Volume | Where-Object DriveLetter | Select-Object @{n='PhysicalFriendlyName';e={$pd.FriendlyName}}, @{n='UniqueId';e={$pd.UniqueId}}, DriveLetter, @{n='VolumeSizeGB';e={[math]::Round($_.Size/1GB,2)}} }

复制代码
PhysicalFriendlyName UniqueId                         DriveLetter VolumeSizeGB
-------------------- --------                         ----------- ------------
EMC Invista          6000144000000010E00E0D0D1DB7AD61           D      2764.67
VMware Virtual disk  6000C292EE2FBBCAB535BEA8370249BB           C        99.45
EMC Invista          6000144000000010E00E0D0D1DB7B3E5           T       199.87

两次输出中6000144000000010E00E0D0D1DB7AD61对应的磁盘的大小不一致,这时因为底层块存储在置备物理LUN时使用的是thin 瘦置备模式,会动态调整物理LUN的大小,第二次输出是调整过的输出的是磁盘管理器卷的容量。

相关推荐
Lsir10110_8 分钟前
【Linux】中断 —— 操作系统的运行基石
linux·运维·嵌入式硬件
郝学胜-神的一滴28 分钟前
深入浅出:使用Linux系统函数构建高性能TCP服务器
linux·服务器·开发语言·网络·c++·tcp/ip·程序人生
Doro再努力40 分钟前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim
全栈工程师修炼指南1 小时前
Nginx | stream content 阶段:UDP 协议四层反向代理浅析与实践
运维·网络·网络协议·nginx·udp
Lsir10110_1 小时前
【Linux】进程信号(上半)
linux·运维·服务器
开开心心就好2 小时前
发票合并打印工具,多页布局设置实时预览
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节
火车叼位2 小时前
脚本伪装:让 Python 与 Node.js 像原生 Shell 命令一样运行
运维·javascript·python
css趣多多2 小时前
add组件增删改的表单处理
java·服务器·前端
Sheep Shaun2 小时前
揭开Linux的隐藏约定:你的第一个文件描述符为什么是3?
linux·服务器·ubuntu·文件系统·缓冲区
野犬寒鸦2 小时前
从零起步学习并发编程 || 第七章:ThreadLocal深层解析及常见问题解决方案
java·服务器·开发语言·jvm·后端·学习