Centos stream установка на raid

Обновлено: 05.07.2024

Данное руководство показывает, как создать программный массив RAID1 на уже установленной и работающей системе CentOS 5.3. Загрузчик GRUB будет настроен таким образом, чтобы при выходе из строя одного из дисков (любого) система все равно запускалась.

1 Введение

В этом руководстве я использую систему CentOS 5.3 с двумя одинаковыми по размеру жесткими дисками, /dev/sda и /dev/sdb . /dev/sdb пока не используется, а /dev/sda имеет следующие разделы:

  • /dev/sda1 : раздел /boot (ext3);
  • /dev/sda2 : раздел swap;
  • /dev/sda3 : раздел / (ext3)

В итоге я хочу получить следующую ситуацию:

  • /dev/md0 (полученный из /dev/sda1 и /dev/sdb1 ): раздел /boot (ext3);
  • /dev/md1 (полученный из /dev/sda2 и /dev/sdb2 ): раздел swap;
  • /dev/md2 (полученный из /dev/sda3 и /dev/sdb3 ): раздел / (ext3)

А вот что имеем сейчас:

2 Установка mdadm

Для создания RAID будем использовать утилиту mdadm . Давайте установим ее:

Далее подгрузим несколько модулей ядра (чтобы избежать перезагрузки):

modprobe linear
modprobe multipath
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid6
modprobe raid10

Теперь запускаем cat /proc/mdstat , на выходе должны получить следующее:

3 Подготовка /dev/sdb

Для создания массива RAID1 на нашей уже запущенной системе, необходимо подготовить диск /dev/sdb к данной процедуре, затем скопировать на него содержимое /dev/sda и только после этого наконец добавить /dev/sda к массиву.

Сначала мы копируем таблицу разделов диска /dev/sda на диск /dev/sdb , чтобы оба диска имели абсолютно идентичную разметку:

На выходе должны получить следующее:

Команда fdisk -l должна теперь показать идентичную разметку обоих дисков:

Далее необходимо изменить тип всех трех разделов /dev/sdb на Linux raid autodetect :

The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): <-- m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Command (m for help): <-- t
Partition number (1-4): <-- 1
Hex code (type L to list codes): <-- L

0 Empty 1e Hidden W95 FAT1 80 Old Minix bf Solaris
1 FAT12 24 NEC DOS 81 Minix / old Lin c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 82 Linux swap / So c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c7 Syrinx
5 Extended 41 PPC PReP Boot 85 Linux extended da Non-FS data
6 FAT16 42 SFS 86 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set de Dell Utility
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext df BootIt
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi ee EFI GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a6 OpenBSD f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
Hex code (type L to list codes): <-- fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help): <-- t
Partition number (1-4): <-- 2
Hex code (type L to list codes): <-- fd
Changed system type of partition 2 to fd (Linux raid autodetect)

Command (m for help): <-- t
Partition number (1-4): <-- 3
Hex code (type L to list codes): <-- fd
Changed system type of partition 3 to fd (Linux raid autodetect)

Command (m for help): <-- w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@server1

Чтобы убедиться в том, что на диске /dev/sdb не осталось ничего от возможных предыдущих установок RAID, выполняем следующие команды:

mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
mdadm --zero-superblock /dev/sdb3

Если следов от предыдущих установок RAID нету, то каждая из этих команд выдаст ошибку (это нормально, не волнуйтесь) вроде такой:

Иначе же команды вообще ничего не отобразят.

4 Создание RAID массивов

Теперь давайте перейдем к созданию наших RAID массивов /dev/md0 , /dev/md1 и /dev/md2 . /dev/sdb1 будет добавлен к /dev/md0 , /dev/sdb2 к /dev/md1 , а /dev/sdb3 - к /dev/md2 . /dev/sda1 , /dev/sda2 и /dev/sda3 нельзя добавить к массиву сразу - на них сейчас запущена система - поэтому мы используем заполнитель missing в следующих трех командах:

mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2
mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb3

Команда cat /proc/mdstat должна сейчас показать, что мы имеем три деградированных RAID массива ( [_U] или [U_] означает, что массив деградированный, тогда как [UU] означает, что с массивом все в порядке):

Следующий шаг - создание файловых систем на наших массивах (ext3 на /dev/md0 и /dev/md2 , swap на /dev/md1 ):

