Понедельник, 20.11.2017, 10:44
# FreeBSD ГлавнаяРегистрацияВход
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Мои статьи [167]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
 Каталог статей 
Главная » Статьи » Мои статьи

Горячая замена диска в RAID gmirror
Цель: Необходимо создать RAID - массив с возможностью горячей замены. После
длительных и неудачных игр с попыткой создать массив RAID10 или RAID1 через
ICH7R, было принято решение попробовать программный RAID1. Попытка оказалась
удачной. Но пришлось наступить на несколько граблей. Что бы облегчить этот путь
другим, знакомлю сообщество с проверенным решением.

Сразу хочу сказать, что статья поставляется как есть. Все что вы делаете, вы
делаете на свой страх и риск. Я бы не рекомендовал все проверять на боевом сервере.

Мои эксперименты проводились на: 
FreeBSD 7.2-RELEASE #0:GENERIC i386
Чипсет ICH7R
Диски WDC WD5001AALS

Требования:
BIOS
1. SATA controller mode: Enhanced
2. SATA AHCI: Enabled
или что то подобное

В противном случае подключенный диск не инициализируется системой, во всяком
случае, у меня не получилось. Подозреваю, что диск не инициализируется на
уровне BIOS. Возможно, это частный случай.
При использовании режима AHCI, диск инициализируется автоматом. Нет
необходимости делать rescan или reinit и тому подобное. В моем случае все это
не помогло, пока не выставил режим AHCI.

Находим и отключаем убитый диск:
Нам в помощь 
 atacontrol list
 atacontrol cap device
 gmirror info
 gmirror status

Внимание номера каналов и разъемов SATA никак не совпадают, в том числе их порядок.

Например:

 # gmirror status

 Name Status Components
 mirror/gm0 COMPLETE ad4
 ad8
 mirror/gm1 DEGRADED ad6

Видно что массив gm0 находится в нормальном состоянии (COMPLETE), а массив gm1
находятся в аварийном режиме (DEGRADED).

Так же видно в RAID gm1 один диск отсутствует!!! Его нужно найти и заменить.
Предположим наихудший вариант - диск умер, и выяснить его серийный номер не
представляется возможным.
Тогда нужно действовать методом исключения.

Выполняем команду "atacontrol cap device" для каждого видимого диска. Все диски
можно увидеть с помощью "atacontrol list".

 # atacontrol list

 ATA channel 0:
 Master: no device present
 Slave: acd0 <LG CD-ROM CRD-8522B/2.01> ATA/ATAPI revision 0
 ATA channel 1:
 Master: no device present
 Slave: no device present
 ATA channel 2:
 Master: ad4 <WDC WD5001AALS-00L3B2/01.03B01> SATA revision 2.x
 Slave: no device present
 ATA channel 3:
 Master: ad6 <WDC WD5001AALS-00L3B2/01.03B01> SATA revision 2.x
 Slave: no device present
 ATA channel 4:
 Master: ad8 <WDC WD5001AALS-00L3B2/01.03B01> SATA revision 2.x
 Slave: no device present
 ATA channel 5:
 Master: no device present
 Slave: no device present
 
В нашем случае для ad4, ad8, ad6.

 # atacontrol cap ad8

В выводе этой команды мы увидим строку типа

 serial number WD-WCASY6287255

Таким образом мы получили номера всех работающих дисков.

Дело за малым, найти их физически. Если диски не были помечены при установке,
то тут проблема. Серийный номер диска указан на этикетке, иногда последние
цифры номера указаны в торце, но в дальнем. Если винты установлены плотно,
тогда лучше выключить машину и переписать номера винтов и пометить их удобным
для вас способом. Достаточно легко можно посмотреть номера, если диски
расположены перпендикулярно корпусу.

Как вывод, нужно метить винчестеры в момент установки и брать соответствующий
корпус для удобной замены.

Путем исключения находим неработающий диск. Отключаем его следующим образом.
 1. Отключаем DATA кабель.
 2. Отключаем кабель питания.

Ставим новый диск и подключаем его

 1. Подключаем кабель питания.
 2. Подключаем DATA кабель.


"atacontrol list" должен показать новое устройство ad#. Например: ad10

 # atacontrol list
 ATA channel 0:
 Master: no device present
 Slave: acd0 <LG CD-ROM CRD-8522B/2.01> ATA/ATAPI revision 0
 ATA channel 1:
 Master: no device present
 Slave: no device present
 ATA channel 2:
 Master: ad4 <WDC WD5001AALS-00L3B2/01.03B01> SATA revision 2.x
 Slave: no device present
 ATA channel 3:
 Master: ad6 <WDC WD5001AALS-00L3B2/01.03B01> SATA revision 2.x
 Slave: no device present
 ATA channel 4:
 Master: ad8 <WDC WD5001AALS-00L3B2/01.03B01> SATA revision 2.x
 Slave: no device present
 ATA channel 5:
 Master: ad10 <WDC WD5001AALS-00L3B2/01.03B01> SATA revision 2.x
 Slave: no device present

Добавляем новый диск в RAID-масив.

Во первых нужно заставить RAID "забыть" об отключенном диске

 # gmirror forget gm1

Теперь команда "gmirror status gm1" покажет нам что RAID gm1 в полном порядке,
правда состоит из одного диска.

 # gmirror status gm1

 Name Status Components
 mirror/gm1 COMPLETE ad6

Можно приступить к добавлению нового подключенного винчестера.

 # gmirror insert gm1 /dev/ad10

Эта команда автоматически начинает перестроение массива.

Теперь gmirror status покажет примерно такое:

 # gmirror status gm1
 Name Status Components
 mirror/gm1 DEGRADED ad6
 ad10 (1%)

Наберитесь терпения эта процедура займет некоторое время. Для дисков 500G около
двух часов. Естественно в это время все службы продолжают работать.

По окончании процесса синхронизации порлучим:

 # gmirror status gm1

 Name Status Components
 mirror/gm1 COMPLETE ad6
 ad10

Если интересно то с помощью команд gstat или systat -io можно посмотреть
активность процесса синхронизации.
Категория: Мои статьи | Добавил: Admin (19.08.2011)
Просмотров: 2012 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2017Сделать бесплатный сайт с uCoz