Назначение и удаление нескольких LUN из виртуальных машин на ESXi 4

Назначение и удаление нескольких LUN из виртуальных машин на ESXi 4

В настоящее время у нас есть тестовая среда, в которой мы создаем сотни LUN на нашем массиве хранения данных, подключенном к SAN, экспортируем их на один или несколько (физических) серверов, проводим тесты данных, содержащихся в LUN, затем уничтожаем их и повторяем.

Мы хотели бы использовать виртуальные машины в качестве серверов, но у нас возникли проблемы с назначением сотен LUN вручную каждой отдельной виртуальной машине (тогда как и раньше с физическими серверами мы могли бы просто настроить зонирование для этого и выполнить повторное сканирование HBA).

Есть ли предложения, как справиться с этой ситуацией? Одним из решений может быть VM direct path IO (но у нас сейчас нет необходимого оборудования для этого) или настройка скрипта для автоматического повторного сканирования новых LUN на уровне ESX, а затем автоматического назначения LUN определенным VM (что, как я предполагаю, можно сделать через API?).

решение1

Я не понимаю, почему это нельзя сделать с помощью любой стандартной настройки ESX\ESXi.

Вы должны иметь возможность сделать это с помощью Raw Device Mappings. Предполагая, что процедуры зонирования и представления LUN на конце SAN остаются неизменными, вы можете использовать vmkfstools, чтобы указать ESX повторно сканировать и обнаружить новые LUN ​​на уровне хоста. Как только это будет найдено, вы можете либо создать VMDK и добавить их в VM, либо представить все тома как Raw Device Mappings (RDM).

С ESX вы можете написать этот скрипт в командной строке консоли сервиса, но для ESXi вам нужно будет использовать либо PowerCLI (Powershell), либо инструменты Perl CLI.Устройство управления vSphereэто Linux-приложение, которое имеет все инструменты, предварительно упакованные, если вы хотите пойти по этому пути. Документацию для всех трех подходов CLI можно найти здесьздесь.

Общий план того, что вам нужно будет сделать, следующий:

1. Повторно просканируйте хост на наличие новых LUN.

vicfg-rescan [vmhbaX]   

Вероятно, вам просто захочется просканировать соответствующие HBA, которым представлен LUN, поэтому замените vmhbaX соответствующими именами HBA, которые подключены к вашей SAN.

2. Создайте заглушку RDM, которая сопоставляется с новым LUN.

vmkfstools –a lsilogic -r /vmfs/devices/disks/vmhba1:0:0:0 /vmfs/volumes/storage1/testluns/testrdmlun.vmdk

Вам нужно будет выяснить ссылку LUN для ваших LUN и установить vmdk в место и имя, которые имеют смысл в вашей среде. Есть несколько вариантов синтаксиса с этим, и я не использовал его на ESXi 4, но этот формат отлично работал у меня на 3.5. Есть два режима RDM, если вам нужна большая функциональность SCSI, то режим Raw Device Mapping Passthrough может быть для вас более подходящим, в этом случае замените -r на -x.

3. Подключите новый диск к вашим виртуальным машинам.

После того, как вы подготовили диск таким образом, есть несколько способов представить их ОС в виртуальной машине. Вы можете отредактировать конфигурацию виртуальной машины и добавить запись для этого устройства, или вы можете иметь этот конкретный целевой vmdk уже настроенным в виртуальной машине и вы можете выполнить вышеуказанные шаги обнаружения, пока виртуальная машина выключена. Если вам нужен более динамичный механизм, лучшим способом сделать то, что вы хотите, будет использованиеУтилита VMware Disk Mount- это позволяет вам напрямую монтировать RDM (или любой другой VMDK) из гостевой ОС, не вмешиваясь в конфигурацию виртуальной машины.

Если вы используете удаленный CLI для повторного сканирования и vmkfstools, вам может потребоваться указать целевой хост и учетные данные аутентификации как часть команд.

Тот же подход можно использовать со стандартными файлами VMDK, но сначала вам нужно будет отформатировать LUN как VMFS, а затем создать на нем подходящий VMDK. Насколько я могу судить по вашему описанию, вы не получите никакой выгоды от этого.

Связанный контент