在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的大小,第二次输出是调整过的输出的是磁盘管理器卷的容量。

相关推荐
雪可问春风1 天前
docker环境部署
运维·docker·容器
lwx9148521 天前
Linux-Shell算术运算
linux·运维·服务器
翻斗包菜1 天前
PostgreSQL 日常维护完全指南:从基础操作到高级运维
运维·数据库·postgresql
somi71 天前
ARM-驱动-02-Linux 内核开发环境搭建与编译
linux·运维·arm开发
海的透彻1 天前
nginx启动进程对文件的权限掌控
运维·chrome·nginx
路溪非溪1 天前
Linux驱动开发中的常用接口总结(一)
linux·运维·驱动开发
此刻觐神1 天前
IMX6ULL开发板学习-01(Linux文件目录和目录相关命令)
linux·服务器·学习
航Hang*1 天前
第3章:Linux系统安全管理——第2节:部署代理服务
linux·运维·服务器·开发语言·笔记·系统安全
fengfuyao9851 天前
VC++基于服务器的点对点文件传输实例
服务器·开发语言·c++
favour_you___1 天前
epoll惊群问题与解决
服务器·网络·tcp/ip·epoll