день добрый. на сервере 8.0-RELEASE. название RAID контроллера в точности сказать не могу, ядро не отобразило название. на сервере умер диск, atacontrol честно сказал, что один диск каюк OFFLINE. остановил сервер. вынул. поставил новый диск, сам контроллер в биосе сказал, что да, новый диск, массив Degraded. грузимся.
вуаляad4: 476940MB <SAMSUNG HD502HJ 1AJ100E4> at ata2-master SATA150
ad6: 476940MB <Hitachi HUA722050CLA330 JP2OA3EA> at ata3-master SATA150
ar0: writing of LSILogic v3 MegaRAID metadata is NOT supported yet
ar0: 476772MB <LSILogic v3 MegaRAID RAID1> status: READY
ar0: disk0 READY (master) using ad4 at ata2-master
ar0: disk1 READY (mirror) using ad6 at ata3-masterновый диск это хитачи, он пустой. бздя считает, что массив у нас в рабочем состоянии. слава богу, что я на стал грузиться с ar0, а то было бы весело.
atacontrol status ar0
ar0: ATA RAID1 status: READY
subdisks:
0 ad4 ONLINE
1 ad6 ONLINEдалее по инструкции
atacontrol detach ata3atacontrol status ar0
ar0: ATA RAID1 status: DEGRADED
subdisks:
0 ad4 ONLINE
1 ---- MISSINGatacontrol attach ata3
Master: ad6 <Hitachi HUA722050CLA330/JP2OA3EA> SATA revision 2.x
Slave: no device presentatacontrol status ar0
ar0: ATA RAID1 status: DEGRADED
subdisks:
0 ad4 ONLINE
1 ad6 ONLINE
atacontrol addspare ar0 ad6
atacontrol: ioctl(IOCATARAIDADDSPARE): Device not configuredсобственно у меня однажды такое уже было, какими-то правдами и не правдами я решил эту проблему, но на этот раз решил подойти правильно, спросить у умных людей, а то в серверной сидеть и морозить гениталии часами не хочется ;((
спасибо
>[оверквотинг удален]
> subdisks:
> 0 ad4 ONLINE
> 1 ad6 ONLINE
> atacontrol addspare ar0 ad6
> atacontrol: ioctl(IOCATARAIDADDSPARE): Device not configured
> собственно у меня однажды такое уже было, какими-то правдами и не правдами
> я решил эту проблему, но на этот раз решил подойти правильно,
> спросить у умных людей, а то в серверной сидеть и морозить
> гениталии часами не хочется ;((
> спасибоизначально зеркало в BIOS'е создавали?
у вас:
> ar0: writing of LSILogic v3 MegaRAID metadata is NOT supported yetесли один диск целый, то можно не париться, а создать используя atacontrol
ar заново, предварительно удалив старые метаданные (удалив тем самым старый ar).
> если один диск целый, то можно не париться, а создать используя atacontrol
> ar заново, предварительно удалив старые метаданные (удалив тем самым старый ar).зачем этот анахронизм вообще сдался? тот же gmirror много менее проблемнее...
>> если один диск целый, то можно не париться, а создать используя atacontrol
>> ar заново, предварительно удалив старые метаданные (удалив тем самым старый ar).
> зачем этот анахронизм вообще сдался? тот же gmirror много менее проблемнее...всё может быть, если мне придётся создавать массив с нуля. то можно и через gmirror, мне главное, чтобы данные не потерялись
>[оверквотинг удален]
>> собственно у меня однажды такое уже было, какими-то правдами и не правдами
>> я решил эту проблему, но на этот раз решил подойти правильно,
>> спросить у умных людей, а то в серверной сидеть и морозить
>> гениталии часами не хочется ;((
>> спасибо
> изначально зеркало в BIOS'е создавали?
> у вас:
>> ar0: writing of LSILogic v3 MegaRAID metadata is NOT supported yet
> если один диск целый, то можно не париться, а создать используя atacontrol
> ar заново, предварительно удалив старые метаданные (удалив тем самым старый ar).Массив создавал не я тогда, поэтому не в курсе ;(
вопрос конечно глупый, я могу удалить массив, но при создании мне нужно быть уверенным, что данные не потеряются, т.е. нужно быть уверенным, что при создании исходные данные для массива будут браться не с пустого диска.
atacontrol create RAID1 ad4 ad6 первый диск это src, а второй dst? или в данной команде вообще такое не подразумевается?
>[оверквотинг удален]
>> изначально зеркало в BIOS'е создавали?
>> у вас:
>>> ar0: writing of LSILogic v3 MegaRAID metadata is NOT supported yet
>> если один диск целый, то можно не париться, а создать используя atacontrol
>> ar заново, предварительно удалив старые метаданные (удалив тем самым старый ar).
> Массив создавал не я тогда, поэтому не в курсе ;(
> вопрос конечно глупый, я могу удалить массив, но при создании мне нужно
> быть уверенным, что данные не потеряются, т.е. нужно быть уверенным, что
> при создании исходные данные для массива будут браться не с пустого
> диска.ataraid - драйвер поддерживает фейковые ATA RAID контроллеры.
fake-raid - это НЕполноценные RAID контроллеры, обычно они позволяют создавать
RAID1, RAID0+1, SPAN и JBOD варианты рейдов.
Что означает НЕполноценный - то что работа рейда поддерживается программно, рейд-драйвером
для конкретного контроллера.
Начнем с самого начала, допустим имеем один из дешевых fake-raid контроллеров:- Adaptec HostRAID
или
- JMicron
или
- LSI Logic V3 MegaRAIDэти контроллеры позволяют создавать зеркало через BIOS, допустим мы выбрали в BIOS
два диска, объединили в RAID1 (зеркало) и создали его.
Что на самом деле произошло? В особом безопасном месте на диске были созданы
метаданные которые описывают созданный посредством BIOS фейкового рейд контроллера.Далее мы хотим установить FreeBSD на созданный рейд, если драйвер ataraid поддерживает
наш фейк-рейд контроллер (man ataraid), то при установке драйвер FreeBSD должен
увидеть, прочитать и понять метаданные рейда который создан через BIOS.
Если все Ok, то FreeBSD прочитает метаданные и позволит установить систему на
устройство /dev/arX - устройство arX и есть рейд.
Далее всю работу с рейдом будет производить драйвер OS FreeBSD, отсюда понятие
фейк или программный рейд в отличие от hardware raid (hw raid)Однако подобные рейды можно создавать используя утилиту atacontrol, как для
fake-raid'ов, так и для самых обычных контроллеров и это более правильный подход.
Почему?
Потому что драйвер ataraid для одних фейк-рейд контроллеров умеет ТОЛЬКО читать
метаданные рейда, а для других и ЧИТАТЬ и ПИСАТЬ в область метаданных.
Что это значит, то что одними фейк-рейд контроллерами мы можем управлять прямо из
OS (запись метаданных), а другими не можем управлять используя atacontrol (только
чтение метаданных)
Вот почему из двух вариантов создания фейк-рейда:
1) BIOS fake-raid контроллера
2) atacontrolсамый удачный способ - используя atacontrol (не используя BIOS fake-raid контроллера)
он позволяет нам управлять нашим arX рейдом.
> atacontrol create RAID1 ad4 ad6 первый диск это src, а второй dst?
> или в данной команде вообще такое не подразумевается?да, собственно man atacontrol
create Create a type ATA RAID. The type can be RAID0 (stripe), RAID1
(mirror), RAID0+1, SPAN or JBOD. In case the RAID has a RAID0
component, the interleave must be specified in number of sec-
tors. The RAID will be created of the individual disks named
disk0 ... diskN.в рабочем рейде термины src и dst могут быть изменены, если мы удалим первый
диск и вместо него вставим новый.Удаление метаданных подобных рейдов не влияет на данные на дисках, вот почему
можно удалять конфигурацию програмных рейдов и создавать их заново.прим: ранее было упоминание про gmirror - он на мой взгляд удобней и практичней,
но вопрос был про ataraid/atacontrol и ответ соответственно.
спасибо за столь исчерпывающий ответ. а не получится так, что я создаю массив в ОС, ну хотя он сейчас для ОС выглядит, как READY, т.е. живой, а биос считает что это не правда и будет так же продолжать считать и думать, что массив DEGRADED? может быть мне имеет смысл ребилдить массив из биоса? поди уж ОС увидит его?
> спасибо за столь исчерпывающий ответ. а не получится так, что я создаю
> массив в ОС, ну хотя он сейчас для ОС выглядит, как
> READY, т.е. живой, а биос считает что это не правда и
> будет так же продолжать считать и думать, что массив DEGRADED? может
> быть мне имеет смысл ребилдить массив из биоса? поди уж ОС
> увидит его?если хочется правильно и надежно, следует сделать так:
- взять чистый диск или второй из зеркала:
a) если на втором уже зеркало аналогичное первому ничего не делаем до п.
b) если второй пустой - либо зеркалим на него данные с основного, либо
копируем на него первый используя dd (долго можно сделать побольше размер блока)# dd if=/dev/первый of=/dev/второй bs=1M conv=noerror,sync
(имеем ввиду что процесс имеет продолжительность и за это время на первом уже
будут изменения, либо загрузиться в single-user mode и выполнить dd)- имеем рабочий диск и его копию
- разваливаем софтверный массив
- выключаем
- перетыкаем копию в другой порт или вообще временно отключаем
- включаем питание, заходим в BIOS и разваливаем RAID если он был создан в BIOS,
пусть BIOS успокоится и мы вместе с ним. Копия на всякий пожарный у нас есть- возвращаем второй диск на место или оставляем на другом порту и загружаемся
- наблюдаем что все хорошо
- теперь можем создать RAID исключительно используя atacontrolКак бэ данные у нас должны быть НЕтронуты, за BIOS не ручаюсь, поэтому и сделали
копию и либо отключили, либо переткнули в другой портТе (то есть) как ранее было сказано, метаданные находятся в специальной области
диска и на рабочие данные не влияют, создание и удаление такого рейда - это создание
и удаление метаданных из специальной области диска.прим: имейте ввиду что RAID через atacontrol будет иметь ограничения по размеру,
gmirror на мой взгляд существенно лучше, но это уже из другой оперы.
спасибо большое за помощь, всё получилось. сделал, как было раньше, через atacontrol. и как только развалил софтово массив создал его снова, получилось добавить диск, как spare и уже сделать rebuild.
> спасибо большое за помощь, всё получилось. сделал, как было раньше, через atacontrol.
> и как только развалил софтово массив создал его снова, получилось добавить
> диск, как spare и уже сделать rebuild.ну вот, оказывается не сложно
удачи