在Linux系统中,查看LUN(Logical Unit Number,逻辑单元号)是存储管理中的常见操作,主要用于识别和管理连接到服务器的存储设备,LUN是存储网络中逻辑设备的标识符,通常通过SCSI(Small Computer System Interface)或光纤通道(Fibre Channel)协议与服务器通信,本文将详细介绍在Linux系统中查看LUN的多种方法,涵盖不同场景和工具,帮助用户高效获取存储设备信息。

使用lsscsi命令查看LUN基本信息
lsscsi是一个轻量级命令行工具,用于列出系统中所有SCSI设备,包括LUN信息,该工具以列表形式展示设备的通道号(Channel)、目标ID(Target ID)、LUN号以及设备型号和厂商,适合快速查看存储设备的连接状态。
安装与使用
在基于Debian/Ubuntu的系统上,可通过以下命令安装:
sudo apt-get install lsscsi
在基于RHEL/CentOS的系统上,使用:
sudo yum install lsscsi
安装后,直接执行lsscsi即可列出所有SCSI设备:
lsscsi
输出示例中,每行包含[设备类型] [通道号:目标ID:LUN号] [设备路径] [厂商/型号],
[0:0:0:0] disk /dev/sda ATA Kingston SA400S37 [1:0:1:0] disk /dev/sdb LSI Logic MegaRAID SAS [2:0:0:1] disk /dev/sdc HGST HMS5C4040BLE640
[2:0:0:1]表示通道号为2,目标ID为0,LUN号为1的磁盘设备,若需过滤特定LUN,可结合grep命令,例如查看所有LUN为0的设备:
lsscsi | grep ":0 "
通过/proc/scsi/scsi文件查看原始LUN信息
Linux内核在/proc/scsi/scsi文件中存储了SCSI设备的原始信息,包括LUN、设备类型、厂商和型号等,该方法无需安装额外工具,适合调试或查看底层细节。
查看方法
直接使用cat或less命令查看文件内容:
cat /proc/scsi/scsi
输出示例如下:
Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: Kingston SA400S37 Rev: S4M0 Type: Direct-Access ANSI SCSI revision: 06 Host: scsi1 Channel: 00 Id: 01 Lun: 00 Vendor: LSI Model: MegaRAID SAS Rev: 05.24.00.00 Type: RAID ANSI SCSI revision: 06 Host: scsi2 Channel: 00 Id: 00 Lun: 01 Vendor: HGST Model: HMS5C4040BLE640 Rev: CO4O Type: Direct-Access ANSI SCSI revision: 06
Lun: 00或Lun: 01直接标识了设备的逻辑单元号,若需提取LUN信息,可结合awk或cut命令,例如提取所有LUN号:
cat /proc/scsi/scsi | grep "Lun:" | awk '{print $3}'
使用multipath工具查看多路径环境下的LUN
在存储多路径(Multipathing)环境中,单个LUN可能通过多条物理路径连接到服务器。multipath工具用于管理多路径设备,其输出可清晰展示LUN的路径信息和WWID(World Wide Identifier)。

安装与使用
基于Debian/Ubuntu的系统安装:
sudo apt-get install multipath-tools
基于RHEL/CentOS的系统安装:
sudo yum install device-mapper-multipath
安装后,执行multipath -l列出所有多路径设备:
multipath -l
输出示例:
3600507680281080b70001200000b0000 dm-0 LSI,MR9266-8i size=8T features='1 queue_if_no_path' hwhandler='1 alua' `-+- policy='service-time 0' prio=50 status=active/optimized |- 2:0:0:1 sdc 8:32 active ready running `- 3:0:0:1 sdd 8:48 active ready running
2:0:0:1和3:0:0:1分别表示两条物理路径的通道、目标ID和LUN号,若需查看多路径设备的详细映射关系,可使用multipath -v3命令增加输出级别。
通过sysfs文件系统查看LUN属性
Linux的sysfs文件系统挂载在/sys目录下,包含了内核和设备的详细信息,通过遍历/sys/class/scsi_device目录,可获取每个SCSI设备的LUN属性。
查看方法
列出所有SCSI设备目录:
ls /sys/class/scsi_device
输出类似0:0:0:0、1:0:1:0等目录名称,格式为通道号:目标ID:LUN号,进入特定设备目录后,可查看其属性,
cat /sys/class/scsi_device/2:0:0:1/device/scsi_disk
或直接提取LUN号:
for device in /sys/class/scsi_device/*; do lun=$(basename $device | cut -d: -f3) echo "Device: $(basename $device), LUN: $lun" done
该方法适合脚本化处理,可批量获取LUN信息。
使用scsi_id命令获取LUN对应设备的唯一标识
在自动化管理中,可能需要通过LUN获取设备的唯一标识(如WWID)。scsi_id工具可基于SCSI设备的 Inquiry数据生成唯一ID,常用于多路径配置。

安装与使用
基于Debian/Ubuntu的系统安装:
sudo apt-get install scsi_id
基于RHEL/CentOS的系统安装(通常包含在sg3_utils包中):
sudo yum install sg3_utils
执行以下命令获取指定设备的WWID:
scsi_id -g -u -d /dev/sdb
-d /dev/sdb指定设备路径,-g表示使用SCSI-3格式,-u输出唯一ID,输出示例:3600507680281080b70001200000b0000,该ID与LUN一一对应,可用于标识存储设备。
结合udev规则实现LUN自动识别
通过udev规则,可根据LUN信息自动触发设备挂载、标签设置等操作,为特定LUN的设备创建符号链接:
- 创建
/etc/udev/rules.d/99-lun.rules文件,添加规则:KERNEL=="sd*", SUBSYSTEM=="block", ENV{SCSI_IDENT_LUN}=="1", SYMLINK+="storage-lun1" - 重载
udev规则并触发设备事件:sudo udevadm control --reload-rules sudo udevadm trigger
上述规则中,
ENV{SCSI_IDENT_LUN}=="1"表示LUN号为1的设备,将被创建为/dev/storage-lun1符号链接。
在Linux系统中查看LUN的方法多样,可根据需求选择合适的工具:
- 快速查看:使用
lsscsi或/proc/scsi/scsi,适合日常运维; - 多路径环境:通过
multipath工具管理路径和LUN映射; - 底层调试:利用
sysfs文件系统获取设备属性; - 自动化场景:结合
scsi_id和udev规则实现设备标识与自动处理。
掌握这些方法,可帮助用户高效管理存储设备,确保存储系统的稳定运行。



















