Оригинал этой статьи написан Jason’ом Boche.
Два года назад, в октябре 2010 года, увидел свет vSphere 4.1, и мы радовались потрясающим нововведениям и повышению масштабируемости инфраструктуры. Два года спустя у нас есть vSphere 5.0 и vSphere 5.1, а также куча других продуктов, сформировавших vCloud Suite.
Я намеренно начал рассказ с vSphere 4.1. В vSphere 4.1 Enterprise Edition появилась такая функция как vSphere API for Array Integration (VAAI). Кстати, это произносится как ‘vee double-ehh eye’. 🙂
Эти API предлагают три различных механизма (примитива) для блочных СХД, позволяющих отдавать отдельные операции на выполнение СХД. Один из этих механизмов мы с вами сегодня и рассмотрим.
Одним из старейших споров является “сколько ВМ VMware можно разместить на одном хранилище VMFS”? Проверенный временем ответ – 10/15/20. Наиболее аккуратный – “столько, сколько вам подходит”, обычно переводящийся в “это зависит от…”
С появлением VAAI я отметил пугающий тренд, что механизм Atomic Test and Set (ATS) или Hardware Assisted Locking раз и навсегда дал ответ на этот вопрос. Якобы вы можете запускать любое количество виртуальных машин на одном LUN’е, так как SCSI-блокировок больше нет.
С появлением vSphere 5.0 VAAI стал поддерживаться большим количеством СХД, и были добавлены новые механизмы как в СХД с блочным типом доступа, так и в NFS-СХД. Также VMware добавила поддержку VMFS-хранилищ размером до 64Тб без использования экстентов. Эта поддержка прекрасно объединяется с мифом о волшебстве ATS. Соответственно, мы не должны были иметь проблем с размещением сотен (если не тысяч) ВМ на одном большом блочном (VMFS) хранилище, как если бы это был NFS, и мы были свободны от ограничений SCSI.
ATS был разработан для устранения задержек LUN, связанных со SCSI-блокировками. Эти блокировки устанавливались при выполнении таких операций как создание/удаление файлов и т.п. Мы сталкиваемся с этими операциями при включении ВМ, создании снимков или разворачивании ВМ из шаблона. Эти операции имеют общую черту – им требуется изменить метаданные VMFS-раздела, для чего требуется его блокировка (SCSI-блокировка) хостом, выполняющим эту операцию. Эта блокировка, хоть она и достаточно короткая по времени, приводит к заметным задержкам операций ввода/вывода, если на одном VMFS-хранилище находится много ВМ, и к нему подключено много хостов. ATS передает механизм блокировки на откуп СХД, которая блокирует только изменяемые данные вместо блокировки целого LUN. Любое окружение, которое ранее оперировало этими задачами, получит от VAAI выигрыш за счет снижения задержек. Continue reading “Миф о неограниченном размещении ВМ на VMFS-хранилище с VAAI”