mkfs.ext3 /dev/md0
mkswap /dev/md1
mkfs.ext3 /dev/md2

Теперь создаем /etc/mdadm.conf следующим образом:

Отображаем содержимое файла:

В файле должна находиться подробная информация о нашей троице массивов (деградированных на данный момент):

5 Настройка системы под RAID1

Приступаем к монтированию /dev/md0 и /dev/md2 (естественно, swap массив /dev/md1 монтировать не нужно):

mkdir /mnt/md0
mkdir /mnt/md2

mount /dev/md0 /mnt/md0
mount /dev/md2 /mnt/md2

Оба массива должны быть видны при выводе команды mount :

Отредактируем /etc/fstab . Заменим LABEL=/boot на /dev/md0 , LABEL=SWAP-sda2 на /dev/md1 , LABEL=/ на /dev/md2 , чтобы файл при выводе ( vi /etc/fstab ) выглядел вот так:

Идем дальше. Заменяем /dev/sda1 на /dev/md0 , а /dev/sda3 на /dev/md2 в файле /etc/mtab :

Настало время GRUB. Открываем /boot/grub/menu.lst и добавляем fallback=1 сразу после default=0 :

Этим мы указываем, чтобы в случае ошибки загрузки первого ядра (отсчет идет с 0, так что первое ядро имеет номер 0) загружалось второе.

В конце того же файла находятся блоки с описанием параметров ядер для загрузки. Копируем первый блок и вставляем его самым первым по списку, при этом заменив в нем root=LABEL=/ на root=/dev/md2 и root (hd0,0) на root (hd1,0) :

После всех этих махинаций файл должен выглядеть примерно так:

root (hd1,0) ссылается на /dev/sdb , который уже является частью нашего RAID массива. Скоро мы перезагрузим систему: она попытается загрузиться с нашего (все еще деградированного) массива; если не получится, она загрузится с раздела /dev/sda (-> fallback 1 ).

Далее подстроим наш RAM-диск под новую ситуацию:

mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig
mkinitrd /boot/initrd-`uname -r`.img `uname -r`

После чего скопируем содержимое /dev/sda1 и /dev/sda3 на /dev/md0 и /dev/md2 соответственно (последние сейчас смонтированы на /mnt/md0 и /mnt/md2 ):

cd /boot
cp -dpRx . /mnt/md0

6 Подготовка GRUB (часть 1)

Теперь необходимо установить GRUB на второй жесткий диск, /dev/sdb . Запускаем оболочку ( grub ) и вводим следующие команды:

Теперь, уже в "нормальной" оболочке, перезагрузим систему и будем надеяться, что она нормально загрузится с нашего RAID массива:

7 Подготовка /dev/sda

Если все прошло удачно, мы должны увидеть /dev/md0 и /dev/md2 в выводе команды df -h

Вывод команды cat /proc/mdstat должен выглядеть так:

Теперь нужно изменить типы всех трех разделов /dev/sda на уже знакомый нам Linux raid autodetect :

The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): <-- t
Partition number (1-4): <-- 1
Hex code (type L to list codes): <-- fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help): <-- t
Partition number (1-4): <-- 2
Hex code (type L to list codes): <-- fd
Changed system type of partition 2 to fd (Linux raid autodetect)

Command (m for help): <-- t
Partition number (1-4): <-- 3
Hex code (type L to list codes): <-- fd
Changed system type of partition 3 to fd (Linux raid autodetect)

Command (m for help): <-- w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@server1

Осталось добавить /dev/sda1 , /dev/sda2 и /dev/sda3 к соответствующим RAID массивам:

mdadm --add /dev/md0 /dev/sda1
mdadm --add /dev/md1 /dev/sda2
mdadm --add /dev/md2 /dev/sda3

Выполните команду cat /proc/mdstat и вы должны увидеть, что идет процесс синхронизации массивов:

(Можно выполнить watch cat /proc/mdstat для наблюдения за ходом процесса. Остановить watch можно, нажав CTRL+C )

Дождитесь окончания синхронизации. После этого все должно выглядеть следующим образом:

Теперь отредактируем /etc/mdadm.conf , чтобы он соответствовал новой ситуации:

В результате содержимое файла должно выглядеть так:

8 Подготовка GRUB (часть 2)

Уже почти все готово. Сейчас нам просто нужно снова отредактировать /boot/grub/menu.lst . Ведь на данный момент он сконфигурирован так, чтобы загружаться с /dev/sdb ( hd1,0 ). А нам, естественно, нужно, чтобы система могла загружаться даже в том случае, если /dev/sdb откажет. Поэтому копируем первый блок параметров ядра (содержащий hd1 ), вставляем скопированное следующим по списку блоком и заменяем hd1 на hd0 . Потом закомментируем все другие блоки и получим следующее:

Теперь обновим RAM-диск:

mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig2
mkinitrd /boot/initrd-`uname -r`.img `uname -r`

Загрузка должна пройти без проблем.

Вот и всё - мы успешно создали и настроили программный массив RAID1 на работающей CentOS 5.3!

9 Тестирование

Что ж, давайте симулируем отказ жесткого диска. Неважно, какого именно - /dev/sda или /dev/sdb . Представим, что отказал /dev/sdb .

Для осуществления этого эксперимента, можно либо выключить систему и вытащить диск физически, либо "удалить" его программно::

mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md1 --fail /dev/sdb2
mdadm --manage /dev/md2 --fail /dev/sdb3

mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm --manage /dev/md1 --remove /dev/sdb2
mdadm --manage /dev/md2 --remove /dev/sdb3

Вставляем новый диск /dev/sdb (если вы симулируете отказ /dev/sda , то сейчас вы должны установить /dev/sdb на место /dev/sda , а новый HDD подключить как /dev/sdb !) и включаем машину. Всё должно загрузиться без проблем.

Теперь выполним cat /proc/mdstat и видим, что у нас снова имеется деградированный массив:

Вывод fdisk -l должен выглядеть так:

Копируем таблицу разделов c /dev/sda на /dev/sdb :

Если появляется ошибка, попробуйте запустить с параметром --force :

Удаляем возможные следы предыдущих RAID массивов.

mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
mdadm --zero-superblock /dev/sdb3

. и добавляем /dev/sdb в массив:

mdadm -a /dev/md0 /dev/sdb1
mdadm -a /dev/md1 /dev/sdb2
mdadm -a /dev/md2 /dev/sdb3

Посмотрим, что нам покажет cat /proc/mdstat :

Ждем, пока закончится процесс синхронизации:

Запускаем grub и устанавливаем загрузчик на оба HDD:

root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit

RAID означает избыточный массив независимых дисков. Он был в основном разработан, чтобы позволить объединить множество дисков (таких как HDD, SSD и NVMe) в массив для реализации избыточности. Этот массив устройств представляется компьютеру как единый логический накопитель или диск. Избыточность не может быть достигнута с помощью одного огромного диска, подключенного к вашему проекту, потому что восстановление данных будет практически невозможно в случае аварии. В RAID, даже если массив состоит из нескольких дисков, компьютер « видит » его как один диск или единое логическое устройство хранения, что довольно удивительно.

Определение терминов

Используя такие методы, как чередование дисков (уровень RAID 0), зеркалирование дисков (уровень RAID 1) и чередование дисков с контролем четности (уровни RAID 5, 4 и 6), RAID может обеспечить избыточность, более низкую задержку, увеличенную пропускную способность и максимальную производительность. возможность восстановления после сбоев жесткого диска.

Основные причины, по которым вам следует рассмотреть возможность развертывания RAID в своих проектах, включают следующее:

  • Достижение лучших скоростей
  • Увеличивает емкость хранилища с помощью одного виртуального диска
  • Минимизирует потерю данных из-за отказа диска. В зависимости от типа RAID вы сможете добиться избыточности, которая впоследствии спасет вас в случае потери данных.

