如何在 Linux 中映射 SAN LUN、磁盤和文件系統
對于某些需求,你可能需要找到映射到邏輯單元號(LUN)和文件系統(FS)的塊設備,以進行文件系統擴展或災難恢復(DR)活動。
當你管理更大的基礎設施時,類似的活動可能會經常發生。假設有超過 1000 臺服務器托管各種應用。
參考以下類似文章:
在本文中,我們將向你展示如何在 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 以及底層操作系統磁盤和關聯的文件系統。