Linux系统如何查看LUN ID?

在Linux系统中,LUN(Logical Unit Number,逻辑单元号)是存储区域网络(SAN)或附加存储设备中逻辑单元的唯一标识符,用于区分同一存储控制器下的不同存储设备,准确查看LUN ID对于存储管理、多路径配置、故障排查等操作至关重要,本文将详细介绍Linux环境下查看LUN ID的多种方法,涵盖常用命令、系统文件及厂商工具,并对比不同场景下的适用性。

linux 如何查看lun id

通过lsscsi命令查看LUN ID

lsscsi是一个轻量级命令行工具,用于列出系统中的SCSI设备(包括SAS、SATA、SAN等),并以易读的格式显示设备信息,其中直接包含LUN ID。

安装lsscsi

若系统中未预装lsscsi,可通过包管理器安装:

  • 基于Red Hat的系统(如CentOS、RHEL):
    yum install lsscsi
  • 基于Debian的系统(如Ubuntu):
    apt install lsscsi

基本使用

直接执行lsscsi命令,默认按主机、通道、目标ID、LUN ID的顺序列出设备,输出格式为:

[主机号:通道号:目标ID:LUN ID] 设备类型 供应商 设备名  
lsscsi

输出示例:

[0:0:0:0]    disk    VMware,  VMware Virtual S    /dev/sda  
[1:0:0:0]    disk    LSILOGIC, LSI MegaRAID 8    /dev/sdb  
[2:0:1:0]    disk    DELL    PERC 8/HBA Adapter    /dev/sdc  

[0:0:0:0]表示主机0、通道0、目标ID0、LUN ID0,最后一个数字即为LUN ID。

高级选项

  • -g:显示设备标识符(如WWN),同时包含LUN信息:
    lsscsi -g

    输出示例:

    [0:0:0:0] /dev/sda TCG_IBM__3PARStorage_C0F1000000000000  
    [1:0:0:0] /dev/sdm LSILOGIC_312f444400194e007e7d4a4d53414900  
  • -s:以简短格式输出,仅显示设备路径和LUN信息:
    lsscsi -s

    输出示例:

    /dev/sda: [0:0:0:0]  
    /dev/sdm: [1:0:0:0]  

通过/sys文件系统查看LUN ID

Linux内核将SCSI设备信息暴露在/sys文件系统中,通过读取特定文件可直接获取LUN ID,无需额外安装工具。

查看SCSI设备目录

/sys/class/scsi_device/目录下以hostX:channelY:idZ:lunW格式命名的子目录,对应每个SCSI设备,其中W即为LUN ID:

ls /sys/class/scsi_device/

输出示例:

0:0:0:0  1:0:0:0  2:0:1:0

关联块设备与LUN ID

对于块设备(如/dev/sda),可通过其设备目录下的链接获取LUN信息:

linux 如何查看lun id

ls -l /sys/block/sda/device/scsi_device

输出示例:

lrwxrwxrwx 1 root root 0 10月 1 10:00 /sys/block/sda/device/scsi_device -> ../../0:0:0:0

链接路径中的0:0:0:0即表示主机0、通道0、目标ID0、LUN ID0。

提取LUN ID脚本

若需批量提取LUN ID,可通过以下脚本遍历/sys/class/scsi_device/目录:

for device in /sys/class/scsi_device/*; do
    lun_id=$(basename $device | cut -d: -f4)
    block_path=$(readlink $device/device/block)
    device_name="/dev/${block_path##*/}"
    echo "设备: $device_name, LUN ID: $lun_id"
done

输出示例:

设备: /dev/sda, LUN ID: 0  
设备: /dev/sdm, LUN ID: 0  
设备: /dev/sdc, LUN ID: 1  

多路径环境下的LUN ID查看

在多路径存储环境中,同一LUN可能通过多条物理路径呈现,需使用多路径工具(如multipathdevice-mapper)查看逻辑LUN ID。

安装multipath工具

  • 基于Red Hat的系统:
    yum install device-mapper-multipath
  • 基于Debian的系统:
    apt install multipath-tools

使用multipath命令

执行multipath -l列出多路径设备,输出中包含WWID(全球唯一标识符)和路径信息,部分场景下可直接关联LUN ID:

multipath -l

输出示例:

360050768028108b7000123456789abcd dm-0 DELL,Virtual Disk
size=100G features='1 queue_if_no_path' hwhandler='1 alua'
`-+- policy='service-time 0' prio=50 status=active
  |- 2:0:1:0 sdc 8:32 active ready running
  `- 3:0:1:0 sdd 8:48 active ready running

路径2:0:1:03:0:1:0中的1即为LUN ID。

查看多路径设备属性

通过multipathd show paths命令可获取更详细的路径信息,包括LUN ID:

multipathd show paths format "%d %n %L"

输出示例:

sdc 2:0:1:0 1  
sdd 3:0:1:0 1  

通过存储厂商工具查看LUN ID

不同存储厂商(如Dell、HP、EMC、NetApp等)提供专用管理工具,可更精准地获取LUN ID及存储元数据。

linux 如何查看lun id

Dell PowerStore/EqualLogic

使用omreport命令(需安装OpenManage Essentials):

omreport storage pdisk controller=0

输出中包含“LUN ID”字段,

ID: 0  
Name: Disk 0:0:0  
Status: Ok  
LUN ID: 0  

HP 3PAR StoreServ

使用ssacli命令(需安装HP Smart Storage Administrator CLI):

ssacli controller slot=0 pdisk show

输出示例:

Port  Box  Bay  Size  Type  LUN ID  
0I1   1    1    960GB  SSD   0  
0I2   1    2    960GB  SSD   1  

EMC VNX/VNXe

使用naviseccli命令(需安装EMC Unisphere CLI):

naviseccli -h <storage_ip> storagegroup -list -lunid

输出中列出存储组关联的LUN ID。

不同方法对比与适用场景

为便于选择合适的方法,以下通过表格对比各工具的特点:

方法 适用场景 优点 缺点 示例命令
lsscsi 通用SCSI设备查看 简单直观,信息全面 需要安装工具 lsscsi -g
/sys文件系统 底层设备信息查询 无需额外工具,信息准确 需要熟悉文件系统结构 ls /sys/class/scsi_device/
multipath工具 多路径环境 支持多路径聚合信息 仅适用于多路径配置 multipath -l
厂商工具 特定存储设备 功能强大,厂商定制信息 依赖厂商工具,兼容性差 omreport storage pdisk

相关问答FAQs

Q1: 为什么使用不同命令查看LUN ID时,结果可能不一致?
A1: 这通常是由查询角度不同导致的。lsscsi显示的是SCSI总线层面的原始LUN ID(物理路径标识),而multipath在多路径环境下可能显示逻辑映射后的LUN ID(由存储阵列分配的逻辑标识),厂商工具可能使用自定义的LUN命名规则(如基于LUN组或WWN映射),导致与系统工具结果不一致,需结合实际场景判断:若需物理路径信息,使用lsscsi/sys;若需逻辑设备信息,使用multipath或厂商工具。

Q2: 如何在Linux中永久记录LUN ID与设备名的对应关系?
A2: 可通过编写udev规则实现,创建/etc/udev/rules.d/99-lun-id.rules文件,添加以下内容(以lsscsi输出的LUN ID为基准):

ACTION=="add", KERNEL=="sd*", SUBSYSTEM=="block", ENV{ID_SERIAL}=="<WWID>", SYMLINK+="disk/by-lun/%E{LUN_ID}"

<WWID>需替换为设备的WWN(可通过lsscsi -g获取),%E{LUN_ID}为udev环境变量(需通过scsi_id命令提取),规则生效后,设备可通过/dev/disk/by-lun/<LUN_ID>访问,实现LUN ID与设备名的永久绑定。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/15126.html

(0)
酷番叔酷番叔
上一篇 2025年8月23日 09:16
下一篇 2025年8月23日 09:28

相关推荐

  • Linux当前活动设备如何添加?

    在Linux系统中,”当前活动设备”通常指系统正在使用或已识别的硬件设备,如USB设备、声卡、网络接口、存储设备等,动态添加这些设备并使其成为”当前活动”状态,涉及设备识别、驱动加载、配置激活等多个环节,本文将详细讲解不同类型设备的添加方法,包括基础原理、操作步骤及常见场景处理,Linux设备管理基础:核心概念……

    2025年9月26日
    15000
  • Linux中如何解压.gz格式的压缩文件?

    在Linux系统中,gz文件是通过gzip压缩工具生成的压缩文件格式,广泛用于文件压缩和传输,解压gz文件是日常运维和开发中的常见操作,掌握正确的方法能提高工作效率,本文将详细介绍Linux中解压gz文件的多种方式、常用选项及注意事项,基础解压命令:gunzipgunzip是Linux系统中专门用于解压gz文件……

    2025年9月23日
    15600
  • Linux服务器绑定域名的详细步骤是什么?如何配置DNS解析?

    在Linux服务器上绑定域名是搭建网站或服务的必要步骤,通过将域名指向服务器的公网IP,用户可通过域名访问服务器上的资源,以下是详细操作流程,包含环境准备、域名解析、服务器配置及测试等环节,环境准备服务器与域名:需拥有一台已安装Linux系统(如Ubuntu/CentOS)的服务器,且服务器具有公网IP;同时需……

    2025年10月1日
    15100
  • Linux查看进程有哪些高效方法?

    基础命令:ps(进程状态)最常用的进程查看工具,功能强大且预装在所有 Linux 发行版,常用组合:ps aux # 查看所有用户进程(BSD风格)ps -ef # 查看所有进程(标准UNIX风格)输出列解读:USER:进程所有者PID:进程ID(唯一标识)%CPU/%MEM:CPU/内存占用率VSZ:虚拟内存……

    2025年7月8日
    19300
  • 如何一键安装完整渗透测试工具包?

    如何在树莓派上使用 Kali Linux:完整指南Kali Linux 作为领先的渗透测试和安全审计操作系统,与树莓派的便携性结合后,可成为强大的网络安全工具,本指南将详细说明从安装到实际应用的完整流程,重点强调合法合规操作(仅限授权测试),为什么选择树莓派运行 Kali Linux?便携隐蔽:树莓派体积小、功……

    2025年6月18日
    18300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信