Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
storageszolgá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
storageszolgáltatáscímke felé és onnan érkező forgalom számára. A virtuális gépeknek hozzáféréssel kell rendelkezniükhttps://packages.microsoft.comablobfuseésgpgcsomagok 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-utilscsomag 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
cmdkeyhasználja a Batch-fiók hitelesítő adatainak hozzáadásához. Ezután a Batch kiadja a csatlakoztatási parancsotnet 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.
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>"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>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 $contextCsatlakozzon 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>
Csatlakozzon a csomóponthoz RDP-n keresztül.
Nyissa meg a fshare-S.log naplófájlt a D:\batch\tasks\fsmounts címen.
Tekintse át a hibaüzeneteket, például:
CMDKEY: Credential added successfully. System error 86 has occurred. The specified network password is not correct.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.
Az Azure portálon keresse meg és válassza ki a csoportot tartalmazó Batch-fiókot.
A Batch-fiók lapon válassza a Készletek menüpontot a bal oldali navigációs sávból.
A Készletek lapon válassza ki a készlet nevét.
A medence oldalán válassza ki a Csomópontok lehetőséget a bal oldali navigációs sávon.
A Csomópontok lapon válassza ki a csomópont nevét.
A csomópont oldalán válassza a Kötegnaplók feltöltése lehetőséget.
A Kötegnaplók feltöltése panelen válassza a Tároló kiválasztása lehetőséget.
A Tárfiókok lapon válasszon ki egy tárfiókot.
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.
Válassza a Feltöltés indítása lehetőséget.
Amikor a feltöltés befejeződött, töltse le a fájlokat, és nyissa meg a agent-debug.log.
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.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.
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 $ContextVárja meg, amíg a csomópont tétlen állapotban van.
Az Azure Portalon keresse meg és válassza ki a fájlmegosztást tartalmazó tárfiókot.
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.
A Fájlmegosztások lapon válassza ki a csatlakoztatni kívánt fájlmegosztást.
A fájlmegosztás lapján válassza a Csatlakozás lehetőséget.
A Csatlakozás panelen válassza a Windows lapot.
Meghajtóbetűjelként adja meg a használni kívánt meghajtót. Az alapértelmezett érték a Z.
Hitelesítési módszer esetén válassza ki, hogyan szeretne csatlakozni a fájlmegosztáshoz.
Válassza a Szkript megjelenítése lehetőséget, és másolja a PowerShell-szkriptet a fájlmegosztás csatlakoztatásához.
Csatlakozzon a csomóponthoz RDP-n keresztül.
Futtassa a másolt parancsot a fájlmegosztás csatlakoztatásához.
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:
Felügyelt identitások konfigurálása a Batch-készletekben
Tipp.
Felügyelt identitás használata esetén győződjön meg arról, hogy az identitás hozzá lett rendelve a készlethez , hogy az elérhető legyen a csatlakoztatást végző virtuális gépen. Az identitásnak a Storage Blob Data Közreműködő szerepkörével is rendelkeznie kell.
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:
- Blobfuse2 projekt
- Blobfuse – Hibaelhárítás – gyakori kérdések
- GitHub-problémák az azure-storage-fuse adattárban
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.