導讀:當 Linux 系統連接到 SAN(存儲區域網路)后,你需要重新掃描 iSCSI 服務以發現新的 LUN。
本文字數:3394,閱讀時長大約: 4分鐘
https:http://linux.cn/article-12820-1.html
作者:Magesh Maruthamuthu
譯者:geekpi
當 Linux 系統連接到 SAN(存儲區域網路)后,你需要重新掃描 iSCSI 服務以發現新的 LUN。
要做到這一點,你必須向存儲團隊提供 Linux 主機的 WWN 號和所需的 LUN 大小,
這篇文章將幫助你。
當存儲團隊將 LUN 與給定的 Linux 主機進行了映射,他們將為你提供新的 LUN 詳細資訊。
LUN 在存儲術語中被稱為 LUN 的串行十六進制。
你需要掃描 SCSI 主機來尋找存儲團隊分配的新 LUN,
這可以通過兩種方式進行,掃描每個 scsi 主機設備或運行 rescan-scsi-bus.sh
腳本來檢測新磁盤,
掃描后可以在 /dev/disk/by-id
目錄下找到它們。
# ll /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root 10 Jul 9 17:52 scsi-60a98000486e542d4f5a2f47694d684b -> ../../sdah
lrwxrwxrwx 1 root root 9 Jul 9 17:52 scsi-60a98000486e542d4f5a2f47694d684c -> ../../sdw
.
.
lrwxrwxrwx 1 root root 10 Jul 9 17:52 scsi-60a98000486e542d4f5a2f47694d684d -> ../../sdjk
lrwxrwxrwx 1 root root 10 Jul 9 17:52 scsi-60a98000486e542d4f5a2f47694d684e -> ../../sdaa
lrwxrwxrwx 1 root root 9 Jul 9 17:52 scsi-60a98000486e542d4f5a2f47694d684f -> ../../sdh
另外,如果你已經用 multipath
配置了它們,那么可以用 multipath
命令找到,
`multipath 主要是配置到 Oracle 資料庫服務器中,以提高性能,
# multipath -ll
60a98000486e542d4f5a2f47694d684b dm-37 NETAPP,LUN C-Mode
size=512G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 1:0:4:18 sdoe 128:416 active ready running
| |- 0:0:4:18 sdpq 131:256 active ready running
| |- 0:0:5:18 sdsr 135:496 active ready running
| `- 1:0:5:18 sdsq 135:480 active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
|- 1:0:1:18 sdfw 131:32 active ready running
|- 1:0:0:18 sdci 69:96 active ready running
|- 0:0:1:18 sdbz 68:208 active ready running
|- 0:0:0:18 sds 65:32 active ready running
|- 1:0:3:18 sdmd 69:336 active ready running
|- 1:0:2:18 sdjj 8:464 active ready running
|- 0:0:3:34 sdjt 65:368 active ready running
`- 0:0:2:34 sdgi 131:224 active ready running
這個過程適用于基于 Red Hat 6.x、7.x 和 8.x(RHEL – Red Hat Enterprise Linux)的系統,如 CentOS 和 Oracle Linux,
方法 1:如何使用 /sys 類文件在 Linux 上掃描新的 LUN 和 SCSI 磁盤
sysfs 文件系統是一個偽文件系統,它為內核數據結構提供了一個接口。
sysfs 下的文件提供了關于設備、內核模塊、文件系統和其他內核組件的資訊,
sysfs 文件系統通常被掛載在 /sys
。通常,它是由系統自動掛載的。
你可以使用 echo
命令來掃描每個 SCSI 主機設備,如下所示:
# echo "- - -" > /sys/class/scsi_host/host[n]/scan
當你運行上面的重新掃描所有的命令時,三個破折號(- – -
)指的是通配符選項。這些值如下:
# echo "c t l" > /sys/class/scsi_host/host[n]/scan
這里:
c
:HBA 上的通道
t
:SCSI 目標 ID
l
:LUN ID
n
:HBA 編號
運行下面的命令來查找系統中所有的主機總線編號:
# ls /sys/class/scsi_host
host0 host1 host2
得到主機總線編號后,運行以下命令來發現新的磁盤:
# echo "- - -" > /sys/class/scsi_host/host0/scan
# echo "- - -" > /sys/class/scsi_host/host1/scan
# echo "- - -" > /sys/class/scsi_host/host2/scan
另外,還可以用 for
循環用一條命令進行掃描,
# for host in ls /sys/class/scsi_host/;do echo "- - -" >/sys/class/scsi_host/${host}/scan; done
你可以使用文章開頭提到的 來檢查它們,
# ls /dev/disk/by-id | grep -i "serial-hex of LUN"
方法 2:如何使用 腳本在 Linux 上掃描新的 LUN 和 SCSI 磁盤
確保你已經安裝了 sg3_utils
包來使用這個腳本,否則,運行以下命令來安裝它,
對于 RHEL/CentOS 6/7 系統,使用 安裝 sg3_utils
,
# yum install -y sg3_utils
對于 RHEL/CentOS 8 和 Fedora 系統,使用 安裝 sg3_utils。
# dnf install -y sg3_utils
現在你可以使用 rescan-scsi-bus.sh
腳本重新掃描 LUN,
# ./rescan-scsi-bus.sh
via:
作者: 選題: 譯者: 校對:
本文由 原創編譯, 榮譽推出