У тех, кто только недавно стал присматриваться к виртуализации на платформе VMware Virtual Infrastructure, одним из первых возникает вопрос – какую систему хранения использовать, и какие возможности для нее будут доступны.
VMware ESX Server поддерживает 4 типа систем хранения:
Local Storage – локальные SCSI или SATA диски сервера или DAS (Direct Attached Storage). На этих устройствах создаются тома, отформатированные в кластерной файловой системе VMFS (Virtual Machine File System). IDE-диски доступны только для установки самого ESX Server, при этом виртуальные машины на них хранить нельзя и нельзя создавать VMFS-тома.
iSCSI Storage - устройства, подключаемые по интерфейсу iSCSI через программный или аппаратный инициатор. Для хранения виртуальных машин также используются VMFS-тома. Чтобы использовать программное iSCSI-хранилище на базе Windows 2003 Server, прочитайте вот эту статью.
Fibre Channel – оптическое или медное подключение к высокоскоростной системе хранения через SAN (Storage Area Network) посредством HBA-адаптера. На логических томах LUN также создаются VMFS-тома для хранения виртуальных машин.
NAS-хранилище (Network Attached Storage). Поддерживается только файловая система NFS. Поскольку эта файловая система уже имеет встроенные функции, такие как множественный доступ хостов и распределенное блокирование доступа к файлам, VMFS тома на NFS-хранилище не создаются.
На рисунке ниже приведена совместимость различных функций VMware ESX Server с типами систем хранения.
А по ссылке ниже приведено сравнение быстродействия протоколов Fibre Channel, iSCSI и NAS/NFS для VMware ESX Server:
Теперь посмотрим на преимущества и недостатки каждого из типов систем хранения:
Fibre Channel
Плюсы: гарантированная полоса пропускания, высокая производительность, поддержка всех возможностей VMware (включая кластер MSCS в виртуальных машинах).
Минусы: высокая стоимость систем хранения и фабрики SAN.
Аппаратный iSCSI
Плюсы: относительно низкая стоимость, хорошая производительность, возможность загрузки из iSCSI SAN.
Минусы: нет гарантированной полосы пропускания, присутствуют все недостатки, присущие IP-сетям.
Программный iSCSI
Плюсы: совсем низкая стоимость (можно реализовать на Linux или Windows сервере), при этом мы получаем полнофункциональную общую систему хранения с функциями HA и DRS.
Минусы: низкая производительность, дополнительная нагрузка на процессоры хостов ESX и сервер-хранилище.
NFS-хранилище
Плюсы: низкая стоимость, не требуется дополнительного звена – томов VMFS, хорошая производительность.
Минусы: опять-таки IP-сеть, нет поддержки MSCS, нельзя загружать ESX из SAN, нагрузка на процессор.
Local Storage
Плюсы: дешево (локальные диски самого ESX), не требуется дополнительных инвестиций, хорошее быстродействие.
Минусы: не работает VMware HA, DRS+DPM, VMotion, VCB.
Основные лучшие практики для всех типов систем хранения
Презентуйте тома LUN для всех серверов ESX Server с одинаковым LUN ID. Иначе ваши VMFS-тома могут превратиться в снапшоты и могут оказаться недоступными.
Правильно выбирайте размер блока для тома VMFS. Как это сделать описано здесь.
Придерживайтесь правила «1 LUN per 1 VMFS Volume»
Используйте унифицированные правила именования VMFS-томов, создавайте, по возможности, LUN одинакового размера. Наиболее оптимальный размер LUN – от 250 Гб до 2 Тб.
Не используйте «расширения» (Extents) для томов VMFS.
Храните ISO-образы на дешевом хранилище, например NFS, и монтируйте его в режиме Read-Only для ESX.
Используйте RDM-диски с осторожностью. Больших преимуществ в производительности они не дают. Используйте их только тогда, когда требуется их функциональность (например, для кластеров MSCS).
Держите 30% тома VMFS свободным. Это уменьшит риск необходимости его расширения при создании снапшотов и прочих непредвиденных обстоятельств.
Не размещайте более 30 виртуальных машин на одном VMFS-томе. LUN может начать испытывать проблемы с производительностью. Хорошие консультанты рекомендуют от 5 до 15 виртуальных машин на LUN.
VMkernel Core Dump храните локально. При отключении ESX от SAN вы не сможете понять в чем дело.
Делайте меньше «снапшотов» виртуальных машин, а лучше совсем не делайте. Лучше используйте ПО для создания резервных копий.
Для гостевой ОС виртуальной машины выставляйте параметр Disk TimeOutValue в значение 60 секунд для того, чтобы дать время SCSI-устройствам и механизму выбора пути на приобретение устойчивого состояния во время физических проблем в компонентах сети хранения. Для этого в ОС Windows необходимо в ключе реестра «HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Disk\TimeOutValue» выставить значение 60.
Убедитесь, что длина очереди (Queue Size) в гостевой системе для драйверов BusLogic и LSI Logic соответствует значению не менее 30.
Практики для разных типов общих систем хранения виртуальных машин
Fibre Channel
Зонируйте фабрику SAN так, чтобы каждый HBA-адаптер ESX Server попадал в отдельную зону. При этом все хосты ESX должны видеть все LUN с виртуальными машинами для корректной работы HA и VMotion.
Убедитесь, что доступ к одному LUN для массивов, сконфигурированных как «active-passive», организован через активный контроллер со всех хостов. Иначе может возникнуть явление Path Thrashing.
Для хостов ESX Server настраивайте зонирование типа "hard zoning" (по номеру порта). Зонирование типа "soft zoning" (по номеру WWN) - не применяйте.
В настройках типов хостов для системы хранения указывайте правильный тип хоста – «VMware» (если таковой присутствует). Если такого нет, используйте рекомендацию производителя.
Устанавливайте политику путей как Fixed для систем хранения, контроллеры которых сконфигурированы как «active-active» и MRU (Most Recently Used) для систем хранения с контроллерами «active-passive». Не используйте политику балансировки по путям Round Robin, так как она не поддерживается в производственной среде.
При проблемах с производительностью, возможно имеет смысл увеличить глубину очереди HBA-адаптера. Для этого в файле /etc/esx.conf найдите строчку, наподобие /device/002:02.0/options = "ql2xmaxqdepth=" для вашего HBA, и добавьте после последнего равно значение Queue Depth. По умолчанию установлено значение 32. Значение задается в соответствии с формулой:
Отмаскируйте LUN, не нужные серверам ESX. Для этого в «Advanced Settings» для ESX Server добавьте значение параметра Disk.MaskLUNs. При указании конкретных LUN, они будут пропущены при сканировании. Например, указание параметра "vmhba0:0:4,6-255" позволит сканировать LUN 0,1,2,3,5, пропустив LUN 4 и от 6 до 255 включительно. Через точку с запятой можно указать второй HBA, например vmhba1.
Для серверов, имеющих диагностические разделы (diagnostic partitions), необходимо располагать их на локальных дисках, а не в сети SAN, для возможности получения дампов ядра при разрыве соединения с SAN. Бездисковые серверы должны иметь один общий диагностический раздел и настройки зонирования должны позволять всем серверам ESX получить доступ к нему.
iSCSI Storage
Используйте отдельные сетевые адаптеры для взаимодействия с устройством хранения и для трафиика виртуальных машин.
Резервируйте пути и коммутаторы в LAN, используйте NIC Teaming и Failover Order.
Порты хостов ESX Server и систем хранения размещайте в одной подсети.
Используйте метод обнаружения Static Discovery только для Hardware-инициаторов. Программные инициаторы не используют метод Static Discovery.
Помните, что подключение к iSCSI инициируется из сервисной консоли. Не забудьте добавить разрешение для порта 3260 в сетевой экран.
Используйте VLAN на уровне групп портов для локализации трафика.
Не используйте Failback для NIC Teaming.
Не используйте один порт VMkernel для VMotion и хранилища.
Используйте гигабитные адаптеры и Jumbo Frames (Jumbo Frames не поддерживается в ESXi – только в ESX).
NAS/NFS Storage
Увеличьте число возможных подключаемых общих ресурсов NFS. Для этого в Advanced Settings для сервера ESX выставьте значение параметра NFS.MaxVolumes в значение 32 вместо 8.
Монтируйте хранилища виртуальных машин NFS одинаковым образом (hostname/FQDN/IP, export и datastore name).
Рекомендуемые параметры в Advanced Settings – NFS (взято у NetApp):