19 березня, Вівторок, 2024
A- A A+

RAID create proxmox

Встановив та налаштував Proxmox на новому сервері, зовнішнього RAID-контроллера я не брав, а штатним з мат плати, щоь не хотів зв*язуватись, тому вирішив налаштувати софтовий рейд

З коробки на Proxmox я встановив ZFS Raid1. Цього вистачає для гіпервізора та базових потреб. Однак, щоб зберегти більше к-сть інформації в мене були 2а диска по 2 Тб, форматнув у файлову систему ext4. За допомогою утиліти parted. та mdadm.

Почнемо з ідентифікації дисків в системі:

fdisk -l

Встановлюєм parted та mdadm

apt install parted

apt install mdadm

Вибираєм диск

parted /dev/sda

(parted) mklabel gpt

(parted) mkpart logical 1 2000G

(parted) p

Disk /dev/sdc: 2000GB

Аналогічні дії з диском /dev/sdb

Далі форматуєм 2а диски в файлову систему ext4

mkfs.ext4 /dev/sda1 && mkfs.ext4 /dev/sdb1

Перевірка двох дисків

# mdadm --examine /dev/sdb /dev/sda
/dev/sdb:
   MBR Magic : aa55
Partition[0] :   3907029167 sectors at            1 (type ee)
/dev/sda:
   MBR Magic : aa55
Partition[0] :   3907029167 sectors at            1 (type ee)

На даному етапі немає ніякої настройки RAID на /dev/sda1 і /dev/sdb1які можуть бути виведені з допомогою цієї команди.

# mdadm --examine /dev/sda1 /dev/sdb1
mdadm: No md superblock detected on /dev/sda1.
mdadm: No md superblock detected on /dev/sdb1.

Клонування таблиці розділів для sda та sdb, яка насправді просто на Linux з допомогою sfdisk

# sfdisk -d /dev/sda | sfdisk -f /dev/sdb
Checking that no-one is using this disk right now ... OK

Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: WDC WD20EFAX-68F
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 4D7A5EE7-C98C-4B1F-92AB-A6B8068F7D45

Old situation:

Device     Start        End    Sectors  Size Type
/dev/sdb1   4096 3907028991 3907024896  1.8T Linux filesystem

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new GPT disklabel (GUID: C66E4F1D-DE52-4CEA-8EF8-8DEA7E8DBE59).
/dev/sdb1: Created a new partition 1 of type 'Linux filesystem' and of size 1.8 TiB.
/dev/sdb2: Done.

New situation:
Disklabel type: gpt
Disk identifier: C66E4F1D-DE52-4CEA-8EF8-8DEA7E8DBE59

Device     Start        End    Sectors  Size Type
/dev/sdb1   2048 3907028991 3907026944  1.8T Linux filesystem

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Виконайте наступну команду для створення RAID 1. Логічний диск буде названий /dev/md0

# mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sda1
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
mdadm: /dev/sda1 appears to contain an ext2fs file system
       size=1953513472K  mtime=Thu Jan  1 03:00:00 1970
Continue creating array?
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

Перевірити статус зборки рейда

cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda1[1] sdb1[0]
      1953381376 blocks super 1.2 [2/2] [UU]
      [===>.................]  resync = 17.1% (335226560/1953381376) finish=153.7min speed=175366K/sec
      bitmap: 13/15 pages [52KB], 65536KB chunk

Щоб отримати більш детальну інформацію про /dev/md0, ми можемо скористатися командами нижче:

mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Wed Aug  5 17:04:55 2020
        Raid Level : raid1
        Array Size : 1953381376 (1862.89 GiB 2000.26 GB)
     Used Dev Size : 1953381376 (1862.89 GiB 2000.26 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Wed Aug  5 17:39:59 2020
             State : clean, resyncing
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

     Resync Status : 19% complete

              Name : pve-sc:0  (local to host pve-sc)
              UUID : c1a5a5d3:c266a703:4a2966d1:e20a6766
            Events : 427

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8        1        1      active sync   /dev/sda1

Створі'v файлову систему на логічному диску RAID 1
Відформатуємо його до файлової системи ext4.

mkfs.ext4 /dev/md01

Потім створюєм папку для монтування диску mkdir /raidstore та монтуєм рейд RAID 1.

mount /dev/md0 /raidstore

Перевіряєм чи все змонтувало df -h

Дуже важливо зберегти нашу конфігурацію RAID1 за допомогою команди нижче.

mdadm --detail --scan --verbose | sudo tee -a /etc/mdadm/mdadm.conf

Ввести свій UUID : c1a5a5d3:c266a703:4a2966d1:e20a6766:

ARRAY /dev/md/0 level=raid1 num-devices=2 metadata=1.2 spares=1 name=xenial:0 UUID : c1a5a5d3:c266a703:4a2966d1:e20a6766
      devices=/dev/sdb1,/dev/sda1

Щоб автоматично монтувати логічний диск RAID 1 під час завантаження, додайте запис у /etc/fstab файл, як показано нижче.

# nano /etc/fstab
/dev/md0 /mnt/raid1 ext4 defaults 0 0

Як видалити RAID
Якщо ви більше не хочете використовувати RAID, виконайте наступну команду, щоб видалити RAID.

mdadm --remove /dev/md0

Та закоментувати або видалити стрічку у файлі /etc/mdadm/mdadm.conf

##ARRAY /dev/md/0 level=raid1 num-devices=2 metadata=1.2 spares=1 name=xenial:0 UUID : c1a5a5d3:c266a703:4a2966d1:e20a6766
##      devices=/dev/sdb1,/dev/sda1

Також видалити або закоментувати в файлі /etc/fstab

## /dev/md0   /mnt/raid1   ext4   defaults   0   0