Технология RAID бывает трех видов: микропрограммный RAID, аппаратный RAID и программный RAID. Аппаратный RAID обрабатывает свои массивы независимо от хоста и по-прежнему предоставляет хосту по одному диску на массив RAID. Он использует карту аппаратного RAID-контроллера, которая прозрачно для операционной системы обрабатывает задачи RAID. Программный RAID, с другой стороны, реализует различные уровни RAID в коде диска ядра (блочного устройства) и предлагает самое дешевое решение, поскольку не требуются дорогие карты контроллера диска или шасси с горячей заменой. В нынешнюю эпоху существуют более быстрые процессоры, поэтому программный RAID обычно превосходит аппаратный RAID.

  • Переносимость массивов между машинами Linux без реконструкции
  • Реконструкция фонового массива с использованием неработающих системных ресурсов
  • Поддержка дисков с возможностью горячей замены
  • Автоматическое определение ЦП для использования некоторых функций ЦП, таких как поддержка потоковой передачи SIMD
  • Автоматическое исправление сбойных секторов на дисках в массиве
  • Регулярные проверки целостности данных RAID для обеспечения работоспособности массива.
  • Упреждающий мониторинг массивов с оповещениями по электронной почте, отправляемыми на указанный адрес электронной почты о важных событиях
  • Растровые изображения с намерением записи, которые резко увеличивают скорость событий повторной синхронизации, позволяя ядру точно знать, какие части диска необходимо повторно синхронизировать, вместо повторной синхронизации всего массива

Настройка RAID на CentOS 8

Сделав краткое введение, давайте рассмотрим суть вопроса и настроим различные уровни RAID в CentOS 8. Прежде чем продолжить, нам понадобится инструмент mdadm, который поможет в настройке различных уровней RAID.

Настройка RAID уровня 0 в CentOS 8

Как уже упоминалось, RAID 0 обеспечивает чередование без четности и требует как минимум двух жестких дисков. Он хорошо работает, когда его скорость сравнивается с остальными, потому что он не хранит никаких данных четности и выполняет операции чтения и записи одновременно.

Посмотрим, какие диски есть на нашем сервере:

Как показано выше, к серверу подключены три необработанных диска ( sdb, sdc и sdd ). Мы начнем с очистки дисков, а затем разбиваем их на разделы, прежде чем создавать на них RAID.

Создайте по одному разделу на каждом из дисков и установите флаг RAID.

Вы должны увидеть созданные новые разделы (sdb1, sdc1, sdd1):

После того, как разделы будут готовы, перейдите к созданию устройства RAID 0. Чередование уровней аналогично RAID 0, поскольку предлагает только чередование данных.

Узнайте статус вашего RAID-устройства, используя любую из следующих команд:

Если все выглядит красиво, создайте файловую систему по вашему выбору на новом устройстве RAID.

Затем нам нужно смонтировать новое устройство в файловой системе, чтобы оно начало хранить файлы и каталоги. Создайте новую точку монтирования:

Настроить монтирование в /etc/fstab:

Если вы не уверены в типе файловой системы, введите команду ниже и измените ext4 на ТИП, который будет показан.

Убедитесь, что он может быть установлен правильно:

Настройка RAID уровня 1 в CentOS 8

RAID 1 обеспечивает зеркалирование дисков или четность без чередования. Он просто записывает все данные на два диска, и поэтому, если один диск выходит из строя или извлекается, все данные будут доступны на другом диске. Поскольку он записывает на два диска, RAID 1 требует двойных жестких дисков, так что, если вы хотите использовать 2 диска, вам придется установить 4 диска для установки.

Прежде чем мы начнем, давайте очистим все диски перед тем, как мы начнем конфигурации RAID, чтобы убедиться, что мы начинаем с чистых дисков.

Создайте по одному разделу на каждом из дисков и установите флаг RAID.

Создать устройство RAID 1:

Проверьте статус нового массива:

После этого создайте точку монтирования, в которую будет монтироваться устройство:

Снова настройте монтирование в /etc/fstab:

Убедитесь, что он может быть установлен правильно:

Настройка RAID уровня 10 в CentOS 8

RAID 10 сочетает в себе зеркалирование дисков (запись на два диска одновременно) и чередование дисков для защиты данных. При наличии как минимум 4 дисков RAID 10 распределяет данные по зеркальным парам. В этой конфигурации данные могут быть извлечены, пока работает один диск в каждой зеркальной паре.

Как и предыдущие уровни RAID, начните с очистки всех ваших сырых дисков.

Создайте по одному разделу на каждом из дисков и установите флаг RAID.

Затем создайте устройство RAID 10 и проверьте его состояние:

После настройки устройства RAID создайте файловую систему, которая вам нужна. Ниже показан пример настройки xfs.

После этого создайте точку монтирования, в которую будет монтироваться устройство:

