我们过去写过几篇文章来查找映射到块设备/磁盘的 LUN ID，但是当你管理 VCS 集群时，在某些情况下你可能需要映射 LUN 用于 VxFS 文件系统扩展的 VxVM（Veritas 卷管理器）磁盘的 ID。这篇短文介绍了如何在 Linux 中查找与 VxVM 磁盘关联的 LUN 号。推荐阅读：如何在 Linux 中查找 SAN 磁盘 LUN id如何在 Linux 中将 ASM 磁盘映射到物理磁盘如何在 Linux 中映射 SAN LUN、磁盘和文件系统如何在 Linux 中映射 LUN、磁盘、LVM 和文件系统在 Linux 中查找映射到 VxVM 磁盘的 LUN 号的 Shell 脚本这个方便的 Shell 脚本可帮助你识别哪个存储 LUN 与 Linux 上的哪个 VxVM 磁盘关联。这个脚本是如何工作的该脚本按照以下步骤收集和打印这些信息。它收集系统上活动 “磁盘组”（DG）的列表查找与相应 DG 关联的 “设备名称”。接下来，它列出了与各个设备映射的 “块设备”。最后收集与这些块设备关联的 LUN ID 并将它们全部打印在一起，如 DG 名称、块设备名称和 LUN 编号。vi VxVM_disk_mapping_with_LUN_number.sh #!/bin/bash ########################################################### # Purpose: Mapping LUN Number to VxVM Disk in Linux # Author: 2DayGeek # Version: v1.0 ########################################################### echo "DG_Name Block_Device LUN_Number" echo "-------------------------------------------------------------------" for dg_name in `vxdg list | awk '{print $1}' | grep -v NAME` do for d_name in `vxdisk -e list | grep -i $dg_name | awk '{print $1}' do for b_device in `vxdisk list $d_name | grep -w state=enabled | awk '{print $1}' | head -1` do echo "$dg_name --> $b_device --> $(lsscsi --scsi | grep $b_device | awk '{print $NF}'" done done done | column -t 设置 Shell 脚本文件的可执行权限。chmod +x VxVM_disk_mapping_with_LUN_number.sh 最后执行脚本查看结果。sh VxVM_disk_mapping_with_LUN_number.sh 你的输出将类似于此。但是，DG 名称、块设备和 LUN 会与此不同。如果你想即时运行上述脚本，请使用下面的单行脚本。# for dg_name in `vxdg list | awk '{print $1}' | grep -v NAME`; do for d_name in `vxdisk -e list | grep -i $dg_name | awk '{print $1}'; do for b_device in `vxdisk list $d_name | grep -w state=enabled | awk '{print $1}' | head -1`; do echo "$dg_name --> $b_device --> $(lsscsi --scsi | grep $b_device | awk '{print $NF}'"; done; done; done | column -t apachedg --> sde --> 3600d0230000000000e11404639558823 apachedg --> sdf --> 3600d0230000000000e11404639558824 apachedg --> sdg --> 3600d0230000000000e11404639558825 sftpdg --> sdh --> 3600d0230000000000e11404639558826 sftpdg --> sdi --> 3600d0230000000000e11404639558827 总结在本教程中，我们向你展示了如何在 Linux 中查找与 VxVM 磁盘映射的 LUN 号。如果你有任何问题或反馈，请随时在下面发表评论。（题图：MJ/251ada36-41d9-4a1b-b857-a1def52f27f2）via: https://www.2daygeek.com/find-san-lun-mapping-with-vxvm-disk-veritas-linux/作者：Prakash Subramanian 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
在某些情况下，你需要映射存储 LUN（逻辑单元号）、块设备、LVM（LV 和 VG 名称）和文件系统（FS）信息以进行文件系统扩展或灾难恢复（DR）操作。这是大多数 Linux 管理员的例行活动，我们通常使用一些脚本来显示针对 SAN LUN 的块设备映射，然后我们将手动添加 LVM 和文件系统信息来完成操作。今后，你无需手动干预此活动，因为这些信息可以通过 Shell 脚本进行映射，如下所示。参考以下类似文章：如何在 Linux 中查找 SAN 磁盘 LUN id如何在 Linux 中将 ASM 磁盘映射到物理磁盘如何在 Linux 中映射 SAN LUN、磁盘和文件系统在 Linux 中映射 LUN、磁盘、LVM 和文件系统的 Shell 脚本这个 Shell 脚本可帮助你识别哪些 SAN 磁盘映射到 Linux 上的哪些块设备、LV、VG 和文件系统。请注意： 我们排除了 sda 磁盘，因为这是操作系统（OS）盘，它有多个分区。vi block_device_mapping_with_LUN_FS_LVM.sh #!/bin/bash for bdevice in `lsblk | grep disk | awk '{print $1}' | grep -v 'sda'`; do for mpoint in `lsblk /dev/$bdevice | grep lvm | awk '{print $NF}'`; do LVM_INFO=`lvs -o +devices | grep -i $bdevice | awk '{print $1,$2}'` LUN_ID=`lsscsi --scsi | grep $bdevice | awk '{print $NF}'` echo "$bdevice --> $mpoint --> $LVM_INFO --> $LUN_ID" done done 设置 block_device_mapping_with_LUN_FS_LVM.sh 文件的可执行权限。chmod +x block_device_mapping_with_LUN_FS_LVM.sh 最后运行脚本查看结果。sh block_device_mapping_with_LUN_FS_LVM.sh 注意： 在上面的输出中，设备 sdb 不会显示任何 LUN 信息，因为它是从 VMWare 端添加的虚拟磁盘，没有任何 LUN。其他 3 块磁盘是从存储映射的，这就是为什么可以看到 LUN 信息。如果你想即时运行上述脚本，请使用下面的一行脚本。for bdevice in `lsblk | grep disk | awk '{print $1}' | grep -v 'sda'`; do for mpoint in `lsblk /dev/$bdevice | grep lvm | awk '{print $NF}'`; do LVM_INFO=`lvs -o +devices | grep -i $bdevice | awk '{print $1,$2}'`; LUN_ID=`lsscsi --scsi | grep $bdevice | awk '{print $NF}'`; echo "$bdevice --> $mpoint --> $LVM_INFO --> $LUN_ID"; done; done sdb --> [SWAP] --> swap2lv swapvg --> - sdc --> /appserver --> appserver_lv appserver_vg --> 360000670000415600477312020662021 sdd --> /data --> data_lv data_vg --> 360000670000415600477312020662022 sde --> /backup --> backup_lv backup_vg --> 360000670000415600477312020662023 总结在本教程中，我们向你展示了如何在 Linux 上检查 SAN 提供的 LUN 以及底层操作系统磁盘、LV 名称、VG 名称和关联的文件系统。如果你有任何问题或反馈，请随时在下面发表评论。（题图：MJ/f5da2270-4e5a-4b2c-8998-fae974214384）via: https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-lvm-info-linux/作者：Rasool Cool 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
对于某些需求，你可能需要找到映射到逻辑单元号（LUN）和文件系统（FS）的块设备，以进行文件系统扩展或灾难恢复（DR）活动。当你管理更大的基础设施时，类似的活动可能会经常发生。假设有超过 1000 台服务器托管各种应用。参考以下类似文章：如何在 Linux 中查找 SAN 磁盘 LUN如何在 Linux 中将 ASM 磁盘映射到物理磁盘在本文中，我们将向你展示如何在 Linux 中映射物理磁盘、存储 LUN 和文件系统（FS）。将物理磁盘映射到 Linux 中的存储 LUN 和文件系统的 Shell 脚本这个小 shell 脚本可帮助你识别哪些 SAN 磁盘映射到 Linux 上的哪些块设备和文件系统。vi block_device_mapping_with_LUN_FS.sh #!/bin/bash for lunmap in `lsblk | grep disk | grep ^s | awk '{print $1}'`; do for mpoint in `lsblk /dev/$lunmpa | grep lvm | awk '{print $NF}'`; do echo "$lunmap --> $mpoint --> $(smartctl -a /dev/$lunmap | grep "Logical Unit id" | awk -F":" '{print $2}')" done done 设置 block_device_mapping_with_LUN_FS.sh 文件的可执行权限。chmod +x block_device_mapping_with_LUN_FS.sh 最后运行脚本查看结果。sh block_device_mapping_with_LUN_FS.sh 注意： 在上面的输出中，设备 sda 不会显示任何 LUN 信息，因为它是从 VMWare 端添加的虚拟磁盘，没有任何 LUN。其他 3 个磁盘是从存储映射的，这就是我们能够看到 LUN 信息的原因。如果你想即时运行该脚本，请使用下面的一行脚本。for lunmap in `lsblk | grep disk | grep ^s | awk '{print $1}'`; do for mpoint in `lsblk /dev/$lunmpa | grep lvm | awk '{print $NF}'`; do echo "$lunmap --> $mpoint --> $(smartctl -a /dev/$lunmap | grep "Logical Unit id" | awk -F":" '{print $2}')" done done sda --> / sda --> /usr sda --> /opt sda --> /tmp sda --> /var sda --> /home sdb --> /data --> 0x3600d0230000000000e1140463955737c sdc --> /app --> 0x3600d0230000000000e114046395577cd sdd --> /backup --> 0x3600d0230000000000e11404639558cc5 总结在本教程中，我们向你展示了如何在 Linux 上检查 SAN 提供的 LUN 以及底层操作系统磁盘和关联的文件系统。如果你有任何问题或反馈，请随时在下面发表评论。（题图：MJ/09a00c62-f6a1-48b0-bf43-dc1bcb3c7861）via: https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-linux/作者：Rasool Cool 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出