Tworzenie systemu plików Azure Managed Lustre przy użyciu szablonów usługi Azure Resource Manager
Tworzenie zarządzanego systemu plików Lustre platformy Azure można zautomatyzować przy użyciu szablonów usługi Azure Resource Manager (ARM). W tym artykule wyjaśniono podstawową procedurę i przedstawiono przykłady potrzebnych plików.
W tym artykule przedstawiono przykłady dwóch różnych metod tworzenia szablonów usługi ARM:
- Użyj kodu JSON, aby bezpośrednio utworzyć szablony usługi ARM. Aby dowiedzieć się więcej, zobacz Składnia szablonu JSON.
- Użyj metody Bicep, która używa prostszej składni, aby podać szczegóły konfiguracji. Podczas wdrażania szablonu pliki Bicep są konwertowane na pliki szablonów usługi ARM. Aby dowiedzieć się więcej, zobacz dokumentację aplikacji Bicep.
Aby dowiedzieć się więcej o tych opcjach, zobacz Porównanie plików JSON i Bicep dla szablonów.
Wybieranie typu i rozmiaru systemu plików
Przed napisaniem szablonu należy podjąć pewne decyzje dotyczące systemu plików Azure Managed Lustre. Aby dowiedzieć się więcej o opcjach konfiguracji, zobacz szczegóły konfiguracji w temacie Tworzenie zarządzanego systemu plików Lustre platformy Azure.
Jeśli używasz szablonu, określ jednostkę SKU, aby zdefiniować podstawowy typ systemu plików Azure Managed Lustre do utworzenia. Jednostka SKU reprezentuje warstwę produktu. Ustawia cechy systemowe, takie jak typ dysków, obsługiwana ilość miejsca do magazynowania i maksymalna pojemność przepływności. Jeśli używasz witryny Azure Portal do utworzenia systemu plików Azure Managed Lustre, określ typ systemu pośrednio, wybierając jego możliwości.
W poniższej tabeli przedstawiono wartości przepływności i rozmiaru magazynu w każdej obsługiwanej jednostce SKU. Te jednostki SKU tworzą system plików korzystający z trwałego magazynu SSD.
SKU | Przepływność na magazyn TiB | Minimalna ilość miejsca do magazynowania | Maksymalna ilość miejsca do magazynowania | Przyrost |
---|---|---|---|---|
AMLFS-Durable-Premium-40 | 40 MB/s | 48 TB | 768 TB | 48 TB |
AMLFS-Durable-Premium-125 | 125 MB/s | 16 TB | 128 TB | 16 TB |
AMLFS-Durable-Premium-250 | 250 MB/s | 8 TB | 128 TB | 8 TB |
AMLFS-Durable-Premium-500 | 500 MB/s | 4 TB | 128 TB | 4 TB |
Jeśli potrzebujesz wartości magazynu większych niż maksymalna na liście, możesz otworzyć bilet pomocy technicznej, aby zapoznać się z opcjami.
Aby sprawdzić możliwości jednostki SKU, możesz użyć przepływu pracy do utworzenia zarządzanego systemu plików Lustre przy użyciu witryny Azure Portal. Ustawienia specyficzne dla jednostki SKU znajdują się na karcie Podstawowe w obszarze Szczegóły systemu plików.
Tworzenie pliku szablonu
Po podjęciu decyzji o opcjach konfiguracji możesz utworzyć plik szablonu. Plik szablonu jest plikiem JSON lub Bicep zawierającym szczegóły konfiguracji systemu plików Azure Managed Lustre.
Wartości właściwości szablonu
Aby utworzyć system plików Azure Managed Lustre przy użyciu szablonu usługi ARM, należy dołączyć następujące informacje do pliku szablonu. Dokładna składnia różni się między wartościami Bicep i JSON, dlatego zapoznaj się z przykładami wartości literału.
System plików
Nazwa/nazwisko | Opis | Wartość |
---|---|---|
type | Typ zasobu do utworzenia. | Microsoft.StorageCache/amlFileSystems |
apiVersion | Wersja interfejsu API Azure Managed Lustre do użycia. | Użyj bieżącej wersji interfejsu API, na przykład 2024-03-01 |
name | Unikatowa nazwa systemu plików Azure Managed Lustre. | ciąg (wymagany) |
lokalizacja | Lokalizacja geograficzna, w której znajduje się zasób. Użyj krótkiej nazwy, a nie nazwy wyświetlanej, na przykład użyj wartości eastus zamiast East US . |
ciąg (wymagany) |
tags | Tagi zasobów dla systemu plików. | Słownik nazw tagów i wartości; zobacz Tagi w szablonach |
sku | Jednostka SKU wydajności zasobu. | Zobacz nazwę jednostki SKU |
tożsamości | Tożsamość zarządzana do użycia w systemie plików, jeśli została skonfigurowana. | Zobacz Tożsamość |
właściwości | Właściwości systemu plików. | Zobacz właściwości |
Stref | Strefy dostępności dla zasobów. To pole powinno zawierać tylko jeden element w tablicy. | string[] |
Tożsamość
Nazwa/nazwisko | Opis | Wartość |
---|---|---|
type | Typ tożsamości używany dla zasobu. | None , UserAssigned |
userAssignedIdentities | Słownik, w którym każdy klucz jest identyfikatorem zasobu tożsamości przypisanej przez użytkownika, a wartość każdego klucza jest pustym słownikiem. | Zobacz dokumentację szablonu |
Właściwości
Nazwa/nazwisko | Opis | Wartość |
---|---|---|
encryptionSettings | Ustawienia szyfrowania systemu plików. | Zobacz Ustawienia szyfrowania |
filesystemSubnet | Podsieć używana przez system plików. | ciąg (wymagany) |
Hsm | Ustawienia kontenera usługi Blob Storage dla systemu plików. | Zobacz ustawienia modułu HSM |
konserwacjaWindow | Określa dzień i godzinę wystąpienia aktualizacji systemu. | Zobacz Okno obsługi (wymagane) |
rootSquashSettings | Określa ustawienia głównego squasha dla systemu plików. | Zobacz Ustawienia squasha głównego |
storageCapacityTiB | Rozmiar systemu plików w TiB. Aby dowiedzieć się więcej o dozwolonych wartościach dla tego pola na podstawie jednostki SKU, zobacz Wybieranie typu i rozmiaru systemu plików. | int (wymagane) |
Ustawienia szyfrowania
Nazwa/nazwisko | Opis | Wartość |
---|---|---|
keyEncryptionKey | Określa lokalizację klucza szyfrowania w usłudze Key Vault. | Zobacz dokumentację szablonu |
Ustawienia modułu HSM
Nazwa/nazwisko | Opis | Wartość |
---|---|---|
kontener | Identyfikator zasobu kontenera magazynu używanego do nawilżania przestrzeni nazw i archiwizowania z przestrzeni nazw. Dostawca zasobów musi mieć uprawnienia do tworzenia tokenów SAS na koncie magazynu. | ciąg (wymagany) |
importPrefix | Tylko obiekty blob w kontenerze bez rejestrowania rozpoczynające się od tej ścieżki/prefiksu są importowane do przestrzeni nazw klastra. Jest to używane tylko podczas początkowego tworzenia systemu plików Azure Managed Lustre. | string |
importPrefixesInitial | Tylko obiekty blob w kontenerze bez rejestrowania rozpoczynające się od jednej ze ścieżek/prefiksów w tej tablicy są importowane do przestrzeni nazw klastra. Ta wartość jest używana tylko podczas początkowego tworzenia systemu plików Azure Managed Lustre i ma wartość domyślną "/". | string[] |
loggingContainer | Identyfikator zasobu kontenera magazynu używanego do rejestrowania zdarzeń i błędów. Musi być oddzielnym kontenerem na tym samym koncie magazynu co kontener nawodnienia i archiwum. Dostawca zasobów musi mieć uprawnienia do tworzenia tokenów SAS na koncie magazynu. | ciąg (wymagany) |
Uwaga
Właściwość importPrefixesInitial
umożliwia określenie wielu prefiksów do importowania danych do systemu plików, a jednocześnie importPrefix
umożliwia określenie pojedynczego prefiksu. Wartość domyślna obu właściwości to /
. Jeśli zdefiniujesz jedną z właściwości, nie możesz zdefiniować drugiej. Jeśli zdefiniujesz obie właściwości, wdrożenie zakończy się niepowodzeniem.
Aby dowiedzieć się więcej, zobacz Importowanie prefiksu.
Okno obsługi
Nazwa/nazwisko | Opis | Wartość |
---|---|---|
dayOfWeek | Dzień tygodnia, w którym może wystąpić okno obsługi. | Sunday , Monday , , Tuesday , Wednesday , Thursday , , Friday Saturday |
timeOfDayUTC | Godzina dnia (w formacie UTC) może wystąpić okno obsługi. | przykład ciągu : 22:30 |
Właściwość timeOfDayUTC
używa formatu zegara 24-godzinnego. Na przykład 22:30
reprezentuje 10:30 PM. Wzorzec to ^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
.
Ustawienia głównego squasha
Nazwa/nazwisko | Opis | Wartość |
---|---|---|
tryb | Tryb squasha systemu plików AML. "Wszystkie": identyfikatory użytkowników i grup w plikach są usuwane z podanych wartości dla wszystkich użytkowników w systemach niezauwierzonych. "RootOnly": identyfikatory użytkowników i grup w plikach są usuwane z podanymi wartościami wyłącznie dla użytkownika głównego w systemach innych niż zaufane. "Brak": nie jest wykonywane żadne usuwanie identyfikatorów użytkowników i grup dla wszystkich użytkowników w dowolnych systemach. | All , , None RootOnly |
noSquashNidLists | Rozdzielona średnikami lista adresów IP karty interfejsu SIECIOWEGO, która ma zostać dodana do elementów TrustedSystems. | string |
squashGID | Identyfikator grupy do zgniecenia do. | int |
squashUID | Identyfikator użytkownika do zgniecenia. | int |
Nazwa jednostki SKU
Nazwa/nazwisko | Opis | Wartość |
---|---|---|
name | Nazwa jednostki SKU zasobu. | AMLFS-Durable-Premium-40 , , AMLFS-Durable-Premium-125 , , AMLFS-Durable-Premium-250 AMLFS-Durable-Premium-500 |
Wdrażanie systemu plików przy użyciu szablonu
W poniższych przykładowych krokach użyto poleceń interfejsu wiersza polecenia platformy Azure, aby utworzyć nową grupę zasobów i utworzyć w niej system plików Azure Managed Lustre. W krokach założono, że wybrano już typ i rozmiar systemu plików oraz utworzono plik szablonu zgodnie z opisem we wcześniejszej sekcji tego artykułu. Upewnij się również, że spełniasz wszystkie wymagania wstępne.
Ustaw subskrypcję domyślną:
az account set --subscription "<subscription-id>" az account show
Opcjonalnie utwórz nową grupę zasobów dla systemu plików Azure Managed Lustre. Jeśli chcesz użyć istniejącej grupy zasobów, pomiń ten krok i podaj nazwę istniejącej grupy zasobów podczas uruchamiania polecenia szablonu.
az group create --name <rg-name> --location <region-short-name>
System plików może używać zasobów spoza własnej grupy zasobów, o ile są one w tej samej subskrypcji.
Wdróż system plików Azure Managed Lustre przy użyciu szablonu. Składnia zależy od tego, czy używasz plików JSON, czy Bicep, wraz z liczbą plików.
Szablony Bicep i JSON można wdrażać jako pojedyncze pliki lub wiele plików. Aby uzyskać więcej informacji i zobaczyć dokładną składnię dla każdej opcji, zobacz dokumentację szablonu usługi ARM.
Przykładowe polecenie JSON:
az deployment group create \ --name <example-deployment> \ --resource-group <resource-group-name> \ --template-file azlustre-template.json
Przykładowe polecenie Bicep:
az deployment group create \ --resource-group <ResourceGroupName> \ --template-file azlustre.bicep
Przykład JSON
W tej sekcji przedstawiono przykładową zawartość pliku szablonu JSON. Parametry opcjonalne można usunąć podczas tworzenia własnego szablonu usługi ARM.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.StorageCache/amlFilesystems",
"apiVersion": "2024-03-01",
"name": "amlfs-example",
"location": "eastus",
"tags": {
"Dept": "ContosoAds"
},
"sku": {
"name": "AMLFS-Durable-Premium-250"
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-name>": {}
}
},
"properties": {
"encryptionSettings": {
"keyEncryptionKey": {
"keyUrl": "https://<keyvault-name>.vault.azure.net/keys/kvk/<key>",
"sourceVault": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<keyvault-name>"
}
}
},
"filesystemSubnet": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.Network/virtualNetworks/<vnet-name>/subnets/<subnet-name>",
"hsm": {
"settings": {
"container": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>",
"loggingContainer": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<logging-container-name>",
"importPrefixesInitial": [
"/"
]
}
},
"maintenanceWindow": {
"dayOfWeek": "Saturday",
"timeOfDayUTC": "22:00"
},
"rootSquashSettings": {
"mode": "All",
"noSquashNidLists": "10.0.0.[5-6]@tcp;10.0.1.2@tcp",
"squashGID": "99",
"squashUID": "99"
},
"storageCapacityTiB": "16"
},
"zones": [
"1"
],
}
],
"outputs": {}
}
Przykład Bicep
W tej sekcji przedstawiono przykładową zawartość pliku Bicep. Parametry opcjonalne można usunąć podczas tworzenia własnych.
resource filesystem 'Microsoft.StorageCache/amlFilesystems@2024-03-01' = {
name: 'amlfs-example'
location: 'eastus'
tags: {
Dept: 'ContosoAds'
}
sku: {
name: 'AMLFS-Durable-Premium-250'
}
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-name>': {}
}
}
properties: {
encryptionSettings: {
keyEncryptionKey: {
keyUrl: 'https://<keyvault-name>.vault.azure.net/keys/kvk/<key>'
sourceVault: {
id: '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<keyvault-name>'
}
}
}
filesystemSubnet: '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.Network/virtualNetworks/<vnet-name>/subnets/<subnet-name>'
hsm: {
settings: {
container: '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>'
importPrefixesInitial: [
'/'
]
loggingContainer: '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<logging-container-name>'
}
}
maintenanceWindow: {
dayOfWeek: 'Saturday'
timeOfDayUTC: '22:00'
}
rootSquashSettings: {
mode: 'All'
noSquashNidLists: '10.0.0.[5-6]@tcp;10.0.1.2@tcp'
squashGID: 99
squashUID: 99
}
storageCapacityTiB: 16
}
zones: [
'1'
]
}