Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается копирование файлов между общими папками Azure с помощью общих средств копирования. Вы можете копировать файлы между общими папками HDD и SSD, общими папками с помощью другой модели выставления счетов или общих папок в разных регионах Azure.
В этой статье не приводятся рекомендации по миграции в файлы Azure. Если вы хотите перенести файлы Azure, см. статью "Миграция в общие папки Azure SMB" или "Миграция в общие папки Azure NFS". Если вы используете синхронизацию файлов Azure и хотите перенести файлы между общими папками Azure, см. статью "Миграция файлов из одной общей папки Azure в другую при использовании синхронизации файлов Azure".
Выбор средства копирования файлов
Средство копирования файлов, которое следует выбрать, зависит от того, нужно ли копировать файлы между общими папками SMB или общими папками NFS. В следующей таблице перечислены доступные средства копирования и их совместимость.
| Средство копирования | SMB | NFS | Описание |
|---|---|---|---|
| AzCopy |
|
|
AzCopy, как правило, рекомендуется, так как он использует API-интерфейсы "сервер — сервер", то есть данные копируются непосредственно между серверами хранения без передачи через локальный компьютер. Это обеспечивает лучшую производительность. Вы можете запускать AzCopy из Windows, Linux или macOS. |
| Robocopy |
|
|
Robocopy — это программа командной строки Windows, которая использует протокол SMB для операций копирования файлов. Для этого требуется подключение обоих общих папок к виртуальной машине Windows. Хотя это повышает накладные расходы и стоимость, вы можете выбрать Robocopy, если вам нужны дополнительные функции, такие как зеркалирование, точный контроль повторных попыток или журналирование в реальном времени. |
| fpsync/rsync |
|
|
rsync — это универсальное однопоточное средство копирования файлов с открытым исходным кодом. Он может копировать локально, в другой узел через любую удаленную оболочку или из удаленной управляющей программы rsync. fpsync является многопоточной и поэтому предлагает некоторые преимущества, включая возможность параллельного выполнения заданий rsync. Оба инструмента требуют монтирования общих папок на виртуальной машине. |
Копирование файлов с помощью AzCopy
Вы можете использовать AzCopy, служебную программу командной строки, для копирования файловых ресурсов Azure. AzCopy использует API-интерфейсы "сервер — сервер", поэтому данные копируются непосредственно между серверами хранения. Инструкции различаются в зависимости от того, используете ли вы общие папки SMB или NFS.
Несмотря на то, что AzCopy не требует подключения файловых ресурсов к виртуальной машине, для запуска бинарных файлов и оркестрации копирования между двумя файловыми ресурсами через REST требуется легковесная виртуальная машина.
Команды AzCopy в этой статье используют azcopy copy команду для копирования файлов. Команда azcopy sync может помочь синхронизировать разности из изначальной контрольной точки, что полезно для настройки операций копирования в другом регионе. Дополнительные сведения см. в разделе "Синхронизация файлов ".
Ограничения масштаба AzCopy и производительность
Если вы копируете только несколько файлов, вы не должны сталкиваться с какими-либо ограничениями масштабирования. Однако для оптимальной производительности каждое задание AzCopy должно передавать менее 10 миллионов файлов. Задания, которые передают более 50 миллионов файлов, могут снизить производительность, так как механизм отслеживания заданий AzCopy вызывает значительные затраты. Чтобы снизить накладные расходы, проанализируйте возможность разделения больших заданий на меньшие. Нет жесткого ограничения на отдельные размеры файлов.
Время, необходимое для копирования, может отличаться в зависимости от нескольких факторов, включая общее количество файлов и каталогов для передачи, средний размер файла (многие небольшие файлы занимает больше времени для обработки, чем меньше больших файлов), пропускной способности сети и задержки между источником и назначением, ограничения регулирования учетной записи хранения и одновременные операции с исходными или целевыми общими папками.
Свойства, сохраненные при копировании файлов с помощью AzCopy
При использовании --preserve-info и --preserve-permissions флагов AzCopy сохраняет следующие атрибуты и разрешения файла:
| Тип | Свойства (--preserve-info) | Разрешения (--preserve-permissions) |
|---|---|---|
| Общие папки SMB | Атрибуты файла (ReadOnly, Hidden, System, Directory, Archive, None, Temporary, Offline, NotContentIndexed, NoScrubData), время создания, время последнего записи | списки управления доступом; |
| Общие папки NFS | Время создания, время последней записи | Владелец, группа, режим файлов |
Копирование файлов между общими папками SMB
Чтобы скопировать файлы между общими папками SMB, используйте команду azcopy copy .
Подсказка
В этих примерах аргументы пути заключаются в одинарные кавычки (''). Используйте одинарные кавычки во всех командных оболочках, кроме командной оболочки Windows (cmd.exe). Если вы используете командную оболочку Windows (cmd.exe), заключите аргументы пути в двойные кавычки ("") вместо одинарных (").
Копирование одного файла между общими папками SMB
Используйте следующую команду, чтобы скопировать один файл из одной общей папки SMB в другую.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' --preserve-permissions=true --preserve-info=true
Копирование каталога между общими папками SMB
Используйте следующую команду, чтобы скопировать каталог и все его файлы из одной общей папки SMB в другую. Результатом является каталог в целевой общей папке с тем же именем.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive --preserve-permissions=true --preserve-info=true
Копирование всей общей папки SMB в другую учетную запись хранения
Используйте следующую команду, чтобы скопировать весь общий файловый ресурс SMB в другую учетную запись хранения.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive --preserve-permissions=true --preserve-info=true
Копирование всех общих папок SMB, каталогов и файлов в другую учетную запись хранения
Используйте следующую команду, чтобы скопировать все общие папки SMB, каталоги и файлы из одной учетной записи хранения в другую.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<SAS-token>' --recursive --preserve-permissions=true --preserve-info=true
Копирование файлов между общими папками NFS
Чтобы скопировать файлы между общими папками NFS Azure, используйте команду azcopy copy с флагом --from-to=FileNFSFileNFS . В FileNFSFileNFS сценарии используется API копирования между серверами. Кроме того, можно использовать средства копирования файлов с открытым исходным кодом, такие как fpsync и rsync.
Подсказка
В этих примерах аргументы пути заключаются в одинарные кавычки (''). Используйте одинарные кавычки во всех командных оболочках, кроме командной оболочки Windows (cmd.exe). Если вы используете командную оболочку Windows (cmd.exe), заключите аргументы пути в двойные кавычки ("") вместо одинарных (").
Копирование одного файла между общими папками NFS
Используйте следующую команду, чтобы скопировать один файл из одной общей папки NFS в другую.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' --preserve-permissions=true --preserve-info=true --from-to=FileNFSFileNFS
Копирование каталога между общими папками NFS
Используйте следующую команду, чтобы скопировать каталог и все его файлы из одной общей папки NFS в другую. Результатом является каталог в целевой общей папке с тем же именем.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive --preserve-permissions=true --preserve-info=true --from-to=FileNFSFileNFS
Копирование всей общей папки NFS в другую учетную запись хранения
Используйте следующую команду, чтобы скопировать всю общую папку NFS в другую учетную запись хранения.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive --preserve-permissions=true --preserve-info=true --from-to=FileNFSFileNFS
Копирование всех общих папок, каталогов и файлов NFS в другую учетную запись хранения
Используйте следующую команду, чтобы скопировать все общие папки, каталоги и файлы NFS из одной учетной записи хранения в другую.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<SAS-token>' --recursive --preserve-permissions=true --preserve-info=true --from-to=FileNFSFileNFS
Копирование файлов с помощью Robocopy
Выполните следующие действия, чтобы скопировать файлы с помощью Robocopy, программы командной строки, включенной в Windows. Этот метод можно использовать только с общими папками Windows и SMB.
Разверните виртуальную машину Windows в Azure в том же регионе, что и исходный файловый ресурс. Сохранение данных и сетей в Azure быстрее и позволяет избежать исходящих расходов на передачу данных. Для оптимальной производительности рекомендуется использовать многоядерный тип виртуальной машины с не менее 56 ГиБ памяти, например Standard_DS5_v2.
Подключите исходные и целевые файловые ресурсы к виртуальной машине. Чтобы убедиться, что виртуальная машина имеет доступ ко всем файлам, подключите общую папку Azure с доступом на уровне администратора: с доступом на основе удостоверений с ролями Azure RBAC на уровне администратора (рекомендуется) или с ключом учетной записи хранения (менее безопасным).
Выполните эту команду в командной строке Windows. При необходимости можно включить флаги для функций ведения журнала в качестве рекомендации (/NP, /NFL, /NDL, /UNILOG). Не забудьте заменить
s:\иt:\на пути к монтированным исходным и целевым общим ресурсам, как уместно.robocopy s:\ t:\ /MIR /COPYALL /MT:16 /R:2 /W:1 /B /IT /DCOPY:DATВы можете выполнить команду, пока источник остается в сети, однако IOPS (операции ввода-вывода в секунду) и пропускная способность, используемые в задаче Robocopy, будут учитываться в пределах ограничения вашего файлового ресурса.
После завершения начального запуска снова выполните ту же команду Robocopy, чтобы скопировать все изменения, которые произошли с момента первоначального запуска. Все данные без изменений с момента последнего задания копирования пропускаются.
Вы можете повторить шаг 4 столько раз, сколько вы хотите, прежде чем переходить к новой общей папке.