VMware vSphere – самая распространенная виртуализационная платформа для центров обработки данных. Он предоставляет широкий спектр предприятий для запуска виртуальных машин (ВМ). Чтобы обеспечить надежное и эффективное хранилище, совместимое с функциями vSphere, VMware создал свою собственную файловую систему, называемую VMFS.
В этом блоге рассматриваются функции VMware VMFS, как они взаимодействуют с другими функциями vSphere, и преимущества VMFS для хранения файлов ВМ и запуска ВМ.
Что такое VMFS?
Файловая система виртуальных машин (VMFS) – это кластерная файловая система, оптимизированная для хранения файлов виртуальных машин, включая виртуальные диски в VMware vSphere. Она была создана для повышения эффективности виртуализации хранилища для ВМ. VMFS – это высокопроизводительная надежная собственная файловая система, предназначенная для запуска виртуальных машин (ВМ) в масштабируемой среде – от небольших до больших и сверхбольших центров обработки данных. VMware vSphere VMFS действует как менеджер томов и позволяет хранить файлы ВМ в логических контейнерах, называемых хранилищами данных VMFS.
Файловая система VMFS может быть создана на дисках на основе SCSI (прямо подключенные диски SCSI и SAS) и на блочном хранилище, доступном через iSCSI, Fibre Channel (FC) и Fibre Channel over Ethernet (FCoE). VMFS работает на дисках, подключенных к серверам ESXi, но не на компьютерах с установленными VMware Workstation или VMware Player.
Версии VMFS
VMware VMFS существенно эволюционировала с момента выпуска версии один. Вот краткий обзор версий VMFS для отслеживания основных изменений и функций.
- VMFS 1 использовалась для ESX Server 1.x. Эта версия VMware VMFS не поддерживала функции кластеризации и использовалась только на одном сервере за раз. Параллельный доступ нескольких серверов не поддерживался.
- VMFS 2 использовалась на ESX Server 2.x и иногда на ESX 3.x. VMFS 2 не имела структуры каталогов.
- VMFS 3 использовалась на серверах ESXi 3.x и ESXi 4.x в vSphere. В этой версии была добавлена поддержка структуры каталогов. Максимальный размер файловой системы составляет 50 ТБ. Максимальный размер логического устройства (LUN) составляет 2 ТБ. ESXi 7.0 не поддерживает VMFS 3.
- VMFS 5 используется, начиная с VMware vSphere 5.x. Размер тома (файловой системы) был увеличен до 64 ТБ, а максимальный размер файла VMDK был увеличен до 62 для VMFS 5. Однако ESXi 5.5 поддерживает максимум 2 ТБ для размера виртуальных дисков VMDK. Добавлена поддержка разметки раздела GPT. Поддерживаются как GPT, так и MBR (предыдущие версии VMFS поддерживают только MBR).
- VMFS 6 была выпущена в vSphere 6.5 и используется в vSphere 6.7, vSphere 7.0 и более новых версиях, таких как vSphere 8.
Особенности VMFS
VMware VMFS оптимизирована для хранения больших файлов, потому что виртуальные диски VMDK обычно занимают большой объем пространства хранения. Хранилище данных VMFS – это логический контейнер, использующий файловую систему VMFS для хранения файлов на блочном устройстве хранения или LUN. Хранилище данных работает поверх тома. Объем VMFS может быть создан с использованием одного или нескольких участков. Участки зависят от базовых разделов.
Размер блока VMware VMFS
VMFS 5 и VMFS 6 используют блок размером 1 МБ. Размер блока влияет на максимальный размер файла и определяет, сколько места файл занимает. Вы не можете изменить размер блока для VMFS 5 и VMFS 6.
VMware использует подблочное выделение для маленьких каталогов и файлов с VMFS 6 и VMFS 5. Подблоки помогают экономить место на накопителе, когда файлы меньше 1 МБ, чтобы они не занимали весь блок размером 1 МБ. Размер подблока составляет 64 КБ для VMFS 6 и 8 КБ для VMFS 5.
VMFS 6 вводит новую концепцию использования блоков для маленьких и больших файлов. Не путайте маленькие блоки файлов с блоками размером 1 МБ по умолчанию. Размер маленьких блоков файлов (SFB) в VMFS 6 составляет 1 МБ. VMFS 6 также может использовать большие блоки файлов (LFB), размером 512 МБ, для улучшения производительности при создании больших файлов. LFB в основном используются для создания толстых дисков и файлов подкачки. Части толстого диска, которые не помещаются в LFB, находятся на SFB. SFB используются для тонких дисков.
Фрагментация файлов
VMware VMFS не склонен к значительной фрагментации файлов. Фрагментация не имеет отношения к производительности VMFS, потому что используются большие блоки. Размер блока VMware VMFS составляет 1 МБ, как указано выше. Например, Windows использует блоки размером 4 КБ для файловой системы NTFS, которые должны периодически дефрагментироваться при нахождении на жестких дисках. Большинство файлов, хранящихся на томе VMFS, являются большими файлами – файлами виртуальных дисков, файлами подкачки, файлами образов установки. Если между файлами есть промежуток, то этот промежуток также большой, и когда жесткий диск ищет несколько блоков, используемых для хранения файла, этот эффект незначителен. Фактически, том VMFS не может быть дефрагментирован, и для этого нет необходимости.
Не запускайте дефрагментацию в гостевой операционной системе (ОС) для дисков, используемых гостевой ОС. Дефрагментация из гостевой ОС не помогает. Это связано с тем, что производительность хранения для виртуальной машины зависит от интенсивности операций ввода/вывода (I/O) на физическом массиве хранения, где хранятся несколько виртуальных машин (включая виртуальные диски, которые являются файлами VMDK), и этот массив хранения может использоваться с разными нагрузками I/O. Более того, если вы начнете дефрагментацию разделов, расположенных на тонкопроведенных дисках из гостевой ОС, блоки будут перемещаться, нагрузка на I/O хранения увеличится, и размер этих тонкопроведенных дисков увеличится.
Дефрагментация для связанных снимков клонов ВМ и ВМ, у которых есть снимки, приводит к увеличению журналов redo, что занимает больше места для хранения в результате. Если вы резервируете ВМ VMware с помощью решения, которое полагается на механизм отслеживания изменений блоков (Changed Block Tracking), дефрагментация также увеличивает количество измененных блоков, и время резервного копирования увеличивается, потому что нужно резервировать больше данных. Дефрагментация из гостевой ОС оказывает отрицательное влияние при выполнении Storage vMotion для перемещения ВМ между хранилищами данных.
Расширения хранилища
A VMFS volume resides on one or more extents. Each extent occupies a partition, and the partition in turn is located on the underlying LUN. Extents provide additional scalability for VMFS volumes. When you create a VMFS volume, you use at least one extent. You can add more extents to an existing VMFS volume to expand the volume. Extents are different from RAID 0 striping.
- Если вы обнаружите, что одно из подключенных расширений отключено, вы можете определить, какое расширение тома недоступно. Просто введите следующую команду:
vmkfstools -Ph /vmfs/volumes/iscsi_datastore/
Результат отображает SCSI идентификатор (NAA id) проблемного LUN.
- Если один из экстентов не работает, объем VMFS может оставаться онлайн. Но если виртуальный диск ВМ содержит хотя бы один блок на неисправном экстенте, виртуальный диск ВМ становится недоступным.
- Если первый экстент, используемый VMFS объемом, становится недоступным, весь хранилище VMFS становится неактивным, так как ресурсы разрешения адресов находятся на первом экстенте. Поэтому используйте экстенты VMFS для создания и увеличения объемов VMFS, если нет другого способа увеличить объем.
Регулярно резервируйте VMware vSphere для защиты данных ВМ и избегайте возможных проблем, вызванных VMFS объемами с несколькими экстентами, хранящими файлы ВМ.
Журнальное ведение
VMFS использует распределенный журнал на диске для обновления метаданных файловой системы. После создания файловой системы VMFS VMware выделяет место для хранения журнальных данных. Журналирование используется для отслеживания изменений, которые еще не были зафиксированы в файловой системе.
Журналирование изменений, записанных в метаданные файловой системы, повышает вероятность восстановления последней версии файла в случае неожиданного отключения или сбоя. Журнальное ведение помогает воспроизвести изменения, произведенные с момента последней успешной фиксации, для восстановления данных файловой системы VMFS. Файловая система с журналированием не требует выполнения полной проверки файловой системы после сбоя для проверки согласованности данных, так как вы можете проверить журнал. В корневом каталоге VMFS объема находятся файлы .sf, в которых хранятся метаданные файловой системы VMFS. Каждый хост ESXi, подключенный к хранилищу VMFS, может получить доступ к этим метаданным, чтобы получить статус каждого объекта на хранилище.
Метаданные VMFS содержат дескрипторы файловой системы: размер блока, объем тома, количество расширений, метку тома, версию VMFS и UUID VMFS. Метаданные VMFS могут быть полезны для восстановления VMFS.
Структура каталогов
При создании ВМ все файлы ВМ, включая файлы виртуальных дисков VMDK, находятся в одном каталоге на хранилище данных. Имя каталога идентично имени ВМ. Если вам нужно сохранить определенный файл VMDK в другом месте (например, на другом хранилище VMFS), вы можете скопировать файл VMDK вручную и открыть виртуальный диск в настройках ВМ для его подключения. Структурированная архитектура упрощает резервное копирование и восстановление после катастрофы, потому что содержимое каталога должно быть скопировано для резервного копирования ВМ, чтобы обеспечить восстановление в случае потери данных на исходной ВМ.
Тонкое предоставление
Тонкое предоставление – это функция VMFS, которая оптимизирует использование хранилища и помогает экономить место на нем. Вы можете установить тонкое предоставление на уровне виртуального диска (для определенного виртуального диска ВМ). Размер виртуального диска с тонким предоставлением динамически увеличивается при записи данных на виртуальный диск с тонким предоставлением. Преимущество тонких дисков заключается в использовании столько места на хранилище, сколько диск требует в данный момент времени.
Например, вы создаете виртуальный диск с тонким предоставлением размером 50 ГБ, но на этом виртуальном диске используется только 10 ГБ места на хранилище. Размер файла виртуального диска (*-flat.vmdk) в этом случае составляет 10 ГБ. Операционная система гостевой ВМ определяет, что максимальный размер диска составляет 50 ГБ, и отображает использованное пространство как 10 ГБ.
Вы можете убедиться, что тонкое предоставление зависит от файловой системы VMFS, если попытаетесь скопировать тонко предоставленный виртуальный диск (файлы виртуального диска .vmdk и -flat.vmdk) на свой локальный диск, отформатированный с файловой системой NTFS или ext4. После копирования виртуального диска его размер становится равным максимальному размеру предоставленного диска (а не фактическому размеру тонко предоставленного диска на хранилище данных VMFS).
Примечание: VMware vSphere также поддерживает создание хранилищ данных, включая общие хранилища данных на файловой системе NFS, с поддержкой тонкого предоставления.
Освобождение свободного места
Автоматическое освобождение места (автоматическое отображение SCSI UNMAP) из VMFS 6 и гостевых операционных систем позволяет массивам хранения освобождать невыделенные или удаленные блоки дисков из хранилища данных VMFS. В VMware vSphere 6.0 и VMFS 5 освобождение места выполнялось вручную с помощью команды esxcli storage vmfs unmap.
Освобождение места позволяет решить проблему, когда основное хранилище не знает, что файл был удален в файловой системе, и соответствующее физическое место хранения (блоки на диске) должно быть освобождено. Эта функция особенно полезна для тонко предоставленных дисков. Когда гостевая ОС удаляет файлы внутри тонкого виртуального диска, объем использованного места на этом диске уменьшается, и файловая система больше не использует соответствующие блоки. В этом случае файловая система сообщает массиву хранения, что эти блоки теперь свободны, массив хранения освобождает выбранные блоки, и эти блоки могут быть использованы для записи данных.
Давайте ближе рассмотрим, как данные удаляются в хранилище при использовании виртуализации и виртуальных машин. Представьте, что есть виртуальная машина, в которой есть гостевая ОС, использующая виртуальный диск с файловой системой, такой как NTFS, ext4 или другая файловая система. Тонкий виртуальный диск сохраняется на хранилище данных с файловой системой VMFS. Файловая система VMFS использует базовый раздел и LUN, расположенные на массиве хранения.
- A file is deleted in the guest OS that operates with a file system (NTFS, for instance) on a virtual disk.
- Гостевая ОС запускает UNMAP.
- Виртуальный диск на хранилище данных VMFS уменьшается (размер виртуального диска уменьшается).
- ESXi запускает UNMAP на физический массив хранения.
UNMAP инициируется ESXi с подключенным хранилищем данных VMFS при удалении или перемещении файла с хранилища данных VMFS (файлы VMDK, файлы снимков, файлы подкачки, образы ISO и т. д.), при уменьшении раздела из гостевой ОС и при уменьшении размера файла внутри виртуального диска.
Автоматический UNMAP для VMware VMFS 6, начиная с ESXi 6.5, является асинхронным. Освобождение свободного места не происходит немедленно, но место в конечном итоге освобождается без взаимодействия пользователя.
Асинхронный UNMAP имеет некоторые преимущества:
- Избегание мгновенной перегрузки аппаратного массива хранения, потому что запросы UNMAP отправляются с постоянной скоростью.
- Регионы, которые должны быть освобождены, объединены и анмапированы вместе.
- Отсутствует негативное воздействие на производительность ввода/вывода и другие операции.
Как работал UNMAP в предыдущих версиях ESXi?
- ESXi 5.0 – UNMAP автоматический и синхронный
- ESXi 5.0 Обновление 1 – UNMAP выполняется с помощью vmkfstools в интерфейсе командной строки (CLI)
- ESXi 5.5 и ESXi 6.0 – Ручной UNMAP был улучшен при его выполнении в ESXCLI
- ESXi 6.0 – EnableBlockDelete позволяет VMFS автоматически выполнять UNMAP, если файлы виртуальных дисков VMDK уменьшаются с помощью UNMAP в гостевой системе
Снимки и разреженные виртуальные диски
Вы можете делать снимки ВМ в VMware vSphere, чтобы сохранить текущее состояние ВМ и состояние виртуальных дисков. При создании снимка ВМ создается файл снимка виртуального диска на хранилище данных VMFS (файл -delta.vmdk). Файл снимка называется дельта-диском или дочерним диском, который представляет разницу между текущим состоянием ВМ и предыдущим состоянием при создании снимка
На хранилище данных VMFS дельта-диск является разреженным диском, который использует механизм копирования при записи, чтобы экономить место на носителе при записи новых данных после создания снимка. Есть два типа разреженного формата в зависимости от конфигурации базового хранилища данных VMFS: VMFSsparse и SEsparse.
- VMFSsparse используется для VMFS 5 и виртуальных дисков размером менее 2 ТБ. Этот метод снимков работает поверх VMFS, так как журнал повторной обработки пуст в момент начала и растет, когда данные записываются после создания снимка.
- SEsparse используется для виртуальных дисков размером более 2 ТБ для VMFS 5 и для всех виртуальных дисков на VMFS 6. Этот формат основан на формате VMFSsparse, но имеет ряд усовершенствований, таких как поддержка возврата пространства, позволяющая гипервизору ESXi освобождать неиспользуемые блоки после удаления данных гостевой ОС или удаления файлов снимков.
Примечание: В ESXi 6.7 с VMFS 6, освобождение пространства для дисков SEsparse (для дисков снимков для тонких дисков) запускается автоматически, поскольку на файловой системе VMFS есть 2 ГБ мертвого пространства (данные удалены, но не освобождены). Если вы удаляете несколько файлов из гостевой ОС, например, четыре файла по 512 МБ, то асинхронное освобождение пространства начинается. Вы можете видеть статистику обновления живого освобождения пространства в esxtop, нажав v, чтобы включить вид VM, затем нажав f, чтобы выбрать порядок полей, и нажав L, чтобы отобразить статистику освобождения пространства. Значение по умолчанию составляет 2 ГБ, хотя его можно изменить в интерфейсе командной строки. В ESXi 7.0 U3 максимальная детализация, сообщаемая VMFS, составляет 2 ГБ.
Отображение сырых устройств
Интеграция дисков с отображением сырых устройств (RDM) в структуру VMware VMFS обеспечивает большую гибкость при работе с хранилищем для виртуальных машин. В VMware vSphere существуют два режима совместимости RDM.
- Диски RDM в виртуальном режиме совместимости. Файл отображения VMDK создается на хранилище данных VMFS (*-rdmp.vmdk), чтобы отобразить физический LUN на массиве хранения на виртуальную машину. Есть некоторые особенности отображения физического хранилища на виртуальную машину с использованием этого метода.
Основные операции управления хранилищем, такие как Открыть и другие команды SCSI, проходят через виртуальный уровень гипервизора ESXi, но команды Чтение и Запись обрабатываются напрямую на устройстве хранения и обходят виртуальный уровень.
Это означает, что ВМ может работать с отображенным SCSI-диском RDM только как с устройством хранения, но большинство функций vSphere, таких как снимки, доступны.
- Диски RDM в режиме физической совместимости. Хост ESXi создает файл отображения на хранилище данных VMFS, но SCSI-команды обрабатываются непосредственно к устройству LUN, тем самым обходя виртуальный слой гипервизора (за исключением команды Report для LUN). Это менее виртуализированный тип диска. Снимки VMware не поддерживаются.
Функции кластеризации
- Кластеризация и одновременный доступ к файлам на хранилище данных – еще одна отличительная особенность VMware VMFS. В отличие от обычных файловых систем, VMware VMFS позволяет нескольким серверам одновременно читать и записывать данные в файлы. Механизм блокировки позволяет нескольким хостам ESXi одновременно получать доступ к файлам виртуальных машин без риска повреждения данных. Каждому файлу VMDK добавляется блокировка, чтобы предотвратить запись данных в открытый файл VMDK двумя виртуальными машинами или двумя хостами ESXi одновременно. VMware поддерживает два механизма блокировки файлов в VMFS для общего хранилища.
- Атомный тест и установка (ATS) используется только для накопителей, поддерживающих стандарт T10 vStorage API для интеграции с массивами (VAAI). Этот механизм блокировки также называется аппаратно-помогаемой блокировкой. Алгоритм использует дискретную блокировку для каждого сектора диска. По умолчанию все новые хранилища данных, отформатированные с использованием VMFS 5 и VMFS 6, используют только ATS, если базовое хранилище поддерживает этот механизм блокировки и не использует резервирование SCSI. ATS используется для хранилищ данных, созданных с использованием нескольких протяженностей, и vCenter фильтрует хранилища, не поддерживающие ATS.
- ATS + резервирование SCSI. Если ATS не справляется, используются резервирование SCSI. В отличие от ATS, резервирование SCSI блокирует весь накопитель, когда требуется защита метаданных для соответствующей операции, которая модифицирует метаданные. После завершения этой операции VMFS освобождает резервирование, чтобы другие операции могли продолжиться. Хранилища данных, которые были обновлены с VMFS 3, продолжают использовать механизм ATS + SCSI.
VMware VMFS 6 поддерживает совместное использование файла виртуального диска VM (VMDK) с до 32 хостами ESXi в vSphere.
Поддержка vMotion и Storage vMotion
VMware vMotion – это функция, используемая для живой миграции ВМ между хостами ESXi (переносятся ЦП, ОЗУ и сетевые компоненты ВМ) без прерывания их работы. Storage vMotion – это функция для миграции файлов ВМ, включая виртуальные диски, с одного хранилища данных на другое без простоев, даже если ВМ находится в рабочем состоянии. Файловая система VMFS является одним из основных элементов, обеспечивающих работу живой миграции, потому что несколько хостов ESXi считывают/записывают данные из/в файлы ВМ, которая мигрирует.
Поддержка HA и DRS
Диспетчер ресурсов виртуализации (DRS), высокая доступность (HA) и Отказоустойчивость работают на основе механизма блокировки файлов VMFS, функций живой миграции и кластеризации. Автоматический перезапуск отказавшей ВМ на другом хосте ESXi при включении HA выполняется, а живая миграция ВМ инициируется для балансировки кластера при использовании DRS. Можно использовать HA и DRS вместе.
Поддержка хранилищного DRS. Поддерживается использование VMFS 5 и VMFS 6 в одном кластере хранилищ данных для миграции файлов ВМ между хранилищами данных. Используйте однородные устройства хранения для VMware vSphere Storage DRS.
Увеличение объемов VMFS.
Вы можете увеличить размер хранилища данных VMFS, пока виртуальные машины работают и используют файлы VM, расположенные на этом хранилище данных. Первый метод заключается в увеличении размера LUN, используемого вашим существующим хранилищем данных. Увеличение LUN происходит в хранилищной системе (а не в vSphere). Затем вы можете расширить раздел и увеличить объем VMFS.
Вы также можете увеличить объем VMFS, агрегируя несколько дисков или LUN вместе. В этом случае к объему VMFS добавляются расширения VMFS. Расширенные хранилища данных, использующие несколько дисков, также называются развернутыми хранилищами данных. Должны использоваться однородные устройства хранения. Например, если первое устройство хранения, используемое хранилищем данных, имеет размер блока 512n, то вновь добавленные устройства хранения также должны быть устройствами с блочным размером 512n. Эта функция может помочь обойти максимальное ограничение на LUN, когда максимальный поддерживаемый размер хранилища данных выше максимального размера LUN.
Пример: Есть ограничение 2 ТБ для LUN, и вам нужно создать виртуальную машину с виртуальным диском размером 3 ТБ на одном хранилище данных VM. Используя два расширения по 2 ТБ каждое, вы можете решить эту проблему. Для создания раздела и хранилища данных больше 2 ТБ необходимо использовать схему разметки GPT.
Уменьшение объемов VMFS
Уменьшение объема VMFS не поддерживается. Если вы хотите уменьшить размер объема VMFS, вам нужно переместить все файлы из объема VMFS, который вы хотите уменьшить, в другое хранилище данных VMFS. Затем вам нужно удалить хранилище данных, которое вы хотите уменьшить, и создать новый объем VMFS с меньшим размером. Когда новое меньшее хранилище данных готово на созданном объеме, переместите файлы VM на это новое хранилище данных.
Обновление хранилища данных VMFS
Вы можете обновить VMFS 3 до VMFS 5 напрямую, без необходимости миграции файлов ВМ и создания нового хранилища данных VMFS 5. Поддерживается обновление VMFS 3 до VMFS 5 на лету, когда ВМ работают, без необходимости их выключения или миграции. После обновления, VMFS 5 сохраняет все характеристики VMFS 3, использованные ранее. Например, размер блока остается 64 КБ вместо 1 МБ, и MBR сохраняется для разделов, не превышающих 2 ТБ.
Однако, прямая поддержка обновления хранилищ данных VMFS 5 и более старых версий VMFS до VMFS 6 отсутствует. Вам необходимо переместить файлы из хранилища данных (которое вы собираетесь обновить) в безопасное место, удалить хранилище данных VMFS 5, создать новое хранилище данных VMFS 6, а затем скопировать файлы обратно в новое хранилище данных VMFS 6.
Если вы обновляете ESXi до версии ESXi 6.5 или новее, вы можете продолжать использовать хранилища данных VMFS 3 и VMFS 5, созданные до обновления ESXi. На ESXi 6.5 и последующих версиях ESXi вы не можете создавать хранилища данных VMFS 3.
Ознакомьтесь с подробным сравнением VMFS 5 и VMFS 6 и узнайте, как вы можете обновиться до новейшей версии VMFS. В некоторых случаях вы можете подключить VMFS в Linux.
Заключение
Независимо от используемой файловой системы для хранения виртуальных машин, регулярное создание резервных копий данных необходимо для предотвращения потери данных в случае отказов, сбоев или других нарушений. Рассмотрите возможность использования решения NAKIVO Backup & Replication, которое позволяет защищать и быстро восстанавливать рабочие нагрузки, управляемые vCenter, а также автономные рабочие нагрузки ESXi.
Source:
https://www.nakivo.com/blog/all-you-need-to-know-about-vmware-vmfs/