From: Николай Солонин <nsol@ukr.net.>
Date: Wed, 20 Apr 2005 11:25:05 +0600 (YEKST)
Subject: FreeBSD и RAID1 на ICH5R (SATA)
История началась с того, что перед организацией возникла задача
поставить коммуникационный сервер. Слишком высоких требований по
производительности не предъявлялось, и был выбран одноюнитовый сервер
Entry p115 http://www.entry.kiev.ua/systems/servers/p115.html
Поскольку современный винчестер - "не то место где нужно хранить
информацию" (с) не помню чей, то для обеспечения надежности систему
будем ставить на RAID1 (т.е. mirror).
В качестве операционной системы была выбрана FreeBSD 5.3R, как одна из
лучших систем для Internet сервера, и последняя версия с большим
спектром поддерживаемого оборудования и стабильная в работе. В версии
5.3 особенно радовала нормальная поддержка SATA и конкретно стоящего
на нашей материнке южника ICH5R. На этом южнике стоит остановиться
особо. Часто в руководстве к материнкам использующим этот чип (а в
буклетах - так вообще всегда), говориться, что он "RAID 0 или 1", но
при детальном рассмотрении оказывается что оно "The Intel(R) RAID
feature is available in Win2000 and WinXP". Т.е. он то конечно raid,
но не полностью аппаратный, часть функций реализуется на программном
уровне. Несмотря на создание RAID1 в BIOS'е контроллера, при установке
системы видим 2 диска. В общем, поставить систему в лоб, на raid, как
на один диск, созданный в BIOS'е полностью аппаратного контроллера как
Adaptec или HighPoint у Вас не получится.
Но способ установки есть, хотя и чуть менее простой.
Выбирая между atacontrol, vinum или ccd я остановился на первом
Итак, установка пошагово:
1. При загрузке машины нажимаем <Ctrl>+<A> для входа в Array
Configuration Utiliry
2. Выбираем Create RAID Volume
3. RAID Level: RAID1 (Mirroring)
4. Нажимаем кнопочку и ждем пока RAID1 будет собираться.
По окончании работы утилиты, вставляем диск с FreeBSD 5.3 и
загружаемся с него
Выбираем стандартную установку и ставим систему по минимуму и, что
называется "абы поставить". Эта система все равно ставиться на 5
минут. Дело в том, что при выборе дисков мы, к сожалению, увидим
только ad4 и ad6 - рейда не видим. Ставимся на любой диск, не имеет
значения, и после установки и перезагрузки (уже с HDD) набираем
заветную команду:
# atacontrol
create RAID1 ad4 ad6
ar0 created
- создано устройство ar0 - собственно RAID1 из дисков ad4 и ad6
Собственно ради этого и нужна была черновая установка системы
Конечно, проще было бы загрузиться с rescue-диска (со второго диска
комплекта.), но его чаще всего нет под рукой.
Теперь можно перегрузиться и по настоящему поставить FreeBSD по вкусу.
Ставить нужно на ar0 (этот пункт появиться в fdisk при установке),
диски ad4 и ad6 не трогаем. Установка FreeBSD на наш RAID ничем не
отличается от установки на обычный жесткий диск. Об установке написано
достаточно много, тут все зависит от Ваших потребностей. Поэтому этот
вопрос не затрагиваем, а сразу к вкусненькому. J
Итак, система живет на рейде ar0. Что мы можем с ним делать?
Посмотреть ATA устройства можно так:
# atacontrol list
ATA channel 0:
Master: no device present
Slave: no device present
ATA channel 1:
Master: acd0 <TEAC CD-552E/VER 1.00> ATA/ATAPI revision 0
Slave: no device present
ATA channel 2:
Master: ad4 <WDC WD800JD-00JNA0/05.01C5> Serial ATA v1.0
Slave: no device present
ATA channel 3:
Master: : ad6 <WDC WD800JD-00JNA0/05.01C5> Serial ATA v1.0
Slave: no device present
проверить состояние рейда можно командой:
# atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: READY
и вообще man atacontrol - очень полезно J, к примеру здесь:
http://www.citforum.ru/operating_systems/manpages/freebsd/ATACONTROL.8.shtml
Проверка функционирования RAID 1
Проверить работу RAID1 в действии довольно просто и очень стоит
попробовать поиграться с этим до того как сервер станет боевым, с
полезной нагрузкой.
# atacontrol list
ATA channel 0:
Master: no device present
Slave: no device present
ATA channel 1:
Master: acd0 <TEAC CD-552E/VER 1.00> ATA/ATAPI revision 0
Slave: no device present
ATA channel 2:
Master: ad4 <WDC WD800JD-00JNA0/05.01C5> Serial ATA v1.0
Slave: no device present
ATA channel 3:
Master: ad6 <WDC WD800JD-00JNA0/05.01C5> Serial ATA v1.0
Slave: no device present
# atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: READY
пока все нормально
Моделируем вылет одного из дисков - отсоединяем любой из дисков рейда,
например ad6. Для этого диск отсоединяем, или можно дать команду
atacontrol detach
# atacontrol detach 3
Диск выключен физически, с остановкой шпинделя, и через некоторое
время мы увидим в окне первого терминала предупреждение
ad6: deleted from ar0 disk1
ar0: WARNING - mirror lost
ad6: WARNING - removed from configuration
проверяем состояние ar0
# atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 DOWN status: DEGRADED
система заметила нарушение работы рейда
# atacontrol list
ATA channel 0:
Master: no device present
Slave: no device present
ATA channel 1:
Master: acd0 <TEAC CD-552E/VER 1.00> ATA/ATAPI revision 0
Slave: no device present
ATA channel 2:
Master: ad4 <WDC WD800JD-00JNA0/05.01C5> Serial ATA v1.0
Slave: no device present
ATA channel 3:
Master: ad6 no device present
Slave: no device present
Естественно, диска ad6 нет - мы его выключили
Подключаем винт назад (можно дать команду atacontrol attach)
# atacontrol attach 3
Master: ad6 <WDC WD800JD-00JNA0/05.01C5> Serial ATA v1.0
Slave: no device present
А в системной консоли:
ad6: 76319MB <WDC WD800JD-00JNA0/05.01C5> [155061/16/63] at ata3-master SATA150
# atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 DOWN status: DEGRADED
При этом винт появился физически, но он не в рейде
# atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 DOWN status: DEGRADED
- один из винтов DOWN, несмотря на то, что физически он поднялся. Тут
дело в логике работы raid - произошел развал зеркала - винт ad6 был
исключен из состава рейда. В контейнере ar0 остался один из двух
работающих винтов - ad4. Несмотря на подключение винта ad6 назад, он
уже не входит в состав контейнера ar0, и его нужно туда внести
# atacontrol addspare ar0 ad6
В системной консоли:
ad6: inserted into ar0 disk1 as spare
проверим
# atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED
Осталось восстановить зеркалирование
# atacontrol rebuild ar0
Процесс запустился в фоновом режиме и можно посмотреть его текущее
состояние
# atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 1% completed
...
Через час
atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: READY
- зеркало восстановлено J
Для контроля состояния RAIDа можно вписать в crontab:
0 8 * * * root atacontrol status ar0 | mail -s "server1 RAID status" mymail@mydomain.com
.... И каждое утро, приходя на работу, Вы будете получать письмо от
сервера о статусе
Николай Солонин <nsol@ukr.net.>
atacontrol - программа управления драйвером устройства ATA созданная
Soren Schmidt, появилась в составе FreeBSD с версии 4.
482 Прочтений • [FreeBSD и RAID1 на ICH5R (SATA) (freebsd raid disk ide ata sata)] [08.05.2012] [Комментариев: 0]