Настроить монтирование в /etc/fstab:

Убедитесь, что он может быть установлен правильно:

Остановить и удалить массив RAID

Если вы хотите удалить устройство RAID из своей системы, просто отключите точку монтирования, остановите ее и удалите с помощью приведенных ниже команд. Не забудьте заменить /mnt/raid0 своей точкой монтирования, а /dev/md0 вашим устройством RAID.

Праздничная конечная записка

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

После загрузки с установочного диска Centos 7, попадаем в меню выбора языка:

https://kb.reconn.ru/kbfiles/lLYgOvC3paMKhHgIOCExe1GXGLjYp5Y32BV0dACx.jpg

Нажимаем Continue и попадаем в меню настройки устанавливаемой ОС

https://kb.reconn.ru/kbfiles/pOlUih9I9KvVEz5CLp57CvJKQzXHqscb6OTkwlqh.jpg

Нам необходимо настроить разбивку дисков INSTALLATION DESTINATION и сеть NETWORK & HOSTNAME

Заходим в раздел INSTALLATION DESTINATION поподаем в меню настройки места установки ОС

Выбираем оба наших диска и ставим галку, что мы настроим разделы сами I wil configure pertitionining

https://kb.reconn.ru/kbfiles/oQXX3rdrQaA7YYKJVmpe1uoqIq9POq4esujBBsn7.jpg

Нажимаем DONE и попадаем в раздел ручной настройки разбиения дисков

https://kb.reconn.ru/kbfiles/k1VMyFUlKgllm996BCpMrSWq3eIDoSqYPYT2EDAz.jpg

Нажимаем плюс и создаем раздел /boot размером 512 mb

https://kb.reconn.ru/kbfiles/jVfWYHuWVbnROxAoQpTSOSYnIoq6KbF6TXQO1KVX.jpg

Указываем файловую систему ext4 , тип устройства RAID, уровень рейда RAID1 и жмем кнопку Update Settings

https://kb.reconn.ru/kbfiles/ftSQiSpDQgVJV2zm48rCIs0btxMCzfHcSCFbJFZs.jpg

Жмем плюсик и создаем раздел файла подкачки объемом 16 gb

https://kb.reconn.ru/kbfiles/mQxZac0wCt6W4XhSVCAJggGphlFZavyZgCenRgHN.jpg

Тип устройства LVM . Под Volume Group жмем Modify и попадаем в настройку LVM группы

https://kb.reconn.ru/kbfiles/wrZhtqXNj2tRup6sCy5kw6MT4Xh3ndHo0J5WoeM9.jpg

Переименовываем группу в vg, уровень рейда RAID1, размер группы максимально возможный

https://kb.reconn.ru/kbfiles/6iqL54pIYjOesPJDQ4GFfrj3Ib8mvMPbTloe4rI7.jpg

Жмем Save попадаем в окно настройки раздела swap, жмем Update Settings

https://kb.reconn.ru/kbfiles/lDgr7JvU70EUOZqAGX4I0Ag7K6ipgaUz7v9q4L3x.jpg

Жмем плюсики для создания корневого раздела. Размер у него не указываем, т.к он займет все оставшееся место

https://kb.reconn.ru/kbfiles/pNLyaKabFv0KRZ8PalOSyohFJrK1l1bCBVFA9uQr.jpg

На слудующем скриншоте видим, что уже автоматически выставился размер всего оставшегося места в группе, выбираем тип устройства LVM , файловую систему ext4

https://kb.reconn.ru/kbfiles/p8qmKtHVS527R9W9EVFnQG8jpDNvKQe0ntCHxrGr.jpg

Если мы нажмем на кнопку Modify под Volume group , то увидим, что настройки группы не изменились

https://kb.reconn.ru/kbfiles/6eFS6BiRIDqcQsBwIf0dNFUukSdIDyWMFxxW1EOw.jpg

Нажимаем в основном окне разбики дисков DONE , появится окно вносимых на диск изменений. Тут жмем Accept Changes

Настройка диска закончена

