Поделиться через


Настройка LVM на виртуальной машине Linux в Azure

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

Линейные и полосатые логические тома

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

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

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

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

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

  • 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" 
    

Настройка LVM

В этом руководстве мы предполагаем, что вы подключили три диска данных, которые мы будем называть /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 используйте -t ext3 вместо ext4. 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