Создание кластерного RDM диска в VMware ESXI 6.5

Обновлено 27.05.2021

rdm esxi logo

Доброго времени суток! Многоуважаемые читатели и гости, крупного IT блога Pyatilistnik.org. Я продолжаю цикл статей посвященный моему любимому гипервизору Vmware ESXI 6.5. В прошлый раз мы с вами начали изучать кластерные диски, и разобрали тему, где разобрали, что такое Multi-writer диск и как его применять в кластере Microsoft или Oracle. Сегодня я бы хотел поговорить, о еще одной реализации кластерных дисков под различные задачи, а именно о создании RDM дисков (Raw Device Mapping). Технология очень интересная и набирающая интерес у многих инженеров.

Что такое RDM диск (Raw Device Mappings)

Год назад, я вам уже вскользь рассказывал, о данной технологии, я вас учил подключать RDM диск в ESXI 5.5. Сегодня я постараюсь подробнейшим образом, прежде всего для себя, чтобы структурировать осознанную информация, рассказать, о назначении технологии, какие у нее есть ограничения и варианты внедрения.

Raw Device Mapping он же RDM - это способ обеспечения прямого доступа виртуальной машины к LUN (Logical Unit Number) в хранилище SAN (СХД). LUN, представленный виртуальной машине, может быть затем отформатирован в любой файловой системе, такой как NTFS или FAT для ОС Windows, и поэтому нет необходимости форматировать LUN с файловой системой VMFS, а затем размещать на ней vmdk.

RDM можно рассматривать, как символическую ссылку из тома VMFS в Raw LUN (Мы с вами уже рассматривали применение символических ссылок, при переносе OST файла в Outlook). Когда RDM диск сопоставляется с виртуальной машиной, то создается файл сопоставления (Mapping File). Этот файл сопоставления выступает в качестве прокси для физического устройства и содержит метаданные, используемые для управления и перенаправления доступа к необработанному диску.

Когда виртуальная машина пытается получить доступ к Logical Unit Number, файл сопоставления считывается для получения ссылки на нужный LUN с системы хранения данных, а затем чтение и запись идут непосредственно к необработанному LUN, а не через файл сопоставления. Схематически данную реализацию можно представить вот так.

Схема RDM

Где используются RDM диски

RDM предоставляет ряд преимуществ, но его нельзя использовать в любой ситуации.

  • Raw Device Mappings диски, как видно из названия статьи, используют в кластерных решениях, например MSCS кластер, например между виртуальной машиной и физическим сервером или Oracle
  • RDM диски можно использовать в некоторых продуктах резервного копирования, где софт требует именно локальные диски. Еще бывают ситуации, что наоборот с локальными дисками софт может не работать, и так например в Veeam Backup, можно такой вот проброшенный LUN замаскировать под ленточную библиотеку (VTL -Virtual tape library "https://en.wikipedia.org/wiki/Virtual_tape_library")
  • Когда есть необходимость в использовании iSCSI-устройства, чтобы ему можно было передать разные iSCSI-команды, например, чтобы управлять SAN-устройством из виртуальной машины, или делать снапшот на уровне системы хранения данных.
  • Для достижения максимальной производительности, минуя накладные расходы гипервизора.
  • Для настройки виртуальной машины для использования виртуализации идентификаторов N_Port (NPIV)
  • Очень удобно без переустановки перенести все данные на таком LUN отформатированном, например, в файловой системе NTFS. Где виртуальная машина их сразу увидит, там можно избежать процесса виртуализирования P2V.
  • Еще одним преимуществом можно выделить удобное имя для подключенного устройства. Когда вы используете RDM, вам не нужно ссылаться на устройство по имени устройства. Вы ссылаетесь на него по имени файла сопоставления, например: /vmfs/volumes/myVolume/myVMDirectory/myRawDisk.vmdk
  • Есть динамическое разрешение имен - Хранит уникальную идентификационную информацию для каждого подключенного устройства. VMFS связывает каждый RDM с его текущим устройством SCSI, независимо от изменений физической конфигурации сервера, из-за изменений адаптера, изменений пути, перемещения устройства и т. д.
  • Распределенная блокировка файлов - Позволяет использовать распределенную блокировку VMFS для необработанных SCSI-устройств. Распределенная блокировка на RDM делает безопасным использование общего необработанного LUN без потери данных, когда две виртуальные машины на разных серверах пытаются получить доступ к одному и тому же LUN.
  • RDM должен сопоставляться с полным LUN; он не поддерживает частичные объекты хранения, такие как разделы диска. Кроме того, RDM работает не на всех устройствах. В качестве одного примера, RDM использует серийные номера устройств хранения для обеспечения правильной идентификации активов хранения, но некоторые устройства хранения - такие как некоторые блочные устройства хранения с прямым подключением и устройства RAID - не предоставляют серийный номер. Без серийного номера RDM недоступен для этих ресурсов хранения.

