Поделиться через


Настройка обратной записи файлов в Azure HPC Cache

Пользователи HPC Cache могут запросить, чтобы кэш записывает определенные отдельные файлы в внутреннее хранилище по запросу с помощью служебной программы flush_file.py. Эта программа является отдельно скачанным пакетом программного обеспечения, который устанавливается и используется на клиентских компьютерах Linux.

Эта функция предназначена для ситуаций, когда необходимо, чтобы изменения кэшированных файлов были доступны как можно скорее для систем, которые не подключают кэш.

Например, вы можете использовать Azure HPC Cache для масштабирования заданий вычислений в облаке, но хранить набор данных постоянно в локальном центре обработки данных. Если вычислительные задачи выполняются в центре обработки данных, зависящее от изменений, созданных с помощью Azure HPC Cache, эту программу можно использовать для отправки выходных данных или изменений, созданных облачной задачей обратно в локальное хранилище NAS. Это позволяет использовать новые файлы практически сразу локальными вычислительными ресурсами.

Выбор между пользовательским обратным записью и очисткой

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

  • Запись всех измененных файлов обратно в систему хранения может занять несколько минут или даже часов в зависимости от количества данных и скорости сетевой связи обратно в локальную систему. Кроме того, вы не можете выбрать только файлы, с которыми вы завершили запись; Файлы, которые все еще активно изменяются, будут включены в этот расчет.

  • Кэш может блокировать обслуживание некоторых запросов от этого целевого объекта хранения во время процесса очистки. Это может отложить обработку, если существуют другие вычислительные клиенты, использующие файлы, находящиеся в одном целевом объекте хранения.

  • Для активации этого действия требуется участник доступ к Azure Resource Manager, у которого пользователи могут не иметь.

Например, можно использовать несколько параллельных (но не перекрывающихся) заданий вычислений, которые используют данные, находящиеся в одном целевом объекте хранилища HPC Cache. Когда одно задание завершится, необходимо немедленно записать выходные данные этого задания из кэша в долгосрочное хранилище на внутреннем устройстве.

Доступно три варианта на выбор:

  • Дождитесь автоматической записи кэшированных файлов из кэша, но файлы могут находиться в кэше более часа, прежде чем они полностью записываются. Время зависит от задержки обратной записи модели использования кэша, а также других факторов, таких как производительность сетевого канала и размер файлов. (Чтение Ознакомьтесь с моделями использования кэша, чтобы узнать больше о задержке обратной записи.)

  • Немедленно промыть кэшированные файлы для всего целевого объекта хранилища, но это приведет к нарушению других вычислительных заданий, которые также используют данные целевого объекта хранилища.

  • Используйте эту настраиваемую программу обратной записи для отправки специального запроса NFS в кэш, чтобы записать только нужные файлы. Этот сценарий не нарушает доступ для других клиентов и может быть активирован в любой момент в вычислительной задаче.

О служебной программе обратной записи

Служебная программа обратной записи содержит скрипт, который можно использовать для указания отдельных файлов, которые будут записываться из кэша в долгосрочную систему хранения.

Скрипт принимает входной поток файлов для записи, а также путь пространства имен кэша к экспорту целевого объекта хранилища и IP-адрес подключения HPC Cache.

В скрипте используется вызов NFSv3 "commit" с включенными специальными аргументами. Клиент Linux nfs-common не может передать эти аргументы соответствующим образом, поэтому программа flush_file.py использует эмулятор клиента NFS в библиотеке Python для взаимодействия со службой HPC Cache NFS. Библиотека включает все необходимые ограничения, которые могут существовать в клиенте NFS на основе ядра Linux клиента вычислений.

Чтобы использовать эту функцию, необходимо выполнить следующие действия.

  • Установите библиотеку hpc-cache-nfsv3-client из репозитория https://github.com/microsoft/hpc-cache-nfsv3-clientклиента GitHub Microsoft HPC-Cache-NFSv3-client. на одном или нескольких вычислительных клиентах. Необходимые сведения и инструкции включены в файл README репозитория.

  • Используйте включенный скрипт "flush_file.py", чтобы сообщить кэшу, чтобы записать точные файлы, необходимые для долгосрочного хранения.

Дополнительные сведения об установке и использовании скрипта flush_file.py в репозитории GitHub.