В некоторых случаях (как правило, в кластерных сценариях) может возникнуть необходимость совместного использования одного и того же диска двумя (и более) виртуальными машинами. Самый оптимальный способ — использовать диск vmdk, физически расположенный на общем хранилище или локальном диске хоста ESXi (если хост один). Если вы хотите презентовать общий диск виртуальным машинам, запущенным на разных хостах ESXi, вы можете использовать только общее хранилище (VMFS datastore).
Предположим, у нас уже имеется некоторое общее внешнее хранилище (подключенное к каждому узлу ESXi с использованием iSCSI или Fibre Channel SAN), доступное всем хостам VMWare ESXi, с виртуальными машинами, которым нужно предоставить доступ к общему диску. Допустим, у нас всего 2 таких ВМ.
На обеих ВМ нужно добавить новый SCSI контроллер. Для этого, откройте клиент vSphere, выберите первую ВМ machine (Node 1) и откройте ее настройки (Edit Settings).
Чтобы добавить новое устройств, в выпадающем списке внизу окна выберите SCSI controller и нажмите кнопку Add.
В качестве типа контролера SCSI выберите LSI Logic SAS.
Выберите нужный режим общего доступа к шине SCSI (SCSI Bus sharing mode):
- Virtual — виртуальный диск предоставляется нескольким ВМ на одном хосте ESXi
- Physical – общий доступ к vmdk файлу с нескольких ВМ на разных хостах ESXi
Нажмите OK. Затем на первой ВМ нужно добавить новый виртуальный диск (New Device -> New Hard Disk -> Add) со следующими настройками:
- VM Storage Policy: по желанию
- Location: укажите имя общего хранилища, на котором будет находится общий виртуальный диск
- Disk Provisioning: выберите Thick provision eager zeroed (другие типы дисков использовать не получится)
- Sharing: Multi-writer
- Virtual Device Node: выберите созданный ранее виртуальный SCSI контроллер
- Disk mode: выберите режим Independant – Persistdent. В этом режиме нельзя создать снапшот общего виртуального диска
Аналогичным образом нужно добавить новый SCSI контроллер и на второй виртуальной машине (Node 2). После это в настройках второй ВМ нужно добавить существующий виртуальный диск (Existing Hard Disk).
В появившемся окне выберите хранилище, на котором ранее вы разместили общий диск. Выберите каталог с именем первой ВМ, а затем – нужный vmdk файл.
В том случае, если вам потребуется использовать несколько общих дисков, имейте в виду, что один SCSI контроллер поддерживает до 16 дисков. Если дисков больше (что вряд ли), нужно будет создать дополнительный SCSI контроллер.
После того, как вы настроили виртуальные машины, подключитесь к гостевой ОС. В нашем случае это Windows. Откройте оснастку управления компьютером (Computer Management) и перейдите в раздел Storage -> Disk Management . Щелкните ПКМ по нему и выберите Rescan Disk.
Система определит новый диск и предложит инициализировать его. Выберите нужный стиль таблицы разделов (MBR или GPT), создайте на новом диске раздел и отформатируйте его. Аналогичные операции выполните на второй ВМ. После этого, обе ВМ смогут совместно использовать один общий виртуальный vmdk диск.
7 комментариев
>>>После этого, обе ВМ смогут совместно использовать один общий виртуальный vmdk диск.
данные на диске будут доступны в каждой из ВМ ?
Добавил диск в 2м ВМ но у каждой диск видится как отдельный и данные на нем «не синхронизуются» между ВМ
ЧЯДНТ ?
Какая версия ESXi / vsphere? и какой режим диска задан (Disk mode).
ВМ, на одном хосте?
Вот то же самое. Каждый диск работает как бы сам по себе. При старте у них данные общие, но новые данные у каждого свои. Всё делал один в один. ESXi 6.5.
P.S.
Debian Linux на обеих виртуалках. EXT4.
Какой Disk mode выбрали в настройках ВМ? Как настроен диск в гостевой Debian — такое ощущение что ваша ОС пишет данные в какой-то свой кэш
Выполнил все согласно инструкции. Но если я создаю папку или файл на ВМ1 он не появляется на ВМ2. В чем причина может быть?
Файловая система в ОС виртуалок должна быть кластерная.