В прошлой инструкции мы установили операционную систему в SoftRAID на один винчестер с тем, что позже добавим еще винчестер в raid массив.
Приступим к добавлению нового винчестера в SoftRAID:
Добавляем такой же винчестер в сервер, загружаем сервер, авторизируемся и проверяем видит ли система винчестер выполнив команду:
fdisk -l
Ответ системы, где видим новый винчестер /dev/sdb без разделов:
Disk /dev/sdb: 80 GiB, 85899345920 bytes, 167772160 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x8eb9611b Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 999423 997376 487M fd Linux raid autodetect /dev/sda2 1001470 167770111 166768642 79,5G 5 Extended /dev/sda5 1001472 4904959 3903488 1,9G 82 Linux swap / Solaris /dev/sda6 4907008 83030015 78123008 37,3G fd Linux raid autodetect /dev/sda7 83032064 89669631 6637568 3,2G fd Linux raid autodetect /dev/sda8 89671680 167770111 78098432 37,2G fd Linux raid autodetect
Проверка статуса raid массива производится командой:
cat /proc/mdstat
Ответ системы, когда в системе подключен только один винчестер, то есть в каждом из Raid массиве подключен только sdaX, где X номер раздела:
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sda1[0] 498368 blocks super 1.2 [2/1] [U_] md1 : active raid1 sda6[0] 39028736 blocks super 1.2 [2/1] [U_] md2 : active raid1 sda7[0] 3316736 blocks super 1.2 [2/1] [U_] md3 : active raid1 sda8[0] 39016448 blocks super 1.2 [2/1] [U_]
Подготовка нового жёсткого диска для Raid массива
Оба диска в массиве должны иметь одинаковое разбиение. В зависимости от используемого типа таблицы разделов (MBR или GPT) необходимо использовать соответствующие утилиты для копирования таблицы разделов. Как правило, GPT используется в дисках более 2ТБ.
Жёсткий диск с MBR
Таблица разделов может быть просто скопирована на новый диск с помощью программы sfdisk выполнив команду:
sfdisk -d /dev/sda | sfdisk /dev/sdb
где /dev/sda — это источник, а /dev/sdb — жёсткий диск назначения.
Ответ системы:
Checking that no-one is using this disk right now ... OK Disk /dev/sdb: 80 GiB, 85899345920 bytes, 167772160 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes >>> Script header accepted. >>> Script header accepted. >>> Script header accepted. >>> Script header accepted. >>> Created a new DOS disklabel with disk identifier 0x8eb9611b. /dev/sdb1: Created a new partition 1 of type 'Linux raid autodetect' and of size 487 MiB. /dev/sdb2: Created a new partition 2 of type 'Extended' and of size 79,5 GiB. /dev/sdb3: Created a new partition 5 of type 'Linux swap / Solaris' and of size 1,9 GiB. /dev/sdb6: Created a new partition 6 of type 'Linux raid autodetect' and of size 37,3 GiB. /dev/sdb7: Created a new partition 7 of type 'Linux raid autodetect' and of size 3,2 GiB. /dev/sdb8: Created a new partition 8 of type 'Linux raid autodetect' and of size 37,2 GiB. /dev/sdb9: Done. New situation: Device Boot Start End Sectors Size Id Type /dev/sdb1 * 2048 999423 997376 487M fd Linux raid autodetect /dev/sdb2 1001470 167770111 166768642 79,5G 5 Extended /dev/sdb5 1001472 4904959 3903488 1,9G 82 Linux swap / Solaris /dev/sdb6 4907008 83030015 78123008 37,3G fd Linux raid autodetect /dev/sdb7 83032064 89669631 6637568 3,2G fd Linux raid autodetect /dev/sdb8 89671680 167770111 78098432 37,2G fd Linux raid autodetect The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
Проверяем как видит система новый винт со скопированной таблицей разделов выполнив команду:
fdisk -l
Ответ системы:
Disk /dev/sdb: 80 GiB, 85899345920 bytes, 167772160 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x8eb9611b Device Boot Start End Sectors Size Id Type /dev/sdb1 * 2048 999423 997376 487M fd Linux raid autodetect /dev/sdb2 1001470 167770111 166768642 79,5G 5 Extended /dev/sdb5 1001472 4904959 3903488 1,9G 82 Linux swap / Solaris /dev/sdb6 4907008 83030015 78123008 37,3G fd Linux raid autodetect /dev/sdb7 83032064 89669631 6637568 3,2G fd Linux raid autodetect /dev/sdb8 89671680 167770111 78098432 37,2G fd Linux raid autodetect Disk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x8eb9611b Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 999423 997376 487M fd Linux raid autodetect /dev/sda2 1001470 167770111 166768642 79,5G 5 Extended /dev/sda5 1001472 4904959 3903488 1,9G 82 Linux swap / Solaris /dev/sda6 4907008 83030015 78123008 37,3G fd Linux raid autodetect /dev/sda7 83032064 89669631 6637568 3,2G fd Linux raid autodetect /dev/sda8 89671680 167770111 78098432 37,2G fd Linux raid autodetect
Если разделы не видны в системе, то таблица разделов должна быть перечитана ядром системы выполнив команду:
sfdisk -R /dev/sdb
Конечно же, разделы можно создать вручную с помощью программ . После этого диск можно добавлять в массив и устанавливать на него загрузчик.
Жёсткий диск с GPT
На жёстком диске хранится несколько копий таблицы разделов GUID (GPT), поэтому для её редактирования следует использовать утилиты, поддерживающие GPT, например parted или GPT fdisk. Утилита sgdisk из GPT fdisk позволяет простым способом скопировать таблицу разделов на новый жёсткий диск. Пример копирования таблицы разделов с sda на sdb:
sgdisk -R /dev/sdb /dev/sda
Далее жёсткому диску надо задать новый случайный UUID:
sgdisk -G /dev/sdb
После этого диск можно добавлять в массив и устанавливать на него загрузчик.
Добавление нового жёсткого диска
В нашем случае в RAID массиве только один системный диск, потому добавляем новый подговленный винчестер в Raid массив. Это необходимо сделать для каждого раздела, выполнив команды:
mdadm /dev/md0 -a /dev/sdb1 mdadm /dev/md1 -a /dev/sdb6 mdadm /dev/md2 -a /dev/sdb7 mdadm /dev/md3 -a /dev/sdb8
Ответ системы:
mdadm /dev/md0 -a /dev/sdb1 mdadm: added /dev/sdb1 mdadm /dev/md1 -a /dev/sdb6 mdadm: added /dev/sdb6 mdadm /dev/md2 -a /dev/sdb7 mdadm: added /dev/sdb7 mdadm /dev/md3 -a /dev/sdb8 mdadm: added /dev/sdb8
Проверяем статус проверки синхронизации добавленных разделов в Raid массив выполнив команду:
cat /proc/mdstat
Ответ системы:
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb1[2] sda1[0] 498368 blocks super 1.2 [2/2] [UU] md1 : active raid1 sdb6[2] sda6[0] 39028736 blocks super 1.2 [2/1] [U_] [===============>.....] recovery = 75.3% (29421184/39028736) finish=0.7min speed=199752K/sec md2 : active raid1 sdb7[2] sda7[0] 3316736 blocks super 1.2 [2/1] [U_] resync=DELAYED md3 : active raid1 sdb8[2] sda8[0] 39016448 blocks super 1.2 [2/1] [U_] resync=DELAYED unused devices: <none>
Наш новый винчестер добавлен в Raid массив и после синхронизации статус массивов виден как [UU]:
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb1[2] sda1[0] 498368 blocks super 1.2 [2/2] [UU] md1 : active raid1 sdb6[2] sda6[0] 39028736 blocks super 1.2 [2/2] [UU] md2 : active raid1 sdb7[2] sda7[0] 3316736 blocks super 1.2 [2/2] [UU] md3 : active raid1 sdb8[2] sda8[0] 39016448 blocks super 1.2 [2/2] [UU] unused devices: <none>
Установка загрузчика
После установки нового винчестера аналогичного размера, либо можно большего размера и как в начале этой статьи необходимо подготовить винчестер и добавить его в SoftRAID массив.
Устанавливаем загрузчик Grub2 на новый винчестер выполнив команду для каждого винчестера:
grub-install /dev/sda grub-install /dev/sdb
Ответ системы:
grub-install /dev/sda Выполняется установка для платформы i386-pc. Установка завершена. Ошибок нет. grub-install /dev/sdb Выполняется установка для платформы i386-pc. Установка завершена. Ошибок нет.
В случае Grub1 (устаревшая версия grub) то, в зависимости от того какой диск выпал, потребуется больше шагов
- Запустить консоль grub: grub
- Указать раздел, на котором лежит /boot: root (hd0,1) (/dev/sda2 = (hd0,1))
- Записать загрузчик в MBR: setup (hd0)
- Для того чтобы записать загрузчик на второй жёсткий диск:
- Укажите grub переключиться на sdb: device (hd0) /dev/sdb
- В точности повторить шаги 2 и 3
- Завершить консоль grub: quit
Удаляем винчестер из raid массива
Если у Вас винчестер сломался, либо начал сыпатся, необходимо удалить все разделы из массива, проверяем статус массива выполнив команду:
cat /proc/mdstat
Ответ системы где вышел из строя винчестер:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md1 : active raid1 sda6[0] 39028736 blocks super 1.2 [2/1] [U_] md2 : active raid1 sda7[0] 3316736 blocks super 1.2 [2/1] [U_] md3 : active raid1 sda8[0] 39016448 blocks super 1.2 [2/1] [U_] md0 : active raid1 sda1[0] 498368 blocks super 1.2 [2/1] [U_] unused devices: <none>
Если Вам необходимо отключить винчестер из-за того, что он сломался, либо стал сбоить Вы увидите, что в одном из разделов, либо у всех одновременно будет прочерк, нам необходимо каждый раздел из raid массива удалить выполнив команду на примере, что у нас вышел из строя винчестер /dev/sdb
Выполняем команды:
mdadm /dev/md0 -r /dev/sdb1 mdadm /dev/md1 -r /dev/sdb6 mdadm /dev/md2 -r /dev/sdb7 mdadm /dev/md3 -r /dev/sdb8
Увидеть разделы винчестера входящие в массив можно увидеть выполнив команду для каждого Raid массива:
mdadm --detail /dev/md0
В некоторых случаях, жёсткий диск может быть повреждён частично, например, статус [U_] только у массива /dev/md0, а все другие массивы имеют статус [UU]. В таком случае команда
mdadm /dev/md1 -r /dev/sdb6
не пройдёт, так как устройство /dev/md1 в порядке.
Чтобы это исправить, нужно сначала пометить раздел как поврежденный выполнив команды:
mdadm --manage /dev/md1 --fail /dev/sdb6 mdadm --manage /dev/md2 --fail /dev/sdb7 mdadm --manage /dev/md3 --fail /dev/sdb8
После чего удаляем разделы из массива выполнив команды с ключем -r:
mdadm /dev/md0 -r /dev/sdb1 mdadm /dev/md1 -r /dev/sdb6 mdadm /dev/md2 -r /dev/sdb7 mdadm /dev/md3 -r /dev/sdb8
После удаления разделов из рейд массива можно выключить компьютер, изъять сломанный винт и заменить его.
Проверка работы SofttRAID
После настройки сервера обязательно необходимо протестировать загрузку системы на каждом из винчестеров установленных в Raid массив, для этого необходимо отключить второй винчестер физически, включить сервер, удостоверится, что сервер загружается.
Затем отключаем первый винчестер и подключаем второй винчестер, и также удостоверяемся, что система загружается.
После тестирования каждого винчестера в отдельности, необходимо подключить оба винчестера и проверить что оба винчестера подключены к Raid массиву без ошибок выполнив команду:
cat /proc/mdstat
П.С.
Если Вам необходимо узнать серийный номер винчестера, необходимо выполнить команды:
/sbin/udevadm info --query=property --name=sdb | grep ID_SERIAL
Ответ команды:
ID_SERIAL=TOSHIBA_DT01ACA300_23CEKJJWS ID_SERIAL_SHORT=23CEKJJWS
С Вами был Сергей Лазаренко.
Добавить комментарий