Массовая разрыхлитель Azure на прикрепленном хранилище - PullRequest
0 голосов
/ 04 июня 2018

Мне нужно распаковать сотни tar-файлов размером от 30 до 140 ГБ, как только они станут доступны.Я создал пул с (в настоящее время) 5 «стандартными a1» одноядерными узлами Linux, «microsoft-azure-batch centos-container 7-4 (последний)» *

Пакет имеет связанную учетную запись хранения.Хранилище содержит файлы tar, которые я хочу распаковать в тот же магазин.Существует также задание, называемое «untarjob»

Поскольку пакет позволяет связать с хранилищем, я сделал предположение, что он будет естественным образом доступен для каждого вычислительного узла.Тем не менее, предположение сейчас, может быть, это не так?Поэтому я пытаюсь смонтировать хранилище и запустить unix tar команду unar, как показано ниже.

Это не работает:

 az batch task create --task-id t80000 --job-id untarjob --command- 
 line "mount -t cifs //dummy.file.core.windows.net/s01 /tarfiles -o  
 vers=3.0,username=dummy,password=Pv4<snipp>N8Imu34reseEEe==,dir_mode=0777, 
 file_mode=0777,sec=ntlmssp ; tar -xvf /tarfiles/80000.tar"

Не могли бы вы сказать мне, как я могрешить это, пожалуйста?

Большое спасибо

Кевин

1 Ответ

0 голосов
/ 06 июня 2018

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

Для решения проблемы поместите вашу команду в оболочкуinvocation:

/bin/sh -c 'sudo mkdir /tarfiles; sudo mount ...; tar ...'

Обратите внимание на одинарные кавычки, поскольку вы используете двойные кавычки для аргумента --command-line.Кроме того, если вашей команде нужно полностью выполнить привилегию, рассмотрите возможность использования идентификаторов пользователей , чтобы избежать необходимости использовать sudo.

...