Прием данных в 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.
Установите
msrsync
и требуемые компоненты (rsync
и Python 2.6 или более поздней версии).Определите общее число копируемых файлов и каталогов.
Например, используйте служебную программу
prime.py
с аргументамиprime.py --directory /path/to/some/directory
(ее можно скачать по URL-адресу https://github.com/Azure/Avere/blob/main/src/clientapps/dataingestor/prime.py).Если вы не используете
prime.py
, количество элементов можно вычислить с помощью инструмента GNUfind
, как описано далее.find <path> -type f |wc -l # (counts files) find <path> -type d |wc -l # (counts directories) find <path> |wc -l # (counts both)
Разделите число элементов на 64, чтобы определить количество элементов для каждого процесса. Используйте это число с параметром
-f
, чтобы задать размер групп при выполнении команды.Выполните команду
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