如何在 Linux 中映射 LUN、磁盘、LVM 和文件系统
在某些情况下，你需要映射存储 LUN（逻辑单元号）、块设备、LVM（LV 和 VG 名称）和文件系统（FS）信息以进行文件系统扩展或灾难恢复（DR）操作。
磁盘 LUN
在某些情况下，你需要映射存储 LUN（逻辑单元号）、块设备、LVM（LV 和 VG 名称）和文件系统（FS）信息以进行文件系统扩展或灾难恢复（DR）操作。
![](/data/attachment/album/202309/05/150634a78yslwka2lilnvr.jpg)


在某些情况下，你需要映射存储 LUN（逻辑单元号）、块设备、LVM（LV 和 VG 名称）和文件系统（FS）信息以进行文件系统扩展或灾难恢复（DR）操作。


这是大多数 Linux 管理员的例行活动，我们通常使用一些脚本来显示针对 SAN LUN 的块设备映射，然后我们将手动添加 LVM 和文件系统信息来完成操作。


今后，你无需手动干预此活动，因为这些信息可以通过 Shell 脚本进行映射，如下所示。


参考以下类似文章：


* [如何在 Linux 中查找 SAN 磁盘 LUN id](https://www.2daygeek.com/find-san-disk-lun-id-linux/)
* [如何在 Linux 中将 ASM 磁盘映射到物理磁盘](https://www.2daygeek.com/shell-script-map-oracle-asm-disks-physical-disk-lun-in-linux/)
* [如何在 Linux 中映射 SAN LUN、磁盘和文件系统](https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-linux/)


### 在 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

```

![](/data/attachment/album/202309/05/150709qi0b02554v50p34k.jpg)


**注意：** 在上面的输出中，设备 `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](https://www.2daygeek.com/author/rasool/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

