Scsi bus sharing vmware что это
Что такое общий диск 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 вы получите ошибку:
Virtual machine is configured to use a device that prevents the operation: Device 'SCSI controller 1' is a SCSI controller engaged in bus-sharingЕсли нужно будет мигрировать, то придется выключать виртуалку.
- Вы не сможете на живую произвести расширение дисков, при попытке вы получите вот такую ошибку:
- Если вы вдруг разметите оба диска в NTFS на двух хостах и попытаетесь на них писать, создав на одном одну папку, а на втором вторую, то хосты эти папки не увидят, каждый свою, учтите, это вам не общий диск с синхронизацией файлов, Multi-Writer VMDK именно нужен для кластеризации.
Как подключить общий диск в VMware ESXI 6.5 и выше
Поэтому нам первым делом необходимо в свойствах виртуальной машины добавить новый 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"
Далее я иду на датастор на котором находится виртуальная машина с общими дисками (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 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”
Изминяем дополнительный жесткий диск, который будет подключен к новому каналу:
Delphi site: daily Delphi-news, documentation, articles, review, interview, computer humor.
Виртуальный контроллер SCSI тоже бывает разных типов, и для него доступны кое-какие настройки. Сначала про типы. Если вы зайдете в свойства ВМ и на закладке Hardware выделите SCSI-контроллер, в верхней правой части окна будет кнопка Change Type (рис. 5.12).
Рис. 5.12. Смена типа виртуального SCSI-контроллера Типов всего четыре:
- BusLogic Parallel - этот виртуальный дисковый контроллер работает наименее эффективным способом, с большими, чем другие, накладными расходами. Однако для него есть драйверы для большого количества операционных систем;
- LSI Logic Parallel - работает с меньшими накладными расходами, чем Bus-Logic;
- LSI Logic SAS - новая версия LSI Logic. Отличается тем, что поддерживает стандарт SCSI 3. Используется для ВМ, которым необходима поддержка этого стандарта. Главным образом для виртуальных машин - узлов кластера Microsoft Failover Cluster;
- VMware Paravirtual SCSI (PVSCSI) - самая современная версия виртуального дискового контроллера. Обеспечивает наибольшую производительность и наименьшие накладные расходы. Однако не работает VMware Fault Tolerance для ВМ с этим контроллером, и список ОС, для которых есть драйверы, невелик:
• Windows Server 2008 (включая R2);
• Windows Server 2003;
• Red Hat Enterprise Linux (RHEL) 5.
Напомню, что «паравиртуализованный» виртуальный контроллер означает, что при его работе задействуются мощности контроллера физического напрямую, без какой-то эмуляции или перехвата со стороны гипервизора. Именно в этом кроется повышение эффективности паравиртуализованных дисковых и сетевых контроллеров.
Резюме. Если позволяют условия, используйте контроллер типа VMware Paravirtual. Если он не поддерживается гостевой ОС, используйте LSI Logic Parallel. Если и он не поддерживается, используйте BusLogic. Для ВМ-узлов MFC используйте LSI Logic SAS.
Пример - установка в ВМ Windows 2008. У этой ОС нет стандартных драйверов для PVSCSI, однако есть для контроллера LSI. Но на ESX(i) (начиная с Update 1) есть образ FDD с драйверами для PVSCSI. И теперь у вас есть несколько вариантов того, как поступить с типом контроллера:
- вариант 1. Тип контроллера поставить PVSCSI, подключить к ВМ образ flp с драйвером для него и в начале установки подложить эти драйверы. После окончания установки оставить этот тип контроллера.
Вариант хорош простотой. В данном случае его можно назвать оптимальным;
- вариант 2. Тип контроллера поставить LSI Logic. После установки ОС добавить в систему второй контроллер, типа PVSCSI, включить ВМ. Windows активирует драйверы для PVSCSI. Выключить ВМ, удалить второй контроллер (PVSCSI), тип первого поменять с LSI Logic на PVSCSI. Вариант не очень удобен большим количеством шагов, зато нет нужды в подкладывании драйверов;
- наконец, драйверы можно интегрировать в дистрибутив - но их необходимо где-то взять. Например, из упомянутого образа FDD. Как вариант - из iso с VMware tools.
Образы дискет с драйверами для PVSCSI (Windows 2003/2008) и Bus Logic (Windows XP) доступны в каталоге vmimages. Зайдите в свойства ВМ, выделите Floppy Drive ^ Use existing floppy image in datastore ^ каталог vmimages\ floppies.
Еще у виртуального SCSI-контроллера есть настройка «Bus sharing» - совместный доступ к SCSI-шине. Она нужна в ситуациях, когда вы хотите дать одновременный доступ к одним и тем же виртуальным дискам нескольким ВМ. Обычно это необходимо для построения кластеров, таких как MSCS/MFC. Варианты этой настройки:
- None - совместного доступа нет. Значение настройки по умолчанию;
- Virtual - к виртуальным дискам, висящим на этом контроллере, возможен доступ с других ВМ на этом же сервере. Настройка, нужная для организации cluster-in-a-box;
- Physical - к виртуальным дискам, висящим на этом контроллере, возможен доступ с других ВМ, в том числе с других серверов. Настройка, нужная для организации cluster-across-boxes и physical-to-virtual.
Добавление контроллера. Если вы нажмете кнопку Add на закладке Hardware в свойствах ВМ, вы увидите список виртуальных компонентов, которые в ВМ можно добавить. Однако среди них нет SCSI-контроллера. Если вам надо добавить SCSI-контроллер, то делается это так.
Все-таки идем в мастер добавления виртуального оборудования Edit Settings ^ Hardware ^ Add. Но добавляем Hard Drive.
Проходим по мастеру создания жесткого диска. О подробностях - чуть ниже, сейчас нас интересует пункт «SCSI node». У каждого виртуального диска есть адрес вида «SCSI X:Y». Последняя цифра адреса - это номер диска на SCSI-шине, SCSI id. А первая цифра - номер контроллера. Таким образом, первый, дефолтный диск ВМ создается по адресу SCSI 0:0, то есть это первый диск на первом контроллере. Если для второго диска вы выберете адрес SCSI 1:0, то кроме диска у вас добавится и второй контроллер. Если для третьего диска выбрать SCSI 2:0, то добавится третий контроллер. Всего до четырех.
Добавлять несколько контроллеров вам придется преимущественно для ВМ -узлов Microsoft Cluster Services или Microsoft Failover Cluster. Для этих решений требуется, чтобы загрузочный диск и диски с данными висели на разных контроллерах.
- VMware Technology Network
- :
- Global
- :
- Russian
- :
- Russian Discussions
- :
- Общие диски для кластера. Как правильно подключить.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Email to a Friend
Всем доброго времени суток!
Задача: Нужно подключить 2-м ВМ на разных хостах общий диск для создания кластера. ОС: Win 2008 R2. Гипервизоры: ESXi 4.1
1) Презентовал созданый том обоих хостам.
2) Создаю второй SCSI контроллер, выставил Bus Sharing в режим Physycal.
3) Подключаю новый том RDM на второй контроллер 1-го хоста, режим совместимости Physycal.
4) На 1-м хосте инициализирую и форматирую диск, записываю тестовую инфу.
5) Подключаю новый том RDM на второй контроллер 2-го хоста, режим совместимости Physycal.
6) Появляется созданный диск с записанной информацией.
7) Я изменяю тестовую инфу, но изменения на втором хосте не видны . Если в винде руками отключить и подключить диск снова то соержание обновляется, но для работы такое не проканает.
Как правильно подключить диск что-бы обоим серверам были видны изменения в реальном времени?
krupskij- Mark as New
- Bookmark
- Subscribe
- Mute
- Email to a Friend
Ну во-1х про Use existing disk сказано правильно, а во-2х надо имет кластерную ФС на общем томе.
Я правда с MSCS не игрался, но когда Oracle собирали в RAC, то прикручивали это дело или к NFSу,
или к Оракловскому OCFS. Правда, у нас диск был виртуальный, не RDM, но как мне кажется,
физические и логические принципы одинаковы. А NTFS - ну никак не кластерная ФС.
michigun- Mark as New
- Bookmark
- Subscribe
- Mute
- Email to a Friend
когда вы создаете простой виртуальный диск, то создается два файла - vm.vmdk - конфиг и ссылка на файл с данными, и vm-flat.vmdk - файл с данными.
то есть вот так
а когда подключаете RDM, создается похожая конструкция:
так вот, ко второму узлу вам надо подключить не LUN, а "use existing vmdk", и сослаться на vmdk-ссылку на LUN, который был создан при подключении этого LUN как RDM к первому узлу.
впрочем, раз у вас подключилось - значит подключилось. но правильно делать такое подключение - как написал я.
jackrush wrote:
7) Я изменяю тестовую инфу, но изменения на втором хосте не видны . Если в винде руками отключить и подключить диск снова то соержание обновляется, но для работы такое не проканает.
а вообщее, вы уверены что такое повоедение не является неправильным?
кластер то Active-passive, и узлы с общим диском работают строго неодновременно, так что может так и должно быть.
Читайте также: