Восстановление файлов из резервной копии виртуальной машины Azure

Внимание

Эта статья ссылается на CentOS, дистрибутив Linux, который приближается к состоянию конца жизни (EOL). Пожалуйста, рассмотрите возможность использования и планирования соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.

Azure Backup предоставляет возможность восстановления виртуальных машин и дисков Azure из резервных копий виртуальных машин Azure, также известных как точки восстановления. В этой статье описывается восстановление файлов и папок из резервной копии виртуальной машины Azure. Восстановление файлов и папок доступно для всех виртуальных машин Azure, развернутых по модели с помощью Resource Manager и защищенных в хранилище служб восстановления.

Примечание.

Эта функция доступна для всех виртуальных машин Azure, развернутых посредством модели с помощью Resource Manager и защищенных в хранилище служб восстановления. Восстановление файлов из зашифрованной резервной копии виртуальной машины не поддерживается.

Рабочий процесс восстановления папки с файлами

Шаг 1. Создание и скачивание скрипта для просмотра и восстановления файлов

Чтобы восстановить файлы и папки из точки восстановления, перейдите на виртуальную машину и выполните следующие действия.

  1. Войдите на портал Azure и в области слева щелкните Виртуальные машины. В списке виртуальных машин выберите виртуальную машину, чтобы открыть ее панель мониторинга.

  2. В меню виртуальной машины щелкните Резервное копирование, чтобы открыть панель мониторинга резервного копирования.

    Открытие архивируемого элемента в хранилище Служб восстановления

  3. В меню панели мониторинга резервного копирования щелкните Восстановление файлов.

    Выбор восстановления файлов32

    Открывается меню Восстановление файла.

    Меню восстановления файлов

Внимание

Пользователям важно помнить ограничения производительности этой функции. Как указано в разделе сносок приведенной выше колонки, эта функция должна использоваться, если общий размер восстановления составляет 10 ГБ или меньше. Ожидаемые скорости передачи данных составляют около 1 ГБ в час.

  1. В раскрывающемся меню Выберите точку восстановления найдите и выберите точку восстановления, которая содержит требуемые файлы. По умолчанию здесь выбрана последняя из созданных точек восстановления.

  2. Щелкните Скачать исполняемый файл (для виртуальной машины Windows в Azure) или Скачать скрипт (для виртуальной машины Linux в Azure создается скрипт Python), чтобы скачать программное обеспечение для копирования файлов из точки восстановления.

    Скачивание исполняемого файла

    Azure скачает исполняемый файл или сценарий на локальный компьютер.

    сообщение о скачивании исполняемого файла или сценария

    Чтобы запустить исполняемый файл или скрипт с правами администратора, мы рекомендуем сохранить скачанный файл на компьютере.

  3. Исполняемый файл или сценарий защищен, и для него требуется ввести пароль. В меню Восстановление файла нажмите кнопку "Копировать" для загрузки пароля в память.

    Созданный пароль

Шаг 2. Проверка соответствия компьютера требованиям перед выполнением скрипта

После успешной загрузки скрипта убедитесь, что у вас есть компьютер, подходящий для его выполнения. Виртуальная машина, на которой вы планируете выполнить скрипт, не должна иметь ни одной из следующих неподдерживаемых конфигураций. Если это так, выберите другой компьютер, соответствующий требованиям.

Динамические диски

Невозможно запустить исполняемый скрипт на виртуальной машине с любой из следующих характеристик: выберите альтернативный компьютер

  • Тома, охватывающие несколько дисков (составные и чередующиеся тома).
  • Отказоустойчивые тома (зеркальные тома и тома RAID-5) на динамических дисках.

Дисковое пространство Windows

Вы не можете запустить скачанный исполняемый файл на той же резервной машине, если резервная копия виртуальной машины имеет Windows дисковые пространства. Выберите альтернативный компьютер.

Резервное копирование виртуальных машин с дисками большого объема

Если на компьютере с резервной копией имеется большое количество дисков (> 16) или диски большого объема (> 4 ТБ каждый), этот скрипт не рекомендуется выполнять для восстановления на том же компьютере, так как он окажет значительное влияние на виртуальную машину. Вместо этого рекомендуется использовать отдельную виртуальную машину только для восстановления файлов (виртуальные машины Azure VM D2v3) и отключать ее, когда она не нужна.

См. требования для восстановления файлов из виртуальных машин с резервной копией и диском большого объема:
ОС Windows
ОС Linux

Выбрав правильный компьютер для запуска скрипта ILR, убедитесь, что он соответствует требованиям к ОС и требованиям к доступу.

Шаг 3. Требования к ОС для успешного запуска скрипта

Виртуальная машина, на которой вы хотите запустить скачанный скрипт, должна соответствовать следующим требованиям.

Windows 10

Следующая таблица содержит информацию о совместимости операционных систем сервера и компьютера. Нельзя восстановить файлы до предыдущей или будущей версии операционной системы. Например, нельзя восстановить файл с виртуальной машины Windows Server 2016 на компьютер Windows Server 2012 или Windows 8. Файлы можно восстановить с виртуальной машины в ту же серверную операционную систему или в совместимую клиентскую операционную систему.

ОС сервера Совместимые ОС клиента
Windows Server 2022 Windows 11 и Windows 10
Windows Server 2019 Windows 10
Windows Server 2016 Windows 10
Windows Server 2012 R2 Windows 8.1
Windows Server 2012 Windows 8
Windows Server 2008 R2 Windows 7

Для ОС Linux

В Linux операционная система компьютера, используемого для восстановления файлов, должна поддерживать файловую систему защищенной виртуальной машины. При выборе компьютера для выполнения сценария убедитесь, что он имеет совместимую ОС и использует одну из версий, приведенных в следующей таблице:

ОС Linux Версии
Ubuntu 12.04 и выше
CentOS 6.5 и выше
RHEL 6.7 и выше
Debian 7 и выше
Oracle Linux 6.4 и выше
SLES 12 и выше
openSUSE 42.2 и выше

Дополнительные компоненты

Сценарию также требуется компоненты python и bash для выполнения операций и безопасного подключения к точке восстановления.

Компонент Версия Тип ОС
bash 4 и выше Linux
Python 2.6.6 и выше Linux
.NET 4.6.2 и выше Windows
TLS Должна поддерживаться версия 1.2 Linux или Windows

Кроме того, убедитесь, что у вас имеется правильный компьютер для запуска скрипта ILR, который соответствует требованиям к доступу.

Шаг 4. Требования к доступу для успешного запуска скрипта

Если скрипт выполняется на компьютере с ограниченным доступом, убедитесь в наличии доступа к следующим ресурсам.

  • Тег службы download.microsoft.com или AzureFrontDoor.FirstParty в NSG на порту 443 (исходящий).
  • URL-адреса службы восстановления (GEO-NAME ссылается на регион, в котором находится хранилище служб восстановления) через порт 3260 (исходящий трафик)
    • https://pod01-rec2.GEO-NAME.backup.windowsazure.com (для общедоступных регионов Azure) или тег службы AzureBackup в NSG
    • https://pod01-rec2.GEO-NAME.backup.windowsazure.cn (Для Microsoft Azure под управлением 21Vianet) или AzureBackup тега службы в NSG
    • https://pod01-rec2.GEO-NAME.backup.windowsazure.us (для Azure для государственных организаций США) или тег службы AzureBackup в NSG
    • https://pod01-rec2.GEO-NAME.backup.windowsazure.de (для Azure для Германии) или тег службы AzureBackup в NSG
  • Разрешение общедоступных DNS-имен на порту 53 (исходящий).

Примечание.

Прокси-серверы могут не поддерживать протокол iSCSI или доступ к порту 3260. Поэтому настоятельно рекомендуется запускать этот скрипт на компьютерах, с прямым доступом (согласно требованию выше), а не на компьютерах, которые будут перенаправлены на прокси-сервер.

Примечание.

Если резервная копия виртуальной машины с ОС Windows, то географическое имя будет упомянуто в созданном пароле.

Например, если созданный пароль ContosoVM_wcus_GUID, то геоназоваемое имя будет висеть, а URL-адрес будет следующим:<https://pod01-rec2.wcus.backup.windowsazure.com>

