NFS против iSCSI – какой протокол следует выбрать для хранения файлов виртуальных машин VMware? Этот вопрос обычно возникает, когда вам необходимо настроить общее хранилище для хранения виртуальных машин (VM), которые должны быть перенесены между хостами ESXi для использования функций кластеризации, и когда нет свободных слотов для подключения физических дисков к серверу.
Организации, развертывающие VMware vSphere в крупном дата-центре, предпочитают использовать Fibre Channel (FC) или Fibre Channel over Ethernet (FCoE), которые стоят дорого. Однако NFS и iSCSI привлекательны для небольших и средних дата-центров, используемых для инфраструктуры VMware vSphere, потому что оборудование, необходимое для настройки обмена файлами с использованием этих протоколов обмена, более доступно. В этом блоге сравниваются NFS против iSCSI с акцентом на их использование в виртуальной инфраструктуре VMware vSphere.
Что такое NFS?
Network File System (NFS) – это сетевой протокол, который позволяет вам обмениваться файлами, хранящимися на диске или массиве дисков сервера с другими компьютерами в сети. NFS был разработан SUN Microsystems, и первая версия была представлена в 1984 году. На момент написания этого поста последняя реализация NFS – версия 4.1. Версия 4.2 находится в разработке и еще не была представлена для использования в производстве.
С каждой новой версией NFS добавлялись новые функции и улучшения, включая функции, полезные для хранения виртуализации. NFS v4.1 предоставляет механизм для разрешения множественного доступа к одному и тому же файлу пользователям и обеспечения согласованности данных (параллельный доступ). Поддерживаются множественные потоки для операций.
NFS – это протокол, работающий на уровне прикладного программного обеспечения модели открытых систем взаимодействия (OSI). Клиенты получают доступ к файлам, отправляя запросы на удаленные процедуры (RPC) на сервер NFS для выполнения операций с файлами и каталогами на сервере NFS.
Запросы RPC передаются протоколу XDR (External Data Representation), который работает на уровне представления и является стандартом для абстракции данных между платформами. XDR описывает унифицированную и каноническую форму представления данных, не зависящую от архитектуры вычислительной системы. Когда клиент передает данные, клиент RPC преобразует локальные данные в каноническую форму, а сервер выполняет обратную операцию.
После завершения унификации данных служба RPC на стороне клиента обеспечивает запрос удаленных процедур и их выполнение на сервере (предоставляя возможности уровня сеанса). На этом этапе завершается объяснение слоев, специфичных для NFS. Затем данные инкапсулируются в стандартные единицы данных TCP или UDP и передаются на более низкие уровни модели OSI.
Уровни OSI | Протоколы |
Прикладной | NFS |
Представления | XDR |
Сеанс | RPC |
Транспортный | TCP |
Сетевой | IP |
Канальный | Ethernet |
Физический | – |
NFS делится данными на уровне файлов. Для реализации сетевого хранилища NFS можно использовать стандартные сетевые адаптеры с интерфейсом Ethernet и портом RJ-45.
Самые старые версии NFS работают через UDP по IP-сети, а новые версии (NFS v2 и v3) могут работать через TCP и UDP. NFS 4.0 и 4.1 используют TCP через IPv4 как стандарт. NFS v4 работает через брандмауэры и через интернет.
VMware vSphere ESXi 6.0 и более новые версии ESXi поддерживают NFS 3.0 и NFS 4.1. В ESXi содержится встроенный клиент NFS, который подключается к серверу NFS по TCP/IP. Для подключения через версии NFS 3.0 и 4.1 используются два разных клиента NFS. При создании нового хранилища NFS можно выбрать, какую версию NFS использовать. VMware не поддерживает следующие функции при использовании NFS v.4.1:
- Хранение DRS
- Управление вводом/выводом хранения
- Менеджер восстановления сайта
Использование хранилищ NFS удобно для хранения шаблонов виртуальных машин и образов ISO для установки операционных систем на виртуальные машины.
Что такое iSCSI?
Протокол Internet Small Computer Interface (iSCSI) – это сетевой протокол, обеспечивающий взаимодействие объектов (инициаторов и целей) в сети для обмена данными. Инициатор iSCSI настраивается на стороне клиента, а цель iSCSI – на стороне сервера.
Инициаторы iSCSI могут быть основанными на программном и аппаратном обеспечении. Аппаратно-основанные помогают разгрузить центральный процессор (ЦП или процессор) на клиентской машине и требуют установки адаптера шины хоста (HBA). Аппаратный HBA iSCSI – это сетевой контроллер интерфейса (NIC) с Ethernet-интерфейсом. В этом сравнении iSCSI против NFS я рассматриваю использование инициаторов iSCSI на основе программного обеспечения. iSCSI был введен в 2003 году и описан в RFC 3720.
iSCSI – это протокол уровня сеанса (работает на уровне 5 модели OSI), который работает поверх стека TCP/IP. Данные общуются на уровне блоков, в отличие от NFS, но аналогично FC. Это важный момент в сравнении iSCSI против NFS. Команды SCSI инкапсулируются в единицы данных TCP/IP и передаются с использованием стандартных сетей Ethernet. В результате один компьютер может отправлять команды SCSI к блочным устройствам хранения, расположенным на другом компьютере, с использованием сети.
Слои | Описание |
Приложение | Файловая система, база данных и т. д. |
SCSI | Данные SCSI, команды SCSI, статусы SCSI |
iSCSI | Службы протокола iSCSI, Имя квалифицированного узла iSCSI (IQN), Служба имени хранилища в Интернете (iSNS), аутентификация CHAP и т. д. |
TCP | Протокол с механизмом управления ошибками (обычно используется в стеке TCP/IP) |
IP | Протокол для сетевого обмена и маршрутизации |
Ethernet | Коммутаторы, кабели, порты (разъемы), протоколы |
Примечание: Существует интересный факт о том, как iSCSI может быть использован для восстановления виртуальных машин VMware. Когда вы используете мгновенное восстановление виртуальной машины в NAKIVO Backup & Replication, например, для запуска ВМ на хосте ESXi напрямую из резервной копии, ВМ создается на выбранном хосте ESXi, а виртуальные диски монтируются к ВМ с использованием протокола iSCSI в качестве дисков RDM в виртуальном режиме совместимости.
Сравнение VMware NFS и iSCSI – Основные различия
Как NFS, так и iSCSI могут работать в сетях Ethernet с пропускной способностью 1 гигабит и 10 гигабит (1GbE и 10GbE), развернутых с использованием медных проводов. Более высокая скорость сети лучше. Узнайте больше о топологиях сети. При использовании общего хранилища данных в VMware vSphere для хранения файлов виртуальных машин обе реализации (NFS и iSCSI) могут быть использованы для живой миграции виртуальных машин, балансировки нагрузки и миграции виртуальных машин между хранилищами данных. Оба протокола совместного доступа имеют значительные накладные расходы, вызванные механизмом многоуровневой инкапсуляции данных в сетях TCP/IP.
NFS поддерживается на большинстве сетевых устройств NAS различных производителей, например, Synology и QNAP. Однако сегодня несложно выбрать NAS с поддержкой iSCSI.
Давайте подробнее рассмотрим это сравнение VMware NFS и iSCSI.
Балансировка нагрузки
Когда один из сетевых путей отказывает или перегружен, мультипуть обеспечивает возможность балансировки нагрузки между сервером и хранилищем, если есть несколько путей.
NFS 4.1 поддерживает мультипуть, если сессионное укрупнение доступно на серверах (но не укрупнение идентификатора клиента). В результате вы можете получить доступ к одному объему NFS с нескольких IP-адресов. Если вы используете NFS v3, используйте DNS-круговую балансировку для балансировки нагрузки в сети.
В VMware vSphere мультипуть iSCSI работает на уровне сетевого адаптера VMkernel. Для балансировки нагрузки iSCSI в vSphere можно использовать привязку портов.
Кэширование
При использовании NFS файловая система с кэшем файлов располагается на сервере NFS, и клиентская машина должна постоянно проверять метаданные на сервере NFS. Асинхронная запись данных поддерживается NFS v3 и v4, но обновления метаданных синхронны.
При использовании iSCSI файловая система создается клиентским устройством после получения доступа к общему хранилищу на уровне блока (например, для VMware vSphere хост ESXi создает файловую систему VMFS на iSCSI LUN). Политика кэширования определяется файловой системой для общего хранилища iSCSI, и кэш файловой системы располагается на стороне клиента. Например, если вы используете iSCSI в качестве протокола обмена и ext3 в качестве файловой системы, у вас есть полный кэш с записью обратно для данных и обновлений метаданных.
Современные файловые системы используют асинхронное обновление метаданных, и для восстановления данных используется журналирование на основе журнала. В целом асинхронное обновление данных (используемое в iSCSI) менее надежно с точки зрения сохранения данных и метаданных по сравнению с синхронным обновлением, таким как в NFS.
Надежность
NFS. Коммутация сетевых интерфейсов NIC может использоваться для защиты от сбоев сети. Если один NIC выходит из строя, другой NIC может продолжать работать.
iSCSI. Архитектура подключаемого хранилища VMware (PSA) использует плагин типа хранилища для реализации отказоустойчивости при работе с массивами iSCSI. Привязка iSCSI требует сопоставления нескольких целей iSCSI на разных подсетях с инициатором iSCSI.
Поскольку как iSCSI, так и NFS используют TCP для инкапсуляции, доставка данных проверяется на уровне сети.
VMFS на iSCSI-накопителе может быть хрупким, если вы храните тонкопрофилированные виртуальные диски для ВМ. Сбой в электропитании может сделать том не восстановимым. Поведение хранилищ NFS в таких ситуациях немного надежнее. Вы можете смягчить эти проблемы, если регулярно выполняете резервное копирование VMware.
Безопасность
Трафик iSCSI обычно не шифруется, но это не означает, что вы не можете защитить его. Для аутентификации в распределенных файловых хранилищах iSCSI поддерживается использование имени и пароля. Протокол аутентификации CHAP (Challenge Handshake Authentication Protocol) позволяет серверу и клиенту убедиться в том, что они доверяют друг другу.
NFS использует аутентификацию на основе хоста. В конфигурации NFS по умолчанию не предусмотрено шифрование (sys=system), но при использовании NFSv4 с включенным Kerberos (sec=krb5p) соединение защищено. В конфигурации сервера NFS вы должны определить IP-адрес хоста, который имеет доступ к общему ресурсу NFS. Вы также можете определить несколько хостов или весь подсети. Например, широко известный протокол обмена файлами SMB, основанный на пользователях, полагается на аутентификацию на основе пользователей.
Настройка выделенной VLAN или использование отдельной (частной) физической сети рекомендуется для использования общего хранилища iSCSI и NFS в VMware vSphere. Этот подход позволяет изолировать трафик хранилища от других типов трафика. NFS v3 не имеет функций безопасности, аналогичных тем, что в NFS v4.1. Сервер ESXi монтирует NFS-шару с правами root (когда не используется Kerberos). Имейте это в виду при настройке безопасности. Прочтите также о VLAN и VXLAN.
NFS v.4.1 поддерживает аутентификацию Kerberos с криптографическими механизмами, дополнительно к стандарту Data Encryption Standard (DES). Криптографические алгоритмы в Kerberos предотвращают несанкционированный доступ к трафику NFS. ESXi поддерживает реализации Kerberos krb5 и krb5i. ESXi 7.0 поддерживает NFS 4.1 с шифрованием Kerberos и механизм безопасности AUTH_SYS (но не одновременно).
VMware NFS против iSCSI – отображение сырых устройств.
При использовании iSCSI в качестве общего хранилища, вы можете настроить прямое отображение сырых устройств для виртуальной машины. Прямое отображение сырых устройств (RDM) – это функция, которая позволяет подключить целый физический диск или iSCSI LUN к виртуальной машине непосредственно в качестве устройства (вместо подключения виртуального диска в конфигурации виртуальной машины). Подход на основе RDM отличается от традиционного подхода, когда вы создаете хранилище данных на LUN (Logical Unit Number), создаете файловую систему VMFS и сохраняете виртуальные диски, используемые виртуальными машинами, в этом хранилище данных. RDM возможно при использовании iSCSI, потому что iSCSI-раздел работает на блочном уровне, и виртуальная машина может форматировать подключенный блочный RDM-диск с помощью пользовательской файловой системы, используемой гостевой операционной системой, установленной на виртуальной машине.
Что касается NFS, использование разделяемого NFS-диска в качестве RDM-диска не поддерживается, поскольку NFS-разделы работают на уровне файлов, а RDM требует подключения блочных устройств к виртуальным машинам. С помощью разделяемых NFS-дисков вы можете только создавать хранилища данных NFS и хранить файлы виртуальных дисков VMDK на этих хранилищах данных. Вы можете примонтировать разделяемый NFS-диск и разделяемый iSCSI-диск на уровне гостевой операционной системы, если у гостевой операционной системы есть клиент NFS или инициатор iSCSI. Таким образом, в категории прямого отображения сырых устройств в сравнении VMware iSCSI против NFS побеждает iSCSI.
Производительность iSCSI против NFS
В программной реализации iSCSI производительность немного выше, но нагрузка на процессор клиентского хоста также выше. iSCSI также нагружает сеть больше. iSCSI генерирует больше сетевого трафика и нагрузки на сеть, в то время как использование NFS более плавное и предсказуемое. При выполнении большого количества операций записи вы можете заметить снижение производительности с разделяемым NFS-диском.
При использовании NFS в vSphere лучше всего использовать NFS с поддержкой интерфейса vStorage API для интеграции с массивом (VAAI) на стороне хранилища. VAAI позволяет создавать толстые предоставленные виртуальные диски на хранилищах NFS. Тонкие предоставленные диски создаются на хранилищах NFS по умолчанию. Как NFS, так и iSCSI поддерживают Jumbo-кадры для улучшения сетевой производительности.
В конце этого сравнения скорости iSCSI против NFS следует отметить, что производительность также зависит от производителя массива хранения.
Параллельный доступ
iSCSI не поддерживает одновременный или параллельный доступ к блочному устройству. Данные должны передаваться между двумя узлами. Однако параллельный доступ разрешен на уровне файловой системы, которая поддерживает параллельный доступ к файлам, например, VMFS или GFS. При использовании общих ресурсов iSCSI в VMware vSphere одновременный доступ к ресурсам обеспечивается на уровне VMFS.
NFS поддерживает одновременный доступ к общим файлам с помощью механизма блокировки и механизма согласованности “близкого к открытому”, чтобы избежать конфликтов и сохранить согласованность данных. NFS v3 и NFS v4.1 используют разные механизмы. NFS v3 может использовать протокол Network Lock Manager (NLM), а NFS v4.1 использует указанный собственный протокол блокировки. Если NFS v3 используется на VMware ESXi для доступа к общим ресурсам файлов, ESXi не использует протокол NLM, потому что VMware предоставляет собственный протокол блокировки в этом случае. Файлы блокировки с названием .lck-file_id создаются на общем ресурсе файла при использовании общих ресурсов NFS v3 в VMware vSphere.
NFS v4.1 использует резервирование для блокировки файлов для одновременного доступа. Если вы создаете общий файловый ресурс NFS, все клиенты должны использовать одну и ту же версию протокола NFS (например, все хосты ESXi подключаются к ресурсу через NFS v.4.1). Если два несовместимых клиента используют разные версии NFS для доступа к файлам на сервере NFS, может возникнуть непоследовательное поведение и повреждение данных.
Сложность настройки
При использовании NFS настройка сервера и клиента проще. Настройка общего хранилища с использованием iSCSI более сложна. Вам нужно настроить IQN для хранилища и хостов; выполнить настройку службы iSCSI, LUN и маскировки; и настроить несколько VLAN по соображениям безопасности (изоляция сетевых сегментов, используемых для iSCSI-коммуникации для обеспечения более высокого уровня безопасности).
Прочитайте о виртуальных томах VMware, которые можно использовать для хранения данных ВМ.
Сравнение NFS и iSCSI в VMware vSphere – Таблица суммарных данных
Давайте выделим основные особенности каждого протокола совместного использования данных в этом сравнении NFS против iSCSI VMware в таблице суммарных данных.
iSCSI | NFS | |
Обмен данными | Блочный уровень | Уровень файла |
Прямое отображение устройств для ВМ | Да | Нет |
Сложность конфигурации | Средняя | Легкая |
Загрузка с SAN | Да | Нет |
Проверка ошибок | Да | Да |
Функции безопасности | CHAP | Керберос |
Storage vMotion | Да | Да |
Хранилище DRS | Да | Да |
Заключение
Оба протокола обмена данными достаточно зрелы для использования в VMware vSphere. Основное различие между iSCSI и NFS заключается в том, что iSCSI делит данные на блочном уровне, а NFS делит данные на уровне файла. Производительность практически одинакова, но в некоторых ситуациях iSCSI может давать лучшие результаты. Диски RDM для ВМ могут использоваться с iSCSI, но не с NFS.
Оба сетевых протокола обладают надежностью. Однако для предотвращения потери данных и простоев все равно следует использовать стороннее решение по защите данных. Избегайте сбоев питания и других аппаратных сбоев, чтобы избежать потери данных на вашем общем хранилище. Используйте блоки бесперебойного питания и создавайте регулярные резервные копии.
Source:
https://www.nakivo.com/blog/nfs-vs-iscsi-for-accessing-vm-data/