- 🐧 Как сканировать / обнаруживать новые LUN и SCSI-диски на Linux
- Метод 1: Как найти новые LUN и SCSI-диски в Linux с помощью файла класса «/ sys»
- Метод 2: Как просканировать новые LUN и SCSI-диски в Linux с помощью скрипта
- Как заставить виртуальную машину Centos перечитать увеличенный размер диска БЕЗ перезагрузки
- Linux SCSI/SATA bus rescan
- Rescan SCSI bus on Linux System
- Rescan SCSI bus on Linux
- When Adding a New Disk
- When Increasing Existing Disk Size
- How to scan new FC LUNS and SCSI disks in Linux ?
- Scanning FC-LUN’s in Redhat Linux
- Scanning SCSI DISKS in Redhat Linux
🐧 Как сканировать / обнаруживать новые 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».
Кроме того, вы можете найти их с помощью команды Multipath, если они уже настроены с Multipath.
Multipath в основном настраивается на сервере базы данных Oracle для повышения производительности.
Метод 1: Как найти новые LUN и SCSI-диски в Linux с помощью файла класса «/ sys»
Файловая система sysfs – это псевдофайловая система, которая предоставляет интерфейс для структур данных ядра.
Файлы в sysfs предоставляют информацию об устройствах, модулях ядра, файловых системах и других компонентах ядра.
Файловая система sysfs обычно монтируется в «/sys».
Обычно она устанавливается системой автоматически.
Вы можете использовать команду echo для сканирования каждого хост-устройства scsi, как показано ниже.
- c – Канал на HBA
- t – целевой идентификатор SCSI
- l – LUN ID
- n – номер HBA
Выполните приведенную ниже команду, чтобы найти все номера хост-шины в вашей системе.
Как только вы получите номер хост-шины, выполните следующую команду, чтобы обнаружить новые диски.
Кроме того, их можно просканировать с помощью «цикла for» с помощью одной команды.
Вы можете проверить их с помощью команды ls, как упоминалось в начале статьи.
Метод 2: Как просканировать новые LUN и SCSI-диски в Linux с помощью скрипта
Убедитесь, что вы уже установили пакет «sg3_utils», чтобы использовать этот сценарий. В противном случае выполните следующую команду, чтобы установить его.
Для систем RHEL/CentOS 6/7 используйте команду yum для установки sg3_utils.
Для систем RHEL / CentOS 8 и Fedora используйте команду dnf для установки sg3_utils.
Источник
Как заставить виртуальную машину Centos перечитать увеличенный размер диска БЕЗ перезагрузки
У меня есть CentOS 5 VM, и я только что увеличил диск виртуальной машины с 10G до 20G, но я не могу получить fdisk, чтобы увидеть новый размер диска без перезагрузки.
Я пытался echo 1 > /sys/block/sda/device/rescan , кажется, это указывает на то, что он может видеть новый размер, но когда я захожу в fdisk, чтобы создать новый раздел, он все равно видит диск как 10G.
Вам необходимо выполнить команду rescan для вашей шины SCSI.
В VMware контроллер SCSI может быть найден в каком-то необычном месте. Сначала найдите это:
Для меня это вернулось
Затем просто выполните команду повторного сканирования
Это должно помочь. 🙂
Мне пришлось столкнуться с аналогичной проблемой на сервере SLES 11. LVM был собран с необработанными дисками, работающими на VMWare ESXi
Через некоторое время мне нужно было увеличить размер LVM, но я не добавил дополнительный диск, а затем pvcreate + vgextend, как я делал ранее, но я решил увеличить размер существующего диска (в данном случае / dev / sdd) ). После увеличения VMWare я выполнил
Но pvdisplay все еще показывал «старый» размер диска. Надо было сделать
чтобы ядро узнало новый размер диска / dev / sdd
после первого выполнения echo 1 > /sys/block/sda/device/rescan
pvresize /dev/sda сделал трюк для меня
Если таблица разделов используется напрямую (например, вы смонтировали файловую систему, используя базовый раздел), ядро будет продолжать использовать старую таблицу разделов, пока это не перестанет действовать. Кто-то однажды сказал мне, что если вы используете LVM, вы можете обойти это .
Обновление: Centos 6 — невозможно обновить таблицу разделов активного диска в режиме онлайн, Centos 7 — возможно расширить последний раздел с помощью growpart или создать новый раздел с помощью fdisk и сделать его видимым без перезагрузки с помощью partprobe . Вероятно, то же самое на Ubuntu / Debian. — В какой-то момент после 2.6 ядро начало поддерживать онлайн-перечитывание таблицы разделов активного диска. Так как вопрос к Centos 5, я бы сказал, нет.
Если вы используете разделы, то вы должны перезагрузиться, чтобы использовать новое пространство. Я не нашел способ избежать этого. Если кто-то дал мне знать.
Однако перезагрузку следует выполнять после расширения последнего раздела на диске или добавления нового раздела. Нет смысла перезагружаться раньше.
Первое, что вы должны заметить после повторного сканирования, — это увеличение размера диска в fdisk и в lsblk. Если вы этого не видите, вы должны поиграть с этими командами echo 1 и echo — — -.
После того, как вы увидите больше места, вы можете расширить / добавить раздел, затем перезагрузиться, расширить vg, расширить lv и fs.
Если вы хотите избежать перезагрузки, вы должны назначить сырой диск sda / b / c группе томов, не разбивая его на sda1 / 2/3. Тогда нет необходимости в перезагрузке.
Создание разделов было необходимо некоторое время назад, когда linux не мог загрузиться с LVM, но теперь это возможно.
Если вы выполните команду lsblk, вы увидите разделы или lvms, в зависимости от того, используете ли вы разделы или lvm, у вас могут быть все части, если вы не используете lvm, или все lvms, если вы не используете разделы. Вот один пример:
Источник
Linux SCSI/SATA bus rescan
Подключив «по-горячему» еще один SATA винт, не обнаружил автоматического его подхвата системой, как это происходит когда подключаешь по USB. Переходник SATA-USB, как на зло, остался дома…
Машинка же была занята выполнением производственных задач и перегружать ее было бы очень и очень болезненно. Система — убунта 9.04, думаю что должно работать для всех 2.6.* ядер.
Linux ws10.dom 2.6.28-15-generic #49-Ubuntu SMP Tue Aug 18 18:40:08 UTC 2009 i686 GNU/Linux
В FreeBSD есть такая замечательная штука как atacontrol которой можно заставить реинициализироваться контроллер. В линуксе такой полезной утилиты не обнаружил…
Но порыскав на просторах инета нашел следующее:
#find /sys -name scan
/sys/devices/pci0000:00/0000:00:06.0/host4/scsi_host/host4/scan
/sys/devices/pci0000:00/0000:00:06.0/host5/scsi_host/host5/scan
/sys/devices/pci0000:00/0000:00:08.0/host0/scsi_host/host0/scan
/sys/devices/pci0000:00/0000:00:08.0/host1/scsi_host/host1/scan
/sys/devices/pci0000:00/0000:00:08.1/host2/scsi_host/host2/scan
/sys/devices/pci0000:00/0000:00:08.1/host3/scsi_host/host3/scan
смотрим что есть из подключенного
#dmesg | grep ata
[ 1.801457] ata1: SATA max UDMA/133 cmd 0xe400 ctl 0xe080 bmdma 0xd880 irq 15
[ 1.801459] ata2: SATA max UDMA/133 cmd 0xe000 ctl 0xdc00 bmdma 0xd888 irq 15
[ 2.268032] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 2.276290] ata1.00: ATA-7: Hitachi HDS721612PLA380, P23OABEA, max UDMA/133
[ 2.276292] ata1.00: 234441648 sectors, multi 16: LBA48 NCQ (depth 0/32)
[ 2.292298] ata1.00: configured for UDMA/133
[ 2.697111] ata3: SATA max UDMA/133 cmd 0xd800 ctl 0xd480 bmdma 0xd000 irq 5
[ 2.697113] ata4: SATA max UDMA/133 cmd 0xd400 ctl 0xd080 bmdma 0xd008 irq 5
[ 3.338805] ata5: PATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0xffa0 irq 14
[ 3.338807] ata6: PATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0xffa8 irq 15
Из чего следует, что 5,6 — параллельные и точно не наши, а на 1м живет основной диск.
Значит «пробуем» 2,3,4 порт
#echo ‘- — -‘ > /sys/class/scsi_host/host2/scan
#echo ‘- — -‘ > /sys/class/scsi_host/host3/scan
#echo ‘- — -‘ > /sys/class/scsi_host/host4/scan
Получаем в /var/log/mesages
[114471.168196] ata4: SError: < PHYRdyChg CommWake >
[114471.884034] ata4: soft resetting link
[114472.040055] ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[114472.048259] ata4.00: ATA-7: WDC WD800JD-00LSA0, 06.01D06, max UDMA/133
[114472.048264] ata4.00: 156301488 sectors, multi 0: LBA48
[114472.058191] ata4.00: configured for UDMA/133
[114472.058205] ata4: EH complete
[114472.059257] scsi 3:0:0:0: Direct-Access ATA WDC WD800JD-00LS 06.0 PQ: 0 ANSI: 5
Диск обнаружен на 4м порту, готов к употреблению. Монтируем стандартными средствами системы.
UPD: 18.11.2009 — для PATA СД-драйва такой способ не прокатил
Источник
Rescan SCSI bus on Linux System
SCSI stands for Small Computer System Interface and is a set of standards for transferring data and connecting devices and computers. Sometimes you make changes to disk devices on your Linux box while online which is even more often nowadays using virtual machines. Sometimes you also add a new disk and do not want to restart your Linux system. Wether you need to add a new disk or increase an existing disk size of your virtual machine, the changes will not be instantly visible from the Linux operating system because you need to rescan SCSI bus on Linux to see the change. It is quite easy to rescan SCSI bus on Linux, you can do it with a simple one line command (depending on the number of SCSI devices you have connected).
Rescan SCSI bus on Linux
Follow the steps described below and you will see the new size of your disk.
Rescan SCSI bus on Linux
Please note that the rescan SCSI bus on Linux does not interrupt operating system operation nor remove any of the disks. Rescanning SCSI bus on Linux with the below procedure will add/freshen devices but not remove them.
When Adding a New Disk
When adding a new disk to your Linux system you need to rescan SCSI host.
You can do this with the following command:
..where X is the number of SCSI host to scan.
You probably have more than one SCSI host available so to make it right you should repeat the above command for each SCSI host available.
Below is a practical example on how to rescan SCSI bus on Linux and and see the newly added disk:
The “- – -” part is where you tell the SCSI host what exactly to rescan and the hyphens are wildcards which tell SCSI host to rescan all controllers, channels and LUNs.
When Increasing Existing Disk Size
If you changed the size of an existing disk you might notice that the operating system can not see the new disk size until you rescan SCSI bus on Linux operating system.
The easiest way i’ve found is to rescan the specific device with the following command:
..where X is the device you increased and want to rescan.
Below is a practical example on how to rescan SCSI bus on Linux and and see the newly added disk:
The “1” is a flag which causes the SCSI host to rescan the “sdb” block device and therefore refresh the data about the disk size. Please note that i choose this command due to the human readable “sdb” naming which is really easy to remember.
Otherwise the command could also be triggered as follows:
..but in the last case you should know which device you want to rescan by the SCSI bus ID.
Источник
How to scan new FC LUNS and SCSI disks in Linux ?
How to scan new FC LUNS and SCSI disks in Redhat Linux without rebooting the server? Most of the Linux beginners have to wonder how to do this and this article will be for them. It may look very simple as we perform this in daily operation to scan LUNS but the system has much work to do in the background when you execute storage scanning commands. Redhat says this type of scan can be distributive since it can cause delays while I/O operation timeout and remove devices unexpectedly from OS.
Scanning FC-LUN’s in Redhat Linux
1.First, find out how many disks are visible in “fdisk -l” .
2.Find out how many host bus adapter configured in the Linux box.you can use “systool -fc_host -v” to verify available FC in the system.
In this case,you need to scan host0 & host1 HBA.
3.If the system virtual memory is too low ,then do not proceed further.If you have enough free virtual memory,then you can proceed with below command to scan new LUNS.
Note: You need to monitor the “issue_lip” in /var/log/messages to determine when the scan will complete.This operation is an asynchronous operation.
You can also use rescan-scsi-bus.sh script to detect new LUNS.
4. Verify if the new LUN is visible or not by counting the available disks.
If any new LUNS added , then you can see more count is more then before scanning the LUNS.
Scanning SCSI DISKS in Redhat Linux
1. Finding the existing disk from fdisk.
2. Find out how many SCSI controller configured.
In this case, you need to scan host0,host1 & host2.
3. Scan the SCSI disks using below command.
4. Verify if the new disks are visible or not.
From Redhat Linux 5.4 onwards, Red hat introduced “/usr/bin/rescan-scsi-bus.sh” script to scan all the SCSI bus and update the SCSI layer to reflect new devices.
But most of the time, the script will not be able to scan new disks and you need to go with echo command.
Источник