Virtuális fájlrendszer csatlakoztatása Batch-készlethez

Az Azure Batch támogatja a Felhőtárhely vagy egy külső fájlrendszer csatlakoztatását Windows vagy Linux rendszerű számítási csomópontokon a Batch-készletekben. Amikor egy számítási csomópont csatlakozik a készlethez, a virtuális fájlrendszer csatlakozik, és helyi meghajtóként működik ezen a csomóponton. Ez a cikk bemutatja, hogyan csatolhat egy virtuális fájlrendszert számítási csomópontok egy készletére a Batchhez készült Azure Resource Manager ügyféloldali kódtár (Azure.ResourceManager.Batch) használatával.

A fájlrendszer készlethez való csatlakoztatása egyszerűbbé és hatékonyabbá teszi az adatok elérését, mint az, hogy a feladatok saját adatokat kérjenek le egy nagy megosztott adatkészletből. Fontolja meg azt a forgatókönyvet, amelyben több tevékenységnek is hozzá kell férnie egy közös adatkészlethez, például egy film rendereléséhez. Minden feladat egyszerre egy vagy több képkockát jelenít meg a jelenetfájlból. A jelenetfájlokat tartalmazó meghajtó csatlakoztatásával minden számítási csomópont könnyebben hozzáférhet a megosztott adatokhoz.

Emellett kiválaszthatja a mögöttes fájlrendszert is, hogy megfeleljen a teljesítményre vonatkozó, teljes és bemeneti/kimeneti műveletek másodpercenkénti (IOPS) követelményeinek. A fájlrendszert egymástól függetlenül skálázhatja az adatokhoz egyidejűleg hozzáférő számítási csomópontok száma alapján.

Használhat például egy memóriabeli gyorsítótárban elosztott Avere vFXT-t a nagy méretű, több ezer egyidejű renderelési csomóponttal rendelkező, a helyszíni forrásadatokhoz hozzáférő renderelési csomópontok támogatásához. A felhőalapú blobtárolóban lévő adatok esetében a BlobFuse használatával helyi fájlrendszerként is csatlakoztathatja az adatokat. Az Azure Files a BlobFuse-hoz hasonló munkafolyamatot biztosít, és Windows és Linux rendszeren is elérhető.

Támogatott konfigurációk

A következő típusú fájlrendszereket csatlakoztathatja:

  • Azure Files
  • Azure Blob Storage
  • Hálózati fájlrendszer (NFS), beleértve az Avere vFXT-gyorsítótárat
  • Általános internetes fájlrendszer (CIFS)

A Batch a következő virtuális fájlrendszer-típusokat támogatja a csomópontügynökök számára, amelyek a megfelelő közzétevőhöz és ajánlathoz készültek.

Operációs rendszer típusa Azure Files-megosztás Azure Blob-tároló NFS-csatlakoztatás CIFS-csatlakoztatás
Linux ✔️ ✔️ ✔️ ✔️
Windows ✔️

Feljegyzés

A virtuális fájlrendszer csatlakoztatása nem támogatott a 2019. augusztus 8. előtt létrehozott Batch-készletekben.

Hálózati követelmények

Ha virtuális hálózatban batch-készletekkel rendelkező virtuális fájlcsatlakoztatásokat használ, tartsa szem előtt az alábbi követelményeket, és győződjön meg arról, hogy a szükséges forgalom nincs blokkolva. További információért lásd: Batch-készletek egy virtuális hálózatban.

  • Az Azure Files-megosztásokhoz meg kell nyitni a 445-ös TCP-portot a storage szolgáltatáscímke felé és onnan érkező forgalom számára. További információ: Azure-fájlmegosztás használata a Windowssal.

  • Az Azure Blob-tárolóknak meg kell nyitniuk a 443-as TCP-portot a storage szolgáltatáscímke felé és onnan érkező forgalom számára. A virtuális gépeknek hozzáféréssel kell rendelkezniük https://packages.microsoft.com a blobfuse és gpg csomagok letöltéséhez. A konfigurációtól függően előfordulhat, hogy más URL-címekhez is hozzá kell férnie.

  • A hálózati fájlrendszernek (NFS) alapértelmezés szerint hozzá kell férnie a 2049-s porthoz. Előfordulhat, hogy a konfiguráció más követelményekkel is rendelkezik. A virtuális gépeknek hozzáféréssel kell rendelkezniük a megfelelő csomagkezelőhöz a nfs-common (Debian vagy Ubuntu) csomagok letöltéséhez. Az URL-cím az operációs rendszer verziójától függően változhat. A konfigurációtól függően előfordulhat, hogy más URL-címekhez is hozzá kell férnie.

    Az Azure Blob vagy az Azure Files NFS-n keresztüli csatlakoztatása további hálózati követelményekkel járhat. Előfordulhat például, hogy a számítási csomópontoknak ugyanazt a virtuális hálózati alhálózatot kell használniuk, mint a tárfiók.

  • A gyakori internetes fájlrendszerhez (CIFS) hozzá kell férnie a 445-ös TCP-porthoz. A virtuális gépeknek hozzáféréssel kell rendelkezniük a megfelelő csomagkezelőhöz a cifs-utils csomag letöltéséhez. Az URL-cím az operációs rendszer verziójától függően változhat.

Rögzítési beállítás és megvalósítás

Ha virtuális fájlrendszert csatlakoztat egy készlethez, a fájlrendszer elérhetővé válik a készlet összes számítási csomópontja számára. A fájlrendszer konfigurációja akkor történik, ha egy számítási csomópont csatlakozik egy poolhoz, újraindul vagy újra képre épül.

Egy fájlrendszer készletre csatolásához hozzon létre egy, a virtuális fájlrendszerének megfelelő BatchMountConfiguration objektumot: BatchBlobFileSystemConfiguration, BatchFileShareConfiguration, BatchNfsMountConfiguration vagy BatchCifsMountConfiguration.

Minden csatlakoztatási konfigurációs objektumnak a következő alapparaméterekre van szüksége. Egyes csatlakoztatási konfigurációk adott paraméterekkel rendelkeznek az adott fájlrendszerhez, amelyeket a kód példái részletesebben mutatnak be.

  • A tárfiók fiókneve vagy forrása .

  • Relatív csatlakoztatási útvonal vagy forrás, a számítási csomóponton csatlakoztatni kívánt fájlrendszer helye a standard \fsmounts könyvtárhoz viszonyítva, amelyen keresztül AZ_BATCH_NODE_MOUNTS_DIRelérhető.

    A pontos \fsmounts könyvtár helye a csomópont operációs rendszerétől függően változik. Egy Ubuntu-csomópont helye például mnt\batch\tasks\fsmounts lesz.

  • Csatlakoztatási beállítások vagy BlobFuse-beállítások , amelyek a fájlrendszer csatlakoztatásának adott paramétereit írják le.

Amikor létrehozza a készletet, mindegyik BatchMountConfiguration elemet hozzáadja a(z) BatchAccountPoolDataMountConfiguration gyűjteményéhez. A fájlrendszer csatlakoztatása akkor történik, ha egy csomópont csatlakozik a készlethez, újraindul vagy újraalakításra kerül.

A Batch-ügynök különböző módon valósítja meg a csatlakoztatást a Windows és a Linux rendszereken.

  • Linux rendszeren a Batch telepíti a csomagot cifs-utils. Ezután a Batch kiadja a csatlakoztatási parancsot.

  • Windows rendszeren a Batch a cmdkey használja a Batch-fiók hitelesítő adatainak hozzáadásához. Ezután a Batch kiadja a csatlakoztatási parancsot net use. Példa:

    net use S: \\<storage-account-name>.file.core.windows.net\<fileshare> /u:AZURE\<storage-account-name> <storage-account-key>
    

A fájlrendszer csatlakoztatása létrehoz egy környezeti változót AZ_BATCH_NODE_MOUNTS_DIR, amely a csatlakoztatott fájlrendszer és naplófájlok helyére mutat. A naplófájlokat hibaelhárításhoz és hibakereséshez használhatja.

Azure Files-megosztás csatlakoztatása a PowerShell-lel

Az Azure PowerShell használatával Azure Files-megosztásokat csatlakoztathat Windows- vagy Linux Batch-készlethez. Az alábbi eljáráslépések végigvezetik az Azure fájlmegosztási fájlrendszer konfigurálásán és csatlakoztatásán egy Batch fürtre.

Fontos

A tárolókészlethez csatlakoztatott fájlrendszerek maximális száma 10. További részletekért és egyéb korlátozásokért tekintse meg a Batch szolgáltatás kvótáit és korlátait.

Előfeltételek

  • Egy Azure-fiók, aktív előfizetéssel.
  • Az Azure PowerShell telepítve van, vagy használja az Azure Cloud Shellt , és válassza a PowerShellt a felülethez.
  • Meglévő Batch-fiók egy csatolt Azure Storage-fiókkal, amely rendelkezik fájlmegosztással.
  1. Jelentkezzen be az Azure-előfizetésbe, és cserélje le a helyőrzőt az előfizetés azonosítójára.

    Connect-AzAccount -Subscription "<subscription-ID>"
    
  2. Kérje le a Batch-fiók kontextusát. Cserélje le a <batch-account-name> helyőrzőt a Batch-fiók nevére.

    $context = Get-AzBatchAccount -AccountName <batch-account-name>
    
  3. Hozzon létre egy Batch-készletet az alábbi beállításokkal. Cserélje le a <storage-account-name> , <storage-account-key>és <file-share-name> helyőrzőket a Batch-fiókhoz társított tárfiók értékeire. Cserélje le a <pool-name> helyőrzőt a medencének szánt névre.

    A következő szkript létrehoz egy készletet egy Windows Server 2016 Datacenterrel, Standard_D2_V2 méretű csomóponttal, majd csatlakoztatja az Azure-fájlmegosztást a csomópont S meghajtójára.

    $fileShareConfig = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSAzureFileShareConfiguration" -ArgumentList @("<storage-account-name>", "https://<storage-account-name>.file.core.windows.net/batchfileshare1", "S", "<storage-account-key>")
    
    $mountConfig = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSMountConfiguration" -ArgumentList @($fileShareConfig)
    
    $imageReference = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSImageReference" -ArgumentList @("WindowsServer", "MicrosoftWindowsServer", "2016-Datacenter", "latest")
    
    $configuration = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSVirtualMachineConfiguration" -ArgumentList @($imageReference, "batch.node.windows amd64")
    
    New-AzBatchPool -Id "<pool-name>" -VirtualMachineSize "STANDARD_D2_V2" -VirtualMachineConfiguration $configuration -TargetDedicatedComputeNodes 1 -MountConfiguration @($mountConfig) -BatchContext $context
    
  4. Csatlakozzon a csomóponthoz, és ellenőrizze, hogy a kimeneti fájl helyes-e.

A csatlakoztatott fájlok elérése

Az Azure Batch-feladatok a meghajtó közvetlen elérési útján érhetik el a csatlakoztatott fájlokat, például:

cmd /c "more S:\folder1\out.txt & timeout /t 90 > NULL"

Az Azure Batch-ügynök csak az Azure Batch-feladatokhoz biztosít hozzáférést. Ha távoli asztali protokollt (RDP) használ a csomóponthoz való csatlakozáshoz, a felhasználói fiók nem rendelkezik automatikus hozzáféréssel a csatlakoztatási meghajtóhoz. Amikor RDP-n keresztül csatlakozik a csomóponthoz, hozzá kell adnia a tárfiók hitelesítő adatait az S-meghajtó közvetlen eléréséhez.

A hitelesítő adatok hozzáadására használható cmdkey . Cserélje le a <storage-account-name> és <storage-account-key> helyőrzőket a saját adataival.

cmdkey /add:"<storage-account-name>.file.core.windows.net" /user:"Azure\<storage-account-name>" /pass:"<storage-account-key>"

Meghajtócsatlakozási problémák elhárítása

Ha egy csatlakoztatási konfiguráció meghiúsul, a számítási csomópont meghibásodik, és a csomópont állapota használhatatlanná van állítva. A csatlakoztatás konfigurációs hibáinak diagnosztizálásához vizsgálja meg a ComputeNodeError tulajdonságot a hibával kapcsolatos részletekért.

Ha naplófájlokat szeretne lekérni a hibakereséshez, az OutputFiles API-val feltöltheti a *.log fájlokat. A *.log fájlok információkat tartalmaznak a fájlrendszer-csatlakoztatásáról a AZ_BATCH_NODE_MOUNTS_DIR helyen. A csatlakoztatási naplófájlok formátuma: <type-mountDirOrDrive><>.log minden csatlakoztatáshoz. Például egy CIFS-csatlakoztatás egy teszt nevű csatlakoztatási könyvtárban a következő nevű csatlakoztatási naplófájllal rendelkezik: cifs-test.log.

Szerelési hibák vizsgálata

A fájlrendszer-csatlakoztatásokhoz tartozó naplófájlok ellenőrzéséhez RDP-t vagy SSH-t is használhat a csomóponthoz. Az alábbi példahiba akkor lehetséges, ha Azure-fájlmegosztást próbál csatlakoztatni egy Batch-csomóponthoz:

Mount Configuration Error | An error was encountered while configuring specified mount(s)
Message: System error (out of memory, cannot fork, no more loop devices)
MountConfigurationPath: S

Ha ezt a hibát kapja, RDP-zzen vagy SSH-zzen a csomópontra a kapcsolódó naplófájlok ellenőrzéséhez. A Batch-ügynök eltérően valósítja meg a csatlakoztatást Windows és Linux rendszeren az Azure-fájlmegosztások esetén. Linux rendszeren a Batch telepíti a csomagot cifs-utils. Ezután a Batch kiadja a csatlakoztatási parancsot. Windows rendszeren a Batch a cmdkey használja a Batch-fiók hitelesítő adatainak hozzáadásához. Ezután a Batch kiadja a csatlakoztatási parancsot net use. Példa:

net use S: \\<storage-account-name>.file.core.windows.net\<fileshare> /u:AZURE\<storage-account-name> <storage-account-key>
  1. Csatlakozzon a csomóponthoz RDP-n keresztül.

  2. Nyissa meg a fshare-S.log naplófájlt a D:\batch\tasks\fsmounts címen.

  3. Tekintse át a hibaüzeneteket, például:

    CMDKEY: Credential added successfully.
    System error 86 has occurred.
    
    The specified network password is not correct.
    
  4. A probléma elhárítása az Azure-fájlmegosztások hibaelhárítójának használatával.

Ha nem tudja RDP-vel vagy SSH-val ellenőrizni a naplófájlokat a csomóponton, feltöltheti a naplókat az Azure Storage-fiókjába. Ezt a módszert Windows- és Linux-naplókhoz is használhatja.

  1. Az Azure portálon keresse meg és válassza ki a csoportot tartalmazó Batch-fiókot.

  2. A Batch-fiók lapon válassza a Készletek menüpontot a bal oldali navigációs sávból.

  3. A Készletek lapon válassza ki a készlet nevét.

  4. A medence oldalán válassza ki a Csomópontok lehetőséget a bal oldali navigációs sávon.

  5. A Csomópontok lapon válassza ki a csomópont nevét.

  6. A csomópont oldalán válassza a Kötegnaplók feltöltése lehetőséget.

  7. A Kötegnaplók feltöltése panelen válassza a Tároló kiválasztása lehetőséget.

  8. A Tárfiókok lapon válasszon ki egy tárfiókot.

  9. A Tárolók lapon válassza ki vagy hozzon létre egy tárolót a fájlok feltöltéséhez, majd válassza a Kiválasztás lehetőséget.

  10. Válassza a Feltöltés indítása lehetőséget.

  11. Amikor a feltöltés befejeződött, töltse le a fájlokat, és nyissa meg a agent-debug.log.

  12. Tekintse át a hibaüzeneteket, például:

    ..20210322T113107.448Z.00000000-0000-0000-0000-000000000000.ERROR.agent.mount.filesystems.basefilesystem.basefilesystem.py.run_cmd_persist_output_async.59.2912.MainThread.3580.Mount command failed with exit code: 2, output:
    
    CMDKEY: Credential added successfully.
    
    System error 86 has occurred.
    
    The specified network password is not correct.
    
  13. A probléma elhárítása az Azure-fájlmegosztások hibaelhárítójának használatával.

Fájlmegosztást manuálisan csatlakoztassa a PowerShell-lel

Ha nem tudja diagnosztizálni vagy kijavítani a csatlakoztatási hibákat, a PowerShell használatával manuálisan csatlakoztathatja a fájlmegosztást.

  1. Medence létrehozása csatlakoztatási konfiguráció nélkül. Példa:

    $imageReference = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSImageReference" -ArgumentList @("WindowsServer", "MicrosoftWindowsServer", "2016-Datacenter", "latest")
    
    $configuration = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSVirtualMachineConfiguration" -ArgumentList @($imageReference, "batch.node.windows amd64")
    
    New-AzBatchPool -Id "<pool-name>" -VirtualMachineSize "STANDARD_D2_V2" -VirtualMachineConfiguration $configuration -TargetDedicatedComputeNodes 1  -BatchContext $Context
    
  2. Várja meg, amíg a csomópont tétlen állapotban van.

  3. Az Azure Portalon keresse meg és válassza ki a fájlmegosztást tartalmazó tárfiókot.

  4. A tárfiók lapjának menüjében válassza a Fájlmegosztások lehetőséget a bal oldali navigációs sávon.

  5. A Fájlmegosztások lapon válassza ki a csatlakoztatni kívánt fájlmegosztást.

  6. A fájlmegosztás lapján válassza a Csatlakozás lehetőséget.

  7. A Csatlakozás panelen válassza a Windows lapot.

  8. Meghajtóbetűjelként adja meg a használni kívánt meghajtót. Az alapértelmezett érték a Z.

  9. Hitelesítési módszer esetén válassza ki, hogyan szeretne csatlakozni a fájlmegosztáshoz.

  10. Válassza a Szkript megjelenítése lehetőséget, és másolja a PowerShell-szkriptet a fájlmegosztás csatlakoztatásához.

  11. Csatlakozzon a csomóponthoz RDP-n keresztül.

  12. Futtassa a másolt parancsot a fájlmegosztás csatlakoztatásához.

  13. Jegyezze fel a kimenetben megjelenő hibaüzeneteket. Ezekkel az információkkal elháríthatja a hálózatkezeléssel kapcsolatos problémákat.

Példa csatlakoztatási konfigurációkra

Az alábbi példakódkonfigurációk bemutatják a különböző fájlmegosztási rendszerek számítási csomópontok készletéhez való csatlakoztatását.

Azure Files-megosztás

Az Azure Files a standard Azure-felhőbeli fájlrendszer-ajánlat. Az alábbi konfiguráció csatlakoztat egy Azure Files-megosztást <file-share-name> az S-meghajtóhoz . A példában szereplő paraméterekkel kapcsolatos információkért lásd : SMB Azure-fájlmegosztás csatlakoztatása Windows rendszeren vagy NFS Azure-fájlmegosztás létrehozása és csatlakoztatása Linux rendszerű virtuális gépre az Azure Portal használatával.

using System;
using System.Threading.Tasks;
using Azure;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Batch;
using Azure.ResourceManager.Batch.Models;

internal static class Program
{
    private static async Task Main()
    {
        await CreatePoolWithAzureFilesMountAsync(
            subscriptionId: "<subscription-id>",
            resourceGroupName: "<resource-group>",
            batchAccountName: "<batch-account-name>",
            poolId: "<pool-name>");
    }

    private static async Task CreatePoolWithAzureFilesMountAsync(
        string subscriptionId,
        string resourceGroupName,
        string batchAccountName,
        string poolId)
    {
        BatchAccountPoolData pool = new BatchAccountPoolData()
        {
            VmSize = "standard_d1_v2",
            DeploymentConfiguration = new BatchDeploymentConfiguration()
            {
                VmConfiguration = new BatchVmConfiguration(
                    imageReference: new BatchImageReference()
                    {
                        Publisher = "MicrosoftWindowsServer",
                        Offer = "WindowsServer",
                        Sku = "2019-datacenter-core",
                        Version = "latest",
                    },
                    nodeAgentSkuId: "batch.node.windows amd64"),
            },
        };

        pool.MountConfiguration.Add(new BatchMountConfiguration
        {
            FileShareConfiguration = new BatchFileShareConfiguration(
                accountName: "<storage-account-name>",
                fileUri: new Uri("https://<storage-account-name>.file.core.windows.net/<file-share-name>"),
                accountKey: "<storage-account-key>",
                relativeMountPath: "S")
            {
                MountOptions = "-o vers=3.0,dir_mode=0777,file_mode=0777,sec=ntlmssp",
            },
        });

        var armClient = new ArmClient(new DefaultAzureCredential());
        BatchAccountResource batchAccount = armClient.GetBatchAccountResource(
            BatchAccountResource.CreateResourceIdentifier(subscriptionId, resourceGroupName, batchAccountName));

        await batchAccount.GetBatchAccountPools()
            .CreateOrUpdateAsync(WaitUntil.Completed, poolId, pool);

        Console.WriteLine($"Created pool '{poolId}' with an Azure Files mount.");
    }
}

Azure Blob-tároló

Egy másik lehetőség az Azure Blob Storage használata a BlobFuse használatával. A blob fájlrendszer csatlakoztatásához fiókkulcsra, közös hozzáférésű jogosultságkódra (SAS) vagy felügyelt identitásra van szükség a tárfiókhoz való hozzáféréssel.

A kulcsok vagy identitások lekéréséről az alábbi cikkekben olvashat:

Az alábbi konfiguráció blob fájlrendszert csatlakoztat a BlobFuse beállításaival. Illusztrációs célokra a példa azt mutatjaAccountKeySasKey, és IdentityResourceId, de valójában csak egy ilyen metódust adhat meg.

using System;
using System.Threading.Tasks;
using Azure;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Batch;
using Azure.ResourceManager.Batch.Models;

internal static class Program
{
    private static async Task Main()
    {
        await CreatePoolWithAzureBlobMountAsync(
            subscriptionId: "<subscription-id>",
            resourceGroupName: "<resource-group>",
            batchAccountName: "<batch-account-name>",
            poolId: "<pool-name>");
    }

