В предыдущих статьях шла речь о настройка мониторинга различных рейд контроллеров используя специализированные утилиты, стандартный демон smard и его утилиту smartctl. Было рассмотрено не только мониторинг различными способами, но и приводились полезные команды для работы с RAID-ами(просмотр логов, создание нового рейда, подсветка диодов и тп.). Теперь хочу написать очень краткую заметку о добавлении нового RAID6 в уже существующий LSI 2108 (megaraid) контроллер.
Ситуация следующая: у нас есть супер сервер (SuperServer 6047R-E1R36N) в котором 36 HDD-разъёмов. Когда купили сервер – денег хватило только на 20 дисков по 4ТБ в связи с чем было создано два рейда – один на операционную систему из 2-х дисков в RAID1, все остальное на хранение файлов в RAID6. С созданием RAID1 и RAID6 при первой установке сервера проблем нет – там есть интуитивно понятный интерфейс для работы с megaraid контроллером – только кликай и выбирай мышкой нужный параметры. После успешной настройки и полгода стабильной работы – заканчивается место и нужно добавлять еще дисков. Пришли к двум решениям или расширять существующий RAID6 или же создавать новый. Обратились в Supermicro за советом – те сказали, что безопасней будет второй вариант (но очень хотелось испробовать первый).
Приступаем.Первым делом нужно установить megacli(если еще не установлено) – инструкция здесь. Далее узнаем какой номер адаптера, на котором будем создавать новый RAID.
root@sto# megacli Adpallinfo -aall | grep '^Adapter' Adapter #0
Теперь, имея номер адаптера (их может бить несколько в зависимости от сервера), нужно узнать на какой плате(корпусе) у нас остались пустые разъёмы и номера этих разъёмов.
root@sto# megacli -PDlist -aall | grep -e '^Enclosure Device ID:' -e '^Slot Number:' -e 'Firmware state' Enclosure Device ID: 20 Slot Number: 0 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 1 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 2 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 3 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 4 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 5 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 6 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 7 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 8 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 9 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 10 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 11 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 12 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 13 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 14 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 15 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 16 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 17 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 18 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 19 Firmware state: Online, Spun Up Enclosure Device ID: 20 Slot Number: 20 Firmware state: Hotspare, Spun down Enclosure Device ID: 20 Slot Number: 21 Firmware state: Hotspare, Spun down Enclosure Device ID: 20 Slot Number: 22 Firmware state: Hotspare, Spun down Enclosure Device ID: 20 Slot Number: 23 Firmware state: Hotspare, Spun down Enclosure Device ID: 21 Slot Number: 0 Firmware state: Hotspare, Spun down Enclosure Device ID: 21 Slot Number: 1 Firmware state: Hotspare, Spun down Enclosure Device ID: 21 Slot Number: 2 Firmware state: Hotspare, Spun down Enclosure Device ID: 21 Slot Number: 3 Firmware state: Hotspare, Spun down Enclosure Device ID: 21 Slot Number: 4 Firmware state: Hotspare, Spun down Enclosure Device ID: 21 Slot Number: 5 Firmware state: Hotspare, Spun down Enclosure Device ID: 21 Slot Number: 6 Firmware state: Hotspare, Spun down Enclosure Device ID: 21 Slot Number: 7 Firmware state: Hotspare, Spun down Enclosure Device ID: 21 Slot Number: 8 Firmware state: Hotspare, Spun down Enclosure Device ID: 21 Slot Number: 9 Firmware state: Hotspare, Spun down Enclosure Device ID: 21 Slot Number: 10 Firmware state: Hotspare, Spun down Enclosure Device ID: 21 Slot Number: 11 Firmware state: Hotspare, Spun down
Везде где написано Firmware state: Hotspare, Spun down – это нужные адреса наших слотов, в которые добавлены новые 16 дисков. Теперь мы имеем всю нужную информацию для создания новых рейдов. В нашем случаи команда буде выглядеть так
root@sto# megacli -CfgLdAdd -r6 [20:20,20:21,22:22,22:23,21:0,21:1,21:2,21:3,21:4,21:5,21:6,21:7,21:8,21:9,21:10,21:11] -a0
Т.е. создается новый RAID6 на 0-м адаптере из списка дисков. Таким же способом можно создать RAID1,RAID5,RAID6 и остальные типы рейдов под LSI megaraid контроллером — требуется только адреса слотов.
После этого у нас появиться новый диск в папочке /dev, который можно форматировать в нужную файловую систему и маунтить.
Если до этого вы уже создавали логическое устройство, и потом виткнули из него все диски и захотели пересоздать на лету, то можете получить следующею ошибку.
root@sto# megacli -CfgLdAdd -r6 [20:20,20:21,22:22,22:23,21:0,21:1,21:2,21:3,21:4,21:5,21:6,21:7,21:8,21:9,21:10,21:11] -a0 Adapter 0: Configure Adapter Failed FW error description: The current operation is not allowed because the controller has data in cache for offline or missing virtual disks. Exit Code: 0x54
Чтобы исправить эту ошибку, нужно посмотреть кэш конфигураций контроллера.
root@sto# megacli -GetPreservedCacheList -a0 Adapter #0 Virtual Drive(Target ID 03): Missing. Exit Code: 0x00
Как видим, у нас закэшировался логический диск с номером 3. Удаляем кэшированую запись.
root@sto# megacli -DiscardPreservedCache -L3 -a0 Adapter #0 Virtual Drive(Target ID 03): Preserved Cache Data Cleared. Exit Code: 0x00
Еще раз проверяем или все гуд.
root@sto# megacli -GetPreservedCacheList -a0 Adapter 0: No Virtual Drive has Preserved Cache Data. Exit Code: 0x00
Еще может вылезти проблема такого рода
The specified physical disk does not have the appropriate attributes to complete the requested command.
В этом случаи нужно просканировать контроллер на старую конфигурацию и почистить ее.
root@sto# megacli -CfgForeign -Scan -aall There are 1 foreign configuration(s) on controller 0. Exit Code: 0x00 root@sto# megacli -CfgForeign -Clear -aall Foreign configuration 0 is cleared on controller 0. Exit Code: 0x00
Теперь проблема создания нового устройства должна решиться.
Несколько раз проделывал такие махинации на megaraid контроллере и не было никаких проблем ни с сервером, ни с загрузкой сервера – все делалось на лету без бекапов и каких-то лишних манипуляций с существующим контентом. Т.е. сборка нового рейда не влияет на работоспособность и производительность сервера. В следующей статье пойдет речь о сборке рейда под HP/Compaq Smart Array контроллером.