Дополнительную информацию можно почитать по ссылке https://docs.vmware.com/en/VMware-vSphere/6.7/com.vmware.vsphere.storage.doc/GUID-D9B143D8-9F93-41D1-A32F-9FF4DE4CDF14.html

Режимы работы RDM дисков

Существует два варианта работы Raw Device Mappings дисков:

1. Физический (Physiacal)
2. Виртуальный (Virtual)

Перед тем, как я опишу вас оба режима работы RDM дисков, я напомню принцип работы VMFS томов с VMDK файлами виртуальных дисков. Если по простому, то VMDK диски, это наивысший уровень маршрутизации, там SCSI команды, которые генерирует виртуальная машина идут на компонент VMkernel. Далее VMkernel находит файл VMDK и смотрит его содержимое. Все, что находится во вне за пределами виртуальной машины, ей не доступно, это можно сравнить с изолированной Северной Кореей. По сути виртуалка получает некий кусок NFS или VMFS тома, предоставленной ей в виде VMDK файла, где все операции с ним строго контролирует гипервизор ESXI, в виду такой схемы мы имеем накладные расходы производительности.

Режим физической совместимости (RDM Physiacal Mode)

Данный режим еще называют Passthru RDM.

  • Режим физической совместимости предлагает альтернативное сопоставление, которое обеспечивает прямой доступ к устройствам SCSI, что может быть полезно для приложений, которые в противном случае ожидают низкоуровневый доступ к диску.
  • Физический режим определяет минимальную виртуализацию SCSI сопоставленного устройства, что обеспечивает наибольшую гибкость программного обеспечения для управления SAN. Хост передает все команды SCSI, за исключением команды REPORT LUNS, непосредственно на устройство хранения. Это может быть полезно при запуске программного обеспечения управления SAN внутри виртуальной машины, поскольку агентам управления SAN, как правило, требуется прямой доступ к устройству без перехвата команд SCSI хостом виртуализации. Примером приложения SAN, которому требуется RDM в физическом режиме, является пакет SnapManager NetApp.
  • Снимки виртуальной машины недоступны, когда RDM используется в режиме физической совместимости.
  • Виртуальные машин с дисками Raw Device Mappings вы не сможете клонировать
  • До версии ESXI 6.0 включительно вы не могли в режиме Physiacal Mode производить Storage Vimotion, в версия ESXi 6.5 и выше она уже работает, хоть и со скрипом.
  • Вы можете использовать этот режим для кластеризации между физическими серверами и виртуальными.
  • VMFS5 поддерживает размер диска более 2 ТБ для RDM только в режиме физической совместимости. Эти ограничения применяются:
  1. Вы не можете переместить RDM размером более 2 ТБ в хранилища данных, отличные от VMFS5.
  2. Вы не можете преобразовать RDM размером более 2 ТБ в виртуальные диски или выполнять другие операции, связанные с преобразованием RDM в виртуальные диски. Такие операции включают в себя клонирование.

режимы работы RDM дисков

Рекомендации по настройке кластера Microsoft, где используются диски RDM в режиме физической совместимости, между виртуальной машиной и физическим сервером https://docs.vmware.com/en/VMware-vSphere/6.0/vsphere-esxi-vcenter-server-601-setup-mscs.pdf

Режим виртуальной совместимости (RDM Virtual Mode)

Режим виртуальной совместимости поддерживает подмножество команд SCSI, которые передаются через гипервизор для связи между гостевой ОС и отображенным RDM. В этом режиме VMkernel отправляет на подключенное устройство только READ и WRITE. Сопоставленное устройство отображается для гостевой операционной системы точно так же, как файл виртуального диска в томе VMFS. Хотя важно отметить, что если клонируется виртуальная машина с RDM в виртуальном режиме, содержимое RDM lun копируется в vmdk (так как сам необработанный lun не может быть клонирован хостом).

  • Виртуальный режим определяет полную виртуализацию подключенного устройства.
  • Реальные характеристики оборудования скрыты.
  • Если вы используете сырой диск в виртуальном режиме, вы можете реализовать преимущества VMFS, такие как расширенная блокировка файлов для защиты данных и моментальные снимки для оптимизации процессов разработки.
  • Виртуальный режим является более переносимым по отношению к аппаратным средствам хранения, чем физический режим, демонстрируя то же поведение, что и файл виртуального диска.
  • Есть нюансы при расширении RDM диска в режиме виртуальной совместимости.
  • В случае создания такого диска на хранилище VMFS (NFS - не поддерживается) создается mapping-файл (он тоже с расширением *-rdmp.vmdk), через который происходит маппирование виртуальной машине физического дискового устройства LUN. Устройство это маппируется особым образом - основные служебные операции по работе с ним (например, команда Open и другие служебные SCSI-команды) проходят через через слой виртуализации в гипервизоре, а команды по работе с данными (Read и Write) процессятся напрямую к устройству, минуя слой виртуализации. Под командами Read / Write в Raw Device Mappings подразумевается, что виртуалка будет его видеть, как обычный SCSI-диск. А так как, это обычный SCSI-диск, то с ним можно работать только, как с устройством хранения.

Кластеризация гостевых ОС

Распространенным вариантом использования RDM является кластеризация гостевых ОС (например, Microsoft Cluster Services) и кластеризация физического и виртуального. Существует несколько разных способов создания кластера с использованием виртуальных машин, с различными требованиями к использованию RDM.

CIB - Cluster In a Box - чаще всего используется для сценариев тестирования и разработки. Здесь у вас есть две виртуальные машины, работающие на одном хосте, настроенные как кластер. При использовании кластеризации Microsoft рекомендуется использовать RDM в режиме виртуальной совместимости.

CAB - Cluster Across Boxs - Когда виртуальные машины, составляющие кластер, находятся на разных хостах, тогда будет работать любой режим RDM, хотя рекомендуется использовать режим виртуальной совместимости.

Физически-виртуальный кластер - здесь необходимо использовать физический режим совместимости для RDM.

Как создать кластерный RDM диск в VMware ESXI 6.5

И так, предположим, что у меня есть две виртуальные машины, на борту которых установлена операционная система Windows Server 2016. Обе виртуальные машины расположены в рамках кластера ESXI, но естественно на разных хостах, предполагается, что к ним еще в будущем можно будет подключить дополнительный физический сервер на другой площадке. Исходя из этого мы создадим с вами Raw Device Mappings диски в режиме физической совместимости и отдадим их для постройки кластера MSCS или SQL AlwaysOn.

Перед тем, как мы с вами создадим RDM диски для наших виртуальных машин, нам нужно удостовериться, что все физические ESXI 6.5 хосты, видят LUN-ы и нужного размера. Для того, чтобы это проверить выберите нужны ESXI хост, перейдите в раздел "Configure - Storage Devices" и сопоставьте номера LUN представленные тут и на вашей системе хранения данных. Обратите внимание, что если у вас лун, который вы отдали с СХД, физически расположен на SSD, а в колонке "Drive Type" вы видите HDD вместо SSD, то я бы вам посоветовал прочитать заметку (Почему ESXI видит SSD как HDD)