    private static async Task CreatePoolWithAzureBlobMountAsync(
        string subscriptionId,
        string resourceGroupName,
        string batchAccountName,
        string poolId)
    {
        BatchAccountPoolData pool = new BatchAccountPoolData()
        {
            VmSize = "standard_d1_v2",
            DeploymentConfiguration = new BatchDeploymentConfiguration()
            {
                VmConfiguration = new BatchVmConfiguration(
                    imageReference: new BatchImageReference()
                    {
                        Publisher = "canonical",
                        Offer = "0001-com-ubuntu-server-focal",
                        Sku = "20_04-lts",
                        Version = "latest",
                    },
                    nodeAgentSkuId: "batch.node.ubuntu 20.04"),
            },
        };

        pool.MountConfiguration.Add(new BatchMountConfiguration
        {
            BlobFileSystemConfiguration = new BatchBlobFileSystemConfiguration(
                accountName: "<storage-account-name>",
                containerName: "<container-name>",
                relativeMountPath: "<relative-mount-path>")
            {
                // Use only one of the following three lines:
                AccountKey = "<storage-account-key>",
                SasKey = "<sas-key>",
                IdentityResourceId = new ResourceIdentifier(
                    "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-name>"),
                BlobfuseOptions = "-o attr_timeout=240 -o entry_timeout=240 -o negative_timeout=120",
            },
        });

        var armClient = new ArmClient(new DefaultAzureCredential());
        BatchAccountResource batchAccount = armClient.GetBatchAccountResource(
            BatchAccountResource.CreateResourceIdentifier(subscriptionId, resourceGroupName, batchAccountName));

        await batchAccount.GetBatchAccountPools()
            .CreateOrUpdateAsync(WaitUntil.Completed, poolId, pool);

        Console.WriteLine($"Created pool '{poolId}' with an Azure Blob (BlobFuse) mount.");
    }
}

Ha alapértelmezett hozzáférést szeretne kapni a BlobFuse csatlakoztatott könyvtárához, futtassa a feladatot rendszergazdaként. A BlobFuse a címtárat a felhasználói helyen csatlakoztatja, a készlet létrehozásakor pedig gyökérként csatlakoztatja a könyvtárat. Linuxon az összes rendszergazdai feladat gyökérszintű. A FUSE referenciaoldala a FUSE modul összes beállítását ismerteti.

A BlobFuse használatával kapcsolatos további információkért és tippekért tekintse meg az alábbi hivatkozásokat:

NFS

NFS-megosztásokat csatlakoztathat készletcsomópontokhoz, hogy a Batch hozzáférhessen a hagyományos fájlrendszerekhez. A beállítás lehet egyetlen, a felhőben üzembe helyezett NFS-kiszolgáló vagy egy virtuális hálózaton keresztül elért helyszíni NFS-kiszolgáló. Az NFS-csatlakoztatások támogatják az Avere vFXT-t, amely elosztott memóriabeli gyorsítótár az adatintenzív nagy teljesítményű számítási (HPC) feladatokhoz. Az NFS-csatlakoztatások más szabványos NFS-kompatibilis interfészeket is támogatnak, például az Azure Blobhoz készült NFS-t és az Azure Fileshoz készült NFS-t.

Az alábbi példa egy NFS fájlrendszer-csatlakoztatás konfigurációját mutatja be:

using System;
using System.Threading.Tasks;
using Azure;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Batch;
using Azure.ResourceManager.Batch.Models;

internal static class Program
{
    private static async Task Main()
    {
        await CreatePoolWithNfsMountAsync(
            subscriptionId: "<subscription-id>",
            resourceGroupName: "<resource-group>",
            batchAccountName: "<batch-account-name>",
            poolId: "<pool-name>");
    }

    private static async Task CreatePoolWithNfsMountAsync(
        string subscriptionId,
        string resourceGroupName,
        string batchAccountName,
        string poolId)
    {
        BatchAccountPoolData pool = new BatchAccountPoolData()
        {
            VmSize = "standard_d1_v2",
            DeploymentConfiguration = new BatchDeploymentConfiguration()
            {
                VmConfiguration = new BatchVmConfiguration(
                    imageReference: new BatchImageReference()
                    {
                        Publisher = "canonical",
                        Offer = "0001-com-ubuntu-server-focal",
                        Sku = "20_04-lts",
                        Version = "latest",
                    },
                    nodeAgentSkuId: "batch.node.ubuntu 20.04"),
            },
        };

        pool.MountConfiguration.Add(new BatchMountConfiguration
        {
            NfsMountConfiguration = new BatchNfsMountConfiguration(
                source: "<source>",
                relativeMountPath: "<relative-mount-path>")
            {
                MountOptions = "options ver=3.0",
            },
        });

        var armClient = new ArmClient(new DefaultAzureCredential());
        BatchAccountResource batchAccount = armClient.GetBatchAccountResource(
            BatchAccountResource.CreateResourceIdentifier(subscriptionId, resourceGroupName, batchAccountName));

        await batchAccount.GetBatchAccountPools()
            .CreateOrUpdateAsync(WaitUntil.Completed, poolId, pool);

        Console.WriteLine($"Created pool '{poolId}' with an NFS mount.");
    }
}

CIFS

A CIFS készletcsomópontokhoz való csatlakoztatása egy másik módja annak, hogy hozzáférést biztosítson a hagyományos fájlrendszerekhez. A CIFS egy fájlmegosztási protokoll, amely nyílt és platformfüggetlen mechanizmust biztosít a hálózati kiszolgáló fájljainak és szolgáltatásainak lekéréséhez. A CIFS az internetes és intranetes fájlmegosztáshoz használt SMB protokoll továbbfejlesztett verzióján alapul.

Az alábbi példa egy CIFS-fájl csatlakoztatásának konfigurációját mutatja be.

using System;
using System.Threading.Tasks;
using Azure;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Batch;
using Azure.ResourceManager.Batch.Models;

internal static class Program
{
    private static async Task Main()
    {
        await CreatePoolWithCifsMountAsync(
            subscriptionId: "<subscription-id>",
            resourceGroupName: "<resource-group>",
            batchAccountName: "<batch-account-name>",
            poolId: "<pool-name>");
    }

    private static async Task CreatePoolWithCifsMountAsync(
        string subscriptionId,
        string resourceGroupName,
        string batchAccountName,
        string poolId)
    {
        BatchAccountPoolData pool = new BatchAccountPoolData()
        {
            VmSize = "standard_d1_v2",
            DeploymentConfiguration = new BatchDeploymentConfiguration()
            {
                VmConfiguration = new BatchVmConfiguration(
                    imageReference: new BatchImageReference()
                    {
                        Publisher = "canonical",
                        Offer = "0001-com-ubuntu-server-focal",
                        Sku = "20_04-lts",
                        Version = "latest",
                    },
                    nodeAgentSkuId: "batch.node.ubuntu 20.04"),
            },
        };

        pool.MountConfiguration.Add(new BatchMountConfiguration
        {
            CifsMountConfiguration = new BatchCifsMountConfiguration(
                username: "<storage-account-name>",
                source: "<source>",
                password: "<storage-account-key>",
                relativeMountPath: "<relative-mount-path>")
            {
                MountOptions = "-o vers=3.0,dir_mode=0777,file_mode=0777,serverino,domain=<domain-name>",
            },
        });

        var armClient = new ArmClient(new DefaultAzureCredential());
        BatchAccountResource batchAccount = armClient.GetBatchAccountResource(
            BatchAccountResource.CreateResourceIdentifier(subscriptionId, resourceGroupName, batchAccountName));

        await batchAccount.GetBatchAccountPools()
            .CreateOrUpdateAsync(WaitUntil.Completed, poolId, pool);

        Console.WriteLine($"Created pool '{poolId}' with a CIFS mount.");
    }
}

Feljegyzés

C# helyett a PowerShellt használó példát keres? Itt talál egy másik nagyszerű példát: Azure-fájl csatlakoztatása az Azure Batch-készlethez.

Következő lépések