Если резервная копия виртуальной машины с ОС Linux, в имени файла скрипта, скачанного на шаге 1 выше, будет содержаться географическое имя. Используйте географическое имя для заполнения URL-адреса. Имя скачанного скрипта будет начинаться следующим образом: VMname_geoname_GUID.

Например, если имя файла сценария — ContosoVM_wcus_12345678, географическое имя — wcus, то URL-адрес будет выглядеть следующим образом: <https://pod01-rec2.wcus.backup.windowsazure.com>.

Для Linux сценарию требуются компоненты open-iscsi и lshw для подключения к точке восстановления. Если на компьютере, где выполняется скрипт, отсутствуют компоненты, скрипт запрашивает разрешение на их установку. Согласитесь на установку необходимых компонентов.

Доступ к download.microsoft.com требуется для загрузки компонентов, используемых для создания безопасного канала между компьютером, на котором выполняется скрипт, и данными в точке восстановления.

Кроме того, убедитесь, что у вас имеется правильный компьютер для запуска скрипта ILR, который соответствует требованиям к ОС.

Шаг 5. Запуск скрипта и определение томов

Примечание.

Скрипт создается только на английском языке и не локализуется. Следовательно, для правильного выполнения скрипта может потребоваться, чтобы в качестве языкового стандарта системы был выбран английский язык.

Для Windows

Выполнив все требования, перечисленные на шаге 2, шаге 3 и шаге 4, скопируйте скрипт из расположения загрузки (обычно это папка "Загрузки"). См. шаг 1, чтобы узнать, как создать и скачать скрипт. Щелкните исполняемый файл правой кнопкой мыши и запустите его с учетными данными администратора. При появлении запроса введите пароль или вставьте его из памяти и нажмите клавишу ВВОД. После ввода пароля сценарии подключаются к точке восстановления.

Снимок экрана: выходные данные исполняемого файла для восстановления файлов из виртуальной машины.

При выполнении исполняемого файла операционная система подключает новые тома и назначает им буквы дисков. Для просмотра этих дисков вы можете использовать проводник Windows или проводник. Этим томам могут быть назначены не те буквы дисков, которые использовались на исходной виртуальной машине. Имена томов сохраняются. Например, если на исходной виртуальной машине том назывался "Диск данных (E:\)", на локальном компьютере он будет подключен как "Диск данных (любая буква:\)". Просмотрите все тома, которые упоминаются в выходных данных скрипта, пока не найдете нужные файлы или папки.

Подключенные тома восстановления

Для виртуальных машин с резервной копией и дисками большого объема (Windows)

Если процесс восстановления файла зависает после запуска скрипта восстановления файлов (например, если диски не подключены или подключены, но тома не отображаются), выполните следующие действия.

  1. Убедитесь, что ОС имеет версию WS 2012 или выше.

  2. Убедитесь, что разделы реестра заданы на сервере восстановления, как показано ниже, и перезагрузите сервер. Число рядом с уникальным идентификатором может быть в диапазоне от 0001 до 0005. В следующем примере указано 0004. Перейдите по пути раздела реестра до раздела параметров.

    Изменения раздела реестра

- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\TimeOutValue – change this from 60 to 2400 secs.
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e97b-e325-11ce-bfc1-08002be10318}\0003\Parameters\SrbTimeoutDelta – change this from 15 to 2400 secs.
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e97b-e325-11ce-bfc1-08002be10318}\0003\Parameters\EnableNOPOut – change this from 0 to 1
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e97b-e325-11ce-bfc1-08002be10318}\0003\Parameters\MaxRequestHoldTime - change this from 60 to 2400 secs.

Для Linux

Выполнив все требования, перечисленные на шаге 2, шаге 3 и шаге 4, создайте скрипт Python для компьютеров Linux. См. шаг 1, чтобы узнать, как создать и скачать скрипт. Скачайте скрипт и скопируйте его на соответствующий или совместимый сервер Linux. Вам может потребоваться изменить разрешения, чтобы выполнить его с помощью chmod +x <python file name>. Затем запустите файл Python с помощью ./<python file name>.

