- Vmware один диск для двух машин
- Что такое общий диск Multi-writer в VMware ESXI
- Для чего применяют Multi-Writer диск
- Ограничения общих дисков VMware ESXI
- Как подключить общий диск в VMware ESXI 6.5 и выше
- Включение общего диска для ESXI 5.5 и ниже
- Vmware один диск для двух машин
- Vmware vSphere
- Добавление общего диска к первой ВМ кластера
- Добавление общего диска к второй ВМ кластера
- Vmware Workstation
Vmware один диск для двух машин
Доброго времени суток! Многоуважаемые инженеры по виртуализации, рад, что вы вновь посетили профильный блог Pyatilistnik.org. В прошлый раз мы с вами подробно разобрали механизм применения утилиты Robocopy и научились с ее помощью реализовывать всевозможные сценарии копирования данных. Сегодня я бы хотел вам рассказать, о создании общих дисков (Multi-writer) в VMware ESXI 5.5, 6.5 и выше, для кластерных решений Oracle RAC и Microsoft MSCS кластер.В век виртуализации, данная информация все больше становится актуальней.
Что такое общий диск Multi-writer в VMware ESXI
Сейчас уже очень сложно себе представить серьезный сервис без отказоустойчивости, которая может быть реализована на разных уровнях работы инфраструктуры. Очень частым решением выступает отказоустойчивый кластер, который подразумевает использование разных серверов для одного сервиса. Выход из строя одного из серверов не влияет на работоспособность предоставляемых услуг клиентам. Очень часто в кластерах используются общие диски, для хранения баз данных (Microsoft SQL или Oracle), файловые ресурсов. Общие диски могут презентованы, как отдельные LUN с СХД, через ISCSI протокол, через общий диск или RDM в случае с виртуальными машинами.
В данной заметке я опишу реализацию с помощью общего диска для виртуальных машин VMware ESXI 6.5. В некоторых случаях (как правило, в сценариях кластеризации) может потребоваться совместное использование одного и того же диска между двумя (или более) виртуальными машинами. Наиболее оптимальным способом является использование диска vmdk, физически расположенного на общем хранилище или локально на хосте ESXi. Если вы хотите использовать общие диски на разных хостах ESXi, то вы можете использовать только разделяемое хранилище
.На представленной ниже схеме вы видите:
- Storage Array, по сути это ваша система хранения данных, на которой реализован RAID массив, по рекомендации производителя.
- RAID массив порезан на LUN, это логически порезанное место на вашей системе хранения данных
- Далее LUN презентуется хостам VMware ESXI 6.5 и размечается файловой системой VMFS 6. Где из LUN получаются разделы (Datastore-Volume) для гипервизора.
- Далее на на Datastore уже разворачиваются виртуальные машины
Вот на таком общем VMFS Volume диске вы создаете общий VMDK диск, который будет доступен двум и более виртуальным машинам под чтение и запись. Сами виртуальные машины могут находится на разных физических хостах и разных географических локациях.Такой режим называется Multi-Writer VMDK, его часто применяют в построении кластеров MS SQL, Oracle RAC, такой режим работы диска применяется в технологии VMware Fault Tolerance.
Для чего применяют Multi-Writer диск
- Во первых, как я и писал выше для отказоустойчивости различных сервисов, сервера которых могут быть в разных ЦОДах.
- Во вторых для возможности обслуживания важных серверов, без их простаивания. Например, чтобы была возможность своевременно производить обновление Windows пакетов, другого программного обеспечения, иметь возможность перезагружать сервер
- В целях тестирования кластерных технологий, когда у вас нет СХД и нет возможности реализовать общий диск, по FC или ISCSI протоколу
Ограничения общих дисков VMware ESXI
Без некоторых нюансов все же не обошлось, хочу выделить некоторые ограничения при использовании общих дисков:
Например, при попытке сделать Storage vMotion вы получите ошибку:
Если нужно будет мигрировать, то придется выключать виртуалку.
- Вы не сможете на живую произвести расширение дисков, при попытке вы получите вот такую ошибку:
- Если вы вдруг разметите оба диска в NTFS на двух хостах и попытаетесь на них писать, создав на одном одну папку, а на втором вторую, то хосты эти папки не увидят, каждый свою, учтите, это вам не общий диск с синхронизацией файлов, Multi-Writer VMDK именно нужен для кластеризации.
Как подключить общий диск в VMware ESXI 6.5 и выше
Предположим, что общее внешнее хранилище (подключенное к каждому хосту ESXi с использованием iSCSI или Fibre Channel SAN) уже представлено всем хостам VMWare ESXi, на которых запущены виртуальные машины, которым вы хотите добавить общий виртуальный диск. На обеих виртуальных машинах вам нужно добавить новый контроллер SCSI. Объясню для чего нужно добавлять новый SCSI Controller. Когда вы создаете новую виртуальную машину ESXI у вас по умолчанию уже будет один LSI Logic SAS контроллер (SCSI Controller), но он работает во первых в режиме SCSI Bus Sharing «None», то есть не работает с общими дисками VMDK, это можно поправить при выключенной машине, но VMWare не рекомендует совмещать при работе обычных дисков и Multi-Writer VMDK дисков на одном LSI Logic SAS контроллере.
Поэтому нам первым делом необходимо в свойствах виртуальной машины добавить новый SCSI Controller.
Если посмотреть подсказку у LSI Logic SAS контроллера, то вы увидите три его режима:
- None — для работы с не кластерными Multi-Writer дисками
- Physical — виртуальные диски могут быть общими для виртуальной машины и физическим сервером
- Virtual — для работы с общим диском для нескольких виртуальных машин
Делается это через пункт «New Device» и нажатии кнопки Add, для SCSI Controller.
Далее у нового, добавленного контроллера вы в пункте «SCSI Bus Sharing» выберите тип «Virtual». Можете сохранить конфигурацию виртуальной машины, через нажатие кнопки «Ок»
Далее на первой машине, где мы только что добавили новый контроллер, вам нужно создать новый виртуальный диск, делается это так же, через пункт «New Device»
Откройте параметры нового виртуального диска. Для того, чтобы сделать его общим между виртуальными машинами VMware ESXI, вам необходимо выставить соответствующие настройки:
- Disk Provisioning — Делает толстый диск с занулением «Thick provision Eager zeroed thick disks», нужен для кластеризации, о типах дисков ESXI, читайте по ссылке.
- Sharing — тут вы как раз выбираете режим общего диска «Multi-Writer»
- Disk Mode — режим работы диска выставите «Independent Persistent» (Подробнее про режимы работы ESXI дисков), данный режим работы не позволит использовать vStorage APIs, что не даст создавать на таком диске снапшоты. Данный режим рекомендуется самим вендором VMware и его партнерами, такими как Oracle. Если бы мы разрешили создание снимков на этом диске, то это могло бы привести к потере данных. Так если у вас на этом диске быдет база SQL и вы будите использовать Veeam Backup, то у ваших резервных копий на уровне самого SQL могут быть проблемы при восстановлении из них, так как точка отсчета с которой нужно будет выстраивать цепочку бэкпов будет нарушена Veeam, который сдвинет точку бэкапа на себя. Если выставлен Independent Persistent, то в Veeam при создании бэкапа этой виртуальной машин можно исключить нужные диске, где стоят SQL или Oracle.
- Virtual Device Node — выберите наш новый LSI Logic SAS контроллер, работающий в режиме «SCSI Bus Sharing Virtual»
Далее я для своего удобства, хочу чтобы общие диски лежали в отдельной папке, а так как они по умолчанию создаются в папке с виртуальной машиной да и еще имеют имя дисков, как имя машины_цифра, я бы такое хотел поправить. Для этого я в конфигурации виртуальной машины удаляю все созданные диски, но я не ставлю галку «Delete files from datastore», то есть по сути на датасторе они остаются.
Далее я иду на датастор на котором находится виртуальная машина с общими дисками (Datastore — Browse Files).
Нахожу нужные мне Multi-Writer диски. Создаю новую папку
И перемещаю в новую папку общие диски, хочу отметить, что вы их можете переместить на любой общий между хостами ESXI датастор.
Я делаю «Move to» на тот же латасторе, но в новую папку. Этим я добьюсь, что буду видеть явным образом общие кластерные диски.
Так как я диски до этого удалил, для удобства, то мне их нужно заново добавить. Если вы до этого не удаляли, то сделайте эти действия только для второй виртуальной машины. Открываем настройки виртуальной машины и нажимаем добавить новое устройство, выбираем пункт «Existing Hard Disk», это у нас выбор существующего общего кластерного диска.
Указываем на каком датасторе у нас лежит Multi-Writer диск и выбираем нужный VMDK, в моем случае их семь.
Выставляем нужные параметры:
- Disk Provisioning — «Thick provision Eager zeroed thick disks»
- Sharing — «Multi-Writer»
- Disk Mode — «Independent Persistent»
- Virtual Device Node — выберите наш новый LSI Logic SAS контроллер, работающий в режиме «SCSI Bus Sharing Virtual»
Если такой диск не один, то добавляем все за один раз для экономии времени. Проделываем такое добавление общих дисков на всех виртуальных машинах, где планируется использовать Multi-Writer.
Далее уже в операционной системе Windows Server, зайдя в оснастку «Управление дисками» вы обнаружите ваши диски. Остается их только разметить в GPT формат и отдать под кластер.
Включение общего диска для ESXI 5.5 и ниже
В более ранних версиях гипервизора Vmware ESXI 5.5 и ниже, общий кластерный диск выключается таким образом. Вы заходите так же в свойства виртуальной машины и добавляете там новый SCSI Controller с типом работы «Virtual».
Затем вы создаете новый диск, указываете его размер и тип Thick Provision Eager Zeroed.
Далее Vmware ESXI 5.5 попросит вас выбрать Выбор LSI Logic SAS контроллер, обязательно укажите тот, что мы создали заранее и запомните порт SCSI к которому вы его подключаете в моем примере, это SCSI (1:0).
Далее в настройках виртуальной машины вам необходимо перейти на вкладку «Option — General» и нажать кнопку «Configuration Parameters».
В самом конце для каждого общего диска пишем в имени номер SCSI порта SCSI1: 0.sharing в поле «Value» пишем multi-writer.
Для второй виртуальной машины делаем те же действия, единственное на этапе создания диска, выбираем пункт существующего «Use an existing virtual disk»
Через кнопку «Browse» указываем путь до него.
Выбираем сам VMDK диск. После чего не забываем так же прописать на вкладке «Option — General» и нажать кнопку «Configuration Parameters», для каждого общего диска пишем в имени номер SCSI порта SCSI1: 0.sharing в поле «Value» пишем multi-writer.
Vmware один диск для двух машин
Несмотря на высокую надежность работы виртуальной инфраструктуры Vmware vSphere, необходимо создать сервисы высокой доступности (обновление ПО или ОС, связанные с перезагрузкой либо сервиса, либо сервера целиком). Например кластерный файловый сервер. В данном случае кластеру серверов необходимо предоставить устройство, на котором будет располагаться общая файловая система.
В данной статье будет рассмотрен вариант подключения к виртуальным машинам одного диска, выделенного на отдельно стоящей дисковой полке и предоставленного всем хостам ESXi в кластере Vmware vSphere. Также будет показано как сделать общий диск для тестовых систем, расположенных на Vmware WorkStation.
Vmware vSphere
Будем считать, что мы уже установили два виртуальных сервера. Прежде чем их настраивать в кластер, необходимо предоставить какой-то общий диск.
Добавление общего диска к первой ВМ кластера
- Выключаем виртуальную машину.
- В списке виртуальных машин выбираем ту, с которой предстоит работать и открываем окно свойств
- Для того, что бы добавить общий диск, необходимо сначала добавить новый SCSI контроллер. Раскрываем список «New device», выбираем «SCSI Controller», жмем «Add» и переходим к настройке вновь добавленного контроллера.
- Параметры нового контроллера:
Уточнения по параметрам:
Устанавливаем тип контроллера: LSI Logic SAS
SCSI Bus Sharing выбираем в зависимости от того где будет работать кластер виртуальных машин:
Virtual — виртуальный диск, совместно используемый ВМ в пределах одного хоста ESXi
Physical — файл vmdk может использоваться совместно с ВМ на разных ESXi хостах.
У нас чуть больше чем один хост ESXi и виртуальные машины должны распологаться на разных хостах. Поэтому выбираем тип Physical - Жмем «Ok»
- Теперь нам на этой ВМ необходимо добавить новый диск, предоставленный дисковым хранилищем. Опять открываем свойства ВМ и в выпадающем списке добавления нового оборудования выбираем «RDM Disk». Нажимаем «Add» и в открывшемся окне выбираем необходимый нам диск.
- Устанавливаем параметры диска:
VM storage policy — оставляем без изменений
Location — устанавливаем общее хранилище, где будет храниться ссылка на диск
Sharing — устанавливаем Multi-writer
Virtual Device Node — выбираем ранее добавленный SCSI контроллер
Далее переходим к настройкам второй ВМ.
Добавление общего диска к второй ВМ кластера
- Так же как и на первой ВМ добавляем новый SCSI контроллер.
- Затем добавляем новый диск. В выпадающем списке выбираем «Existing Hard Disk»
- Нажимаем «Add» и выбираем ранее созданный диск:
- Жмем «Ok» и переходим к настройкам добавленного диска:
Устанавливаем Sharing в Multi-writer
Устанавливаем Disk Mode в Independent — Persistdend. В этом режиме диск не будет участвовать в процессе снимков виртуальной машины.
Virtual Device Node — устанавливаем ранее добавленный SCSI контроллер. - Жмем «Ok»
Если требуется использовать более одного общего диска в VMware, то для каждого из них не требуется дополнительный контроллер SCSI. Один контроллер может обслуживать до 16 различных дисков.
Небольшое, но очень важное уточнение. При использовании SCSI контроллера в режиме «SCSI bus Sharing» не возможно использовать моментальные снимки (snapshot) виртуальных машин. Так же становится невозможной миграция ВМ между хостами. Это необходимо учитывать при планировании кластерной структуры серверов в среде Vmware vSphere.
На этом настройка аппаратной части виртуальных машин завершена. Включаем обе виртуальные машины и приступаем к настройке кластера уже на уровне операционной системы. В следующей статье речь пойдет о создании файлового сервера NFS в кластере высокой доступности.
Vmware Workstation
С Vmware Workstation немного по другому. Официально считается, что данная функция доступна только для vSphere. Но это немного не так. Просто не все доступно через графический интерфейс. Придется вносить руками небольшие правки в конфигурационные файлы виртуальных машин.
- Выключаем обе виртуальные машины.
- Добавляем в конфигурацию первой виртуальной машины новый жесткий диск с указанными параметрами. Физически распологаем этот жесткий диск НЕ в папке, в которой расположена виртуальная машина.
При добавлении диска не забываем проследить, что бы расширение файла было .vmdk - Далее закрываем Vmware Workstation и отредактируем файл конфигурации первой виртуальной машины (.VMX):
Добавляем строки для создания второго канала SCSI
scsi1.present = “TRUE”
scsi1.virtualDev = “lsilogic”
Изминяем дополнительный жесткий диск, который будет подключен к новому каналу: