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

Не рекомендуем менять тонкие настройки, если вы полностью не уверены в своих действиях.

Доступные параметры


Кластеры с виртуализацией KVM

  • ресурсы:
    • vCPU — количество процессоров;
    • RAM — объём оперативной памяти, Мбайт;
    • Storage — объём основного диска, Гбайт;

    • раздел для увеличения — раздел диска, который будет увеличиваться при изменении параметра Storage. Например, /dev/sda2 или sda2; 

      Изменение ресурсов не поддерживается, если для ВМ были созданы снимки.

  • ограничения:
    • вес CPU — приоритет в использовании процессора. Может принимать значения от 128 до 10000. Например, ВМ с весом CPU, равным 2048, будет получать доступ к процессору вдвое чаще, чем ВМ с весом 1024;
    • вес использования I/O — приоритет на операции ввода-вывода. Может принимать значения от 100 до 1000. Например, ВМ с весом использования I/O, равным 200, будет выполнять операции чтения и записи на диск в два раза чаще, чем ВМ с весом 100;
    • скорость чтения, IOPS (поддерживается изменение без перезагрузки ВМ);
    • скорость записи, IOPS (поддерживается изменение без перезагрузки ВМ);
    • скорость чтения, Мбит/с (поддерживается изменение без перезагрузки ВМ);
    • скорость записи, Мбит/с (поддерживается изменение без перезагрузки ВМ);
    • скорость входящего трафика, Мбит/с (поддерживается изменение без перезагрузки ВМ);
    • скорость исходящего трафика, Мбит/с (поддерживается изменение без перезагрузки ВМ);

      • ВМ со скоростью трафика выше 1000 Мбит/с может работать не корректно.
      • Ограничения для входящего и исходящего трафика устанавливают среднее значение скорости. Поэтому максимальная скорость на сетевом интерфейсе ВМ может в течение некоторого времени превышать установленные ограничения.
    • количество входящих TCP-соединений, шт;
    • количество исходящих TCP-соединений, шт;
  • настройки антиспуфинга:
    • переключатель Антиспуфинг включен/Антиспуфинг отключен — включить или выключить защиту от сетевых атак, использующих метод IP-спуфинга;
    • переключатель Тегированный трафик не разрешен/Тегированные трафик разрешен — разрешить или запретить трафик с тегами VLAN;

      IP-спуфинг — это тип хакерской атаки, при которой для обмана системы безопасности используется чужой IP-адрес. При IP-спуфинге хакеры изменяют адрес отправителя в L3-пакете. Это позволяет скрыть истинный адрес злоумышленника и отправить ответный пакет на нужный адрес.

      Для защиты ВМ от IP-спуфинга платформа проверяет MAC-адрес источника во всех L2-кадрах, отправляемых с ВМ. Если MAC-адрес источника совпадает с MAC-адресом ВМ, платформа проверяет IP-адрес источника в L3-пакете кадра. Если IP-адрес источника не соответствует IP-адресу ВМ, то L2-кадр отбрасывается и не передаётся дальше.

  • ограничения портов — запрет соединений для определённых портов виртуальной машины (ВМ). Подробнее см. в статье Ограничение доступа к ВМ;
  • настройка дисков ВМ:
    • Storage — объём дискового пространства, Гбайт;
    • раздел для увеличения — раздел диска, который будет увеличиваться при изменении параметра Storage. Например, /dev/sda2 или sda2;

  • параметры виртуализации:
    • режим эмуляции CPU — способ определения спецификаций процессора виртуальной машины:
      • По умолчанию — эмулируется виртуальный процессор QEMU;
      • Host-model — эмулируемый процессор будет обладать теми же флагами функций, что и процессор на узле кластера;
      • Host-passthrough — эмулируемый процессор будет в точности соответствовать процессору на узле кластера хост-машины и обладать теми же флагами функций. Такой режим эмуляции позволяет получить лучшую производительность, а также может быть обязательным для некоторых приложений. Миграция такой виртуальной машины возможна только на полностью совпадающий процессор;
    • тип загрузчика — BIOS или UEFI.

Кластеры с виртуализацией LXD

  • ресурсы:
    • vCPU — количество процессоров;
    • RAM — объём оперативной памяти, Мбайт;
    • Storage — объём дискового пространства, Гбайт;

      Чтобы платформа смогла изменить размер диска, в хранилище должно быть свободное место объёмом не меньше, чем размер исходного диска.

  • ограничения:
    • вес CPU — приоритет в использовании процессора. Может принимать значения от 0 до 10. Например, ВМ с весом CPU, равным 2, будет получать доступ к процессору вдвое чаще, чем ВМ с весом 1;
    • вес использования I/O — приоритет на операции ввода-вывода. Может принимать значения от 0 до 10. Например, ВМ с весом использования I/O, равным 10, будет выполнять операции чтения и записи на диск в два раза чаще, чем ВМ с весом 5;
    • вес сети — приоритет во времени, выделяемом на обработку запросов. Может принимать значения от 1 до 10. Например, для запросов ВМ с весом сети, равным 2, будет выделено в два раза больше времени, чем для запросов ВМ с весом 1;
    • количество процессов;
    • скорость чтения, IOPS (поддерживается изменение без перезагрузки ВМ);
    • скорость записи, IOPS (поддерживается изменение без перезагрузки ВМ);
    • скорость чтения, Мбит/с (поддерживается изменение без перезагрузки ВМ);
    • скорость записи, Мбит/с (поддерживается изменение без перезагрузки ВМ);

      В LXD-кластере не могут одновременно использоваться настройки:

      • "скорость чтения, IOPS" и "скорость чтения, Мбит/с";
      • "скорость записи, IOPS" и "скорость записи, Мбит/с".
    • скорость входящего трафика, Мбит/с (поддерживается изменение без перезагрузки ВМ);
    • скорость исходящего трафика, Мбит/с (поддерживается изменение без перезагрузки ВМ);

      ВМ со скоростью трафика выше 1000 Мбит/с может работать не корректно.

    • количество входящих TCP-соединений, шт;
    • количество исходящих TCP-соединений, шт;
  • настройки антиспуфинга:
    • переключатель Антиспуфинг включен/Антиспуфинг отключен — включить или выключить защиту от сетевых атак, использующих метод IP-спуфинга;
    • переключатель Тегированный трафик не разрешен/Тегированные трафик разрешен — разрешить или запретить трафик с тегами VLAN;

      IP-спуфинг — это тип хакерской атаки, при которой для обмана системы безопасности используется чужой IP-адрес. При IP-спуфинге хакеры изменяют адрес отправителя в L3-пакете. Это позволяет скрыть истинный адрес злоумышленника и отправить ответный пакет на нужный адрес.

      Для защиты ВМ от IP-спуфинга платформа проверяет MAC-адрес источника во всех L2-кадрах, отправляемых с ВМ. Если MAC-адрес источника совпадает с MAC-адресом ВМ, платформа проверяет IP-адрес источника в L3-пакете кадра. Если IP-адрес источника не соответствует IP-адресу ВМ, то L2-кадр отбрасывается и не передаётся дальше.

  • ограничения портов — запрет соединений для определённых портов виртуальной машины (ВМ). Подробнее см. в статье Ограничение доступа к ВМ;
  • параметры контейнеризации:

    • вложенная контейнеризация — позволяет создавать контейнеры внутри контейнера с использованием Docker, Podman, LXC и т.д.

Изменение vCPU и RAM


В кластерах с типом виртуализации KVM вы можете увеличить значения vCPU и RAM без перезагрузки ВМ:

  • vCPU:
    • для ВМ с ОС Windows — не более 128 ядер;
    • для остальных ОС — не более 240 ядер;
  • RAM — только с шагом 1024 МБ и не более 16 раз для каждой ВМ. 

    Увеличение RAM без перезагрузки не поддерживается для ВМ на узлах с ОС Astra Linux Special Edition 1.7.3, 1.7.4. Это связано с ограничениями данных версий ОС Astra Linux.

При уменьшении значений vCPU и RAM ВМ будет перезагружена.

Чтобы увеличивать значение ресурсов без перезагрузки, включите опцию Увеличивать значение CPU и RAM без перезагрузки VM на вкладке Ресурсы и ограничения.

Опция резервирует часть оперативной памяти ВМ. Перед включением опции убедитесь, что оперативная память ВМ загружена не полностью. Например, при создании ВМ с ОС Ubuntu 20.04, 22.04 рекомендуется выделить не менее 1 ГБ.

Увеличение размера диска


В кластерах с типом виртуализации KVM существует два способа увеличения диска ВМ: 

  • с перезагрузкой ВМ — платформа увеличивает раздел диска, указанный в настройках, или добавляет к ВМ неразмеченное пространство, если раздел не указан;
  • без перезагрузки ВМ — платформа изменяет размер блочного устройства. Разделы дисков остаются без изменений.

Для каждой ВМ одновременно может быть активирован только один из способов. Выбранный способ распространяется на все диски ВМ.

Особенности работы для ВМ с ОС Windows

Увеличение раздела выполняется в среде ОС Linux с помощью утилиты virt-resize. Поэтому для ВМ с ОС Windows в поле Раздел для увеличения нужно указать раздел в формате ОС Linux. Например, /dev/sda4. Чтобы получить список разделов:

  1. Подключитесь к узлу кластера с ВМ по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. Выполните команду: 

    virt-filesystems -d <domain> --all -l
    BASH

    <domain> — домен ВМ в формате id_имя-ВМ. Например, 34_vmtest

Увеличение с перезагрузкой ВМ

Чтобы платформа смогла изменить размер диска, в хранилище должно быть свободное место объёмом не меньше, чем размер исходного диска.

Чтобы увеличить размер диска:

  1. Перейдите в Виртуальные машины → выберите ВМ → кнопка Параметры раздел Тонкие настройки вкладка Настройка дисков VM.
  2. Отключите опцию Увеличивать размер дисков без перезагрузки VM.
  3. В поле Storage укажите требуемый размер диска.
  4. Укажите Раздел для увеличения. Например, /dev/sda2 или sda2. 

    • Вы можете указать внешнее или внутреннее наименование раздела. Например, раздел /dev/sda2 в CentOS 8 может иметь внутреннее имя /dev/vda2. Указывайте внутреннее наименование, только если этот раздел примонтирован в системе.
    • Чтобы увеличить диск за счёт создания нового раздела, оставьте параметр пустым. VMmanager добавит к ВМ неразмеченное дисковое пространство. Вы сможете создать в этом пространстве новый раздел средствами ОС.
  5. Нажмите кнопку Изменить и перезапустить.

При этом способе платформа:

  1. Выключает ВМ.
  2. Создаёт новый диск с заданным размером.
  3. Копирует данные с исходного диска ВМ на новый диск.
  4. Включает ВМ.
  5. Если увеличение диска выполнено успешно, удаляет исходный диск ВМ.
  6. Если при увеличении диска произошла ошибка, восстанавливает работу ВМ с исходным диском.

Увеличение без перезагрузки ВМ

Способ поддерживается для файловых систем EXT4, XFS, NTFS.

Чтобы увеличить размер диска:

  1. Перейдите в Виртуальные машины → выберите ВМ → кнопка Параметры раздел Тонкие настройки вкладка Настройка дисков VM.
  2. Включите опцию Увеличивать размер дисков без перезагрузки VM.
  3. В поле Storage укажите требуемый размер диска. Значение в поле Раздел для увеличения не будет учитываться при изменении диска.
  4. Нажмите кнопку Изменить.

При этом способе платформа изменяет только размер блочного устройства. Чтобы увеличить раздел диска в файловой системе:

  • Linux (EXT4, XFS):
    1. Подключитесь к ВМ по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
    2. Установите утилиты для изменения размера диска: 

      Astra Linux, Debian, Ubuntu

      apt-get install cloud-guest-utils
      BASH

      AlmaLinux

      dnf install cloud-utils-growpart
      BASH

      CentOS

      yum install cloud-utils-growpart
      BASH
    3. Определите раздел и тип файловой системы: 

      lsblk -f
      BASH

      В примере ниже раздел — vda2, а тип файловой системы — EXT4.

      NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
      vda                                                      
      ├─vda1                                                   
      └─vda2 ext4         4a9ea381-1b1c-f135-a540-685a8d3e82f8 /
      BASH
    4. Выполните расширение раздела: 

      growpart /dev/<partition_name> <partition_number>
      CODE

      <partition_name> — имя раздела

      <partition_number> — номер раздела

      Например, для раздела vda2 команда будет иметь вид: growpart /dev/vda 2

    5. Измените размер файловой системы: 

      EXT4

      resize2fs /dev/<partition>
      BASH

      XFS

      xfs_growfs -d /dev/<partition>
      BASH

      <partition> — раздел

  • Windows (NTFS):
    1. Подключитесь к ВМ по VNC или SPICE.
    2. Измените размер раздела с помощью средства "Управление дисками". Подробнее см. в документации Microsoft.

Порядок настройки


Чтобы провести настройку:

  1. Перейдите в Виртуальные машины → выберите ВМ → кнопка Параметры раздел Тонкие настройки.
  2. Укажите требуемые значения параметров на вкладке Ресурсы и ограничения.
  3. Если для ВМ требуется добавление vCPU и RAM без перезагрузки, включите опцию Увеличивать значение CPU и RAM без перезагрузки VM

    Чтобы применить эту настройку, ВМ будет перезагружена.

  4. Если для ВМ требуется увеличение диска без перезагрузки, включите опцию Увеличивать размер дисков без перезагрузки VM.
  5. Настройте Ограничения портов ВМ. Подробнее см. в статье Ограничение доступа к ВМ.
  6. Если к ВМ в KVM-кластере подключено несколько дисков, укажите требуемые значения параметров на вкладке Настройки дисков VM. Подробнее о виртуальных дисках см. в статье Управление дисками ВМ

    При изменении настроек дисков ВМ будет перезагружена.

  7. Выберите требуемые значения параметров на вкладке Виртуализация (Контейнеризация)

    При изменении режима эмуляции CPU или типа загрузчика ВМ будет перезагружена.

  8. Нажмите кнопку Изменить (Изменить и перезапустить).

Тестирование производительности ВМ с использованием стороннего ПО не гарантирует получение объективных данных. Это связано с ограничениями виртуализации — наличием дополнительных уровней абстракции между программным и аппаратным обеспечением.

Пример настройки ресурсов и ограничений

Пример настройки дисков ВМ

Пример настройки параметров виртуализации