Инструменты пользователя

Инструменты сайта


wiki:technical:ds:change_hdd_softraid1

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

wiki:technical:ds:change_hdd_softraid1 [2017/04/07 19:51] (текущий)
Строка 1: Строка 1:
 +====== Как заменить HDD в программном RAID1 ======
 +
 +===== Получение информации о состоянии массивов =====
 +В командной строке выполняем:​
 +<​code>​
 +# cat /​proc/​mdstat
 +Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
 +md3 : active raid1 sda4[0] sdb4[1](F)
 +      1822442815 blocks super 1.2 [2/1] [U_]
 +
 +md2 : active raid1 sda3[0] sdb3[1](F)
 +      1073740664 blocks super 1.2 [2/1] [U_]
 +
 +md1 : active raid1 sda2[0] sdb2[1](F)
 +      524276 blocks super 1.2 [2/1] [U_]
 +
 +md0 : active raid1 sda1[0] sdb1[1](F)
 +      33553336 blocks super 1.2 [2/1] [U_]
 +
 +unused devices: ​
 +</​code>​
 +О том, что массивы в порядке,​ указывает наличии двух букв U в квадратных кавычках в строчках для каждого массива — ''​[UU]''​. Если массив поврежден,​ буква U меняется на _. В данном случае:​ ''​[U_]''​ — поврежден диск /dev/sdb.
 +
 +===== Удаление неисправного диска из RAID1 =====
 +Перед установкой нового HDD необходимо удалить из массива поврежденный диск. Для этого выполняем следующую последовательность команд:​
 +<​code>​
 +# mdadm /dev/md0 -r /dev/sdb1
 +# mdadm /dev/md1 -r /dev/sdb2
 +# mdadm /dev/md2 -r /dev/sdb3
 +# mdadm /dev/md3 -r /dev/sdb4
 +</​code>​
 +Бывают ситуации,​ когда не все программные RAID-массивы повреждены:​
 +<​code>​
 +# cat /​proc/​mdstat
 +Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
 +md3 : active raid1 sda4[0] sdb4[1](F)
 +      1822442815 blocks super 1.2 [2/1] [UU]
 +
 +md2 : active raid1 sda3[0] sdb3[1](F)
 +      1073740664 blocks super 1.2 [2/1] [UU]
 +
 +md1 : active raid1 sda2[0] sdb2[1](F)
 +      524276 blocks super 1.2 [2/1] [U_]
 +
 +md0 : active raid1 sda1[0] sdb1[1](F)
 +      33553336 blocks super 1.2 [2/1] [U_]
 +
 +unused devices: ​
 +</​code>​
 +В таком случае не удастся удалить рабочий раздел из массива. Необходимо сначала пометить его как сбойный:​
 +<​code>​
 +# mdadm /dev/md2 -f /dev/sdb3
 +# mdadm /dev/md3 -f /dev/sdb4
 +
 +# cat /​proc/​mdstat
 +Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
 +md3 : active raid1 sda4[0] sdb4[1](F)
 +      1822442815 blocks super 1.2 [2/1] [U_]
 +
 +md2 : active raid1 sda3[0] sdb3[1](F)
 +      1073740664 blocks super 1.2 [2/1] [U_]
 +
 +md1 : active raid1 sda2[0] sdb2[1](F)
 +      524276 blocks super 1.2 [2/1] [U_]
 +
 +md0 : active raid1 sda1[0] sdb1[1](F)
 +      33553336 blocks super 1.2 [2/1] [U_]
 +
 +unused devices: ​
 +</​code>​
 +а затем удалить:​
 +<​code>​
 +# mdadm /dev/md0 -r /dev/sdb1
 +# mdadm /dev/md1 -r /dev/sdb2
 +# mdadm /dev/md2 -r /dev/sdb3
 +# mdadm /dev/md3 -r /dev/sdb4
 +</​code>​
 +После этого можем производить замену HDD.
 +
 +===== Добавление нового диска в RAID1 =====
 +Оба диска в массиве должны иметь абсолютно одинаковое разбиение. В зависимости от используемого типа таблицы разделов (MBR или GPT) необходимо использовать соответствующие утилиты для копирования таблицы разделов.
 +
 +==== Определение типа таблицы разделов ====
 +Узнать тип таблицы разделов можно с помощью утилиты gdisk. Например,​ в случае с GPT мы получим:​
 +<​code>​
 +# gdisk -l /dev/sda
 +Partition table scan:
 +MBR: protective
 +BSD: not present
 +APM: not present
 +GPT: present
 +</​code>​
 +И в случае с MBR мы получим:​
 +<​code>​
 +# gdisk -l /dev/sda
 +MBR: MBR only
 +BSD: not present
 +APM: not present
 +GPT: not present
 +</​code>​
 +
 +==== Копирование таблицы разделов на новый диск ====
 +Для жесткого диска с MBR используем утилиту sfdisk:
 +<​code>​
 +# sfdisk -d /dev/sda | sfdisk --force /dev/sdb
 +</​code>​
 +где:
 +  * ''/​dev/​sda''​ — диск источник
 +  * ''/​dev/​sdb''​ — диск назначения
 +Для жесткого диска с GPT используем утилиту sgdisk:
 +<​code>​
 +# sgdisk -R /dev/sdb /dev/sda
 +# sgdisk -G /dev/sdb
 +</​code>​
 +где:
 +  * ''/​dev/​sda''​ — диск источник
 +  * ''/​dev/​sdb''​ — диск назначения
 +  * ''​sgdisk -G /​dev/​sdb''​ - назначает новому жесткому диску случайный UUID
 +
 +==== Добавление размеченного диска в массивы ====
 +Выполняем последовательность команд:​
 +<​code>​
 +# mdadm /dev/md0 -a /dev/sdb1
 +# mdadm /dev/md1 -a /dev/sdb2
 +# mdadm /dev/md2 -a /dev/sdb3
 +# mdadm /dev/md3 -a /dev/sdb4
 +</​code>​
 +После этого начнется процесс синхронизации. Время синхронизации зависит от объема жесткого диска:
 +<​code>​
 +# cat /​proc/​mdstat
 +Personalities : [raid1]
 +md3 : active raid1 sdb4[1] sda4[0]
 +     ​1028096 blocks [2/2] [UU]
 +     ​[==========>​..........] ​ resync =  50.0% (514048/​1028096) finish=97.3min speed=65787K/​sec
 +
 +md2 : active raid1 sdb3[1] sda3[0]
 +     ​208768 blocks [2/2] [UU]
 +
 +md1 : active raid1 sdb2[1] sda2[0]
 +     ​2104448 blocks [2/2] [UU]
 +
 +md0 : active raid1 sdb1[1] sda1[0]
 +     ​208768 blocks [2/2] [UU]
 +
 +unused devices: ​
 +</​code>​
 +
 +===== Установка загрузчика GRUB =====
 +Если в системе используется загрузчик GRUB2 и если сервер не загружен с LiveCD (режимы rescue, recovery), достаточно выполнить следующие команды (при этом нет необходимости дожидаться окончания процесса синхронизации):​
 +<​code>​
 +# grub-install /dev/sdb
 +# update-grub
 +</​code>​
 +
 +Если сервер загружен с LiveCD (режимы rescue, recovery) установка загрузчика выглядит следующим образом:​
 +  - Монтируем корневую файловую систему в  /​mnt:<​code>​
 +# mount /dev/md2 /​mnt</​code>​
 +  - Монтируем /​boot:<​code>​
 +# mount /dev/md0 /​mnt/​boot</​code>​
 +  - Монтируем /dev, /proc и /​sys:<​code>​
 +# mount --bind /dev /mnt/dev
 +# mount --bind /proc /mnt/proc
 +# mount --bind /sys  /​mnt/​sys</​code>​
 +  - Делаем chroot в примонтированную систему:<​code>​
 +# chroot /​mnt</​code>​
 +  - Устанавливаем grub на sdb:<​code>​
 +# grub-install /dev/sdb
 +# update-grub</​code>​
 +Теперь можно загрузится в нормальный режим.
  
wiki/technical/ds/change_hdd_softraid1.txt · Последние изменения: 2017/04/07 19:51 (внешнее изменение)