идентификация Lun на ESXI хостах

Если есть разногласия, то вам необходимо произвести повторное сканирование ваших подключённых устройств хранения (Storage Devices). Для этого выберите пункт "All Actions - Rescan Storage". Это может занять некоторое время, обязательно дождитесь окончания задания.

пересканирование rescan storage

После того, как все LUN подключены, мы переходим с вами к редактированию настроек первой виртуальной машины. Для этого щелкните по ней правый кнопкой мыши и выберите пункт "Edit Settings".

добавление RDM Cluster Disk

Первым делом вы должны проверить, что у вас есть SCSI контроллер, который работает в режиме "None". Если его нет, то его нужно создать, делается это через пункт "New Device", где вы выбираете SCSI Controller.

Добавление SCSI контроллера в ESXI

Почему именно должен быть режим "Note", если вы активируете "Виртуальный или физический", то у вас не будет возможности производить миграцию на уровне датасторов (Storage Vimotion), вы будите получать ошибку:

Virtual machine is configured to use a device that prevents the operation: Device 'SCSI controller 1' is a SCSI controller engaged in bus-sharing

The disk extend operation failed: The virtual disk requires a feature not supported by this program. Hot-extend is currently supported only for VMFS flat virtual disks without snapshots opened in persistent mode.

Режимы работы SCSI Controller нужны для режима Multi-writer дисков. Еще одним ограничением SCSI контроллера, может выступать, что к нему можно подключить до 16 дисков, так что если у вас их больше вам придется добавить еще один.

RDM Cluster Disk-11

Далее вы таким же образом добавляете RDM Disk

Добавление RDM диска в ESXI

Не забываем нажать кнопку "Add".

RDM Cluster Disk-05

У вас появится окно "Select Target LUN", где вам необходимо выбрать нужный вам лун, тут можно их определить по имени, номеру и размеру. Тут будут представлены, только те, что не размечены на VMware ESXI.

Выбор LUN для RDM

Вот пример добавления RDM диска под кворум в кластере Microsoft. Обязательно выставите такие параметры:

  • Compatibility Mode (Режим совместимости) - я выставил Pyasical, так как планирую сюда еще подключить и физический хост, и чтобы было меньше проблем при расширении диска.
  • Sharing - я выставил режим Multi-writer, так как диск общий
  • Virtual Device Node - выставил контроллер в режиме None, чтобы иметь возможность делать миграцию на уровне хранилища.

После чего я нажимаю кнопку добавить "Add".

RDM Cluster Disk

Точно так же поступаем и с остальными кластерными дисками RDM.

добавление дополнительных RDM дисков

Теперь переходим к настройкам второй виртуальной машины, которая будет участником кластера Microsoft. При необходимости добавьте ей SCSI контроллер в режиме работы None. Теперь через добавление нового оборудования выберите "Existing Hard Disk" (Существующий жесткий диск)

Добавление существующего RDM диска

Не забываем нажать кнопку Add.

add existing rdm disk

У вас откроется окно "Select File", где вам необходимо найти на ваших датасторах, папку с первой виртуальной машиной, в которой будут созданы RDM диски (Точки монтирования), выбрав которые вы подключите этот существующий кластерный диск.

RDM Cluster Disk-13

Не забываем выставить пункты:

настройка RDM Cluster Disk-14

В операционной системе Windows Server 2016, наши Raw Device Mappings диски, будут все доступны в оснастке "Управление дисками"

RDM Cluster Disk-15

Нюансы Vmotion и Storage Vmotion

Так как я вам сказал, что у меня кластер ESXI 6.5, то все физические хосты у меня одинаковые, поэтому операция миграции виртуальной машины у меня выполняется без простоев. Напоминаю, этот тип миграции называется "Change compute resource only"

Миграция виртуальной машины с RDM-01

И удостоверьтесь, что в совместимости (Compatibility) у вас статус "Compatibility checks succeeded"

