Прием данных в Azure HPC Cache — метод msrsync

В этой статье приведены подробные инструкции по использованию служебной программы msrsync для копирования данных в контейнер Blob-хранилища Azure для работы с Azure HPC Cache.

Дополнительные сведения о перемещении данных в хранилище BLOB-объектов для Azure HPC Cache см. в статье "Перемещение данных в хранилище BLOB-объектов Azure".

Инструмент msrsync можно использовать для перемещения данных в целевое место хранения в бэкэнде для Azure HPC Cache. Это средство предназначено для оптимизации использования пропускной способности путем выполнения нескольких параллельных rsync процессов. Он доступен на сайте GitHub https://github.com/jbd/msrsync.

msrsync разбивает исходный каталог на отдельные "контейнеры", а затем выполняет отдельные rsync процессы в каждом контейнере.

Предварительное тестирование с помощью четырехядерных виртуальных машин показало лучшую эффективность при использовании 64 процессов. msrsync Используйте параметр-p, чтобы задать число процессов 64.

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

Следуйте этим инструкциям, чтобы заполнить хранилище BLOB-объектов Azure с помощью Azure HPC Cache, используя msrsync.

  1. Установка msrsync и необходимые компоненты (rsync и Python 2.6 или более поздней версии)

  2. Определите общее количество файлов и каталогов для копирования.

    Например, используйте служебную prime.py программу с аргументами prime.py --directory /path/to/some/directory (доступно путем скачивания https://github.com/Azure/Avere/blob/main/src/clientapps/dataingestor/prime.py).

    Если вы не используете prime.py, вы можете рассчитать количество элементов с помощью средства GNU find следующим образом:

    find <path> -type f |wc -l         # (counts files)
    find <path> -type d |wc -l         # (counts directories)
    find <path> |wc -l                 # (counts both)
    
  3. Разделите количество элементов на 64, чтобы определить количество элементов на каждый процесс. Используйте это число с параметром -f , чтобы задать размер контейнеров при выполнении команды.

  4. msrsync Выполните команду для копирования файлов:

    msrsync -P --stats -p64 -f<ITEMS_DIV_64> --rsync "-ahv --inplace" <SOURCE_PATH> <DESTINATION_PATH>
    

    Например, эта команда предназначена для перемещения 11 000 файлов в 64 процессах из /test/source-репозитория в /mnt/hpccache/репозиторий:

    mrsync -P --stats -p64 -f170 --rsync "-ahv --inplace" /test/source-repository/ /mnt/hpccache/repository