Поделиться через


Перенос данных из Linux в развертывание гибридного облака с помощью Синхронизации файлов Azure

Эта статья о миграции — одна из нескольких публикаций с ключевыми словами "NFS" и "Синхронизация файлов Azure". Проверьте, подходит ли эта статья для вашего сценария.

  • Источник данных: запоминающее устройство, подключаемое к сети (NAS)
  • Маршрут переноса: сервер Linux с Samba ⇒ сервер Windows Server 2012 R2 или более поздней версии ⇒ синхронизация с общими папками Azure.
  • Локальное кэширование файлов: да, конечная цель — развертывание службы "Синхронизация файлов Azure".

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

Синхронизация файлов Azure работает на экземплярах Windows Server с непосредственно подключенным хранилищем (DAS). Эта служба не поддерживает синхронизацию для клиентов Linux, удаленных общих папок SMB и общих папок NFS.

В результате этого преобразование файловых служб в гибридное развертывание делает необходимой миграцию на платформу Windows Server. В этой статье описывается планирование и выполнение такой миграции.

Применяется к

Тип общей папки SMB NFS
Стандартные общие папки (GPv2), LRS/ZRS Да Нет
Стандартные общие папки (GPv2), GRS/GZRS Да Нет
Общие папки уровня "Премиум" (FileStorage), LRS/ZRS Да Нет

Цели миграции

Цель заключается в том, чтобы переместить общие папки с сервера Linux с Samba в экземпляр Windows Server. Затем следует использовать Синхронизацию файлов Azure для развертывания гибридного облака. Миграция должна быть выполнена таким образом, чтобы гарантировать целостность рабочих данных и их доступность во время миграции. Последнее означает сведение времени простоя к минимуму, чтобы длительность миграции была равна стандартному периоду обслуживания или только немного превышала его.

Обзор миграции

Как упоминалось в обзоре миграции в Файлы Azure, важно использовать правильные средство копирования и подход. Сервер Linux с Samba предоставляет общие папки SMB непосредственно в локальной сети. Инструмент Robocopy, встроенный в сервер Windows Server, лучше всего подходит для перемещения файлов в этом сценарии миграции.

Если вы не используете Samba на сервере Linux и хотите перенести папки в гибридное развертывание на сервере Windows Server, то вместо Robocopy можно использовать средства копирования Linux. Помните о точности средства копирования. Ознакомьтесь с разделом об основах миграции в статье с общими сведениями о миграции, чтобы узнать, какими качествами должно обладать средство копирования.

Этап 1. Определение необходимого количества общих папок Azure

На этом шаге выполняется определение количества необходимых общих папок Azure. Один экземпляр Windows Server (или кластер) может синхронизировать до 30 общих папок Azure.

Тома могут содержать большее количество папок, к которым вы в настоящее время предоставляете локальный доступ как к общим папкам SMB пользователям и приложениям. Самый простой способ изобразить этот сценарий — представить локальную общую папку, которая имеет сопоставление 1:1 с общей папкой Azure. При наличии достаточно небольшого количества общих папок (менее 30) для одного экземпляра Windows Server рекомендуется использовать сопоставление 1:1.

Если используется более 30 общих папок, зачастую сопоставление 1:1 между локальной общей папкой и общей папкой Azure не является обязательным. Следуйте приведенным ниже рекомендациям.

Группирование общих папок

Например, если у отдела кадров (HR) 15 общих папок, возможно, стоит хранить все данные HR в одной общей папке Azure. Хранение нескольких локальных общих папок в одной общей папке Azure не мешает создать 15 обычных общих папок SMB на локальном экземпляре Windows Server. Это лишь означает, что корневые папки этих 15 общих папок должны представлять собой вложенные папки в составе общей папки. Затем выполняется синхронизация этой общей папки с общей папкой Azure. Таким образом, для этой группы локальных общих папок требуется только одна общая папка Azure в облаке.

Синхронизация томов

Синхронизация файлов Azure поддерживает синхронизацию корня тома с общей папкой Azure. При синхронизации корня тома все вложенные папки и файлы отправляются в одну и ту же общую папку Azure.