Миграция виртуальной машины с RDM-02

Вот отработавшее задание vMotion.

Миграция виртуальной машины с RDM-03

  • Файлы виртуальной машины не перемещаются при переносе с использованием vMotion.
  • Виртуальная машина перерегистрируется на хосте назначения.
  • Любые RDM остаются в качестве RDM, когда виртуальная машина зарегистрирована на другом хосте. То есть никаких изменений в самой виртуальной машине не производится.

Теперь в случае со Storage Vmotion, если вы попытаетесь на живую перетащить вашу виртуальную машину с RDM дисками, то вы получите вот такую ошибку:

Failed waiting for data. Error 195887107. Not found. Failed to start SvMotion. Error during disk setup.A fatal internal error occurred. See the virtual machine's log for more details.

В данном случае у вас два варианта решения проблемы, это выключить виртуальную машину, так как у меня кластер, то от этого проблем не будет. После чего выполнить холодную миграцию. Второй вариант, это передать управление дисками второй виртуальной машине, потом удалить их на первой, после чего мигрировать, а затем их подключить заново. По мне так первый вариант проще.

Ошибка storage vimotion rdm

При холодной миграции:

  • Любые виртуальные диски без RDM физически перемещаются в место назначения.
  • Файлы конфигурации виртуальной машины физически перемещаются в место назначения.
  • Сами необработанные LUN ​​нельзя перемещать, поскольку они представляют собой необработанные диски, представленные из SAN. Однако файлы указателей (RDM) могут быть перемещены при необходимости.
  • При выполнении холодной миграции виртуальной машины с подключенными к ней RDM, содержимое необработанного LUN, сопоставленного с RDM, копируется в новый .vmdkфайл в месте назначения, эффективно преобразуя или клонируя необработанный LUN в виртуальный диск. Это также относится к случаям, когда виртуальная машина не перемещается между хостами ESXI. В этом процессе ваш исходный необработанный LUN остается нетронутым. Однако виртуальная машина больше не читает и не пишет в нее. Вместо этого используется только что созданный виртуальный диск.
  • Если вы хотите выполнить холодную миграцию виртуальной машины без клонирования или преобразования ее RDM, удалите их из конфигурации виртуальной машины перед миграцией. Вы можете удалить RDM с диска при его удалении (необработанное содержимое LUN ​​не изменяется). Повторно добавьте их в конфигурацию после завершения.
  • Для ESXi 5.x и более поздних версий: во время миграции вы можете использовать раздел Advanced мастера миграции и выбрать, хотите ли вы сохранить тот же формат файлов в месте назначения или преобразовать его в толстый / тонкий диск.
  • Регистрация виртуальной машины меняется, но файлы остаются нетронутыми.

В момент включения, я потом получил на первой попытке вот такую ошибку:

File system specific implementation of OpenFile failed

Но через минуту она на второй раз завелась и все диски были нормально видны.

Ошибки миграции RDM-02

  • При выполнении Storage vMotion файлы виртуальной машины физически перемещаются в хранилище данных назначения. Один и тот же хост сохраняет владение или регистрацию виртуальной машины после завершения Storage vMotion.
  • Виртуальные диски и файлы указателей RDM виртуального режима можно переместить в хранилище данных назначения.
  • Виртуальные диски могут быть преобразованы в диски с толстым или тонким предоставлением во время миграции, если место назначения не является хранилищем данных NFS.
  • Файлы указателей RDM в физическом режиме можно переместить в хранилище данных назначения, но данные RDM в физическом режиме не могут быть перенесены на диск VMDK с помощью Storage vMotion, перенесутся только точки монтирования.
  • В ESXi 5.x и более поздних версиях во время операции Storage vMotion данные RDM виртуального режима можно переносить на новые диски VMDK, выбрав либо толстую, либо тонкую настройку для типа диска в разделе «Дополнительно» мастера миграции.
  • При переносе файлов указателя RDM в физическом режиме объемом более 2 ТБ с использованием Storage vMotion необходимо использовать веб-клиент vSphere.
  • Данные RDM в физическом режиме могут быть перенесены на диски VMDK только посредством холодной миграции.
  • Если вы не измените формат назначения на толстый или тонкий для RDM в расширенном разделе мастера миграции, только целевой файл RDM будет перенесен в целевое хранилище данных.
  • При использовании виртуализации N-Port ID (NPIV) Storage vMotion не поддерживается.
  • Если вы пытаетесь использовать Storage vMotion RDM виртуального режима с использованием расширенного метода, и файл сопоставления указателей RDM уже присутствует в целевом хранилище данных, Storage vMotion завершает работу быстро, но без перемещения данных. Это связано с тем, что Storage vMotion обнаруживает, что исходные и целевые хранилища данных для файла сопоставления совпадают, и поэтому приходит к выводу, что никакого перемещения не требуется.

