RelativeMountPath в пуле пакетной службы Azure

Какое значение мне нужно предоставить RelativeMountPath для подключения общего файлового ресурса к пакетному пулу с вычислительными узлами Windows?

https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.management.batchai.models.azurefilesharereference.relativemountpath?view=azure-dotnet

Согласно документации, в нем говорится: «Относительный путь на вычислительном узле, где будет смонтирована файловая система».

В настоящее время я получаю ошибку «MountConfigurationException: неправильный вызов или разрешения», когда он добавляет узел в пул.

Я пробовал использовать как PowerShell, так и код C #. В обоих сценариях это не сработало. Ниже приведен код C #

private static void CreateBatchPool(BatchClient batchClient, CloudServiceConfiguration cloudServiceConfiguration)
        {
                CloudPool pool = batchClient.PoolOperations.CreatePool(
                    poolId: PoolId,
                    targetDedicatedComputeNodes: PoolNodeCount,
                    virtualMachineSize: PoolVMSize,
                    targetLowPriorityComputeNodes: 0,
                    cloudServiceConfiguration: cloudServiceConfiguration);
                pool.MaxTasksPerComputeNode = 8;
                pool.ApplicationPackageReferences = CreateAppPackageReferences();
                pool.TaskSchedulingPolicy = new TaskSchedulingPolicy(ComputeNodeFillType.Pack);
                pool.MountConfiguration = new List<MountConfiguration>();
                pool.MountConfiguration.Add(new MountConfiguration(CreateFileShareConfiguration(batchClient)));

                pool.Commit();
}

            private static AzureFileShareConfiguration CreateFileShareConfiguration(BatchClient batchClient)
        {
            string url = @"https://storage.file.core.windows.net/fileshare";
            AzureFileShareConfiguration fileShareConfiguration = new AzureFileShareConfiguration(StorageAccountName, url, "foo", StorageAccountKey);
            return fileShareConfiguration;
        }

person Mike143    schedule 11.01.2020    source источник
comment
Нашел исправление Вместо foo заменил на букву сетевого диска. Например: Z   -  person Mike143    schedule 09.04.2020


Ответы (1)


Обратите внимание, что API, который вы используете, - это BatchAI API, а azure-batch также имеет отдельный API, я также исправлю тег. Прежде чем отвечать на ваш пост :), я хотел бы это прояснить.

для полноты я упомяну API монтирования ванильного пакета Azue-batch ниже с подробностями и ссылкой.

  • Что касается BatchAI API, я думаю, что это то же самое, что и пакетный vanilla api, где RelativeMountPath - это относительная структура каталогов папки, доступная с помощью переменной среды, т.е. AZ_BATCHAI_MOUNT_ROOT + <dir_name_supplied> Скажем, например: если вы указываете относительное имя каталога монтирования как foo, то после успешного создания пула на уровне пакета смонтированный каталог будет доступен через: AZ_BATCHAI_MOUNT_ROOT\foo

  • дальнейший доступ к переменной среды подробно описан здесь: https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables#command-line-expansion-of-environment-variables как и в Windows, вы можете получить доступ через %MY_ENV_VAR% et. al.

  • Кроме того, MountConfigurationException: Incorrect invocation or permissions означает, что вы предоставили неверную информацию, которая вызывает неправильную конфигурацию, поэтому пакет возвращает ошибку разрешения. Упомянутый выше документ должен уметь руководить.

ИЛИ Дополнительная информация об API отдельного пакетного уровня

API-интерфейс монтирования ванильного пакета Azure (Примечание: вы не используете это, но я даю эту информацию просто как fyi)

В этом документе есть хорошие подробности для начала: Подключить виртуальную файловую систему на бассейн.

Для этого конкретного API. При монтировании для системы azurefile контекст RelativeMountPath для структуры каталогов, созданной относительно стандартного каталога fsmounts, доступного на узле через переменную среды AZ_BATCH_NODE_MOUNTS_DIR.

Относительный путь монтирования или источник: расположение файловой системы, смонтированной на вычислительном узле, относительно стандартного каталога fsmounts, доступного на узле через AZ_BATCH_NODE_MOUNTS_DIR. Точное расположение зависит от операционной системы, используемой на узле. Например, физическое расположение на узле Ubuntu сопоставлено с mnt\batch\tasks\fsmounts, а на узле CentOS - с mnt\resources\batch\tasks\fsmounts.

В узлах Windows это будет где-то в каталоге файлов уровня widows с fsmounts подробностями или здесь переменная среды https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-переменныесреды

Это должно помочь вам в правильном направлении. Спасибо!

person Tats_innit    schedule 11.01.2020
comment
Спасибо за вашу помощь. Я использую приведенный ниже сценарий PowerShell для подключения общего файлового ресурса к пулу пакетов. Полагаю, я предоставляю верную информацию. Follwing - это команда сценария: $ fileShareConfig = New-Object -TypeName Microsoft.Azure.Commands.Batch.Models.PSAzureFileShareConfiguration `-ArgumentList @ (accountname, https: // [batchaccount] .file.core.windows.net / {fileshare }, fooRelativePath, `storageaccountkey) - person Mike143; 13.01.2020
comment
Все хорошо и рады, что это помогло, :) круто, поэтому в сначала вы упомянули об использовании BatchAI API, но PowerShell, о котором вы говорите, - это Batch. Во-вторых, порядок аргументов выглядит неверным, поэтому проверьте порядок передаваемых аргументов, В-третьих, если вы используете C # APIhttps: //github.com/ MicrosoftDocs / azure-docs / blob / master / articles / batch / virtual-file-mount.md # azure-files-share четвертый Для отладки обратитесь к этому, пожалуйста, обратитесь docs.microsoft.com/en-us / azure / batch /, должен дать вам несколько хороших указателей, спасибо. - person Tats_innit; 17.01.2020