В Linux тома точки восстановления подключаются к папке, в которой выполняет сценарий. Отображаются подключенные диски, тома и соответствующие пути подключения. Эти пути подключения видимы для пользователей с доступом на корневом уровне. Просмотрите тома, указанные в выходных данных сценария.

Меню восстановления файлов Linux

Для виртуальных машин с резервной копией и дисками большого объема (Linux)

Если процесс восстановления файла зависает после запуска скрипта восстановления файлов (например, если диски не подключены или подключены, но тома не отображаются), выполните следующие действия.

  1. В файле /etc/iscsi/iscsid.conf измените параметр:
    • node.conn[0].timeo.noop_out_timeout = 5...node.conn[0].timeo.noop_out_timeout = 120
  2. После внесения указанных выше изменений запустите скрипт еще раз. При наличии временных сбоев убедитесь в наличии промежутка 20–30 минут между попытками повторного запуска, чтобы избежать появления последовательных всплесков запросов, влияющих на подготовку целевого объекта. Этот интервал между попытками повторного запуска обеспечит готовность целевого объекта к подключению из скрипта.
  3. После восстановления файлов обязательно вернитесь на портал и нажмите кнопку Отключить диски для точек восстановления, тома которых не удалось подключить. По сути этот шаг позволяет очистить существующие процессы или сеансы и повысить вероятность восстановления.

Массивы LVM/RAID (для виртуальных машин Linux)

В Linux для управления логическими томами на нескольких дисках используется диспетчер логических томов (LVM) и (или) программные RAID-массивы. Если защищенная виртуальная машина Linux использует LVM и/или RAID-массивы, на ней нельзя запустить сценарий.
Вместо этого запустите сценарий на любом другом компьютере с совместимой операционной системы, поддерживающей файловую систему защищенной виртуальной машины.
В следующих выходных данных сценария отображаются диски и тома LVM или RAID-массивов с типом раздела.

Меню выходных данных для LVM в Linux

Чтобы подключить эти разделы, выполните команды в следующих разделах.

Разделы LVM

После выполнения скрипта разделы LVM подключаются к физическим томам или дискам, указанным в выходных данных скрипта. Процесс должен:

  1. получить уникальный список имен групп томов из физических томов или дисков;
  2. затем перечислить логические тома в этих группах томов;
  3. затем подключить логические тома к требуемому пути.
Вывод списка имен групп томов из физических томов

Чтобы вывести список имен групп томов:

sudo pvs -o +vguuid

Эта команда выводит список всех физических томов (включая существующие перед выполнением скрипта), соответствующие имена групп томов и уникальные идентификаторы пользователей (UUID) группы томов. Ниже приведен пример выходных данных этой команды.

PV         VG        Fmt  Attr PSize   PFree    VG UUID

  /dev/sda4  rootvg    lvm2 a--  138.71g  113.71g EtBn0y-RlXA-pK8g-de2S-mq9K-9syx-B29OL6

  /dev/sdc   APPvg_new lvm2 a--  <75.00g   <7.50g njdUWm-6ytR-8oAm-8eN1-jiss-eQ3p-HRIhq5

  /dev/sde   APPvg_new lvm2 a--  <75.00g   <7.50g njdUWm-6ytR-8oAm-8eN1-jiss-eQ3p-HRIhq5

  /dev/sdf   datavg_db lvm2 a--   <1.50t <396.50g dhWL1i-lcZS-KPLI-o7qP-AN2n-y2f8-A1fWqN

  /dev/sdd   datavg_db lvm2 a--   <1.50t <396.50g dhWL1i-lcZS-KPLI-o7qP-AN2n-y2f8-A1fWqN

Первый столбец (PV) показывает физический том, последующие столбцы — соответствующее имя группы томов, формат, атрибуты, размер, свободное пространство и уникальный идентификатор группы томов. В выходных данных команды отображаются все физические тома. Просмотрите выходные данные скрипта и определите тома, связанные с резервной копией. В приведенном выше примере выходные данные сценария выглядели бы следующим образом: /dev/sdf и /dev/sdd. Таким образом, группа томов datavg_db принадлежит скрипту, а Appvg_new — компьютеру. Наконец, необходимо убедиться, что уникальное имя группы томов имеет один уникальный идентификатор.

