Платформа VMware ESX / ESXi имеет несколько компонентов для работы с системами и сетями хранения данных, которые расположены на различных уровнях в отношении прохождения SCSI-команд. Структура этих компонентов изображена на рисунке ниже:
Следующие компоненты отвечают за операции с системами хранения:
Монитор виртуальных машин или гипервизор (Virtual Machine Monitor, VMM).
Виртуальный слой SCSI (Virtual SCSI Layer).
Файловая система VMFS.
Слой Mid-Layer SCSI.
Слой совместимости Linux (Linux Compatibility Layer), содержащий в себе интерфейс для работы с драйверами SCSI, интерфейс блочного доступа и интерфейс для работы с драйверами iSCSI, а также служебные функции для работы с устройствами хранения.
Монитор виртуальных машин (Virtual Machine Monitor, VMM).
Монитор виртуальных машин обеспечивает отслеживание активности виртуальных машин на всех уровнях (процессор, память, операции ввода-вывода и любое взаимодействие с компонентом ядра VMkernel). Модуль VMM содержит слой, который эмулирует SCSI-устройства в виртуальной машине. Виртуальная машина не имеет прямого доступа к устройствам Fibre Channel , так как в виртуальной инфраструктуре VMware используется виртуализация устройств хранения посредством создания томов VMFS. Все приложения, запущенные в виртуальных машинах, получают доступ к дисковым ресурсам только через виртуальный SCSI-драйвер LSI Logic или BusLogic. Эти драйверы позволяют использовать виртуальные SCSI HBA-адаптеры в виртуальной машине.
Для просмотра информации о драйверах SCSI необходимо в операционной системе Windows зайти в панель управления, выбрать «управление компьютером»-«диспетчер устройств»-«контроллеры SCSI и RAID» и просмотреть информацию о контроллерах BusLogic или LSI Logic.
Виртуальный слой SCSI
Виртуальный слой SCSI осуществляет диспетчеризацию команд SCSI и управляет взаимодействием между монитором виртуальных машин, VMFS и слоем mid-layer SCSI. Все SCSI-команды от виртуальных машин проходят через виртуальный слой SCSI и отправляются на более низкие уровни, включая VMFS и RDM. Кроме того, команды отмены и сброса операций ввода-вывода также управляются этим слоем.
Файловая система VMFS
Кластерная файловая система VMFS является проприетарным продуктом компании VMware. Она оптимизирована для хранения больших файлов и быстрого доступа к ним. Использование больших размеров блоков позволяет добиться высокого быстродействия виртуальных дисков, которое близко к быстродействию физических SCSI-дисков. Тома, отформатированные в VMFS, имеют низкую потерю производительности и емкости на поддержку файловой системы. С ростом емкости виртуального диска все меньшее относительное количество емкости тратится на поддержку метаданных томов VMFS.
Объем метаданных, расположенных на томе VMFS вычисляется по следующей формуле:
500Мб + (x – 1)*(0.016Кб), где x-объем, выделенный тому VMFS в гигабайтах.
Например, для тома емкостью в 200 Гб объем метаданных будет равен:
500Mб + (200 - 1) (0.016Кб) = 503.184 Мб
Как видно из формулы, с ростом объема тома объем метаданных растет незначительно и несущественен для современных систем хранения. VMFS имеет встроенную логику для обнаружения изменений в конфигурации томов систем хранения, а также упрощает использование систем хранения, скрывая ошибки SAN от виртуальных машин. Самая же важная функция VMFS, как кластерной файловой системы, организация множественного доступа разных серверов ESX для обеспечения функций VMotion и DRS. VMFS позволяет также использовать распределенные блокировки дисков, для того чтобы убедиться, что конкретная виртуальная машина запущена только на одном сервере ESX.
Слой Mid-Layer SCSI.
Промежуточный слой mid-layer SCSI – основной компонент VMkernel для контроля активности систем хранения, управления физическими HBA-адаптерами на хостах VMware ESX / ESXi, диспетчеризации запросов и обработки SCSI-ошибок. Кроме того, этот слой содержит логику автоматического сканирования для обнаружения новых LUN, назначенных хосту VMware ESX / ESXi, а также механизм управления путями (выбор пути, обеспечение отказоустойчивости и восстановление исправленного пути).
Промежуточный слой SCSI собирает информацию с HBA-адптеров, FC-коммутаторов и портов контроллеров систем хранения для определения структуры путей между хостами VMware ESX / ESXi и физическими томами на дисковых массивах. Во время операций сканирования, VMware ESX / ESXi собирает информацию об устройствах, такую как идентификатор администратора сетевой адресации (Network Address Authority, NNA) и серийный номер устройства. VMware ESX / ESXi идентифицирует все доступные пути к устройству хранения и приводит их к единому активному пути (вне зависимости от того, сколько путей реально доступны). Все другие доступные пути помечаются как резервные. Идентификация пути происходит автоматически. В зависимости от ответа системы хранения на SCSI-команду TEST_UNIT_READY, VMware ESX / ESXi помечает путь как активный, резервный или недоступный.
Во время загрузки или операции сканирования VMware ESX / ESXi автоматически назначает политику путей Fixed для всех «активных-активных» типов устройств хранения. В этом случае предпочитаемый путь выбирается, если он доступен.
Для массивов типа «активный-активный» VMware ESX / ESXi производит переключение на резервный путь, если по основному пути на запрос ввода-вывода SCSI FC-драйвер вернул ответ NO_CONNECT, что означает потерю FC-соединения. Непрошедшая SCSI-команда возвращается в гостевую систему. После этого осуществляется операция по переключению на резервный путь сервером VMware ESX / ESXi и инициируется обмен по новому выбранному пути.
Для массивов типа «активный-пассивный» VMware ESX / ESXi автоматически назначает политику путей MRU. VMware ESX / ESXi тестирует все доступные пути командой TEST_UNIT_READY и для обмена выбирает путь, который чаще всего был доступен. Для массивов типа «активный-пассивный», не присутствующих в списках совместимости, находящихся в документе «Storage / SAN Compatibility Guide For ESX Server 3.5 and ESX Server 3i», ручное назначение политики путей MRU может оказаться недостаточным для полной совместимости VMware ESX / ESXi и системы хранения.
Драйверы HBA-адаптеров.
Компания VMware предоставляет модифицированные драйверы Linux для HBA-адаптеров, работающие на уровне mid-layer SCSI. Драйверы HBA-адаптеров автоматически устанавливаются во время установки VMware ESX / ESXi. Не все компоненты сети хранения данных поддерживаются драйверами HBA-адаптеров VMware. Перед подключением ESX Server к сети хранения данных, компоненты SAN для применения в среде Virtual Infrastructure 3 требуют проверки в списках совместимости «I/O Compatibility Guide For ESX Server 3.5 and ESX Server 3i» и «Storage / SAN Compatibility Guide For ESX Server 3.5 and ESX Server 3i».
VMware ESX / ESXi имеет два типа драйверов для поддержки HBA-адаптеров: Emulex и Qlogic.