🐧 Как сканировать / обнаруживать новые LUN и SCSI-диски на Linux

by itisgood

Когда система Linux подключена к SAN (Storage Area Network), вам необходимо повторно просканировать службу iSCSI, чтобы обнаружить новые LUN.

Для этого вы должны предоставить группе хранения данных номер WWN хоста Linux и требуемый размер 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: Как найти новые LUN и SCSI-диски в Linux с помощью файла класса «/ sys»

Файловая система 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
  • 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, как упоминалось в начале статьи.

# ls /dev/disk/by-id | grep -i "serial-hex of LUN"

Метод 2: Как просканировать новые LUN и SCSI-диски в Linux с помощью скрипта

Убедитесь, что вы уже установили пакет «sg3_utils», чтобы использовать этот сценарий. В противном случае выполните следующую команду, чтобы установить его.

Для систем RHEL/CentOS 6/7 используйте команду yum для установки sg3_utils.

# yum install -y sg3_utils

Для систем RHEL / CentOS 8 и Fedora используйте команду dnf для установки sg3_utils.

# dnf install -y sg3_utils
Теперь вы можете повторно сканировать LUN с помощью скрипта rescan-scsi-bus.sh.
# ./rescan-scsi-bus.sh

 

You may also like

Leave a Comment