Дублирующиеся группы томов

В некоторых сценариях имена групп томов после выполнения скрипта могут иметь 2 UUID. Это означает, что имена групп томов на компьютере, где выполняется скрипт, и на виртуальной машине с резервной копией одинаковы. В этом случае необходимо переименовать группы томов виртуальных машин с резервными копиями. Рассмотрим следующий пример.

PV         VG        Fmt  Attr PSize   PFree    VG UUID

  /dev/sda4  rootvg    lvm2 a--  138.71g  113.71g EtBn0y-RlXA-pK8g-de2S-mq9K-9syx-B29OL6

  /dev/sdc   APPvg_new lvm2 a--  <75.00g   <7.50g njdUWm-6ytR-8oAm-8eN1-jiss-eQ3p-HRIhq5

  /dev/sde   APPvg_new lvm2 a--  <75.00g   <7.50g njdUWm-6ytR-8oAm-8eN1-jiss-eQ3p-HRIhq5

  /dev/sdg   APPvg_new lvm2 a--  <75.00g  508.00m lCAisz-wTeJ-eqdj-S4HY-108f-b8Xh-607IuC

  /dev/sdh   APPvg_new lvm2 a--  <75.00g  508.00m lCAisz-wTeJ-eqdj-S4HY-108f-b8Xh-607IuC

  /dev/sdm2  rootvg    lvm2 a--  194.57g  127.57g efohjX-KUGB-ETaH-4JKB-MieG-EGOc-XcfLCt

В выходных данных скрипта /dev/sdg, /dev/sdh, /dev/sdm2 отображались бы как подключенные. Таким образом, соответствующие имена VG — Appvg_new и rootvg. Однако те же имена также содержатся в списке VG компьютера. Можно проверить, что у одного имени VG имеется два UUID.

Теперь нужно переименовать имена VG для томов на основе скрипта, например: /dev/sdg, /dev/sdh, /dev/sdm2. Чтобы переименовать группу томов, используйте следующую команду:

sudo vgimportclone -n rootvg_new /dev/sdm2
sudo vgimportclone -n APPVg_2 /dev/sdg /dev/sdh

Теперь все имена VG обладают уникальными идентификаторами.

Активные группы томов

Убедитесь, что группы томов, соответствующие томам скрипта, активны. Для отображения активных групп томов используется следующая команда. Проверьте, присутствуют ли в этом списке группы томов, связанные со скриптом.

sudo vgdisplay -a

В противном случае активируйте группу томов с помощью следующей команды.

sudo vgchange –a y  <volume-group-name>
Вывод списка логических томов в группах томов

Получив уникальный активный список групп томов, связанных с этим скриптом, можно вывести список логических томов, присутствующих в этих группах томов, с помощью следующей команды.

sudo lvdisplay <volume-group-name>

Эта команда отображает путь к каждому логическому тому как LV Path.

Подключение логических томов

Эта команда подключает логические тома по указанному пути.

sudo mount <LV path from the lvdisplay cmd results> </mountpath>

Предупреждение

Не используйте mount-a. Эта команда подключает все устройства, описанные в /etc/fstab. Это значит, что дубликаты устройств тоже могут быть подключены. Данные могут перенаправляться на устройства, созданные сценарием. При этом данные не сохраняются, что может привести к их утере.

RAID-массивы

Эта команда выводит сведения обо всех дисках RAID.

sudo mdadm –detail –scan

Соответствующий диск RAID будет отображен как /dev/mdm/<RAID array name in the protected VM>.

Если диск RAID содержит физические тома, выполните команду подключения.

sudo mount [RAID Disk Path] [/mountpath]

Если для этого диска RAID настроен другой LVM, то выполните приведенную выше процедуру для разделов LVM, указав имя тома в качестве имени диска RAID.

Шаг 6. Закрытие подключения

Когда вы найдете все нужные файлы и скопируете их в локальное хранилище, удалите или отключите дополнительные диски. Чтобы отключить диски, щелкните Отключить диски в меню Восстановление файлов на портале Azure.

Отключите диски

