Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается использование RoboCopy для перемещения или переноса файлов в общую папку SMB Azure. RoboCopy — это надежная и хорошо известная программа копирования файлов с набором функций, который хорошо подходит для миграции. Он использует протокол SMB, который делает его широко применимым к любой исходной и целевой комбинации, которая поддерживает SMB.
- Источники данных: любой источник, поддерживающий протокол SMB, например сетевое хранилище (NAS), серверы Windows или Linux, другой файловый ресурс Azure и многое другое
- Маршрут миграции: из исходного хранилища ⇒ компьютер Windows с помощью RoboCopy ⇒ файловое хранилище Azure
- Локальные файлы кэширования отсутствуют. Так как окончательная цель заключается в использовании общих папок Azure непосредственно в облаке, не планируется использовать синхронизацию файлов Azure.
Important
Существует множество различных маршрутов миграции для различных сочетаний источников и развертываний. Прежде чем выполнить действия, описанные в этой статье, ознакомьтесь с обзором миграции, определите, что RoboCopy — это средство, которое лучше всего подходит для ваших потребностей и развернуло необходимые ресурсы службы хранилища Azure для миграции.
Применимо к
| Тип общей папки | SMB | NFS |
|---|---|---|
| Стандартные общие папки (GPv2), LRS/ZRS |
|
|
| Стандартные общие папки (GPv2), GRS/GZRS |
|
|
| Премиальные файловые хранилища (FileStorage), LRS/ZRS |
|
|
AzCopy vs. RoboCopy
AzCopy и RoboCopy являются двумя основными средствами копирования файлов. RoboCopy использует любую версию протокола SMB. AzCopy — это инструмент "родился в облаке", который можно использовать для перемещения данных до тех пор, пока целевой объект находится в хранилище Azure. AzCopy зависит от протокола REST.
RoboCopy, как доверенное средство копирования на основе Windows, имеет преимущество домашней площадки, когда дело доходит до копирования файлов с полной точностью. RoboCopy поддерживает множество сценариев миграции из-за полного набора функций и возможности копирования файлов и папок в полной точности. Чтобы узнать больше о важности копирования файлов с максимальной точностью, ознакомьтесь с разделом "Целостность файлов" в статье обзора миграции.
С другой стороны, AzCopy только недавно расширился для поддержки копирования файлов с некоторой точностью и добавил первые функции, необходимые для рассмотрения в качестве средства миграции. Однако все еще остаются пробелы, и при сравнении флагов AzCopy с флагами RoboCopy легко может возникнуть непонимание их функциональности.
Пример: RoboCopy /MIR будет зеркально отображать исходный источник для целевого объекта. Это означает, что учитываются добавленные, измененные и удаленные файлы. Важное различие в использовании AzCopy -sync заключается в том, что удаленные файлы в источнике не удаляются в целевом объекте. Это создает неполный набор функций для разностного копирования. AzCopy продолжит развиваться. В настоящее время мы не рекомендуем использовать AzCopy для сценариев миграции с общими папками Azure в качестве целевого объекта.
Подключите файловое хранилище Azure
Прежде чем использовать RoboCopy, необходимо сделать общую папку Azure доступной через SMB. Самый простой способ — подключить общую папку в качестве локального сетевого диска к Windows Server, который вы планируете использовать для RoboCopy.
Important
Подключите файловый ресурс Azure с использованием ключа доступа к учетной записи хранения. Не используйте идентификацию домена.
Когда вы будете готовы, просмотрите файловое хранилище Azure в Windows. Затем подключите общую папку Azure, для которой нужно запустить RoboCopy.
Использование RoboCopy для копирования файлов в общую папку Azure
Следующая команда RoboCopy копирует только различия (обновленные файлы и папки) из исходного хранилища в общую папку Azure.
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>
| Switch | Meaning |
|---|---|
/MT:n |
Разрешает выполнение Robocopy в многопоточном режиме. По умолчанию параметр n имеет значение 8. Максимум — 128 потоков. Хотя большое количество потоков помогает добиться насыщения доступной пропускной способности, это не означает, что ваша миграция не всегда будет быстрее при использовании большего количества потоков. Тесты с Azure Files показывают, что диапазон от 8 до 20 демонстрирует сбалансированную производительность для начального копирования. На последующие запуски /MIR всё больше влияет соотношение между доступными вычислительными ресурсами и доступной полосой пропускания сети. Для последующих запусков указываемое количество потоков нужно привести в соответствие с числом ядер процессора и количеством потоков, приходящихся на каждое ядро. Определите, нужно ли зарезервировать ядра для других задач рабочего сервера. Тесты с Azure Files показали, что до 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, 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), возможно, потребуется удалить, чтобы надлежащим образом задокументировать результаты теста. |
/Z |
Используйте осторожно копирует файлы в режиме перезапуска. Этот коммутатор рекомендуется использовать только в нестабильной сетевой среде. Из-за дополнительного логирования значительно сокращается производительность копирования. |
/ZB |
Используйте с осторожностью Используется режим перезапуска. Если доступ запрещен, то для этого параметра используется режим резервного копирования. Этот параметр значительно сокращает производительность копирования из-за дополнительных контрольных точек. |
Important
Рекомендуется использовать Windows Server 2022 или более поздней версии. При использовании Windows Server 2019 убедитесь, что установлено последнее исправление или хотя бы обновление ОС KB5005103. Оно содержит важные исправления для определенных сценариев Robocopy.
Tip
Ознакомьтесь с разделом "Устранение неполадок" , если RoboCopy влияет на рабочую среду, сообщает много ошибок или не выполняется так быстро, как ожидалось.
Переключение пользователей
При первом запуске команды RoboCopy пользователи и приложения по-прежнему получают доступ к файлам в источнике миграции и потенциально меняют их. Возможно, что RoboCopy обработал каталог, перешел к следующему, а затем пользователь в исходном расположении добавляет, изменяет или удаляет файл, который теперь не будет обработан в этом текущем запуске RoboCopy. Это поведение является ожидаемым.
Первый запуск связан с перемещением основной части обработанных данных на файловое хранилище Azure. Первая копия может занять некоторое время. Дополнительные сведения о скоростях RoboCopy см. в разделе "Устранение неполадок ".
После завершения начального сеанса выполните команду еще раз.
Во второй раз, когда вы запускаете RoboCopy для той же общей сетевой папки, процесс завершится быстрее, так как с момента последнего запуска требуется только копирование изменений. Вы можете запускать повторяющиеся задания для одного и того же ресурса.
После рассмотрения допустимого времени простоя необходимо удалить доступ пользователей к исходным общим папкам. Это можно сделать с помощью любых действий, которые препятствуют пользователям изменять структуру файлов и папок и содержимое. Примером является указание DFS-Namespace на не существующее расположение или изменение списков управления доступом для каждой общей папки.
Запустите RoboCopy последний раз. Он выявит любые изменения, которые могли быть пропущены. Сколько времени занимает последний шаг, зависит от скорости сканирования RoboCopy. Вы можете оценить время (равное времени простоя), измерив длительность предыдущего запуска.
Вы можете попытаться запустить несколько из этих копий между различными исходными и целевыми общими папками параллельно. При этом следует учитывать пропускную способность сети и соотношение количества ядер к количеству потоков, чтобы не перегрузить систему.
Устранение неполадок и оптимизация
Скорость и частота успешных запусков RoboCopy будут зависеть от нескольких факторов:
- IOPS в исходном и целевом хранилище данных.
- доступная пропускная способность сети между источником и назначением;
- способность быстро обрабатывать файлы и папки в пространстве имен.
- число изменений между запусками RoboCopy.
- размер и количество файлов, которые необходимо скопировать.
Рекомендации по числу операций ввода-вывода в секунду и пропускной способности сети
В этой категории необходимо рассмотреть возможности исходного хранилища, целевого хранилища и сети, соединяющей их. Максимальная возможная пропускная способность определяется самым медленным из этих трех компонентов. Убедитесь, что сетевая инфраструктура настроена так, чтобы поддерживать оптимальные скорости передачи в полной мере.
Caution
Хотя копирование с максимально возможной скоростью часто является наиболее желательным, подумайте об использовании вашего локального сетевого и NAS-устройств для других, часто критически важных для бизнеса задач.
Копирование как можно быстрее может оказаться нежелательным, если существует риск, что миграция может монополизировать доступные ресурсы.
- Подумайте, когда в вашей среде лучше выполнять миграцию: в течение дня, в нерабочее время или в выходные дни.
- Также подумайте об использовании QoS сети на Windows Server для ограничения скорости RoboCopy.
- Избегайте ненужной работы с инструментами миграции.
Средство RoboCopy дает возможность добавлять паузы между пакетами, используя параметр /IPG:n, где n измеряется в миллисекундах между пакетами RoboCopy. Использование этого параметра позволяет избежать монополизации ресурсов на устройствах с ограниченным доступом к данным и перегруженных сетевых соединений.
/IPG:n не может использоваться для точного регулирования пропускной способности сети вплоть до определенных значений в Мбит/с. Используйте Windows Server Network QoS вместо этого. Утилита RoboCopy полностью полагается на протокол SMB для всех сетевых нужд. Использование SMB — это причина, по которой средство RoboCopy не может влиять на пропускную способность сети, но может замедлить ее использование.
Аналогичная логика справедлива для IOPS (операций ввода-вывода в секунду), наблюдаемых на NAS. Размер кластера на томе NAS, размеры пакетов и ряд других факторов влияют на наблюдаемый IOPS. Появление задержки между пакетами часто является самым простым способом управления нагрузкой на NAS. Протестируйте несколько значений, например от 20 миллисекунд (n = 20) до кратных этому числу. После того как вы создадите задержку, вы можете оценить, могут ли другие приложения теперь работать должным образом. Эта стратегия оптимизации позволит вам найти оптимальную скорость работы RoboCopy в вашей среде.
Скорость обработки
RoboCopy продет через пространство имен, к которому оно направлено, и оценит каждый файл и папку для копирования. Оценка каждого файла будет производиться во время первоначального копирования и во время зеркального копирования. Например, повторные запуски RoboCopy с параметром /MIR по отношению к одним и тем же исходным и целевым местам хранения. Эти повторяющиеся запуски полезны для сокращения времени простоя пользователей и приложений, а также для повышения общей частоты успешных перенесенных файлов.
Мы часто по умолчанию рассматриваем пропускную способность как главный ограничивающий фактор в процессе миграции, и это может быть справедливо. Но возможность перечисления пространства имен может значительно повлиять на общее время копирования для более крупных пространств имен с меньшими файлами. Учтите, что копирование 1 ТиБ маленьких файлов займет значительно больше времени, чем копирование 1 ТиБ меньшего количества файлов, но большего размера, если все остальные переменные остаются одинаковыми. Таким образом, при переносе большого количества небольших файлов передача может выполняться медленно. Это ожидаемое поведение.
Причиной этой разницы является вычислительная мощность, необходимая для прохода по пространству имен. Средство RoboCopy поддерживает многопоточные копии с помощью параметра /MT:n, где n означает количество используемых потоков. Поэтому при подготовке компьютера специально для RoboCopy рассмотрите количество ядер процессора и количество потоков, которое они предоставляют. Наиболее популярный вариант — два потока на ядро. Количество ядер и потоков в машине — это важный показатель, который позволяет определить, какие значения многопоточности /MT:n вам следует указать. Также определите, сколько заданий RoboCopy планируется выполнять параллельно на определенном компьютере.
Большее количество потоков будет копировать наш пример 1 TiB небольших файлов значительно быстрее, чем меньшее количество потоков. В то же время инвестирование дополнительных ресурсов на наши 1 ТиБ больших файлов может не дать пропорциональных преимуществ. При большом количестве потоков будет предпринята попытка одновременного копирования большего числа крупных файлов по сети. Эта дополнительная сетевая активность увеличивает вероятность того, что она будет ограничена пропускной способностью или числом операций ввода-вывода в секунду в хранилище.
Во время первого копирования RoboCopy в пустой целевой каталог или дифференциального запуска с большим количеством измененных файлов вас, вероятно, ограничивает пропускная способность вашей сети. Для первоначального запуска рекомендуется выбрать высокую плотность нитей. Большое количество потоков, даже превышающее количество потоков, доступных в текущий момент времени на компьютере, позволяет получить максимальный уровень доступной пропускной способности сети. При последующих запусках с параметром /MIR влияние обрабатываемых элементов постепенно усиливается. Меньшее количество изменений при выполнении задания по определению отличий означает уменьшение объема транспорта данных по сети. Теперь скорость больше зависит от способности обрабатывать элементы пространства имен, чем от перемещения их по сетевому каналу. Для последующих запусков указываемое число потоков нужно привести в соответствие с числом ядер процессора и числом потоков, приходящихся на каждое ядро. Определите, нужно ли зарезервировать ядра для других задач, которые может иметь рабочий сервер.
Tip
Золотое правило: первый запуск программы RoboCopy (который будет перемещать большое количество данных через сеть с высокой задержкой) выигрывает от увеличения числа потоков (/MT:n). Последующие запуски будут требовать копирования меньшего числа различий, и, скорее всего, вы перейдете от ограничения пропускной способности сети к ограничению вычислительными ресурсами. В этих обстоятельствах часто лучше установить количество потоков RoboCopy равным фактически доступным потокам на компьютере. Избыточное выделение ресурсов в этом сценарии может привести к увеличению количества сдвигов контекста в процессоре, что, в свою очередь, может снизить скорость копирования.
Устранение лишней работы
Избегайте крупномасштабных изменений в пространстве имен, таких как перемещение файлов между каталогами, изменение свойств в большом масштабе или изменение разрешений на уровне каталога и файлов (списки управления доступом NTFS). В частности, изменение списков управления доступом может оказать существенное влияние, поскольку они часто при изменении оказывают каскадный эффект на файлы, находящиеся ниже в иерархии папок. Возможны следующие последствия.
- Возросшее время выполнения задания RoboCopy, так как каждый файл и папка, затрагиваемые изменением ACL, нуждаются в обновлении
- При повторном использовании ранее перенесённых данных может потребоваться скопировать их снова. Например, придется заново копировать данные при изменении структуры папок после того, как файлы из них уже были скопированы. Задание RoboCopy не может повторно применить изменения в пространстве имен. Следующее задание должно очистить файлы, которые ранее были перенесены в старую структуру папок, и снова передать файлы в новую структуру папок.
Другим важным аспектом является эффективное использование средства RoboCopy. С помощью рекомендуемого скрипта RoboCopy вы создадите и сохраните файл журнала для ошибок. Ошибки копирования могут возникать — это нормально. Эти ошибки часто делают необходимым выполнение нескольких раундов использования инструмента копирования, такого как RoboCopy: начальное выполнение, например, из NAS в DataBox или с сервера в общую папку Azure, а также один или несколько дополнительных запусков с переключателем /MIR, чтобы найти и повторить попытки копирования файлов, которые не были скопированы.
Вы должны быть готовы несколько раз запустить RoboCopy для заданной области пространства имен. Последовательные запуски будут выполняться быстрее, так как операций копирования будет меньше, но их скорость ограничена скоростью обработки пространства имен. При выполнении нескольких циклов можно ускорить каждый из них, не требуя от RoboCopy чрезмерных усилий для копирования всех данных в каждом отдельном цикле. Эти параметры RoboCopy могут значительно изменить ситуацию.
-
/R:nn = периодичность повторного копирования невыполненного файла и -
/W:nn = интервал в секундах между повторными попытками
/R:5 /W:5 является разумным параметром, который можно изменить в соответствии с ситуацией. В этом примере копирование неудачного файла будет повторяться пять раз, с интервалом в 5 секунд между повторными попытками. Если копирование файла будет неудачным, следующее задание RoboCopy повторит попытку. Часто файлы не удается скопировать из-за того, что они используются или из-за ошибок тайм-аута, но в итоге могут быть успешно скопированы таким образом.
Оценка расходов на транзакции хранения
При миграции в Azure Files, RoboCopy копирует ваши файлы и папки в Azure. В зависимости от модели выставления счетов для файлов Azure может применяться плата за транзакции. См. Понимание выставления счетов.
Если вы используете модель выставления счетов по мере использования для стандартных общих папок Azure, возможно, сложно оценить количество транзакций, которые будут создаваться при миграции.
- Невозможно оценить количество транзакций на основе используемой емкости хранилища источника. Количество транзакций масштабируется с количеством элементов пространства имен (файлов и папок) и их свойств, перенесенных, а не их размера. Например, для переноса 1 ГиБ небольших файлов, чем 1 ГиБ больших файлов, требуется больше транзакций.
- Чтобы свести к минимуму время простоя, может потребоваться произвести операции копирования несколько раз из источника в пункт назначения. Все исходные и целевые элементы обрабатываются во время каждой операции копирования, хотя последующие запуски завершаются быстрее. После начальных операций по сети передаются только изменения, внесенные между циклами копирования. Важно понимать, что, хотя и меньше данных транспортируется, количество необходимых транзакций может оставаться неизменным.
- Копирование одинакового файла дважды может не привести к одинаковому количеству транзакций. Обработка элемента, который был перенесен во время предыдущего исполнения копирования, может привести только к небольшому числу транзакций чтения. В отличие от этого, изменения метаданных или содержимого между выполнениями копирования могут потребовать большего количества транзакций для обновления целевого объекта. Каждый файл в пространстве имен может иметь уникальные требования, что приводит к разным количествам транзакций.
Рекомендуется выполнить некоторые начальные тесты, используя собственные данные, чтобы лучше понять, сколько транзакций происходит. Это позволит лучше понять общее количество транзакций, которые может создать миграция файлов.
Дальнейшие шаги
В следующих статьях вы узнаете о расширенных вариантах и рекомендациях.