TranslateProject/published/202309/20230816 How to map LUN, Disk, LVM and FileSystem in Linux.md
2023-10-02 11:01:21 +08:00

103 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[#]: subject: "How to map LUN, Disk, LVM and FileSystem in Linux"
[#]: via: "https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-lvm-info-linux/"
[#]: author: "Rasool Cool https://www.2daygeek.com/author/rasool/"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-16160-1.html"
如何在 Linux 中映射 LUN、磁盘、LVM 和文件系统
======
![][0]
在某些情况下,你需要映射存储 LUN逻辑单元号、块设备、LVMLV 和 VG 名称和文件系统FS信息以进行文件系统扩展或灾难恢复DR操作。
这是大多数 Linux 管理员的例行活动,我们通常使用一些脚本来显示针对 SAN LUN 的块设备映射,然后我们将手动添加 LVM 和文件系统信息来完成操作。
今后,你无需手动干预此活动,因为这些信息可以通过 Shell 脚本进行映射,如下所示。
参考以下类似文章:
* [如何在 Linux 中查找 SAN 磁盘 LUN id][1]
* [如何在 Linux 中将 ASM 磁盘映射到物理磁盘][2]
* [如何在 Linux 中映射 SAN LUN、磁盘和文件系统][3]
### 在 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
```
![][4]
**注意:** 在上面的输出中,设备 `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][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.2daygeek.com/author/rasool/
[b]: https://github.com/lujun9972
[1]: https://www.2daygeek.com/find-san-disk-lun-id-linux/
[2]: https://www.2daygeek.com/shell-script-map-oracle-asm-disks-physical-disk-lun-in-linux/
[3]: https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-linux/
[4]: https://www.2daygeek.com/wp-content/uploads/2023/06/map-san-lun-physical-disk-filesystem-lvm-info-linux-1024x155.jpg
[0]: https://img.linux.net.cn/data/attachment/album/202309/05/150634a78yslwka2lilnvr.jpg