Теперь будем настраивать сеть. Заходим в меню NETWORK & HOSTNAME`

Выбираем первый интерфейс, включаем его переводим бегунок из OFF в ON и жмем Configure

https://kb.reconn.ru/kbfiles/t7msx3MX4P1p2zKb19gxIazhs19oYFNNFMyj8bse.jpg

Попадаем в окно настройки сети для данного интерфейса

https://kb.reconn.ru/kbfiles/aVwu9mPmRz9MXPhOSpR5UPPmkxsXsMeDxacMYxmo.jpg

Для начала заходим на вкладку General и устанавливаем галочку напротив Automatically connect , для того чтобы сеть поднималась автоматически при подключении к порту

https://kb.reconn.ru/kbfiles/qSJiXUeRfMxsJYJFZi0BiXKRNRoceMkE9DjHh2bF.jpg

Идем на вкладку IPV4 Settings , выбираем Метод Manual , жмем кнопку Add , вводим ip адресс, маску шлюз и DNS сервер

https://kb.reconn.ru/kbfiles/zdgvx1ehgAubNembJzRFFX1olQx5il80PCUlkd4M.jpg

Если мы не хотим использовать IPV6 протокол, то идем на вкладку IPV6 Settings и выбираем Метод Ignore

https://kb.reconn.ru/kbfiles/igNnlLydTWGaVAKJIGvjX6miieTuDlp0rR1ROvfr.jpg

Жмем кнопку Save , если сервер у нас подключен к порту коммутатора, то после этого сеть поднимется.
Жмем в основном окне настройки сети DONE . Сеть настроена.

Попадаем в меню настройки устанавливаемой ОС, больше ничего настраивать не нужно.

Нажимаем Begin installation . В процессе установки вам останется только указать пароль root.

Тема, которую я хочу затронуть, довольно популярная и рассмотрена на многих ресурсах, но для другой версии загрузчика «GRUB» и для другой версии ОС.

Преамбула

Потребовалось перенести установленный Centos 7 на software raid level 1 в ручном режиме, так как сама система ставилась через kickstart. Поискав информацию по данному вопросу, нашел материал только по старым версия ОС и по первой версии загрузчика «GRUB».

Решив, что методы аналогичные, лишь с изменением команд, взялся за дело и наткнулся на нюансы с «dracut».
По какой-то причине initramfs созданый «dracut» не видит собранного raid и отказывается грузится. Версия «dracut» 033.

Фабула

Решение было найдено и заключается оно в включении и посылке ядру опции «rd.auto=1» (опция заставляет автоматически определить и запустить все raid устройства которые есть в наличии), которая отключена по умолчанию в «dracut» начиная с версии 024.

Ниже я приведу набор команд для перевода установленной ОС на software raid level 1, для осуждения или помощи нуждающимся.

Исходные данные

Диск /dev/sda, на /dev/sda1 стоит система, размером в 4Гб.
Диск /dev/sdb полностью чистый.

Команды

1. Копируем полностью разделы, с sda на sdb:


2. Через fdisk меняем id 83 на fd на sdb1:


3. Делаем raid level 1 с одним диском:


4. Форматируем получившийся /dev/md0:


5. Монтируем наш /dev/md0:


6. Копируем текущую сис-му на /dev/md0:


7. Монтируем информацию о текущей системе в наш новый корень и делаем chroot в него:


8. Получаем uuid /dev/md0 и вносим его в fstab, где заменяем uuid sda1 на uuid md0:


9. Создаем конфиг для mdadm, чтоб md0 не сменил имя при перезагрузке:


10. Делаем новый initramfs, с нужными модулями (вот тут-то dracut и подкачал):


11. Передаем ядру опцию «rd.auto=1» явно через «GRUB», для этого, добавляем ее в «GRUB_CMDLINE_LINUX»:


12. Перепишем конфиг «GRUB» и установим его на наш диск sdb:


13. Убеждаемся, что uuid md0 и опция «rd.auto=1» точно записались:


14. Производим reboot машины и через bios boot меню выбираем диск с половинкой raid

15. После удачной загрузки, переделываем sda в часть raid. Меняем id 83 на fd через fdisk, добавляем диск в raid и переустанавливаем «GRUB» на диск:


После этого смотрим как собирается raid через /proc/mdstat и можно попробовать загрузится с первого диска.

Ещё один блог о системном администрировании, операционных системах, СУБД, сетях, костылях-велосипедах и пр.

В данной заметке будет описан процесс создания программного raid1 массива на уже установленной и работающей системе CentOS7. Также настроим загрузчик grub таким образом, чтобы при выходе из строя одного из дисков система всеравно запустилась.


Об этой теме в интернете написано довольно много и рассмотрена она на многих ресурсах (вот тут даже на Хабре есть описание), но я решил описать этот процесс здесь, чтобы потом долго не искать, если вдруг что-то забуду. Создаваться массив будет с помощью утилиты mdadm, в конце заметки будут даны несколько примеров ее использования.

  1. Диск /dev/sda, на котором имеются следующие разделы:
    • /dev/sda1 - раздел / с файловой системой ext4
    • /dev/sda2 - swap
    • /dev/sda3 - раздел /opt с файловой системой ext4
  2. Абсолютно чистый /dev/sdb, идентичный по размеру с /dev/sda

В результате должно получиться следующее:

  • /dev/md0, полученный из /dev/sda1 и /dev/sdb1
  • /dev/md1, полученный из /dev/sda2 и /dev/sdb2
  • /dev/md2, полученный из /dev/sda3 и /dev/sdb3

Как я уже написал в начале заметки, для создания массива будет использоваться утилита mdadm.
Для ее установки:

Для создания массива raid1 на уже работающей системе, необходимо подготовить диск /dev/sdb, скопировать на него все содержимое диска /dev/sda и только после этого добавить /dev/sda к массиву.

Для начала копируем таблицу разделов диска /dev/sda на диск /dev/sdb:

Команда fdisk -l должна теперь показать идентичную разметку обоих дисков.

Желательно (но не обязательно) изменить тип всех трех разделов и установить его равным FD (Linux RAID autodetect). Изменить тип раздела можно с помощью fdisk:

Перейдем к созданию raid1 массивов. Поскольку диск /dev/sda сейчас занят (на нем запущена система) разделы /dev/sda1, /dev/sda2 и /dev/sda3 нельзя добавить к массиву. Создаем raid1 из одного диска, для вторго используем заполнитель missing:

Следующий шаг – создание файловых систем на наших массивах:

Теперь монтируем наши /dev/md0 и /dev/md2 для копирования текущей системы. Естественно, swap массив /dev/md1 монтировать не нужно:

Копируем содержимое разделов /dev/sda1 и /dev/sda3 на /dev/md0 и /dev/md2 соответственно:

Монтируем информацию о текущей системе в наш новый корень и делаем chroot в него:

Получаем UUID /dev/md0, /dev/md1 и /dev/md2, вносим их в /etc/fstab, где заменяем UUID разделов диска /dev/sda:

Создаем конфиг для mdadm:

Делаем новый initramfs:

Передаем ядру опцию "rd.auto=1" явно через grub, для этого добавляем ее в GRUB_CMDLINE_LINUX:

Перепишем конфиг grub и установим его на наш диск sdb:

Далее выполним перезагрузку сервера. Через BIOS Boot Menu выбираем диск с половинкой raid.

После удачной загрузки, переделываем sda в часть raid1 массива. С помощью fdisk изменим тип всех трех разделов и установим его равным FD (Linux RAID autodetect). Далее добавим диск в raid1 и переустановим grub на диск:

После этого можем посмотреть как собирается raid1 массив через /proc/mdstat:

На этом все, программный raid1 успешно создан!

Ниже несколько примеров для работы с утилитой mdadm.

Примеры использования mdadm

Пометка диска как сбойного

Диск в массиве можно условно сделать сбойным, ключ --fail (-f):

Удаление сбойного диска

Сбойный диск можно удалить с помощью ключа --remove (-r):

Добавление нового диска

Добавить новый диск в массив можно с помощью ключей --add (-a) и --re-add:

Сборка существующего массива

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

Расширение массива

Расширить массив можно с помощью ключа --grow (-G). Сначала добавляется диск, а потом массив расширяется:

Проверяем, что диск (раздел) добавился:

Если раздел действительно добавился, мы можем расширить массив:

Опция --raid-devices указывает новое количество дисков используемое в массиве. Например, было 3 диска, а теперь расширяем до 4-х - указываем 4.

Рекомендуется задать файл бэкапа на случай прерывания перестроения массива, например добавить:

При необходимости, можно регулировать скорость процесса расширения массива, указав нужное значение в файлах

Читайте также: