Вопрос или проблема
У меня есть следующий сценарий – два сервера, один является веб-сервером, другой – сервером резервного копирования. Оба работают на Windows Server 2012 R2.
У меня есть сетевой диск на веб-сервере, ссылающийся на сервер резервного копирования. У меня есть VHD, который я создал на сетевом диске, физически расположенном на сервере резервного копирования, который используется веб-сервером для создания ночных резервных копий в этот VHD. Идея заключается в том, чтобы изображения физически хранились на сервере резервного копирования, но выполнялись с веб-сервера.
У меня этот VHD отображается как настоящий диск в Мой Компьютер на веб-сервере.
Я хотел бы подключить этот VHD в режиме Только для чтения на сервере резервного копирования, чтобы периодически проверять, создаются ли резервные копии / иметь доступ при необходимости.
Проблема в том, что когда я пытаюсь подключить VHD на сервере резервного копирования в режиме Только для чтения, я получаю сообщение “Процесс не может получить доступ к файлу, так как этот файл используется другим процессом”.
Я подозреваю, что это происходит потому, что VHD подключен на веб-сервере.
Интересно, есть ли способ достичь того, что я хочу, или это невозможно.
К вашему сведению – резервные копии HyperV/VM в этом сценарии не возможны.
Сделайте мгновенный снимок тома, на котором находится VHD. Затем посмотрите в снимке и подключите его в режиме Только для чтения. Это позволит вам сделать проверку.
Ответ или решение
Для рассмотрения возможности монтирования виртуального жесткого диска (VHD) в режиме "Только для чтения" на сервере резервного копирования, когда этот диск используется сервером веб-приложений, необходимо разобраться в деталях, которые делают эту задачу непростой и требуют аккуратного подхода.
Теория
Теоретически, проблема, с которой вы сталкиваетесь, связана с механизмами управления доступом к файлам на уровне операционной системы. Когда VHD монтируется на одном сервере (в данном случае сервере веб-приложений), система блокирует доступ для других процессов к тому же файлу, чтобы предотвратить потенциальные конфликты и повреждения данных. В вашем случае, это означает, что попытка монтировать VHD на сервере резервного копирования терпит неудачу.
При обычных условиях, файл VHD не может быть смонтирован одновременно несколькими процессами, поскольку это может привести к несогласованности данных и повреждению файловой структуры. Однако специфическое требование к возможности монтирования VHD в режиме "Только для чтения" открывает путь к решению через использование технологий моментальных снимков (snapshot).
Пример
Системы хранения данных и резервного копирования в Windows, такие как механизм моментальных снимков томов (Volume Shadow Copy Service, VSS), позволяют создавать копии, неизменяемые во времени, текущего состояния тома. Такие моментальные снимки могут быть использованы для создания копий файлов или целых томов для проверки или восстановления. Значительным преимуществом здесь является то, что они создают момент времени, который можно исследовать, не вмешиваясь в нормальную работу файловой системы.
Применение
Для реализации вашего сценария, вам потребуется следующее:
-
Использование Volume Shadow Copy Service (VSS): На сервере резервного копирования, где физически хранится VHD, вы должны создать моментальный снимок тома, содержащего этот файл. Это позволит вам получить доступ к состоянию тома в конкретный момент времени без изменения основного состояния данных.
-
Монтаж VHD из моментального снимка: После создания моментального снимка, в его пределах можно монтировать VHD в режиме "Только для чтения". Это позволяет исследовать содержимое VHD, не вмешиваясь в операции записи и другие процессы, происходящие на сервере веб-приложений.
-
Периодическая автоматизация: Вы можете автоматизировать процесс создания моментальных снимков, например, с помощью заданий в Task Scheduler, чтобы иметь возможность регулярно получать доступ к актуальным версиям ваших резервных копий.
Более детальное пошаговое руководство может выглядеть следующим образом:
-
Шаг 1: Используйте командную строку или PowerShell для управления VSS. В Windows PowerShell можно использовать командлеты, такие как
vssadmin
илиdiskshadow
, для создания моментальных снимков. -
Шаг 2: После создания моментального снимка, используйте его идентификатор для монтирования VHD из Control Panel -> Administrative Tools -> Computer Management или соответствующих PowerShell команд.
-
Шаг 3: Убедитесь, что во время монтирования VHD указываете режим "Только для чтения", чтобы исключить любые изменения данных.
Такой подход позволит вам без риска проверить состояние ваших данных на резервном сервере, не влияя на текущий процесс резервного копирования, выполняющийся через веб-сервер. Это решение является наиболее целесообразным и соответствует вашим требованиям без необходимости перехода на другие технологии резервного копирования.