Страница 1 из 1

Синхронизация RAID массива

Добавлено: 26 дек 2009, 09:39
RomA
Хочу сразу оговориться - не вынимайте рабочий винт на горячую - можете потерять таблицу разделов. Лучше выключите сервер.

Ну а теперь что касается темы разговора. Есть сервер, в котором вытащили/вылетел/еще_что_нить один винт с массива - нам надо вставить новый и восстановить целостность.
В биосе у меня стоит загрузка с райда с первого диска - потому у меня в первой корзине стоит мой рабочий диск (если у вас вылетел/вынули первый диск, а диски были в зеркале - переставьте второй винт в первую корзину). Выключаю сервер, вставляю винт, включаюсь. При загрузке контролер сказал что есть 3 массива, двум из которых плоховато. Огромная просьба - не лезьте в управление контролером - делать там нефиг. Загружаемся во фрю и смотрим что у нас есть

Код: Выделить всё

pereslavl# atacontrol status ar0
ar0: ATA RAID1 status: DEGRADED
 subdisks:
   0 ad4  ONLINE
   1 ---- MISSING
pereslavl# atacontrol status ar1
ar1: ATA RAID1 status: DEGRADED
 subdisks:
   0 ---- MISSING
   1 ad6  ONLINE
pereslavl# atacontrol status ar2
ar2: ATA RAID1 status: READY
 subdisks:
   0 ad8  ONLINE
   1 ad10 ONLINE
pereslavl# atacontrol list
ATA channel 0:
    Master: acd0 <TSSTcorp CDDVDW TS-L632H/AS02> ATA/ATAPI revision 0
    Slave:       no device present
ATA channel 2:
    Master:  ad4 <ST3500320NS/SN06> SATA revision 2.x
    Slave:       no device present
ATA channel 3:
    Master:  ad6 <ST3500320NS/SN06> SATA revision 2.x
    Slave:       no device present
ATA channel 4:
    Master:  ad8 <ST31000340NS/SN06> SATA revision 2.x
    Slave:       no device present
ATA channel 5:
    Master: ad10 <ST31000340NS/SN06> SATA revision 2.x
    Slave:       no device present
pereslavl# 
Первым 2м массивам хреново. Первый - это мой родной, а вот второй массив остался откуда то - видать винт, который я вставил был уже в массиве. Думаю что он мне не нужен - потому удаляю этот второй массив, освободжая винт из его кабалы

Код: Выделить всё

pereslavl# atacontrol delete ar1
Итак - у меня образовался свободный винт - включаю его в свой массив и смотрю что произошло

Код: Выделить всё

pereslavl# atacontrol addspare ar0 ad6
pereslavl# atacontrol status ar0
ar0: ATA RAID1 status: DEGRADED
 subdisks:
   0 ad4  ONLINE
   1 ad6  SPARE
Винт включен в состав массива. теперь надо просинхронизировать винты, что бы второй стал полной копией того, что сейчас работает

Код: Выделить всё

pereslavl# atacontrol rebuild ar0
pereslavl# atacontrol status ar0
ar0: ATA RAID1 status: REBUILDING 0% completed
 subdisks:
   0 ad4  ONLINE
   1 ad6  SPARE
Процентики будут бежать - мы свободны на ближайшие часа 3 :-)
Убедительная просьба - как только вы начали работать с райдмассивом - не перегружайтесь - это равносильно потере данных на обоих винтах!!!
Терпеливо ждем пока все завершится.

Код: Выделить всё

pereslavl# atacontrol: ar0 rebuild completed
atacontrol status ar0
ar0: ATA RAID1 status: READY
 subdisks:
   0 ad4  ONLINE
   1 ad6  ONLINE

Ну вот - теперь все хорошо :-)

Re: Синхронизация RAID массива

Добавлено: 12 янв 2010, 11:13
RomA
А вот другая ситуация.

Код: Выделить всё

motiw# atacontrol status ar0
ar0: ATA RAID1 status: READY
 subdisks:
   0 ad4  ONLINE
   1 ad6  ONLINE
Массив нормальный. НО

Код: Выделить всё

motiw# df -m
Filesystem  1M-blocks Used  Avail Capacity  Mounted on
/dev/ad4s1a       495   44    411    10%    /
devfs               0    0      0   100%    /dev
/dev/ad4s1e      9681    0   8907    -0%    /tmp
/dev/ad4s1f    250283 3419 226841     1%    /usr
/dev/ad4s1d    193704   18 178189     0%    /var
Грузимся то мы только с одного из винтов! Не порядок - раз мы не работаем с массива, значит массив не синхранизируется, а следоветльно второй винт либо пустой либо там что нить не то... Проверить просто - если жеские в резкале - то мы можем загрузиться и с другого винта - для этого тупо ставим второй винт в первую карзину и загружаемся... в своем случае я загрузился но фря была не моя ниразу... голяк.
Такой массив мне ну нужен. удаляю его

Код: Выделить всё

motiw# atacontrol delete ar0
motiw# atacontrol status ar0
atacontrol: ioctl(IOCATARAIDSTATUS): Device not configured
Теперь надо собрать новый, который работал бы...
Для начала я стар все даные с ad6 что бы не попутать его с рабочим винтом. Затем создал новый массив

