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

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


wiki:technical:ds:change_hdd_softraid1
no way to compare when less than two revisions

Различия

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


Предыдущая версия
wiki:technical:ds:change_hdd_softraid1 [2017/04/07 22:51] (текущий) – внешнее изменение 127.0.0.1
Строка 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 22:51 — 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki