- Add or Detect New Hard Disk Online Without Rebooting
- How to detect new hard disk online without rebooting?
- How to Rescan newly added Disk on Linux?
- Как сканировать новые FC LUNS и SCSI диски в Linux?¶
- Сканирование FC-LUN в Linux¶
- Сканирование SCSI-дисков в Linux¶
- 🐧 Как сканировать / обнаруживать новые LUN и SCSI-диски на Linux
- Метод 1: Как найти новые LUN и SCSI-диски в Linux с помощью файла класса «/ sys»
- Метод 2: Как просканировать новые LUN и SCSI-диски в Linux с помощью скрипта
Add or Detect New Hard Disk Online Without Rebooting
As a system admin, We may come into a situation to Add a New Disk or Detect New Hard Disk Online to provide more space for the application installed.
If you are interested in learning, Request you to go through the below recommended tutorial.
How to detect new hard disk online without rebooting?
This post will help you with How to rescan or detect new hard disk online without rebooting the server.
It is possible to add or remove a SCSI device explicitly, or to re-scan an entire SCSI bus without rebooting a running Linux VM guest.
How to Rescan newly added Disk on Linux?
1. Ensure the required size is added newly online without shutting down or powered off in Hypervisors such as vmware esx, vmware workstation and Microsoft Hyper-V before carrying out the Virtual Disk increasing activity.
2. Login into the server with user root or any other user with root privilege.
3. Run the below command to list the detected disk as below screenshot shows..
The above screenshot shows as our linux machine has only single disk of 10GB (/dev/sda).
4. Run the below command to list the entire SCSI device buses,
[root@server1 ~]# ll /sys/class/scsi_host/host?/scan
—w——-. 1 root root 4096 May 11 16:03 /sys/class/scsi_host/host0/scan
—w——-. 1 root root 4096 May 11 15:58 /sys/class/scsi_host/host1/scan
—w——-. 1 root root 4096 May 11 15:58 /sys/class/scsi_host/host2/scan
Above command listed the output of number of SCSI device buses, we have to run each below command for each SCSI device buses.
[root@server1 ~]# echo «- — -» > /sys/class/scsi_host/host0/scan
[root@server1 ~]# echo «- — -» > /sys/class/scsi_host/host1/scan
[root@server1 ~]# echo «- — -» > /sys/class/scsi_host/host2/scan
Как сканировать новые FC LUNS и SCSI диски в Linux?¶
В статье рассмотрено сканирование новых FC LUNS и SCSI дисков в Linux без перезагрузки сервера. Система производит много работы в фоновом режиме, когда выполняются команды сканирования хранилища. Этот тип сканирования может быть распределительным, поскольку он может вызывать задержки во время тайм-аута операции ввода-вывода и неожиданное удаление устройств из ОС.
Сканирование FC-LUN в Linux¶
# fdisk -l 2>/dev/null | egrep '^Disk' | egrep -v 'dm-' | wc -l
# ls /sys/class/fc_host host0 host1
# echo "1" > /sys/class/fc_host/host0/issue_lip # echo "- - -" > /sys/class/scsi_host/host0/scan # echo "1" > /sys/class/fc_host/host1/issue_lip # echo "- - -" > /sys/class/scsi_host/host1/scan
Примечание Вам необходимо отслеживать «issue_lip» в /var/log/messages , чтобы определить, когда сканирование завершится. Эта операция является асинхронной.
# apt install sg3-utils # rescan-scsi-bus.sh
# fdisk -l 2>/dev/null | egrep '^Disk' | egrep -v 'dm-' | wc -l
Сканирование SCSI-дисков в Linux¶
# fdisk -l |egrep '^Disk' |egrep -v 'dm-' Disk /dev/sda: 21.5 GB, 21474836480 bytes
# ls /sys/class/scsi_host/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
# fdisk -l |egrep '^Disk' |egrep -v 'dm-' Disk /dev/sda: 21.5 GB, 21474836480 bytes Disk /dev/sdb: 1073 MB, 1073741824 bytes Disk /dev/sdc: 1073 MB, 1073741824 bytes
Для сканирования всей шины SCSI и обновления SCSI для отображения новых устройств можно также использовать скрипт /usr/bin/rescan-scsi-bus.sh .
Но в большинстве случаев скрипт не сможет сканировать новые диски, и необходимо использовать команду echo.
🐧 Как сканировать / обнаруживать новые LUN и SCSI-диски на Linux
Когда система 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/$/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.
Для систем RHEL / CentOS 8 и Fedora используйте команду dnf для установки sg3_utils.