Возможен ли общий доступ к файлам с помощью простого использования общего виртуального жесткого диска Hyper-V в CSV, подключенного к двум виртуальным машинам?
Я тестирую SVHDX в своей среде и не могу заставить его работать. У нас есть настроенный отказоустойчивый кластер и CSV, поддерживаемый SAN через FC, я поместил SVHDX в CSV и подключил этот диск к двум виртуальным машинам. Теперь у меня есть несогласованность на диске, поскольку я сохраняю несколько файлов на VM1, они не видны на VM2, а CHKDSK сообщает об ошибках. Я даже могу создавать файлы с одинаковыми именами на общем диске.
Да. Вы не можете совместно использовать файловую систему между несколькими компьютерами, ЕСЛИ ФАЙЛОВАЯ СИСТЕМА НЕ ПРЕДНАЗНАЧЕНА ДЛЯ ЭТОГО. Потому что компьютеры кэшируют метаинформацию и считают себя владельцем.
Общий VHDX - это общий доступ к блокам, а не к файлам.
Теперь небольшое отступление в терминах, поскольку вы далеко не первый, кто задает этот вопрос. Диск - это блочное устройство. Он работает, отвечая на такие команды, как «блок чтения 23971» и «блок записи 1082». Файловая система - это способ хранения данных, которые отображаются на блочное устройство. Когда вы пишете файл, код файловой системы находит на диске несколько свободных блоков и записывает в них ваши данные. И, возможно, что еще более важно для этого обсуждения, он записывает другие данные на диск, записывая имя файла, какие блоки хранятся в файле, кто имеет доступ к файлу и т. Д.
Если две разные машины используют одно и то же блочное устройство, им необходимо координировать свои действия, иначе они будут сбивать друг друга, каждый думает, что они сами решают, куда данные помещаются на диск и как их местоположение записывается.
Итак, если вы хотите предоставить общий доступ к диску, наиболее распространенный способ сделать это - передать его одному компьютеру, и этот компьютер будет владеть диском, поделившись им с другими через сетевую файловую систему, такую как NFS или SMB. Все остальные компьютеры запрашивают данные по сети. Файловый сервер владеет диском и управляет им. Клиенты видят только файлы. Владелец (файловый сервер) видит файлы, отображенные на блоки.
Однако в некоторых ситуациях вам нужно, чтобы два или более компьютеров использовали блочное устройство (диск) напрямую. Для этого вам нужно плотно соединить эти два или более компьютеров, чтобы они могли координировать свои действия. Это называется «формирование кластера». Затем вам нужно запустить кластерную файловую систему на диске. При работе с Windows без какого-либо стороннего программного обеспечения единственным выбором для файловой системы кластера является CSVFS. При использовании Linux или других ОС у вас есть другие возможности.
Опять же, я рекомендую использовать для вашей задачи файловый сервер. Но цель Shared VHDX - позволить кластеру виртуальных машин запускать файловую систему кластера.
Это было бы полезно в первую очередь (когда Windows является гостевой), когда вы хотите построить кластер SQL Server из двух виртуальных машин, чтобы сам SQL был высокодоступным.
Или вы можете создать кластер файлового сервера Windows с несколькими виртуальными машинами, используя общий VHDX. Вы можете сделать это, потому что хотите, чтобы ваш кластер файлового сервера был доступен своим клиентам даже в случае отказа одного из физических хостов.
Без Shared VHDX этот гипотетический кластер SQL или файлового сервера на время отключится от сети, если один из физических хостов в вашей среде выйдет из строя. Если узлы сами кластеризованы, виртуальная машина будет перезапущена на другом узле, как только произойдет сбой. Но с точки зрения клиентов, будет некоторое время простоя. (С SQL Server все равно будет небольшой простой, но клиенты могут справиться с этим. С помощью кластера файлового сервера вы можете сделать так, чтобы клиенты, если они работают с SMB 3.0 или более поздней версии, испытывали автоматическое переключение при сбое. и не разрывать соединения.)