История началась с того, что перед организацией возникла задача поставить коммуникационный сервер. Слишком высоких требований по производительности не предъявлялось, и был выбран одноюнитовый сервер
Итак, имеем сервер следующей конфигурации:
Код: Выделить всё
- MB Tyan Tomcat i875PF (S5105) http://tyan.com/products/html/tomcati875pf.html
- CPU Intel Prescott Pentium4 3.0 GHz / 1Mb / 800 MHz
- RAM 2*DDR 512Mb PC3200 Kingston
- HDD 2 * 80 GB WD Caviar 7200 SATA 8Mb (WD800JD)
- CDROM 52x TEAC
- Case 1U, rack mount.
В качестве операционной системы была выбрана 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 будет собираться.
Выбираем стандартную установку и ставим систему по минимуму и, что называется "абы поставить". Эта система все равно ставиться на 5 минут. Дело в том, что при выборе дисков мы, к сожалению, увидим только ad4 и ad6 - рейда не видим. Ставимся на любой диск, не имеет значения, и после установки и перезагрузки (уже с HDD) набираем заветную команду:
Код: Выделить всё
# atacontrol
create RAID1 ad4 ad6
ar0 created
Собственно ради этого и нужна была черновая установка системы
Конечно, проще было бы загрузиться с rescue-диска (со второго диска комплекта.), но его чаще всего нет под рукой.
Теперь можно перегрузиться и по настоящему поставить FreeBSD по вкусу.
Ставить нужно на ar0 (этот пункт появиться в fdisk при установке), диски ad4 и ad не трогаем. Установка 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
Проверка функционирования 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
Код: Выделить всё
# 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
Подключаем винт назад (можно дать команду 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
Код: Выделить всё
# 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
Для контроля состояния RAIDа можно вписать в crontab:
Код: Выделить всё
0 8 * * * root atacontrol status ar0 | mail -s "server1 RAID status" mymail@mydomain.com
Николай Солонин <mailto:nsol@REMOVE-THIS-FAKE.ukr.net>
atacontrol - программа управления драйвером устройства ATA созданная Soren Schmidt, появилась в составе FreeBSD с версии 4.