Синхронизация корня тома не всегда представляет собой лучшее решение. Синхронизация нескольких расположений имеет свои преимущества. Например, она позволяет сократить количество элементов в одной области синхронизации. Тестирование общих папок Azure и службы синхронизации файлов Azure выполняется при 100 миллионах элементов (файлов и папок) в одной общей папке. Однако рекомендуется использовать не более 20–30 миллионов элементов в одной общей папке. Настройка Синхронизации файлов Azure с меньшим количеством элементов выгодна не только для синхронизации файлов. Уменьшение количества элементов также полезно в перечисленных ниже сценариях.

  • Начальное сканирование содержимого облака может выполняться быстрее, что, в свою очередь, сократит время ожидания отображения пространства имен на сервере, где включена Синхронизация файлов Azure.
  • Восстановление на стороне облака из моментального снимка общей папки Azure будет выполняться быстрее.
  • Аварийное восстановление локального сервера может существенно ускориться.
  • Обнаружение и синхронизация изменений, внесенных непосредственно в общей папке Azure (за пределами области синхронизации), могут выполняться быстрее.

Совет

Если вы не знаете, сколько у вас файлов и папок, воспользуйтесь инструментом TreeSize от JAM Software GmbH.

Структурированный подход к сопоставлению развертывания

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

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

  • Сервер, на котором установлен агент Синхронизации файлов Azure, может выполнить синхронизацию с 30 общими папками Azure.

  • Общая папка Azure развертывается в учетной записи хранения. Это делает учетную запись хранения целевым объектом масштабирования для таких показателей производительности, как операции ввода-вывода в секунду и пропускная способность.

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

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

  • Одна подписка в одном регионе Azure может содержать не более 250 учетных записей хранения.

Совет

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

Такое группирование в общем корне не влияет на доступ к данным. Списки управления доступом остаются неизменными. Вам потребуется лишь скорректировать все пути к общим папкам (например, к общим папкам SMB или NFS) в локальных папках сервера, которые теперь имеют общий корень. Больше ничего не меняется.

Внимание

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

В одной области синхронизации рекомендуется использовать небольшое количество элементов. Это важный фактор, который следует учитывать при сопоставлении папок с общими папками Azure. Тестирование службы синхронизации файлов Azure выполняется при 100 миллионах элементов (файлов и папок) в одной общей папке. Однако, как правило, рекомендуется использовать не более 20–30 миллионов элементов в одной общей папке. В случае превышения этих цифр разделите пространство имен на несколько общих папок. Если в общем и целом эти цифры не превышены, вы можете продолжить группирование локальных общих папок в одну и ту же общую папку Azure. Такая методика оставляет пространство для роста.

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

Распространенные сценарии синхронизации файлов и рекомендации

# Сценарий синхронизации Поддерживается Рекомендации (или ограничения) Решение (или обходное решение)
1 Файловый сервер с несколькими дисками и томами и несколькими общими ресурсами для одной целевой общей папки Azure (консолидация) No Целевая файловая папка Azure (конечная точка облака) поддерживает синхронизацию только с одной группой синхронизации.

Группа синхронизации поддерживает только одну конечную точку сервера на зарегистрированный сервер.
1. Начните с синхронизации одного диска (корневого тома) для целевого файлового ресурса Azure. Начиная с самого большого диска или тома, требования к хранилищу будут соответствовать локальным требованиям. Настройте распределение по уровням в облаке для распределения всех данных в облако, тем самым освобождая место на диске файлового сервера. Переместите данные из других томов или общих папок в текущий том, который синхронизируется. Продолжайте шаги по одному до тех пор, пока все данные не будут многоуровневы до облака или перенесены.
2) Нацелив один корневой том (диск) за раз. Используйте распределение по уровням облака для распределения всех данных для целевого файлового ресурса Azure. Удалите конечную точку сервера из группы синхронизации, повторно создайте конечную точку со следующим корневым томом или диском, синхронизацией и повторите процесс. Примечание. Может потребоваться повторная установка агента.
3. Рекомендуется использовать несколько целевых общих папок Azure (одну или другую учетную запись хранения на основе требований к производительности).
2 Файловый сервер с одним томом и несколькими общими ресурсами для одной целевой общей папки Azure (консолидация) Да Не удается синхронизировать несколько конечных точек сервера на зарегистрированный сервер, синхронизированный с одной целевой общей папкой Azure (аналогично приведенной выше). Синхронизировать корневой каталог тома, включающего несколько общих папок или папок верхнего уровня. Дополнительные сведения см. в разделе "Общие понятия группирования" и синхронизации томов.
3 Файловый сервер с несколькими общими папками и (или) томами для нескольких общих папок Azure в рамках одной учетной записи хранения (сопоставление общих папок 1:1) Да Один экземпляр Windows Server (или кластер) может синхронизировать до 30 общих папок Azure.

