Прием данных в Azure HPC Cache с помощью метода msrsync

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

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

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

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

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

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

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

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

  2. Определите общее число копируемых файлов и каталогов.

    Например, используйте служебную программу prime.py с аргументами prime.py --directory /path/to/some/directory (ее можно скачать по URL-адресу 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-repository в /mnt/hpccache/repository:

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