Назад | Перейти на главную страницу

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

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

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

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

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

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

С ESX вы можете написать сценарий в командной строке Service Console, но для ESXi вам нужно будет использовать либо PowerCLI (Powershell), либо инструменты Perl CLI. В vSphere Management Appliance - это 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 для ваших LUNS и установить для vmdk расположение и имя, которые имеют смысл в вашей среде. Есть несколько вариантов синтаксиса с этим, и я не использовал его на ESXi 4, но раньше этот формат отлично работал у меня на 3.5. Есть два режима RDM. Если вам нужна дополнительная функциональность SCSI, то режим Raw Device Mapping Passthrough может быть более подходящим для вас, в этом случае замените -r на -x.

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

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

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

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