Учетная запись хранения — это целевой объект масштабирования для производительности. Операции ввода-вывода в секунду и пропускная способность получают общий доступ между общими файловыми ресурсами.

Сохраняйте количество элементов для каждой группы синхронизации в пределах 100 миллионов элементов (файлов и папок) на общую папку. В идеале лучше всего остаться ниже 20 или 30 миллионов на акцию.
1) Использование нескольких групп синхронизации (число групп синхронизации = количество общих папок Azure для синхронизации).
2) Синхронизировано только 30 общих папок в этом сценарии одновременно. Если на этом файловом сервере более 30 общих папок, используйте концепцию группирования общих ресурсов и синхронизацию томов, чтобы уменьшить количество корневых или верхних папок в источнике.
3) Использование дополнительных Синхронизация файлов серверов локальной среды и разделения и перемещения данных на эти серверы для обхода ограничений на исходном сервере Windows.
4 Файловый сервер с несколькими общими ресурсами и (или) томами для нескольких общих папок Azure в разных учетных записях хранения (сопоставление общих папок 1:1) Да Один экземпляр Windows Server (или кластер) может синхронизировать до 30 общих папок Azure (одной или другой учетной записи хранения).

Сохраняйте количество элементов для каждой группы синхронизации в пределах 100 миллионов элементов (файлов и папок) на общую папку. В идеале лучше всего остаться ниже 20 или 30 миллионов на акцию.
Тот же подход, что и выше
5 Несколько файловых серверов с одним (корневым томом или общим ресурсом) для одной целевой общей папки Azure (консолидация) No Группа синхронизации не может использовать облачную конечную точку (общую папку Azure), уже настроенную в другой группе синхронизации.

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

Создание таблицы сопоставления

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

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

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


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

Этап 2. Подготовка подходящего локального экземпляра Windows Server

  • Создайте экземпляр Windows Server 2022 в качестве виртуальной машины или физического сервера. Windows Server 2012 R2 является минимальной требуемой версий. Отказоустойчивый кластер Windows Server также поддерживается.

  • Подготовьте к работе или добавьте непосредственно подключенное хранилище (DAS). Подключенное к сети хранилище (NAS) не поддерживается.

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

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

  1. переместить набор файлов, который помещается на диск;
  2. Позвольте Синхронизация файлов и многоуровневой работе по уровням в облаке.
  3. когда на томе выделено дополнительное свободное пространство, перейти к следующему пакету файлов. Или же изучите команду RoboCopy в следующем разделе RoboCopy для использования нового коммутатора /LFSM. Использование /LFSM может значительно упростить задания RoboCopy, но оно несовместимо с некоторыми другими коммутаторами RoboCopy, от которые могут зависеть.

Этой пакетной обработки можно избежать, выделив на сервере Windows Server пространство, эквивалентное пространству, занимаемому файлами на сервере Linux с Samba. Рассмотрите возможность включения дедупликации в Windows. Если вы не хотите окончательно зафиксировать такой большой объем хранилища на экземпляре Windows Server, можно уменьшить размер тома после миграции и до настройки политик распределения по уровням в облаке. Это создает меньший локальный кэш файловых ресурсов Azure.

Конфигурация ресурсов (вычислительных и ОЗУ) развертываемого экземпляра Windows Server зависит главным образом от количества элементов (файлов и папок), которые будут синхронизироваться. При наличии каких-либо сомнений рекомендуется использовать более высокопроизводительную конфигурацию.

Узнайте, как масштабировать экземпляр Windows Server с учетом количества элементов (файлов и папок), которые необходимо синхронизировать.

Примечание.

В статье, ссылка на которую была представлена ранее, содержится таблица с диапазоном памяти (ОЗУ) сервера. Можно ориентироваться на меньшее значение для своего сервера, но при этом начальная синхронизация может занять значительно больше времени.

Этап 3. Развертывание облачного ресурса Синхронизации файлов Azure

На этом шаге вам понадобятся учетные данные подписки Azure.

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

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

Дополнительные сведения см. в разделе о развертывании службы синхронизации хранилища статьи о развертывании службы Синхронизации файлов Azure. Вам понадобится только этот раздел статьи. На следующих этапах будут приведены ссылки на другие разделы статьи.

Этап 4. Развертывание ресурсов хранилища Azure

На этом этапе просмотрите таблицу сопоставления из этапа 1 и используйте ее для подсчета правильного числа учетных записей хранения Azure и файловых ресурсов в них.

Общая папка Azure хранится в облаке в учетной записи хранения Azure. Здесь применяется еще один уровень рекомендаций по производительности.

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

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

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

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

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

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

Внимание

Если вы создадите общую папку Azure с ограничением в 100 ТиБ, она сможет использовать только параметры избыточности "Локально избыточное хранилище" или "Хранилище, избыточное между зонами". Рассмотрите потребности в избыточности хранилища перед использованием 100 общих папок TiB.

По умолчанию общие папки Azure создаются с ограничением в 5 ТиБ. Инструкции по созданию больших общих папок см. в статье Создание файлового ресурса Azure.

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

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

Этап 5. Развертывание агента Синхронизации файлов Azure

В этом разделе вам предстоит установить агент Синхронизации файлов Azure на экземпляре Windows Server.

Руководство по развертыванию объясняет необходимость отключения конфигурации усиленной безопасности Internet Explorer. Эта мера безопасности неприменима к Синхронизации файлов Azure. Ее отключение позволяет выполнять проверку подлинности в Azure без каких бы то ни было проблем.

Откройте средство PowerShell. Установите необходимые модули PowerShell с помощью следующих команд. При появлении соответствующего запроса обязательно установите полный модуль и поставщик NuGet.

Install-Module -Name Az -AllowClobber
Install-Module -Name Az.StorageSync

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

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

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

По окончании работы мастера установки сервера откроется мастер регистрации сервера. Зарегистрируйте сервер в ресурсе Azure службы синхронизации хранилища, упомянутой ранее.

Эти действия подробно описаны в руководстве по развертыванию, включающем модули PowerShell, которые следует установить в первую очередь: Установка агента Синхронизации файлов Azure.

Используйте последнюю версию агента. Его можно скачать в Центре загрузки Майкрософт: Агент Синхронизации файлов Azure.

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

Этап 6. Настройка Синхронизации файлов Azure на развернутом экземпляре Windows Server

Зарегистрированный локальный экземпляр Windows Server должен быть готов к работе и подключен к Интернету для этого процесса.

На этом этапе выполняется связывание всех ресурсов и папок, настроенных на экземпляре Windows Server в ходе выполнения предыдущих этапов.

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

Внимание

Распределение по уровням в облаке — это функция Синхронизации файлов Azure, которая позволяет выделять локальному серверу меньший объем хранилища, чем объем ресурсов в облаке, но при этом использовать полное пространство имен. Локальные интересующие данные также кэшируются локально для повышения производительности доступа. Распределение по уровням в облаке — это дополнительная функция каждой конечной точки сервера Синхронизации файлов Azure.

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

Если вы подготовили на томах Windows Server хранилище размером меньше объема данных, хранящихся на сервере Linux с Samba, то распределение по уровням в облаке является обязательным. Если вы не включите распределение по уровням в облаке, сервер не освободит место для хранения всех файлов. На время миграции временно настройте для политики распределения по уровням 99 % свободного места в томе. По завершении миграции обязательно верните предыдущие параметры распределения по уровням в облаке и задайте более подходящий уровень для долгосрочной перспективы.

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

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

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

Этап 7. Robocopy

Базовый подход к миграции заключается в использовании Robocopy для копирования файлов, а Синхронизации файлов Azure — для синхронизации.

Запустите первое локальное копирование в целевой папке Windows Server:

  1. Определите первое расположение на сервере Linux с Samba.
  2. Определите соответствующую папку на экземпляре Windows Server, на котором уже настроена Синхронизация файлов Azure.
  3. Начните копирование с помощью Robocopy.

Следующая команда Robocopy копирует файлы из хранилища сервера Linux с Samba в целевую папку Windows Server. Сервер Windows Server будет синхронизировать ее с общими папками Azure.

Если вы подготовили меньше хранилища в экземпляре Windows Server, чем файлы, которые занимают сервер Linux Samba, то вы настроили распределение по уровням в облаке. По мере заполнения локального тома Windows Server будет запущено распределение по уровням в облаке, и уже синхронизированные файлы будут распределены по уровням. Распределение по уровням в облаке обеспечит достаточно места, чтобы продолжить копирование данных с сервера Linux с Samba. Распределение по уровням в облаке выполняется один раз в час, чтобы определить, что было синхронизировано, и освободить 99 % места в томе в соответствии с заданной политикой.

Может оказаться, что Robocopy перемещает файлы быстрее, чем выполняется синхронизация с облаком и распределение по уровням локально, что приведет к нехватке места на локальном диске. После этого работа Robocopy завершится ошибкой. Рекомендуется работать с общими папками в последовательности, которая этого не допустит. Например, рекомендуется не запускать задания Robocopy для всех общих папок одновременно. Или рассмотрите возможность перемещения общих папок, которые соответствуют текущему объему свободного пространства на экземпляре Windows Server. Если задание Robocopy завершится сбоем, вы всегда можете повторно выполнить команду, если вы используете следующий параметр зеркального отображения или очистки:

robocopy <SourcePath> <Dest.Path> /MT:20 /R:2 /W:1 /B /MIR /IT /COPY:DATSO /DCOPY:DAT /NP /NFL /NDL /XD "System Volume Information" /UNILOG:<FilePathAndName> 
Коммутатор Значение
/MT:n Разрешает выполнение Robocopy в многопоточном режиме. По умолчанию параметр n имеет значение 8. Максимум — 128 потоков. Хотя большое количество потоков помогает повысить доступную пропускную способность, это не означает, что ваша миграция всегда будет выполняться быстрее. Тесты с Файлами Azure демонстрируют, что использование диапазона от 8 до 20 потоков обеспечивает сбалансированную производительность для выполнения исходного копирования. На последующие запуски /MIR влияют доступные вычислительные ресурсы и доступная полоса пропускания. Для последующих запусков указываемое количество потоков нужно привести в соответствие с числом ядер процессора и количеством потоков, приходящихся на каждое ядро. Определите, нужно ли зарезервировать ядра для других задач рабочего сервера. Тесты с Файлы Azure показали, что до 64 потоков дают хорошую производительность, но только если процессоры могут поддерживать их в то же время.
/R:n Максимальное число повторных попыток для файла, который не удалось скопировать с первого раза. Robocopy повторит попытку определенное количество раз (n), после чего объявит невозможность скопировать этот файл во время этого выполнения. Вы можете оптимизировать производительность выполнения: выберите значение "2" или "3", если вы считаете, что проблемы с истечением времени ожидания вызывали сбои в прошлом. Это может быть типичной проблемой для связи по каналам WAN. Выберите вариант "Без повторных попыток" или значение "1", если вы считаете, что файл не удалось скопировать, так как он активно использовался. Повторная попытка через несколько секунд не всегда позволяет дождаться изменения состояния использования для файла. Возможно, пользователям или приложениям, которые удерживают этот файл открытым, потребуется больше времени. Если вы просто зафиксируете, что файл не был скопирован, и вернетесь к нему в одном из следующих запланированных запусков Robocopy, это может позволить успешно его скопировать. В этом случае текущее выполнение завершится быстрее, без затрат времени на повторные попытки, которые все равно в большинстве случаев завершаются сбоем копирования из-за того, что файлы остаются открытыми по истечении времени ожидания повторных попыток.
/W:n Указывает время ожидания Robocopy перед попыткой копирования файла, который не был успешно скопирован во время предыдущей попытки. n — это количество секунд ожидания между повторными попытками. /W:n часто используется вместе с /R:n.
/B Выполняет команду Robocopy в том же режиме, что и приложение резервного копирования. Этот параметр позволяет Robocopy перемещать файлы, для которых у текущего пользователя нет разрешений. Параметр резервного копирования зависит от выполнения команды Robocopy в консоли с повышенными привилегиями администратора или в окне PowerShell. Если вы используете Robocopy с Файлами Azure, убедитесь, что вы подключаете общую папку Azure с помощью ключа доступа к учетной записи хранения, а не удостоверения домена. В противном случае сообщения об ошибках могут не позволить найти очевидное решение проблемы.
/MIR (Зеркалирование источника в целевом объекте.) Позволяет Robocopy скопировать только изменения между исходным и целевым объектом. Будут скопированы пустые подкаталоги. Элементы (файлы или папки), которые были изменены или не существуют в целевой папке, будут скопированы. Элементы, которые существуют в назначении, но не в источнике, будут удалены из целевого объекта. При использовании этого параметра структуры исходной и целевой папок должны соответствовать друг другу. Соответствие означает, что вы выполняете копирование с правильного уровня источника и папки на соответствующий уровень папки в целевом объекте. Только тогда зеркальное копирование будет успешным. Если объекты источника и назначения не совпадают, использование /MIR приведет к увеличению числа операций удаления и повторного копирования.
/IT Обеспечивает сохранение точности данных в определенных зеркальных сценариях.
Например, если в файле происходит изменение ACL и между двумя выполнениями Robocopy обновляется атрибут, он помечается как скрытый. Без параметра /IT команда Robocopy может упустить изменение ACL и не передать его в целевое расположение.
/COPY:[copyflags] Точность копирования файла. По умолчанию: /COPY:DAT. Флаги копирования: D = данные, A = атрибуты, T = метки времени, S = безопасность = NTFS ACL, O = информация о владельце, U = данные аудита. Данные аудита не могут храниться в общей папке Azure.
/DCOPY:[copyflags] Точность для копии каталогов. По умолчанию: /DCOPY:DA. Флаги копирования: D = данные, A = атрибуты, T = метки времени.
/NP Указывает, что ход копирования каждого файла и папки не отображается. Отображение хода выполнения значительно снижает производительность копирования.
/NFL Указывает, что имена файлов не регистрируются. Улучшается производительность копирования.
/NDL Указывает, что имена каталогов не регистрируются. Улучшается производительность копирования.
/XD Указывает исключаемые каталоги. При выполнении Robocopy в корне тома рассмотрите возможность исключения скрытой папки System Volume Information. Если она используется по назначению, вся информация в ней относится к конкретному тому в этой конкретной системе и может быть легко восстановлена ​​по требованию. Копирование этой информации не принесет никакой пользы ни в облаке, ни при последующем копировании обратно на другой том Windows. Отказ от хранения этого содержимого не должен считаться потерей данных.
/UNILOG:<file name> Записывает состояние в файл журнала в формате Юникод. (Перезаписывает существующий журнал.)
/L Только для тестового запуска
Для файлов только выводится список. Они не копируются, не удаляются, и в них не добавляются мети времени. Зачастую используется вместе с /TEE для вывода консоли. Флаги из примера скрипта (такие как /NP, /NFL и /NDL) потребуется удалить, чтобы добиться обеспечить надлежащее документирование результатов теста.
/LFSM Только для целевых объектов с многоуровневым хранилищем. Не поддерживается, если назначение является удаленным ресурсом S МБ.
Указывает, что Robocopy работает в "режиме низкого свободного пространства". Этот параметр полезен только для целевых объектов с многоуровневыми хранилищами, которые могут выйти из локальной емкости до завершения Robocopy. Он был добавлен специально для использования с целевым объектом, для которого установлено распределение по уровням в облаке в Синхронизации файлов Azure. Его можно использовать независимо от Синхронизации файлов Azure. В этом режиме средство Robocopy будет приостановлено всякий раз, когда копирование файла приведет к тому, что свободное место на целевом томе опустится ниже предельного значения. Это значение может быть задано в форме /LFSM:n флага. Параметр n указывается в системе отсчета с базой 2: nKB, nMB или nGB. Если параметр /LFSM указан без явного значения floor, для него устанавливается значение 10 процентов от размера целевого тома. Режим нехватки свободного места несовместим с /MT, /EFSRAW или /ZB. Поддержка /B была добавлена в Windows Server 2022. Дополнительные сведения о связанных ошибках и обходных решениях см. в разделе о Windows Server 2022 и RoboCopy LFSM ниже.
/Z Используйте его с осторожностью
Копирует файлы в режиме перезапуска. Этот параметр рекомендуется использовать только в нестабильной сетевой среде. Он значительно сокращает производительность копирования из-за дополнительных записей в журнал.
/ZB Используйте его с осторожностью
Использует режим перезапуска. Если доступ запрещен, то для этого параметра используется режим резервного копирования. Этот параметр значительно сокращает производительность копирования из-за дополнительных контрольных точек.

Внимание

Мы рекомендуем использовать Windows Server 2022. При использовании Windows Server 2019 убедитесь, что установлено последнее исправление или хотя бы обновление ОС KB5005103. Оно содержит важные исправления для определенных сценариев Robocopy.

Этап 8. Прямая миграция пользователя

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

При первом выполнении пакет данных перемещается на экземпляр Windows Server и в облако с помощью Синхронизации файлов Azure. Это первое копирование может занять много времени, в зависимости от следующих факторов:

  • пропускная способность скачивания;
  • пропускная способность передачи;
  • скорость локальной сети и оптимальность количества потоков Robocopy;
  • количество элементов (файлов и папок), которые должны обработать Robocopy и Синхронизация файлов Azure.

После завершения начального копирования выполните команду еще раз.

Он завершается быстрее во второй раз, так как он должен транспортировать только изменения, которые произошли с момента последнего запуска. Во время этого второго запуска новые изменения по-прежнему могут накапливаться.

Повторите эту процедуру, пока время, затрачиваемое операцией Robocopy на определенное расположение, не будет соответствовать приемлемому окну простоя.

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

Запустите средство Robocopy последний раз. Оно обнаружит все изменения, которые могли быть пропущены. Время выполнения последнего шага зависит от скорости сканирования Robocopy. Вы можете оценить время (равное времени простоя), измерив длительность предыдущего запуска.

Создайте общую папку в папке на сервере Windows Server и, если возможно, настройте развертывание DFS-N, чтобы оно указывало на нее. Не забудьте установить те же разрешения общего доступа, что и для общих папок SMB на сервере Linux с Samba. Если вы использовали локальных пользователей на сервере Linux Samba, необходимо повторно создать этих пользователей в качестве локальных пользователей Windows Server. Кроме того, необходимо сопоставить существующие идентификаторы безопасности, которые средство Robocopy перенесло на экземпляр Windows Server, с идентификаторами безопасности новых локальных пользователей Windows Server. Если вы использовали учетные записи Active Directory и списки управления доступом, средство Robocopy переместит их как есть и дальнейшие действия не потребуются.

Вы завершили миграцию общей папки или группы общих папок в общий корень или том (в зависимости от сопоставления на этапе 1).

Можно попытаться выполнить несколько операций копирования параллельно. Рекомендуется обрабатывать по одной общей папке Azure за раз.

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

После переноса всех данных с сервера Linux с Samba на экземпляр Windows Server и завершения миграции вернитесь ко всем группам синхронизации на портале Azure. Измените процент свободного места для тома с распределением по уровням в облаке, указав более подходящее значение для использования кэша, например 20 %.

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

Устранение неполадок

Наиболее распространенной проблемой является то, что команда Robocopy завершается сбоем из-за заполнения тома на стороне сервера Windows Server. Распределение по уровням в облаке выполняется один раз в час — при этом перемещается содержимое с локального диска сервера Windows, которое было синхронизировано. Его цель — освободить 99 % пространства на томе.

Позвольте синхронизации продолжить выполнение, а функции распределения по уровням облака — освободить место на диске. За этим можно наблюдать в проводнике на сервере Windows Server.

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

Сведения об устранении неполадок с Синхронизацией файлов Azure доступны по ссылке в следующем разделе.

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

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