Небольшая статья поствященная настройке и конфигурированию RAID контроллеров HP Smart Array под Linux, а так же описывающая последовательность действий при выходе дисков из строя. Написана по мотивам печальной истории произошедшей с одним из моих хороших знакомых: «Я поставил Fedora 12 в качестве файлового сервера, теперь все сильно тормозит, а на одном из дисков горит синяя лампочка…»
1. Установка программного обеспечения
Загружаем с сайта HP утилиту настройки RAID-контроллеров Array Configuration Utility CLI for Linux.
[root@kvmsrv ~]# wget ftp://ftp.hp.com/pub/softlib2/software1/pubsw-linux/p414707558/v65771/hpacucli-8.75-12.0.noarch.rpm
Устанавливаем
[root@kvmsrv ~]# rpm -ihv hpacucli-8.75-12.0.noarch.rpm Preparing... ########################################### [100%] 1:hpacucli ########################################### [100%]
При установке на 64-х битную ос для работы утилиты понадобится доставить 32-битные библиотеки.
[root@kvmsrv ~]# yum install glibc.i686 libstdc++.i686
2. Получаем информацию о настройках
Вся работа ведется через обращение к контроллеру через серийный номер, либо по номеру слота. Поэтому в первую очередь просматриваем какие контроллеры с в каких слотах и с какими серийными номерами у нас установлены.
[root@kvmsrv ~]# hpacucli HP Array Configuration Utility CLI 8.75-12.0 Detecting Controllers...Done. Type "help" for a list of supported commands. Type "exit" to close the console. => ctrl all show Smart Array P400 in Slot 1 (sn: P61620F9VV82GC)
Таким образом получается системе установлен 1 контролер Smart Array P400 находящийся в первом слоте и имеющий серийный номер P61620F9VV82GC. Теперь мы можем просмотреть более подробно информацию о внутренних настройках контроллера.
=> ctrl slot=1 show Smart Array P400 in Slot 1 Bus Interface: PCI Slot: 1 Serial Number: P61620F9VV82GC Cache Serial Number: PA82C0H9VVA4PJ RAID 6 (ADG) Status: Disabled Controller Status: OK Hardware Revision: Rev D Firmware Version: 7.22 Rebuild Priority: High Expand Priority: Medium Surface Scan Delay: 15 secs Surface Scan Mode: Idle Wait for Cache Room: Disabled Surface Analysis Inconsistency Notification: Disabled Post Prompt Timeout: 0 secs Cache Board Present: True Cache Status: OK Accelerator Ratio: 100% Read / 0% Write Drive Write Cache: Enabled Total Cache Size: 256 MB No-Battery Write Cache: Disabled Battery/Capacitor Count: 0 SATA NCQ Supported: True
Просматриваем информацию о конфигурации дисков и разделов.
ctrl slot=1 show config Smart Array P400 in Slot 1 (sn: P61620F9VV82GC) array A (SAS, Unused Space: 0 MB) logicaldrive 1 (33.9 GB, RAID 1, OK) physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 36 GB, OK) physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 36 GB, OK) unassigned physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 146 GB, OK) physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 146 GB, OK) physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 146 GB, OK) physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 146 GB, OK) physicaldrive 2I:1:7 (port 2I:box 1:bay 7, SAS, 146 GB, OK) physicaldrive 2I:1:8 (port 2I:box 1:bay 8, SAS, 146 GB, OK)
В системе 2 жестких диска по 36Гб в объединенных в зеркальный RAID, и 6 свободных не привязанных ни к какому массиву жестких дисков по 146Гб. Более подробную информацию о состоянии каждого и массивов можно получить при помощи следующей команды, где параметр ld 1 обозначает логический диск с номером 1:
=> ctrl slot=1 ld 1 show Smart Array P400 in Slot 1 array A Logical Drive: 1 Size: 136.7 GB Fault Tolerance: RAID 1 Heads: 255 Sectors Per Track: 32 Cylinders: 35132 Strip Size: 128 KB Status: OK Array Accelerator: Enabled Unique Identifier: 600508B100104639565638324743001A Disk Name: /dev/cciss/c0d0 Mount Points: /boot 500 MB OS Status: LOCKED Logical Drive Label: A007CBB3P61620F9VV82GCBFA2 Mirror Group 0: physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 36 GB, OK) Mirror Group 1: physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 36 GB, OK)
3. Настройка RAID5 + HotSpare
3.1 Настройка
Итак в нашем распоряжении 6 дисков - из первых пяти собираем RAID 5 массив:
=> ctrl slot=1 create type=ld drives=1I:1:2,1I:1:3,1I:1:4,2I:1:6,2I:1:7 raid=5
Посмотрим какой номер логического диска получил наш RAID 5.
=> ctrl slot=1 ld all show Smart Array P400 in Slot 1 array A logicaldrive 1 (33.9 GB, RAID 1, OK) array B logicaldrive 2 (546.8 GB, RAID 5, OK)
Смотрим на состояние созданного логического диска, в данный момент проходит инициализация четности для данного массива, весь процесс для 146Гб 10к винтов занял около 5ч.
=> ctrl slot=1 ld 2 show Smart Array P400 in Slot 1 array B Logical Drive: 2 Size: 546.8 GB Fault Tolerance: RAID 5 Heads: 255 Sectors Per Track: 32 Cylinders: 65535 Strip Size: 64 KB Status: OK Array Accelerator: Enabled Parity Initialization Status: In Progress Parity Initialization Progress: 3% complete Unique Identifier: 600508B100104639565638324743000F Disk Name: /dev/cciss/c0d1 Mount Points: None Logical Drive Label: AEEEA2CBP61620F9VV82GCEAF3
Добавляем hotspare, при этом можно не дожидаться окончания процесса инициализации четности.
=> ctrl slot=1 array B add spares=2I:1:8
Просматриваем результат наших действий.
=> ctrl slot=1 show config Smart Array P400 in Slot 1 (sn: P61620F9VV82GC) array A (SAS, Unused Space: 0 MB) logicaldrive 1 (33.9 GB, RAID 1, OK) physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 36 GB, OK) physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 36 GB, OK) array B (SAS, Unused Space: 0 MB) logicaldrive 2 (546.8 GB, RAID 5, OK) physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 146 GB, OK) physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 146 GB, OK) physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 146 GB, OK) physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 146 GB, OK) physicaldrive 2I:1:7 (port 2I:box 1:bay 7, SAS, 146 GB, OK) physicaldrive 2I:1:8 (port 2I:box 1:bay 8, SAS, 146 GB, OK, spare)
3.2 Выход из строя дисков
Итак представим что один и жестких дисков вышел из строя.
=> ctrl slot=1 show config Smart Array P400 in Slot 1 array A (SAS, Unused Space: 0 MB) logicaldrive 1 (33.9 GB, RAID 1, OK) physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 36 GB, OK) physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 36 GB, OK) array B (SAS, Unused Space: 0 MB) logicaldrive 2 (546.8 GB, RAID 5, OK) physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 146 GB, OK) physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 146 GB, OK) physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 146 GB, OK) physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 146 GB, Failed) physicaldrive 2I:1:7 (port 2I:box 1:bay 7, SAS, 146 GB, OK) physicaldrive 2I:1:8 (port 2I:box 1:bay 8, SAS, 146 GB, Rebuilding, active spare)
Пересборка массива прошла как не странно всего за 35мин, при этом скорость упала до 28Мб/с на запись и 7Мб/с чтение. Такое падение производительности обусловлено выставленным высоким приоритетом для пересборки Rebuild Priority: High, изменить его мы можем при помощи комманды
=> ctrl slot=1 modify rebuildpriority=low
Правда об этом стоит позаботиться заранее, если процесс уже запущен то поменять его не удастся. После замены вышедшего из строя диска в автоматическом режиме пройдет еще одна пересборка, при этом HotSpare диск перейдет в свое обычное состояние, как было до сбоя.
В качестве эксперимента можно предположить, что в нашем массиве нет HotSpare диска, а один из членов массива вышел из строя
array B (SAS, Unused Space: 0 MB) logicaldrive 2 (546.8 GB, RAID 5, Interim Recovery Mode) physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 146 GB, OK) physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 146 GB, Failed) physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 146 GB, OK) physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 146 GB, OK) physicaldrive 2I:1:7 (port 2I:box 1:bay 7, SAS, 146 GB, OK)
Массив перейдет в состояние Interim Recovery Mode и продолжит свою работу до установки нового диска на место вышедшего из строя. На этот период скорость записи остается прежней около 60Мб/с, а скорость чтения упадет до 26Мб/с.
4. Сценарий №2: 4 диска RAID1+0 и 2 диска в RAID0
4.1. Настройка
Создаем RAID1+0:
=> ctrl slot=1 create type=ld drives=1I:1:2,1I:1:3,1I:1:4,2I:1:6 raid=1+0
Проверяем результат:
=> ctrl slot=1 show config Smart Array P400 in Slot 1 (sn: P61620F9VV82GC) array A (SAS, Unused Space: 0 MB) logicaldrive 1 (33.9 GB, RAID 1, OK) physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 36 GB, OK) physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 36 GB, OK) array B (SAS, Unused Space: 0 MB) logicaldrive 2 (273.4 GB, RAID 1+0, OK) physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 146 GB, OK) physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 146 GB, OK) physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 146 GB, OK) physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 146 GB, OK) unassigned physicaldrive 2I:1:7 (port 2I:box 1:bay 7, SAS, 146 GB, OK) physicaldrive 2I:1:8 (port 2I:box 1:bay 8, SAS, 146 GB, OK)
Создаем массив RAID 1:
=> ctrl slot=1 create type=ld drives=2I:1:7,2I:1:8 raid=1
Еще раз смотрим на результат:
=> ctrl slot=1 show config Smart Array P400 in Slot 1 (sn: P61620F9VV82GC) array A (SAS, Unused Space: 0 MB) logicaldrive 1 (33.9 GB, RAID 1, OK) physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 36 GB, OK) physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 36 GB, OK) array B (SAS, Unused Space: 0 MB) logicaldrive 2 (273.4 GB, RAID 1+0, OK) physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 146 GB, OK) physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 146 GB, OK) physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 146 GB, OK) physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 146 GB, OK) array C (SAS, Unused Space: 0 MB) logicaldrive 3 (136.7 GB, RAID 1, OK) physicaldrive 2I:1:7 (port 2I:box 1:bay 7, SAS, 146 GB, OK) physicaldrive 2I:1:8 (port 2I:box 1:bay 8, SAS, 146 GB, OK)
В случае использования дисков с 10000 тысячами оборотами для RAID1+0 скорость чтения будет 173Мб/с, запись – 144Мб/с; а для RAID1 cкорость чтения 85Мб/с, запись 80Мб/с.
4.2 Выход из строя одного диска
В данном случае сценарий восстановления мало чем отличается от описанного в п. 3.2, мы просто меняем вышедший из строя накопитель на новый, и ждем пока пройдет процесс синхронизации. Хочется отметить что достаточно большой плюс использования RAID1 и RAID10 – это отсутствие падения производительности массива в случае выхода из строя одного из дисков.
2 Коммент. : “Настройка Smart Array под Linux”
См. тж. http://www.strocamp.net/opensource/cpqarrayd.php (для новых контроллеров может не годиться); для LSI MPT есть mpt-status.
PS: пришёл с http://www.opennet.ru/opennews/art.shtml?num=31740
Спасибо за информацию.
PS: Забавно – OpenNet начал постить ссылки на мои статьи