Нюансы расширения RDM дисков

Теперь давайте поговорим, о том, как вы можете расширять RDM диски. Тут все будет зависеть от режима работы

  • Physical compatibility mode - Не требует перезагрузки
  • Virtual compatibility mode -  Требует перезагрузки

Расширение диска в режиме Physical compatibility mode. Откройте свойства виртуальной машины, выберите ваш RDM диск и разверните его дополнительные настройки. Найдите раздел "Physical LUN", под которым будет ссылка "Manage Paths". Нажмите на нее.

Как расширить RDM диск

Находим номер LUN. Он нам пригодится для поиска его на СХД, с которой презентуется LUN. Далее вы переходите на СХД, находите там LUN и расширяете его на нужный вам размер.

Расширяем RDM диск в режиме Physical compatibility mode

Далее вам необходимо произвести пересканирование ваших хранилищ (Storage - Reascan Storage).

Выполняем rescan storage в ESXI

Далее остается дождаться обновления информации, о размерах ваших хранилищ. После чего вы открываете уже внутри виртуальной машины оснастку по управлению дисками и производите его увеличение.

Если же мы говорим про режим Virtual compatibility mode,  то тут вам придется полностью выключить виртуальную машину. Так же найти номер LUN вашего виртуального диска. После чего в свойствах виртуальной машины, вам необходимо удалить ваш RDM диск, НО ТОЛЬКО из настроек самой виртуальной машины (from the virtual machine). Далее в интерфейсе про управлению СХД, вы производите увеличение нужного LUN. Делаете rescan ваших хранилищ, после чего вы добавляете существующий RDM диск в нужной виртуальной машине (VM Settings > Add > Hard Disk > RDM >). Включаете ее и производите расширение раздела внутри гостевой операционной системы. По идее это все.

Если остались вопросы, то пишите их в комментариях под видео или статье, я постараюсь на них ответить. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Автор - Сёмин Иван

4 Responses to Создание кластерного RDM диска в VMware ESXI 6.5

  1. Александр:

    Подключил RDM к 2 виртуальным машинам на vSphere. У одной машины подключил LUN, у второй — созданную метку. Диск нашелся на обеих ВМ (Windows Srv 2019 std). Отформатировал диск из первой ВМ, создал тестовый файлик. Подключил диск на второй, ФС определилась, файл прочитался… НО! При создании тестового файла со второй ВМ первая не видит изменений на диске. Файлы, созданные/измененные на одной ВМ видятся на второй ВМ только при переподключении диска в ОС.

  2. Иван Семин:

    А у вас какая версия ESXI ?

  3. Никита:

    Вань, привет. Есть SSD, прокинутый в виртуалку через RDM (физ. режми), все хорошо, но тревожит вопрос — если «умрёт» SSD, то виртуалка без него не запустится, т.к. он с ней связан? Как в таком случае быть? На нём БД Postgresql лежит

  4. Иван Семин:

    Сама виртуалка запуститься, ссд мало вероятно что умрет, он может перейти в режим только чтения, это да, Если диск не системный, то на виртуалку это не повлияет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *