Установка и настройка серверов Linux,создание сайтов, установка и настройка Asterisk PBX, Linux для начинающих и не только.
Получать статьи этого сайта на почту:

 

04
Авг 2017
sergldom
автор
0
комментариев
Рейтинг статьи:
5
Средняя: 5 (2 оценки)

Добавляем и удаляем винчестер в SoftRAID

   В прошлой инструкции мы установили операционную систему в 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) то, в зависимости от того какой диск выпал, потребуется больше шагов

  1. Запустить консоль grub: grub
  2. Указать раздел, на котором лежит /boot: root (hd0,1) (/dev/sda2 = (hd0,1))
  3. Записать загрузчик в MBR: setup (hd0)
  4. Для того чтобы записать загрузчик на второй жёсткий диск:
  5. Укажите grub переключиться на sdb: device (hd0) /dev/sdb
  6. В точности повторить шаги 2 и 3
  7. Завершить консоль 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

 

С Вами был Сергей Лазаренко.

 

Рейтинг статьи: 

5
Средняя: 5 (2 оценки)

Вам понравилась статья? Хотите получать уведомления о выходе новых статей с этого сайта на свой почтовый адрес? Подписывайтесь пожалуйста. Введите свой почтовый адрес и нажмите кнопку Хочу получать статьи!

<![CDATA[]]><![CDATA[]]>

 

*Адреса электронной почты не разглашаются и не предоставляются третьим лицам для коммерческого или некоммерческого использования.

 

 
 

 

Добавить комментарий

Filtered HTML

  • Поисковые системы будут индексировать и переходить по ссылкам на разрешённые домены.

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
  • Поисковые системы будут индексировать и переходить по ссылкам на разрешённые домены.

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.