Открыть виртуальный диск linux

Добавление диска к виртуальной машине Linux

Из этой статьи вы узнаете, как добавить в виртуальную машину постоянный диск, на котором можно хранить данные. Эти данные сохранятся даже после повторной подготовки виртуальной машины (например, в ходе обслуживания или изменения размера).

Подключение нового диска к виртуальной машине

Если вам нужен новый пустой диск с данными в виртуальной машине, то используйте команду az vm disk attach с параметром —new . Если виртуальная машина находится в зоне доступности, то диск автоматически создается в одной зоне с виртуальной машиной. Дополнительные сведения см. в статье Общие сведения о зонах доступности в Azure (предварительная версия). В следующем примере создается диск с именем myDataDisk размером 50 ГБ:

az vm disk attach \ -g myResourceGroup \ --vm-name myVM \ --name myDataDisk \ --new \ --size-gb 50 

более низкую задержку;

В некоторых регионах задержка подключения диска сократилась, поэтому вы увидите улучшение до 15 %. Это полезно, если возникают запланированные или незапланированные отработки отказа между виртуальными машинами, если вы масштабируете рабочую нагрузку или выполняете высокомасштабную рабочую нагрузку с отслеживанием состояния, например Службу Azure Kubernetes. Однако это улучшение распространяется только на команду явного подключения диска — az vm disk attach . При вызове команды, которая может неявно выполнить подключение, например az vm update , улучшения производительности не будет. Вам не нужно предпринимать никаких действий, кроме вызова явной команды подключения, чтобы увидеть это улучшение.

В настоящее время низкая задержка доступна во всех общедоступных регионах, за исключением следующих:

  • Центральная Канада
  • Центральная часть США
  • Восточная часть США
  • восточная часть США 2
  • Центрально-южная часть США
  • западная часть США 2
  • Северная Германия
  • Западная Индия (Jio)
  • Северная Европа
  • Западная Европа

Подключение существующего диска

Чтобы подключить существующий диск, найдите идентификатор диска и укажите его в команде az vm disk attach. В следующем примере выполняется запрос диска myDataDisk в группе ресурсов myResourceGroup, а затем этот диск подключается к виртуальной машине myVM:

diskId=$(az disk show -g myResourceGroup -n myDataDisk --query 'id' -o tsv) az vm disk attach -g myResourceGroup --vm-name myVM --name $diskId 

Форматирование и подключение диска

Чтобы разбить диск на разделы, отформатировать и подключить новый диск к виртуальной машине Linux, подключитесь к своей виртуальной машине по протоколу SSH. Дополнительные сведения см. в статье Как использовать SSH с Linux в Azure. В следующем примере выполняется подключение к виртуальной машине с общедоступным IP-адресом 10.123.123.25 и именем пользователя azureuser:

Поиск диска

После подключения к виртуальной машине найдите диск. В этом примере мы используем для lsblk вывода списка дисков.

lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd" 

Вы должны увидеть результат, аналогичный приведенному ниже.

sda 0:0:0:0 30G ├─sda1 29.9G / ├─sda14 4M └─sda15 106M /boot/efi sdb 1:0:1:0 14G └─sdb1 14G /mnt sdc 3:0:0:0 50G 

Вот диск, sdc который нам нужен, потому что это 50G. Если вы добавили несколько дисков и не знаете, какой диск зависит только от размера, можно перейти на страницу виртуальной машины на портале, выбрать Диски и проверка номер LUN для диска в разделе Диски данных. Сравните LUN с портала с последним номером в разделе HTCL выходных данных (это и есть LUN). Другой вариант — вывести список содержимого /dev/disk/azure/scsi1 каталога:

Читайте также:  Виртуальная машина для установки linux

Выходные данные должны выглядеть примерно так:

lrwxrwxrwx 1 root root 12 Mar 28 19:41 lun0 -> ../../../sdc 

Форматирование диска

Отформатируйте диск с parted помощью , если размер диска составляет два тиБ или больше, необходимо использовать секционирование GPT. Если размер диска меньше 2TiB, можно использовать секционирование MBR или GPT.

Рекомендуется использовать самую актуальную версию parted , доступную для вашего дистрибутива. Если размер диска — 2 тебибайтов (ТиБ) или больше, необходимо использовать GPT-схему разбиения дисков на разделы. Если размер диска меньше 2 ТиБ, то можно использовать MBR- или GPT-схему разбиения дисков на разделы.

В следующем примере используется parted в /dev/sdc , где обычно находится первый диск данных на большинстве виртуальных машин. Замените sdc правильным параметром для своего диска. Мы также отформатируем его с помощью файловой системы XFS .

sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100% sudo partprobe /dev/sdc1 sudo mkfs.xfs /dev/sdc1 

Используйте служебную программу partprobe , чтобы убедиться, что ядро распознает новый раздел и файловую систему. Невозможность использовать partprobe может привести к тому, что команды blkid или lsblk не будут немедленно возвращать UUID для новой файловой системы.

Подключение диска

Теперь создайте каталог для подключения файловой системы, используя mkdir . В следующем примере создается каталог в /datadrive :

Используйте mount , чтобы затем подключить файловую систему. В следующем примере раздел /dev/sdc1 подключается к точке подключения /datadrive :

sudo mount /dev/sdc1 /datadrive 

Сохранение подключения