Когда диски будут отключены, появится сообщение об успешном завершении операции. На обновление состояния подключения может потребоваться несколько минут, после чего диски можно удалить.

В Linux после разрыва подключения к точке восстановления операционная система не удаляет соответствующие пути подключения автоматически. Они существуют в виде потерянных томов и видимы, но при обращении к ним или записи в них файлов происходит ошибка. Их можно удалить вручную, выполнив скрипт с параметром clean (python scriptName.py clean). При запуске сценарий определяет такие тома, оставшиеся от любой предыдущей точки восстановления, и очищает их после согласия пользователя.

Примечание.

После восстановления необходимых файлов убедитесь, что подключение закрыто. Это важно, особенно в сценарии, когда компьютер, на котором выполняется скрипт, также настроен для резервного копирования. Если подключение по-прежнему открыто, последующая операция резервного копирования может завершиться ошибкой UserErrorUnableToOpenMount. Это происходит из-за того, что подключенные диски или тома считаются доступными и при доступе к ним может происходить сбой, так как базовое хранилище, то есть целевой сервер iSCSI, может быть недоступно. Очистка подключения приведет к удалению этих дисков и томов, и они не будут доступны во время резервного копирования.

Безопасность

В этом разделе рассматриваются различные меры безопасности, предпринятые для реализации восстановления файлов из резервных копий виртуальных машин Azure.

Поток функций

Эта функция была создана для доступа к данным виртуальной машины без необходимости восстановления всей виртуальной машины или ее дисков при минимальном количестве действий. Доступ к данным виртуальной машины обеспечивается с помощью скрипта (который подключает том восстановления при запуске, как показано ниже) и является ключевым элементом в реализации безопасности.

Поток функций безопасности

Варианты реализации системы безопасности

Выбор точки восстановления (которая может создавать скрипт)

Скрипт предоставляет доступ к данным виртуальной машины, поэтому в первую очередь важно контролировать, кто его может создать. Для создания скрипта необходимо войти на портал Azure и пройти авторизацию Azure RBAC.

Для восстановления файлов требуется тот же уровень авторизации, что и для восстановления виртуальной машины и дисков. Иными словами, только полномочные пользователи могут просматривать данные виртуальной машины, чтобы создать скрипт.

Созданный скрипт подписывается официальным сертификатом Майкрософт для службы Azure Backup. Любое вмешательство в скрипт означает, что подпись нарушена, и любая попытка запустить скрипт определяется ОС как потенциально рискованная.

Подключение тома восстановления (который может выполнять скрипт)

Только администратор может запустить скрипт в режиме с повышенными правами. Скрипт можно запустить, выполнив только предварительно сформированный набор шагов. Он не принимает входные данные из какого-либо внешнего источника.

Чтобы выполнить скрипт, требуется пароль, который отображается только для полномочного пользователя во время создания скрипта на портале Azure, в PowerShell или CLI. Это необходимо для того, чтобы полномочный пользователь, скачивающий скрипт, также отвечал за его выполнение.

Обзор файлов и папок

Для просмотра файлов и папок скрипт использует инициатор iSCSI на компьютере и подключается к точке восстановления, настроенной в качестве целевого устройства iSCSI. Здесь можно представить сценарии, в которых выполняется попытка имитировать или подменить все компоненты.

Мы используем механизм взаимной проверки подлинности CHAP, чтобы каждый компонент проверял подлинность другого. Это означает, что поддельному инициатору чрезвычайно трудно подключиться к целевому устройству iSCSI, а поддельному объекту — подключиться к компьютеру, на котором выполняется скрипт.

Поток данных между службой восстановления и компьютером защищается путем создания защищенного туннеля TLS по протоколу TCP (на компьютере, где выполняется скрипт должен поддерживаться TLS 1.2).

Любой файл контроль доступа list (ACL), присутствующих в родительской или резервной копии виртуальной машины, также сохраняется в подключенной файловой системе.

Скрипт предоставляет доступ только для чтения к точке восстановления и действует только в течение 12 часов. Если вы хотите удалить доступ раньше, войдите на портал Azure, в PowerShell или CLI и отключите диски для этой точки восстановления. Скрипт будет немедленно объявлен недействительным.

Следующие шаги