Настройка диспетчера логических томов на виртуальной машине Linux в Azure

В этом документе рассматривается, как настроить диспетчер логических томов (LVM) на виртуальной машине Azure. Диспетчер логических томов можно использовать на диске операционной системы или на дисках с данными в виртуальных машинах VM, однако по умолчанию для большинства облачных образов диспетчер логических томов не настраивается на диске операционной системы. Приведенные ниже действия предназначены для настройки диспетчера логических томов на дисках с данными.

Линейные и чередующиеся логические тома

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

В этом документе описано, как соединить несколько дисков данных в одну группу томов и создать чередующийся логический том. Описанные ниже действия можно выполнять с большинством дистрибутивов. В большинстве случаев служебные программы и рабочие процессы, которые используются для управления диспетчером логических томов в Azure, существенно не отличаются от других сред. Для получения дополнительных сведений и рекомендаций по использованию диспетчера логических томов с вашим дистрибутивом обратитесь к поставщику Linux.

Присоединение дисков данных

Чтобы использовать диспетчер логических томов, обычно требуется не менее двух пустых дисков данных. В зависимости от потребностей ввода-вывода, можно подключить диски, которые хранятся в хранилище уровня "Стандартный" и допускают до 500 операций ввода-вывода в секунду на диск, или диски из хранилища уровня "Премиум", поддерживающие до 5000 операций ввода-вывода в секунду. В этой статье мы не будем подробно останавливаться на том, как подготовить и подключить диски данных к виртуальной машине Linux. Подробные указания по подключению пустого диска данных к виртуальной машине Linux в Azure см. в разделе Добавление диска статьи Microsoft Azure.

Установка служебных программ диспетчера логических томов

  • Ubuntu

    sudo apt-get update
    sudo apt-get install lvm2
    
  • RHEL, CentOS и Oracle Linux

    sudo yum install lvm2
    
  • SLES 12 и openSUSE

    sudo zypper install lvm2
    
  • SLES 11

    sudo zypper install lvm2
    

    В системе SLES11 необходимо также изменить файл /etc/sysconfig/lvm и задать для параметра LVM_ACTIVATED_ON_DISCOVERED значение enable:

    LVM_ACTIVATED_ON_DISCOVERED="enable" 
    

Настройка диспетчера логических томов

В этом руководстве предполагается, что подключены три диска данных с именами /dev/sdc, /dev/sdd и /dev/sde. Эти пути могут не совпадать с именами путей к дискам для вашей виртуальной машины. Запустите командуsudo fdisk -lили подобную, чтобы просмотреть список доступных дисков.

  1. Подготовьте физические тома.

    sudo pvcreate /dev/sd[cde]
    Physical volume "/dev/sdc" successfully created
    Physical volume "/dev/sdd" successfully created
    Physical volume "/dev/sde" successfully created
    
  2. Создайте группу томов. В этом примере группе томов присвоено имя data-vg01:

    sudo vgcreate data-vg01 /dev/sd[cde]
    Volume group "data-vg01" successfully created
    
  3. Создайте логические тома. Приведенная ниже команда создает один логический том с именем data-lv01, который охватывает целую группу томов, однако в группе томов также можно создать несколько логических томов.

    sudo lvcreate --extents 100%FREE --stripes 3 --name data-lv01 data-vg01
    Logical volume "data-lv01" created.
    
  4. Измените формат логического тома.

    sudo mkfs -t ext4 /dev/data-vg01/data-lv01
    

    Примечание

    Для SLES11 замените ext4 на -t ext3. SLES11 поддерживает доступ только для чтения к файловым системам ext4.

Добавление новой файловой системы в /etc/fstab

Важно!

Некорректное изменение файла /etc/fstab может привести к невозможности загрузить систему. Если у вас есть сомнения, см. инструкции по правильному изменению этого файла в документации дистрибутива. Также рекомендуется перед внесением изменений создать резервную копию файла /etc/fstab.

  1. Создайте нужную точку монтирования для новой файловой системы, например:

    sudo mkdir /data
    
  2. Найдите путь логического тома.

    lvdisplay
    --- Logical volume ---
    LV Path                /dev/data-vg01/data-lv01
    ....
    
  3. Откройте файл /etc/fstab в текстовом редакторе и добавьте запись для новой файловой системы, например:

    /dev/data-vg01/data-lv01  /data  ext4  defaults  0  2
    

    Затем сохраните и закройте /etc/fstab.

  4. Проверьте правильность записи /etc/fstab:

    sudo mount -a
    

    Если в результате выполнения команды появляется сообщение об ошибке, проверьте синтаксис в файле /etc/fstab.

    Теперь выполните команду mount для подключения файловой системы:

    mount
    ......
    /dev/mapper/data--vg01-data--lv01 on /data type ext4 (rw)
    
  5. (Необязательно) Параметры загрузки, предотвращающие сбой, в файле /etc/fstab

    Многие дистрибутивы включают в себя параметры подключения nobootwait или nofail, которые можно добавить в файл /etc/fstab. Эти параметры в случае сбоя при монтировании конкретной файловой системы позволяют системе Linux продолжить загрузку, даже если ей не удается надлежащим образом смонтировать файловую систему RAID. Дополнительные сведения об этих параметрах см. в документации по вашему дистрибутиву.

    Пример (Ubuntu):

    /dev/data-vg01/data-lv01  /data  ext4  defaults,nobootwait  0  2
    

Поддержка операций TRIM и UNMAP

Некоторые ядра Linux поддерживают операции TRIM и UNMAP для отмены неиспользуемых блоков на диске. Эти операции особенно удобно использовать в хранилище уровня "Стандартный", чтобы сообщать Azure о том, что удаленные страницы больше не действительны и могут быть удалены. Удаление страниц позволит сократить затраты, если вы создаете большие файлы, а затем удаляете их.

Существует два способа включить поддержку операций TRIM в виртуальной машине Linux. Как обычно, обратитесь к документации дистрибутива, чтобы выбрать рекомендуемый метод.

  • Используйте параметр подключения discard в /etc/fstab. Ниже приведен пример.

    /dev/data-vg01/data-lv01  /data  ext4  defaults,discard  0  2
    
  • В некоторых случаях параметр discard может негативно влиять на производительность. Кроме того, вы можете вручную выполнить команду fstrim из командной строки или добавить ее в crontab для регулярного выполнения.

    Ubuntu

    # sudo apt-get install util-linux
    # sudo fstrim /datadrive
    

    RHEL, CentOS и Oracle Linux

    # sudo yum install util-linux
    # sudo fstrim /datadrive