Настройка DRBD с двумя жесткими дисками

Если для сборки DRBD используется второй диск <DISK_2>, то на данном диске необходимо создать раздел диска с MBR / GPT-разметкой.

Создание раздела диска

Создание раздела диска с MBR-разметкой

Для создания раздела диска с MBR-разметкой необходимо выполнить следующие действия:

  1. на каждом головном сервере выполнить команду:

    sudo fdisk <DISK_2>

    где <DISK_2> — наименование второго диска (например, /dev/sdb)

  2. ввести следующие значения:

    • в Command ввести n, нажать Enter, чтобы создать новый раздел

    • в Select нажать Enter, чтобы установить тип primary

    • в Partition number нажать Enter, чтобы задать номер раздела по умолчанию

    • в First sector нажать Enter, чтобы задать значение первой секции по умолчанию

    • в Last sector нажать Enter, чтобы задать значение последней секции по умолчанию

    • в Command ввести w, чтобы записать внесенные изменения

    Пример вывода команды:

    admin@ivcs-main:~$ sudo fdisk /dev/sdb
    
    Welcome to fdisk (util-linux 2.36.1).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    Device does not contain a recognized partition table.
    Created a new DOS disklabel with disk identifier 0x3121c27e.
    
    Command (m for help): n
    Partition type
       p   primary (0 primary, 0 extended, 4 free)
       e   extended (container for logical partitions)
    Select (default p):
    
    Using default response p.
    Partition number (1-4, default 1):
    First sector (2048-10485759, default 2048):
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-10485759, default 10485759):
    
    Created a new partition 1 of type 'Linux' and of size 5 GiB.
    
    Command (m for help): w
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Syncing disks.

Создание раздела диска с GPT-разметкой

Для создания раздела диска с GPT-разметкой необходимо выполнить следующие действия:

  1. на каждом головном сервере выполнить команду:

    sudo gdisk <DISK_2>

    где <DISK_2> — наименование второго диска (например, /dev/sdb)

  2. ввести следующие значения:

    • в Command выбрать n, нажать Enter, чтобы создать новый раздел

    • в Partition number нажать Enter, чтобы задать номер раздела по умолчанию

    • в First sector нажать Enter, чтобы задать значение первой секции по умолчанию

    • в Last sector нажать Enter, чтобы задать значение последней секции по умолчанию

    • в Hex code or GUID нажать Enter, чтобы задать значение типа раздела файловой системы по умолчанию

    • в Command ввести w, чтобы записать внесенные изменения

    • в Do you want to proceed? ввести y, чтобы сохранить изменения

    Пример вывода команды:

    admin@ivcs-main:~$ sudo gdisk /dev/sdb
    GPT fdisk (gdisk) version 1.0.6
    
    Warning: Partition table header claims that the size of partition table
    entries is 0 bytes, but this program  supports only 128-byte entries.
    Adjusting accordingly, but partition table may be garbage.
    Warning: Partition table header claims that the size of partition table
    entries is 0 bytes, but this program  supports only 128-byte entries.
    Adjusting accordingly, but partition table may be garbage.
    Partition table scan:
      MBR: not present
      BSD: not present
      APM: not present
      GPT: not present
    
    Creating new GPT entries in memory.
    
    Command (? for help): n
    Partition number (1-128, default 1):
    First sector (34-20971486, default = 2048) or {+-}size{KMGTP}:
    Last sector (2048-20971486, default = 20971486) or {+-}size{KMGTP}:
    Current type is 8300 (Linux filesystem)
    Hex code or GUID (L to show codes, Enter = 8300):
    Changed type of partition to 'Linux filesystem'
    
    Command (? for help): w
    
    Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
    PARTITIONS!!
    
    Do you want to proceed? (Y/N): y
    OK; writing new GUID partition table (GPT) to /dev/sdb.
    The operation has completed successfully.

    При выводе команды возможно появление предупреждения, которое можно проигнорировать:

    Warning: Partition table header claims that the size of partition table entries is 0 bytes, but this program supports only 128-byte entries.
    Adjusting accordingly, but partition table may be garbage.

Настройка PARTUUID

Настройка PARTUUID не актуальна, начиная с версии Платформы IVA MCU 24.0
Если настройка PARTUUID выполняется впервые, то для получения необходимого опыта рекомендуется сначала выполнить действия, описанные в данном разделе, на тестовом стенде
Головные серверы должны иметь одинаковые версии и разметки дисков

Для настройки PARTUUID необходимо выполнить следующие действия:

  1. привести PARTUUID для раздела на втором диске, где не содержится запись LABEL=”ivcs”, к одному виду, выполнив следующие действия:

    Настройка раздела диска актуальна только для кластеров следующих типов:

    • Active/Active/DBStandBy+InternalClusterFS(DRBD)

    • Active/Active/ExternalDB+InternalClusterFS(DRBD)

    Раздел для второго диска необходимо создать до выполнения данной инструкции (подробнее в разделе Создание раздела диска)
    • определить тип разметки второго диска, где не содержится запись LABEL=”ivcs”, по полю Disklabel type для каждого головного сервера (на каждом головном сервере разметка диска должна быть одинаковой), выполнив команду:

      sudo fdisk -l
    • зафиксировать на первом головном сервере значение поля Disk identifier для раздела второго диска, где не содержится запись LABEL=”ivcs”

      Пример вывода команды:

      • для диска с MBR-разметкой:

        Disk /dev/sdb: 16 GiB, 17179869184 bytes, 33554432 sectors
        Disk model: Virtual disk
        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: 0x595efb6c
      • для диска с GPT-разметкой:

        Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
        Disk model: VMware Virtual S
        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: gpt
        Disk identifier: C06E3D1F-99CB-4C31-B93B-4EBE4E84987C
    • для диска с MBR-разметкой выполнить следующие действия:

      • на втором головном сервере выполнить команду:

        sudo fdisk <DISK_2>

        где <DISK_2> — наименование второго диска (например, /dev/sdb), где не содержится запись LABEL=”ivcs”

      • в Command ввести x

      • в Expert command ввести i

      • в Enter the new disk identifier ввести значение, зафиксированное ранее, из поля Disk identifier для второго диска, где не содержится запись LABEL=”ivcs”

      • в Expert command ввести r

      • в Command ввести w

        Пример вывода команды:

        admin@ivcs-main:~$ sudo fdisk /dev/sdb
        
        Welcome to fdisk (util-linux 2.38.1).
        Changes will remain in memory only, until you decide to write them.
        Be careful before using the write command.
        
        Command (m for help): x                             # enter x to go to expert menu
        
        Expert command (m for help): i                      # enter i to change identifier
        
        Enter the new disk identifier: 0x60123f76
        
        Disk identifier changed from 0x595efb6c to 0x60123f76.
        
        Expert command (m for help): r                      # enter r to return to main menu
        
        Command (m for help): w                             # enter w to write change to MBR
        
        The partition table has been altered.
        Calling ioctl() to re-read partition table.
        Syncing disks.

        Данное предупреждение появляется в случае, если диск уже используется, и не влияет на ход смены идентификатора.

        This disk is currently in use - repartitioning is probably a bad idea. It’s recommended to umount all file systems, and swapoff all swap partitions on this disk.

        The device contains 'drbd' signature and it will be removed by a write command. See fdisk(8) man page and --wipe option for more details.

      • проверить на втором головном сервере изменение значения поля Disk identifier для раздела второго диска, где не содержится запись LABEL=”ivcs”, выполнив команду:

        sudo fdisk -l
    • для диска с GPT-разметкой выполнить следующие действия:

      • на первом головном сервере выполнить команду:

        sudo blkid
      • зафиксировать значение поля PARTUUID для раздела на втором диске, где не содержится запись LABEL=”ivcs”

        Пример вывода команды:

        /dev/sda2: LABEL="ivcs" UUID="7f6b85bc-4aac-4560-8dcf-1f27351b3dcf" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="primary" PARTUUID="bf7d47ac-1af5-4e94-af5e-9d376145adf3"
        /dev/loop0: TYPE="squashfs"
        /dev/loop1: TYPE="squashfs"
        /dev/sda1: UUID="A390-F19C" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="primary" PARTUUID="b7de2aee-7027-4d09-a377-06b15a78b5af"
        /dev/sdb1: PARTLABEL="Linux filesystem" PARTUUID="9b44dbef-cfb7-45ae-b88f-ad80612f4c6f"
      • на втором головном сервере выполнить команду:

        sudo gdisk <DISK_2>

        где <DISK_2> — наименование второго диска (например /dev/sdb), где не содержится запись LABEL=”ivcs”

      • в Command ввести x

      • в Expert command ввести c

        Поле Partition number пропущено, так как предполагается, что второй диск имеет всего один раздел
      • в Enter the partition’s new unique GUID ввести значение из поля PARTUUID (указывается без кавычек), зафиксированное ранее

      • в Expert command ввести m

      • в Command ввести w

      • в Do you want to proceed? ввести y

        Пример вывода команды:

        admin@ivcs-main:~$ sudo gdisk /dev/sdb
        GPT fdisk (gdisk) version 1.0.6
        
        Partition table scan:
          MBR: protective
          BSD: not present
          APM: not present
          GPT: present
        
        Found valid GPT with protective MBR; using GPT.
        
        Command (? for help): x                                         # enter x to change to experts menu
        
        Expert command (? for help): c                                  # enter c to change PARTUUID
        Using 1                                                         # use partition 1 because there is only one partition
        Enter the partition's new unique GUID ('R' to randomize): 9b44dbef-cfb7-45ae-b88f-ad80612f4c6f
        New GUID is 9b44dbef-cfb7-45ae-b88f-ad80612f4c6f
        
        Expert command (? for help): m                                  # enter m to go back to main menu
        
        Command (? for help): w                                         # enter w to write the change to disk
        
        Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
        PARTITIONS!!
        
        Do you want to proceed? (Y/N): y                                # enter y to agree
        OK; writing new GUID partition table (GPT) to /dev/sdb.
        The operation has completed successfully.
      • проверить на втором головном сервере изменение значения поля PARTUUID для раздела второго диска, где не содержится запись LABEL=”ivcs”, выполнив команду:

        sudo blkid
  1. для подключения / переподключения локального файлового хранилища выполнить следующие действия:

    • зафиксировать значение поля PARTUUID для раздела второго диска, где не содержится запись LABEL=”ivcs”

      Убедиться, что значение поля PARTUUID для раздела второго диска, где не содержится запись LABEL=”ivcs”, имеет одинаковое значение на каждом головном сервере для кластеров Active/Active/DBStandBy+InternalClusterFS(DRBD) и Active/Active/ExternalDB+InternalClusterFS(DRBD), выполнив команду:

      sudo blkid

      Пример вывода команды:

      • для диска с MBR-разметкой:

        /dev/sda1: LABEL="ivcs" UUID="8e8205f4-1744-44cc-b5f2-e9f42f30940f" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="595efb6c-01"
        /dev/loop0: TYPE="squashfs"
        /dev/loop1: TYPE="squashfs"
        /dev/drbd0: UUID="a1654946-b89d-4ad6-9032-6773f4fbd993" BLOCK_SIZE="4096" TYPE="ext4"
        /dev/sdb1: UUID="d709a0fd2cd6f173" TYPE="drbd" PARTUUID="4f86d2e0-01"
      • для диска с GPT-разметкой:

        /dev/sda2: LABEL="ivcs" UUID="7f6b85bc-4aac-4560-8dcf-1f27351b3dcf" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="primary" PARTUUID="bf7d47ac-1af5-4e94-af5e-9d376145adf3"
        /dev/loop0: TYPE="squashfs"
        /dev/loop1: TYPE="squashfs"
        /dev/sda1: UUID="A390-F19C" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="primary" PARTUUID="b7de2aee-7027-4d09-a377-06b15a78b5af"
        /dev/sdb1: PARTLABEL="Linux filesystem" PARTUUID="9b44dbef-cfb7-45ae-b88f-ad80612f4c6f"
    • выполнить подключение / переподключение локального файлового хранилища

      Для DRBD предварительно на каждом головном сервере необходимо:

      1. выполнить команду sudo iva-cli configurator unlock

      2. выполнить скрипт по сборке DRBD на одном из головных серверов. Для головного сервера необходимо в ключе --backbone-device указать значение /dev/disk/by-partuuid/<PARTUUID>, где <PARTUUID> — значение поля PARTUUID для раздела второго диска (указывается без кавычек), где не содержится запись LABEL=”ivcs” (подробнее в разделе Процесс сборки DRBD)

    • сохранить изменения, выполнив команду на каждом головном сервере:

      sudo iva-cli live save-changes
    Если программное обеспечение компании IVA Technologies установлено на серверы с ОС Astra Linux, то команду sudo iva-cli live save-changes выполнять не требуется
Если данная инструкция выполняется на собранных кластерах Active/Active/DBStandBy+InternalClusterFS(DRBD) или Active/Active/ExternalDB+InternalClusterFS(DRBD), а также, если перед выполнением инструкции система была загружена с неверного диска, то необходимо поочередно перезагрузить головные серверы, предварительно переведя один из них в режим StandBy (подробнее в разделе Полезные команды)