Чтобы обеспечить автоматическое повторное подключение диска после перезагрузки, его необходимо добавить в /etc/fstab файл. Также настоятельно рекомендуется использовать UUID (универсальный уникальный идентификатор) в /etc/fstab для ссылки на диск, а не только на имя устройства (например, /dev/sdc1). Если операционная система обнаруживает ошибку диска во время загрузки, использование UUID позволяет избежать подключения ошибочного диска в это расположение. Остальные диски с данными затем получают те же идентификаторы устройств. Чтобы найти UUID нового диска, используйте служебную программу blkid :

Читайте также:  Linux script run in terminal

Результат должен быть аналогичным приведенному ниже:

/dev/sda1: LABEL="cloudimg-rootfs" UUID="11111111-1b1b-1c1c-1d1d-1e1e1e1e1e1e" TYPE="ext4" PARTUUID="1a1b1c1d-11aa-1234-1a1a1a1a1a1a" /dev/sda15: LABEL="UEFI" UUID="BCD7-96A6" TYPE="vfat" PARTUUID="1e1g1cg1h-11aa-1234-1u1u1a1a1u1u" /dev/sdb1: UUID="22222222-2b2b-2c2c-2d2d-2e2e2e2e2e2e" TYPE="ext4" TYPE="ext4" PARTUUID="1a2b3c4d-01" /dev/sda14: PARTUUID="2e2g2cg2h-11aa-1234-1u1u1a1a1u1u" /dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs" PARTLABEL="xfspart" PARTUUID="c1c2c3c4-1234-cdef-asdf3456ghjk" 

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

Затем откройте /etc/fstab файл в текстовом редакторе. Добавьте строку в конец файла, используя значение UUID для устройства, созданного /dev/sdc1 на предыдущих шагах, и точку /datadrive подключения . В примере из этой статьи новая строка будет выглядеть следующим образом:

UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,nofail 1 2 

Завершив редактирование файла, сохраните и закройте редактор.

Кроме того, можно выполнить следующую команду, чтобы добавить диск в /etc/fstab файл:

echo "UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,nofail 1 2" >> /etc/fstab 

Если вы позднее удалите диск данных без редактирования файла fstab, виртуальная машина может не загрузиться. Большинство дистрибутивов поддерживает параметры fstab nofail и (или) nobootwait. Эти параметры позволяют системе загружаться, даже если диск не подключится во время загрузки. Дополнительные сведения об этих параметрах см. в документации дистрибутива.

Параметр nofail обеспечивает запуск виртуальной машины даже в том случае, если файловая система повреждена или отсутствует диск во время загрузки. Без этого параметра может возникнуть ситуация, описанная в записи блога Cannot SSH to Linux VM due to FSTAB errors (Не удается подключиться к виртуальной машине Linux по протоколу SSH из-за ошибок FSTAB).

Последовательную консоль виртуальной машины Azure можно использовать для консольного доступа к виртуальной машине, если в результате изменения FSTAB-файла произошел сбой загрузки. Дополнительные сведения см. в документации по последовательной консоли.

Поддержка операций TRIM и UNMAP для Linux в Azure

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

Читайте также:  Linux где хранятся системные файлы

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

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

UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,discard 1 2 
sudo apt install util-linux sudo fstrim /datadrive 
sudo yum install util-linux sudo fstrim /datadrive 
sudo zypper in util-linux sudo fstrim /datadrive 

Устранение неполадок

При добавлении дисков данных на виртуальную машину Linux вы можете столкнуться с ошибками, если в LUN 0 не существует диска. Если вы добавляете диск вручную с помощью команды az vm disk attach -new и указываете LUN ( —lun ) вместо того, чтобы разрешить платформе Azure самой определить соответствующий LUN, то обратите внимание на то, что в LUN 0 уже существует или будет существовать диск.

Рассмотрим следующий пример, демонстрирующий фрагмент выходных данных из lsscsi :

[5:0:0:0] disk Msft Virtual Disk 1.0 /dev/sdc [5:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdd 

Существует два диска данных в LUN 0 и LUN 1 (первый столбец в выходных данных lsscsi [host:channel:target:lun] ). Оба диска должны быть доступными из виртуальной машины. Если вы вручную указали первый диск для добавления в LUN 1, а второй диск — в LUN 2, то эти диски могут не отображаться корректно из виртуальной машины.

В этих примерах значение host Azure равно 5, однако оно может меняться в зависимости от выбранного типа хранилища.

Такое поведение дисков имеет место не из-за проблемы в Azure, а из-за того, что ядро Linux следует спецификациям SCSI. Когда ядро Linux выполняет на шине SCSI поиск подключенных устройств, в LUN 0 должно быть какое-то устройство, чтобы система могла продолжить поиск других устройств. Учитывая вышесказанное, выполните следующие действия.

  • После добавления диска данных просмотрите выходные данные lsscsi и убедитесь, что в LUN 0 есть диск.
  • Если диск не отображается корректно из виртуальной машины, проверьте, существует ли диск в LUN 0.

Дальнейшие действия

  • Ознакомьтесь с рекомендациями по оптимизации производительности виртуальной машины Linux , чтобы правильно настроить виртуальную машину Linux.
  • Расширьте емкость хранилища, добавив дополнительные диски и настроив RAID для повышения производительности.

Источник

Оцените статью
Adblock
detector