воскресенье, 28 июля 2019 г.

Настройка программного RAID1 на работающей системе Ubuntu

The Software-RAID HOWTO
Настройка программного RAID1 на работающей системе Ubuntu
Создание RAID-массивов с помощью mdadm в Ubuntu 16.04
Настройка программного RAID-1 на работающей системе Ubuntu 14
Setting up RAID on an existing Debian/Ubuntu installation

Установка RAID1 на работающую систему с файлом подкачки

За основу взята:
Configuring Software RAID1 after installation of Ubuntu 16

Установка необходимых пакетов: 

$ sudo apt update
$ sudo apt upgrade
===========================
Если обновилось ядро:
$ sudo reboot
$ sudo apt autoremove
$ sudo reboot
$ sudo reboot
===========================
#$ sudo apt-get install mdadm initramfs-tools
$ sudo modprobe linear
$ sudo modprobe multipath
$ sudo modprobe raid0
$ sudo modprobe raid1
$ sudo modprobe raid5
$ sudo modprobe raid6
$ sudo modprobe raid10


Проверка:
$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices: <none>

Если диск sdb содержит таблицу разделов, ее нужно удалить
$ sudo fdisk /dev/sdb
p
d
o

Получение точной копии разделов диска (MBR)
$ sudo partprobe

$ sudo sfdisk -d /dev/sda | sudo sfdisk --force /dev/sdb

$ sudo fdisk -l



Удаление следов RAID:

$ sudo mdadm --zero-superblock /dev/sdb
mdadm: Unrecognised md component device - /dev/sdb
user@u1604:~$ sudo mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb
mdadm: /dev/sdb appears to be part of a raid array:
       level=raid0 devices=0 ctime=Thu Jan  1 03:00:00 1970
mdadm: partition table exists on /dev/sdb but will be lost or
       meaningless after creating array
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.


Создание массива RAID 1 md0:
$ sudo mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb

Проверка:
 
$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb[1]
      1048444928 blocks super 1.2 [2/1] [_U]
      bitmap: 0/8 pages [0KB], 65536KB chunk

unused devices: <none>

Форматирование:

$ sudo mkfs.ext4 /dev/md0
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 262111232 4k blocks and 65527808 inodes
Filesystem UUID: c228788a-ebff-4164-83b4-31965691aa0d
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848

Allocating group tables: done
Сохранение таблицы inod'ов: done
Creating journal (32768 blocks): готово
Writing superblocks and filesystem accounting information: готово


Теперь нам нужно настроить конфигурацию mdadm, которая в настоящее время не содержит никакой информации о рейде. 
 
$ sudo cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
$ sudo su -c "mdadm --examine --scan >> /etc/mdadm/mdadm.conf"
$ sudo cat /etc/mdadm/mdadm.conf


Настройка системы на RAID1
Смонтируем в существующей файловой системе:
 
$ sudo mkdir /mnt/md0
$ sudo mount /dev/md0 /mnt/md0
$ sudo blkid /dev/md0

/dev/md0: UUID="dbc39615-7d04-44b8-b469-f2213dd99e4f" TYPE="ext4"

Откорректируем  для sda1
# / was on /dev/sda1 during installation
UUID=2d120de9-4107-4af2-9cca-f60f51c99e42 /               ext4    errors=remount-ro 0       1

$ sudo nano /etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
#UUID=2d120de9-4107-4af2-9cca-f60f51c99e42 /               ext4    errors=remount-ro 0       1
UUID=dbc39615-7d04-44b8-b469-f2213dd99e4f /               ext4    errors=remount-ro 0       1


Сохранить.

$ sudo sed -e "s/dev\/sda1/dev\/md0/" -i /etc/mtab

$ sudo cat /etc/mtab
$ sudo cat /etc/mtab | grep md0
/dev/md0 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
/dev/md0 /mnt/md0 ext4 rw,relatime,data=ordered 0 0

Настройте загрузчик GRUB2
$ uname -r

4.15.0-54-generic



Теперь мы скопируем пользовательский файл и отредактируем его, чтобы добавить нашу временную конфигурацию:

$ sudo cp /etc/grub.d/40_custom /etc/grub.d/09_swraid1_setup

$ sudo nano /etc/grub.d/09_swraid1_setup

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
# добавить ниже заменив на 4.15.0-55-generic
menuentry 'Ubuntu, with Linux 4.15.0-55-generic RAID Temp' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod mdraid1x
    insmod ext2
    set root='(md/0)'
    linux   /boot/vmlinuz-4.15.0-55-generic root=/dev/md0 ro   quiet
    initrd  /boot/initrd.img-4.15.0-55-generic
}

Сохранить

$ sudo update-grub
Создание конфигурационного файла grub...
Найден образ linux: /boot/vmlinuz-4.15.0-54-generic
Найден образ initrd: /boot/initrd.img-4.15.0-54-generic
Найден образ linux: /boot/vmlinuz-4.15.0-45-generic
Найден образ initrd: /boot/initrd.img-4.15.0-45-generic
завершено

$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.15.0-54-generic
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915


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

$ sudo cp -dpRx / /mnt/md0
Если вы делаете это удаленно через SSH, вы можете добавить в команду параметр verbose, чтобы увидеть, что процесс все еще выполняется. Я бы не рекомендовал делать это на сервере, так как частота обновления на мониторе замедлит процесс.


$ sudo cp -dpRxv / /mnt/md0

Теперь пришло время перезагрузиться в раздел Raid, но прежде чем мы это сделаем, нам нужно убедиться, что на обоих дисках установлен grub:
 $ sudo grub-install /dev/sda
Установка для платформы i386-pc.
Установка завершена. Ошибок нет.

$ sudo grub-install /dev/sdb
Установка для платформы i386-pc.
Установка завершена. Ошибок нет.

$ df -h
Файл.система   Размер Использовано  Дост Использовано% Cмонтировано в
udev             7,8G            0  7,8G            0% /dev
tmpfs            1,6G         2,8M  1,6G            1% /run
/dev/sda1        459G          18G  418G            5% /
tmpfs            7,8G          52K  7,8G            1% /dev/shm
tmpfs            5,0M         4,0K  5,0M            1% /run/lock
tmpfs            7,8G            0  7,8G            0% /sys/fs/cgroup
/dev/sdc1        1,8T          12G  1,7T            1% /backup
tmpfs            1,6G            0  1,6G            0% /run/user/999
tmpfs            1,6G            0  1,6G            0% /run/user/1000
/dev/md0         459G          18G  418G            5% /mnt/md0


$ sudo reboot

$ df -h
Файл.система   Размер Использовано  Дост Использовано% Cмонтировано в
udev             7,8G            0  7,8G            0% /dev
tmpfs            1,6G         1,2M  1,6G            1% /run
/dev/md0         459G          18G  418G            5% /
tmpfs            7,8G          52K  7,8G            1% /dev/shm
tmpfs            5,0M         4,0K  5,0M            1% /run/lock
tmpfs            7,8G            0  7,8G            0% /sys/fs/cgroup
/dev/sdc1        1,8T          12G  1,7T            1% /backup
tmpfs            1,6G            0  1,6G            0% /run/user/999
tmpfs            1,6G            0  1,6G            0% /run/user/1000
$ sudo fdisk -l
Диск /dev/sda: 465,8 GiB, 500107862016 байтов, 976773168 секторов
Единицы измерения: секторов из 1 * 512 = 512 байтов
Размер сектора (логический/физический): 512 байт / 512 байт
I/O size (minimum/optimal): 512 bytes / 512 bytes
Тип метки диска: dos
Идентификатор диска: 0x90b7283b

Устр-во    Загрузочный Start Конец Секторы   Size Id Тип
/dev/sda1  *            2048 976771071 976769024 465,8G 83 Linux


Диск /dev/sdb: 465,8 GiB, 500107862016 байтов, 976773168 секторов
Единицы измерения: секторов из 1 * 512 = 512 байтов
Размер сектора (логический/физический): 512 байт / 512 байт
I/O size (minimum/optimal): 512 bytes / 512 bytes
Тип метки диска: dos
Идентификатор диска: 0x90b7283b

Устр-во    Загрузочный Start Конец Секторы   Size Id Тип
/dev/sdb1  *            2048 976771071 976769024 465,8G 83 Linux


Диск /dev/sdc: 1,8 TiB, 2000398934016 байтов, 3907029168 секторов
Единицы измерения: секторов из 1 * 512 = 512 байтов
Размер сектора (логический/физический): 512 байт / 4096 байт
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Тип метки диска: dos
Идентификатор диска: 0xd2256d33

Устр-во    Загрузочный Start Конец Секторы  Size Id Тип
/dev/sdc1               2048 3907028991 3907026944  1,8T 83 Linux


Диск /dev/md0: 465,7 GiB, 499973619712 байтов, 976510976 секторов
Единицы измерения: секторов из 1 * 512 = 512 байтов
Размер сектора (логический/физический): 512 байт / 512 байт
I/O size (minimum/optimal): 512 bytes / 512 bytes



$$ cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb[1]
      488255488 blocks super 1.2 [2/1] [_U]
      bitmap: 4/4 pages [16KB], 65536KB chunk

unused devices: <none>

Теперь добавим диск sda в рейд-раздел

Дальше пойдет процесс синхронизации, он длительный видим на картинке:

$ sudo mdadm --add /dev/md0 /dev/sda
mdadm: added /dev/sda

$ cat /proc/mdstat


Дождаться до окончания синхронизации:

$ cat /proc/mdstat



$ sudo cp /etc/mdadm/mdadm.conf_orig /etc/mdadm/mdadm.conf
$ sudo su -c "mdadm --examine --scan >> /etc/mdadm/mdadm.conf"
$ sudo cat /etc/mdadm/mdadm.conf

$ sudo rm -f /etc/grub.d/09_swraid1_setup
$ sudo update-grub
Создание конфигурационного файла grub...
Найден образ linux: /boot/vmlinuz-4.15.0-54-generic
Найден образ initrd: /boot/initrd.img-4.15.0-54-generic
Найден образ linux: /boot/vmlinuz-4.15.0-45-generic
Найден образ initrd: /boot/initrd.img-4.15.0-45-generic
завершено

$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.15.0-54-generic
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915

$ sudo grub-install /dev/sda
Установка для платформы i386-pc.
Установка завершена. Ошибок нет.
$ sudo grub-install /dev/sdb
Установка для платформы i386-pc.
Установка завершена. Ошибок нет.
$ sudo reboot

$ df -h
$ sudo fstrim -v ./




Комментариев нет:

Отправить комментарий