Performance Best Practices for VMware vSphere 7.0. Часть 4 – ESXi Storage Considerations

Четвертая часть полностью посвящена моментам работы ESXi с дисковой подсистемой и СХД.

VMware vStorage APIs for Array Integration (VAAI)

Как уже говорилось в первой части, рекомендуется использовать дисковые хранилища с поддержкой VAAI. Данные возможности СХД позволяют перенести нагрузку с гипервизора на хранилище, улучшая в некоторых ситуациях производительность.

Если SAN, либо NAS массив поддерживает VAAI, ESXi автоматически это определит и начнет использовать предоставленные возможности.

LUN Access Methods

Помимо классической файловой системы VMFS поверх луна, ESXi также поддерживает технологию raw device mapping (RDM), позволяющую подключать лун напрямую в виртуальную машину. Зачастую RDM может использоваться в кластерных системах.

RDM – файл на VMFS, который выступает как прокси для нижележащего блочного устройства (луна).

RDM может работать в двух режимах – virtual compatibility, либо physical compatibility:

  1. Virtual Mode – функции взаимодействия с диском виртуализируются по аналогии с любым диском, располагаемым на VMFS. Данный режим, например, позволяет создавать снапшоты дисков RDM;
  2. Physical mode – минимизирует функции виртуализации и взаимодействия с диском, перекладывая данные функции на виртуальную машину. Снапошты создавать нельзя.

Virtual Disk Modes

Для каждого диска виртуальной машины ESXi поддерживает три режима:

  1. Independent persistent – при использовании данного режима, данные записываются на диск и сохраняются. Предоставляют наибольшую производительность. Для дисков с данным типом подключения невозможно создать снапшот;
  2. Independent nonpersistent – у дисков с данным типом подключения все записи перенаправляются в redo log, который очищается каждый раз, когда виртуальная машина выключается. Производительность их будет ниже, чем у дисков с типом подключения Independent persistent;
  3. Depended – самый распространенный тип подключения дисков. Отличается тем, что с данных дисков можно снять снапшот, Производительность аналогична independent дискам. При включенном снимке она, соответственно, снимается.

Стоит понимать, что использование Independent дисков не отключает возможность создания снапшотов с виртуальной машины, однако с данного типа дисков снимки делаться не будут.

Virtual Disk Types

ESXi поддерживает два основных типа дисков – Thick Provisioned и Thin Provisioned.

Thick Provisioned – тип виртуального диска, который сразу резервирует дисковое пространство на хранилище VMFS. Подразделяется на два типа:

  1. Eager zeroed – при создании виртуального диска, полностью его «зануляет». Увеличивает производительность при первой записи в каждый предварительной зануленный блок, но увеличивает время создания диска (чем больше диск – тем больше время, соответственно). VAAI может ускорить процесс создания таких дисков.
  2. Lazy zeroed – так же резервирует пространство под виртуальный жесткий диск, но зануление блоков происходит только в момент первой записи в них. Диск создается практически моментально, однако, при первой записи будет немного снижена производительность. При последующих записях обладает такой же производительностью, как и eager zeroed диски;
  3. Thin provisioned – В отличии от Thick provisioned дисков, которые сразу резервируют требуемое пространство на VMFS, пространство под тонкие диски выделяется при записи. Производительность при первой записи в новый блок будет ниже, однако при последующих записях в ранее записанные блоки производительность аналогична eager-zeroed дискам.

Automatic Space Reclamation (UNMAP)

Хранилища VMFS6 (начиная с версии vSphere 6.5) поддерживают автоматическое высвобождение освободившегося пространства для thin provisioned дисков.

Стоит отметить, что VMFS5 так же поддерживает UNMAP, правда только в ручном режиме с помощью esxcli storage vmfs unmap.

Partition Alignment

Выравнивание файловой системы относительно блочного устройства, на котором она располагается, может влиять на производительность, поскольку при неверно выровненной файловой системе, количество операций чтения и записи может увеличиться.

Как и многие другие файловые системы, VMFS может испытывать проблемы с производительностью в случае неправильного выравнивания (misalignment). Начиная с ESXi 5.0 при создании файловой системы через клиента vSphere, VMFS3/5/6 автоматически выравниваются, начиная от границы в 1MB;