Код: Выделить всё

motiw# ls /dev/ | grep ad
ad4
ad4s1
ad4s1a
ad4s1b
ad4s1c
ad4s1d
ad4s1e
ad4s1f
ad6
motiw# atacontrol create mirror ad4 ad6
ar0 created
motiw# atacontrol status ar0
ar0: ATA RAID1 status: READY
 subdisks:
   0 ad4  ONLINE
   1 ad6  ONLINE
Настораживает - какой онлайн, если второй винт пустой... не работает райд... надо грузиться с него и работать на живом, а то так правды не добиться...
Меняю в файле /etc/fstab все ad4 на ar0 и перегружаюсь. по идеи теперь я должен загрузиться с массива... не загрузился... после долгих мучений понял что сделано это было весьма зря, и сначало надо читать документацию, а потом делать...
Что же я сделал в итоге... с массива я все же загрузился, примонтировав только корень, далее

Код: Выделить всё

motiw# atacontrol status ar0
ar0: ATA RAID1 status: READY
 subdisks:
   0 ad4  ONLINE
   1 ad6  ONLINE
motiw# atacontrol detach ata3
motiw# atacontrol attach ata3
motiw# atacontrol status ar0
ar0: ATA RAID1 status: DEGRADE
 subdisks:
   0 ad4  ONLINE
   1 - 
motiw# atacontrol addspare ar0 ad6
motiw# atacontrol status ar0
ar0: ATA RAID1 status: DEGRADE
 subdisks:
   0 ad4  ONLINE
   1 ad6  SPARE
motiw# atacontrol rebuild ar0
После чего посмотрел немного на прогресс ребилда и пошел заниматься другими делами, ибо процесс длительный.
По окончании я опять увидел что райд собран - пожно перегружаться

Код: Выделить всё

motiw# atacontrol status ar0
ar0: ATA RAID1 status: READY
 subdisks:
   0 ad4  ONLINE
   1 ad6  ONLINE
motiw# reboot
Но загрузка до конца не прошла - сервер спросил где шел и дальше не двинулся - ну это уже нормально - надо ему поправить файловую систему

Код: Выделить всё

# fsck -y
# reboot
Вот теперь все хорошо - сервер загрузился нормально, зеркало работает. Ура!

Re: Синхронизация RAID массива

Добавлено: 20 янв 2010, 08:53
MishaJ
Я воспользовался советом из второго поста.
Но после того, как выполнил detach/attach показало:

Код: Выделить всё

unix# atacontrol status ar0
ar0: ATA RAID1 status: DEGRADED
 subdisks:
   0 ad4  ONLINE
   1 ---- MISSING
при попытке добавить диск в массив произошло

Код: Выделить всё

unix# atacontrol addspare ar0 ad6
atacontrol: ioctl(IOCATARAIDADDSPARE): Device busy
После этого начал искать и наткнулся в форуме Лисяры на интересный пост, что после attach диск может прицепится к другому массиву. Стал проверять:

Код: Выделить всё

unix# atacontrol status ar1
ar1: ATA RAID1 status: READY
 subdisks:
   0 ---- MISSING
   1 ---- MISSING
unix# atacontrol status ar2
ar2: ATA RAID1 status: READY
 subdisks:
   0 ---- MISSING
   1 ad6  ONLINE
- вот он красавчик...
после этого:

Код: Выделить всё

unix# atacontrol delete ar2
unix# atacontrol addspare ar0 ad6
unix# atacontrol rebuild ar0
unix# atacontrol status ar0
ar0: ATA RAID1 status: REBUILDING 0% completed
 subdisks:
   0 ad4  ONLINE
   1 ad6  SPARE
"Процесс пошел" (с) "Меченый"

Re: Синхронизация RAID массива

Добавлено: 20 янв 2010, 09:11
RomA
Подозреваю что когда ты выставил винт - ты не посмотрел что появилось в системе, как это описано самым первым действием в первом посте, а кинулся сразу в бой :-)

Re: Синхронизация RAID массива

Добавлено: 20 янв 2010, 09:24
MishaJ
Когда был вставлен винт Рейд был поднят из BIOS. И при проверке статуса все было ОК. Но, после смены дисков между собой оказалось, что второй диск пуст. Тогда и начал действовать по второму посту.

Re: Синхронизация RAID массива

Добавлено: 20 янв 2010, 15:05
RomA
MishaJ писал(а):Когда был вставлен винт Рейд был поднят из BIOS.
Не смотрите на этих серверах в утилиту управления рейда, которая идет после биоса - как написано в инструкции интеловский рейд тут программный, оттого эта утилита часто показывает "погоду" и больше путает чем помогает. Даже создавать лучше из самой фри, потому что эта утилита даже ребилд провести не может :-(

Re: Синхронизация RAID массива

Добавлено: 20 янв 2010, 16:13
MishaJ
Вот я с этим и прилип... Когда накрылся первый диск, всунул второй и ага... Диск оказался пустой... Пришлось с помощью WinHex перегонять копию.