Если файловая система VMFS3 создана на более ранней версии гипервизора, чем ESXi5, выравнивание такой FS начинается от границы в 64KB. В случае если файловая система будет обновлена до VMFS5, выравнивание в 64KB так же сохраняется. Единственным решением является пересоздание файловой системы с гипервизора с версией 5 или выше.

Файловые системы VMFS3 и VMFS5 нельзя обновить до VMFS6. Единственный вариант – создание нового datastore на базе VMFS6 и перенос виртуальных машин на него.

Для того, чтобы выровнять VMFS разделы вручную, рекомендуется ознакомиться с документацией производителя СХД, с которой выделяется LUN (в большинстве случаев на выравнивание влияет тип ОС, указанный при создании луна на СХД), ну и, конечно, на рабочей файловой системе такое не делается.

Если выясняется, что с выравниванием не все в порядке, правильным решение будет создать новое, уже выравненное хранилище VMFS и выполнить Storage vMotion виртуальных машин на него.

SAN Multipathing

Поскольку практически во всех инсталляциях доступ к СХД осуществляется по нескольким путям (через несколько портов HBA и несколько свитчей (в SAN это называется фабрикой)), необходимо использовать специальное ПО, управляющие всеми путями и определяющие использование путей до СХД (Multipathing software). В ESXi за это отвечает PSA – Pluggable Storage Architecture.

Политики мультипасинга могут влиять на производительность дисковой подсистемы. В большинстве случаев, политика, выставленная ESXi по умолчанию для СХД будет лучшим выбором.

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

Для большинства ActivePassive дисковых массивов ESXi использует политики Most Recently Used (MRU). VMware не рекомендует использовать политику Fixed для Active-Passife массивов, поскольку это может вызвать частое переключение путей и снизить скорость доступа к LUN. Для оптимальной производительности можно подумать на тему использования политики Round Robin.

Для массивов ActiveActive ESXi использует политикуFixed. Использование данной политики позволяет получить максимальную утилизацию каналов до СХД, назначив предпочитаемые пути для каждого луна. Так же стоит подумать на тему использования Round Robin.

Round Robin – политика, позволяющая в некоторых ситуациях улучшить производительность за счет балансировки нагрузки между активными путями, ведущими к СХД, отправляя фиксированное количество I/O запросов на каждый из путей. Не все массивы поддерживают политику Round Robin. Использование неподдерживаемой политики может привести к проблемам с доступом к предоставленным дисковым ресурсам. Рекомендуется обратиться к документации производителя СХД, чтобы получить список поддерживаемых политика.

ALUA (Asymmetric Logical Unit Access) – использование данной политики позволяет увеличить производительность при работе с СХД, которая, собественно, поддерживает ALUA. ALUA информирует ESXi об оптимальных путях до луна (Active Optimized), а так же дополнительных, не оптимальных путях (Active Non-Optimized). В сочетании с Round Robin, ESXi балансирует запросы к СХД между оптимальными путями.

ESXi так же поддерживает сторонние плагины (PSPs), которые могут предоставить наилучшую производительность для конкретных типов хранилищ (обычно поставляются производителем СХД).

Storage I/O Resource Allocation

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

Дисковый ввод-вывод доступный ESXi можно разграничить с помощью Shares, либо Limits:

  1. Часть ввода вывода виртуальных дисков можно разграничить с помощью Shares. В таком случае, каждый виртуальный диск будет иметь часть пропускной способности к хранилищу, в зависимости от выставленной величины Shares;
  2. Максимальное количество I/O доступных виртуальному диску можно ограничить с помощью Limits. Limits выставляются в количестве IOPS. По умолчанию количество IOPS не ограничивается.

Limits и Shares выставляются на уровне виртуального диска в настройках машины.

iSCSI and NFS Recommendations

  1. Если возможно, стоит использовать выделенные сетевые подключения для iSCSI и NFS между сервером и СХД (еще лучше отдельные коммутаторы). Если выделенной сети нет и не предвидится, стоит отделить дисковый трафик хотя бы с помощью VLAN.;
  2. Рекомендованная скорость подключения 10Gb/s и выше. В случае с NFS агрегация сетевых интерфейсов может предоставить большую пропускную способность;
  3. Если возможно – стоит использовать Jumbo frames (MTU 9000).

NVMe/NVMe-oF Recommendations

  1. Для максимальной производительность рекомендуется включить high-performance plug-in (HPP) на хосте ESXi;
  2. Увеличить максимальное количество I/O с параметром Disk.SchedNumReqOutstanding;
  3. Максимальная пропускная способность NVMe может быть достигнута с запуском большого количества виртуальных дисков, либо виртуальных машин, поскольку в NVMe хорошо развит параллелизм;
  4. Необходимо выбирать корректны storage adapter в виртуальной машине. Это может быть, как PVSCSI, так и vNMVe.

vSphere Virtual Machine Encryption Recommendations

Начиная с версии 6.5 vSphere может шифровать виртуальные диски .vmdk, файлы снапшотов .vmsn, NVRAM .nvram, swap .vswp и конфигурационные файлы .vmx.

Шифрация и дешифрация выполняется центральным процессором и, соответственно, потребляет его ресурсы.

  1. При достаточном количестве процессорных ресурсов, в большинстве случаев потеря производительности крайне незначительная. Однако, в случае нехватки ресурсов ЦПУ, могут начаться проблемы с производительностью;
  2. Для минимизации потребления CPU, рекомендуется выбирать процессоры, которые поддерживают инструкции AES-NI;
  3. Необходимо убедиться, что AES-NI в состоянии Enabled в BIOS. Иногда, для этого необходимо обновить версию BIOS;
  4. Поскольку шифрование выполняется непосредственно хостом и СХД видит только зашифрованные данные, это может сказаться на таких показателях как дедупликация и компрессия.

General ESXi Storage Recommendations

  1. Количество LUN, выделенных на СХД может влиять на производительность. С одной стороны, большее количество лунов с небольшим количеством виртуальных машин может позволить ESXi осуществлять большее количество одновременных запросов на ввод-вывод к дисковому массиву, что позволит увеличить производительность. С другой стороны, большое количество лунов и большое количество хостов ESXi могут заполнить очереди на СХД, что приведет к получению кодов ошибок QFULL/BUSY и снизит производительность;
  2. В случае, если наблюдаются ошибки QFULL/BUSY, конфигурация значений Queue Depth на HBA хостов может помочь увеличить производительность дискового ввода-вывода. Чтобы выставить корректные значения, следует обратиться к документации производителя СХД, а также к соответствующей KB VMware (https://kb.vmware.com/s/article/1008113);
  3. Стоит наблюдать за параметром I/O Latency через esxtop, задержки на дисковый ввод-вывод должны быть адекватны для хранилища, на котором виртуальная машина располагается. Значение GAVG/cmd отображает задержки, которые испытывает гостевая операционная система.

Running Storage Latency Sensitive Workloads

С самого начала подсистема дискового ввода-вывода в ESXi сконфигурирована для получения максимальной пропускной способности с минимальными затратами процессорных ресурсов.

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

  1. Host Power Management может влиять на значения Latency дискового ввода-вывода, ввиду чего рекомендуется возможно переключить политику в режим «Maximum Performance», либо отключить Power Management в BIOS. Отключить C1E и прочие C-states в BIOS. Включить Turbo Boost в BIOS;
  2. Если в виртуальной машине используется контроллер LSILogic, либо PVSCSI, можно отрегулировать параметр reqCallThreshold. Данный параметр влияет на скорость прохождения дисковых запросов виртуальной машины, однако может увеличить потребление ресурсов CPU.

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

Все статьи по данному циклу:

Часть 1 – Hardware for Use with VMware vSphere;

Часть 2 – ESXi General Considerations и CPU;

Часть 3 – ESXi General Considerations и оперативная память;

Часть 4 – ESXi Storage Considerations;

Часть 5 – ESXi Networ Considerations;

Часть 6 – Guest Operating Systems.

Leave a Reply

Your email address will not be published. Required fields are marked *