Korzystanie z usługi Azure Blob Storage z usługą Azure Managed Lustre

Usługa Azure Managed Lustre integruje się z Azure Blob Storage, aby uprościć proces importowania danych z kontenera obiektów blob do systemu plików. Możesz również wyeksportować dane z systemu plików do kontenera obiektów blob w celu przechowywania długoterminowego. W tym artykule opisano pojęcia dotyczące korzystania z integracji obiektów blob z systemami plików Azure Managed Lustre.

Aby zrozumieć wymagania i konfigurację wymaganą dla zgodnego kontenera obiektów blob, zobacz Wymagania wstępne dotyczące integracji obiektów blob.

Omówienie integracji obiektów blob

Integrację obiektów blob można skonfigurować podczas tworzenia klastra, a zadanie importu można utworzyć w dowolnym momencie po utworzeniu klastra. Po zaimportowaniu danych można pracować z danymi, tak jak w przypadku innych danych systemu plików. Po utworzeniu nowych plików lub zmodyfikowaniu istniejących plików w systemie plików można wyeksportować te pliki z powrotem na konto magazynu, uruchamiając polecenia interfejsu wiersza polecenia lustra na kliencie lub eksportując dane przy użyciu zadań eksportu.

Podczas importowania danych z kontenera obiektów blob do systemu plików Azure Managed Lustre tylko nazwy plików (przestrzeń nazw) i metadane są importowane do przestrzeni nazw Lustre. Rzeczywista zawartość obiektu blob jest importowana po pierwszym uzyskiwaniu dostępu przez klienta. Podczas pierwszego uzyskiwania dostępu do danych występuje niewielkie opóźnienie, podczas gdy funkcja Lustre Hierarchical Storage Management (HSM) ściąga zawartość obiektu blob do odpowiedniego pliku w systemie plików.

Zawartość obiektów blob można wstępnie pobrać przy użyciu polecenia Lustre lfs hsm_restore z zainstalowanego klienta z funkcjami sudo. Następujące polecenie spowoduje wstępne pobranie zawartości obiektów blob do systemu plików:

nohup find local/directory -type f -print0 | xargs -0 -n 1 sudo lfs hsm_restore &

Usługa Azure Managed Lustre współpracuje z kontami magazynu, które mają włączoną hierarchiczną przestrzeń nazw i konta magazynu z nie hierarchiczną lub płaską przestrzenią nazw. Obowiązują następujące drobne różnice:

  • W przypadku konta magazynu z włączoną hierarchiczną przestrzenią nazw usługa Azure Managed Lustre odczytuje atrybuty POSIX z nagłówka obiektu blob.
  • W przypadku konta magazynu, które nie ma włączonej hierarchicznej przestrzeni nazw, usługa Azure Managed Lustre odczytuje atrybuty POSIX z metadanych obiektu blob. Do przechowywania metadanych jest tworzony oddzielny pusty plik o takiej samej nazwie jak zawartość kontenera obiektów blob. Ten plik jest elementem równorzędnym do rzeczywistego katalogu danych w systemie plików Azure Managed Lustre.

Importowanie danych z usługi Blob Storage

Integrację z usługą Blob Storage można skonfigurować podczas tworzenia klastra i w dowolnym momencie po utworzeniu klastra można utworzyć zadanie importu .

Wymagania dotyczące kontenera obiektów blob

Podczas konfigurowania integracji obiektów blob podczas tworzenia klastra należy zidentyfikować dwa oddzielne kontenery obiektów blob: kontener do zaimportowania i kontener rejestrowania. Kontener do zaimportowania zawiera dane, które chcesz zaimportować do systemu plików Azure Managed Lustre. Kontener rejestrowania służy do przechowywania dzienników dla zadania importu. Te dwa kontenery muszą znajdować się na tym samym koncie magazynu. Aby dowiedzieć się więcej o wymaganiach dotyczących kontenera obiektów blob, zobacz Wymagania wstępne dotyczące integracji obiektów blob.

Importowanie prefiksu

Podczas importowania danych z kontenera obiektów blob można opcjonalnie określić co najmniej jeden prefiks, aby filtrować dane zaimportowane do systemu plików Azure Managed Lustre. Nazwy plików w kontenerze obiektów blob, które pasują do jednego z prefiksów, są dodawane do rekordu metadanych w systemie plików. Gdy klient po raz pierwszy uzyskuje dostęp do pliku, jego zawartość jest pobierana z kontenera obiektów blob i przechowywana w systemie plików.

W Azure Portal użyj pól Prefiks importu na karcie Zaawansowane podczas tworzenia klastra, aby określić dane do zaimportowania z kontenera obiektów blob. Te pola dotyczą tylko początkowego zadania importu. Nie można zmienić prefiksu importu po utworzeniu klastra.

W przypadku zadania importu można określić prefiksy importu podczas tworzenia zadania. W Azure Portal można określić prefiksy importu w polach Prefiks importu. Możesz również określić prefiks importu podczas tworzenia zadania importu za pomocą interfejsu API REST.

Podczas określania prefiksów importu należy pamiętać o następujących kwestiach:

  • Domyślny prefiks importu to /. To domyślne zachowanie importuje zawartość całego kontenera obiektów blob.
  • Jeśli określisz wiele prefiksów, prefiksy muszą nie nakładać się. Jeśli na przykład określisz /data wartości i /data2, zadanie importu zakończy się niepowodzeniem, ponieważ prefiksy nakładają się na siebie.
  • Jeśli kontener obiektów blob znajduje się na koncie magazynu z włączoną hierarchiczną przestrzenią nazw, możesz traktować prefiks jako ścieżkę pliku. Elementy pod ścieżką znajdują się w systemie plików Azure Managed Lustre.
  • Jeśli kontener obiektów blob znajduje się na koncie magazynu z nie hierarchiczną (lub płaską) przestrzenią nazw, możesz traktować prefiks importu jako ciąg wyszukiwania porównywany z początkiem nazwy obiektu blob. Jeśli nazwa obiektu blob w kontenerze rozpoczyna się od ciągu określonego jako prefiks importu, ten plik jest dostępny w systemie plików. Lustre to hierarchiczny system plików, a / znaki w nazwach obiektów blob stają się ogranicznikami katalogów przechowywanymi w rozwiązaniu Lustre.

Tryb rozwiązywania konfliktów

Podczas importowania danych z kontenera obiektów blob można określić sposób obsługi konfliktów między kontenerem obiektów blob a systemem plików. Ta opcja dotyczy tylko zadań importu, które są uruchamiane dla istniejących klastrów. W poniższej tabeli przedstawiono dostępne tryby rozwiązywania konfliktów i ich opisy:

Mode Opis
fail Zadanie importowania natychmiast kończy się niepowodzeniem z powodu błędu, jeśli zostanie wykryty konflikt.
skip Zadanie importowania pomija plik, jeśli zostanie wykryty konflikt.
overwrite-dirty Zadanie importowania ocenia ścieżkę powodującą konflikt, aby sprawdzić, czy powinna zostać usunięta i zaimportowana ponownie. Aby dowiedzieć się więcej, zobacz zastępowanie trybu brudnego.
overwrite-always Zadanie importowania ocenia ścieżkę powodującą konflikt i zawsze usuwa/ponownie importuje, jeśli jest zanieczyszczony lub zwalnia, jeśli jest czysty. Aby dowiedzieć się więcej, zobacz overwrite-always mode (Tryb zastępowania zawsze).

Zastępowanie trybu brudnego

Tryb overwrite-dirty ocenia ścieżkę powodującą konflikt, aby sprawdzić, czy powinna zostać usunięta i zaimportowana ponownie. Na wysokim poziomie overwrite-dirty tryb sprawdza stan modułu HSM. Jeśli stan modułu HSM to Czyste i zarchiwizowane, co oznacza, że jego dane są zsynchronizowane z kontenerem obiektów blob, o ile platforma Lustre może poinformować, to tylko atrybuty są aktualizowane, jeśli to konieczne. W przeciwnym razie plik zostanie usunięty i ponownie zaimportowany z kontenera obiektów blob.

Sprawdzanie stanu modułu HSM nie gwarantuje, że plik w narzędziu Lustre jest zgodny z plikiem w kontenerze obiektów blob. Jeśli musisz upewnić się, że plik w narzędziu Lustre jest zgodny z plikiem w kontenerze obiektów blob tak blisko, jak to możliwe, użyj overwrite-always trybu .

Zastępowanie trybu zawsze

Tryb overwrite-always ocenia ścieżkę powodującą konflikt i zawsze usuwa/ponownie importuje, jeśli jest on zanieczyszczony lub zwalnia, jeśli jest czysty. Ten tryb jest przydatny, gdy chcesz mieć pewność, że system plików jest zawsze zsynchronizowany z kontenerem obiektów blob. Jest to również najdroższa opcja, ponieważ każdy wcześniej przywrócony plik jest zwalniany lub usuwany/ponownie importowany po pierwszym dostępie.

Tolerancja błędów

Podczas importowania danych z kontenera obiektów blob można określić odporność na błędy. Poziom tolerancji błędów określa, w jaki sposób zadanie importu obsługuje błędy przejściowe występujące podczas procesu importowania, na przykład błędy systemu operacyjnego lub przerwy w działaniu sieci. Należy pamiętać, że błędy w tym kontekście nie odnoszą się do konfliktów plików, które są obsługiwane przez tryb rozwiązywania konfliktów.

Dla zadań importu są dostępne następujące opcje tolerancji błędów:

  • Nie zezwalaj na błędy (ustawienie domyślne): zadanie importowania natychmiast kończy się niepowodzeniem, jeśli podczas importowania wystąpi błąd. Jest to zachowanie domyślne.
  • Zezwalaj na błędy: zadanie importowania jest kontynuowane, jeśli wystąpi błąd, a błąd jest rejestrowany. Po zakończeniu zadania importowania można wyświetlić błędy w kontenerze rejestrowania.

Zagadnienia dotyczące zadań importowania obiektów blob

Podczas importowania danych z kontenera obiektów blob należy wziąć pod uwagę następujące elementy:

  • Jednocześnie można uruchomić tylko jedną akcję importu lub eksportu. Jeśli na przykład zadanie importu jest w toku, próba uruchomienia innego zadania importu zwróci błąd.
  • Zadania importu można anulować. Możesz anulować zadanie importowania uruchomione w istniejącym klastrze lub zadanie importu zainicjowane podczas tworzenia klastra.
  • Wdrożenie klastra może wrócić pomyślnie przed ukończeniem odpowiedniego zadania importu. Zadanie importowania jest nadal uruchamiane w tle. Postęp zadania importowania można monitorować w następujący sposób:
    • Azure Portal: Azure Portal wyświetla stan zadania importu. Przejdź do systemu plików i wybierz pozycję Integracja obiektów blob , aby wyświetlić stan zadania importu.
    • Plik lustra w katalogu głównym: plik o nazwie podobnej do /lustre/IMPORT_<state>.<timestamp_start> jest tworzony w katalogu głównym Lustre podczas importowania. Symbol <state> zastępczy zmienia się w miarę postępu importowania. Plik zostanie usunięty po pomyślnym zakończeniu zadania importowania.
  • Aby wyświetlić szczegółowe informacje o ukończonym zadaniu importu, możesz sprawdzić kontener rejestrowania. Kontener rejestrowania zawiera dzienniki dla zadania importu, w tym błędy lub konflikty, które wystąpiły podczas importowania.
  • Jeśli zadanie importowania zakończy się niepowodzeniem z jakiegokolwiek powodu, może nie mieć pełnych statystyk dotyczących zadania importu, takich jak liczba importowanych plików lub liczba konfliktów.

Eksportowanie danych do usługi Blob Storage przy użyciu zadania eksportu

Dane z zarządzanego systemu plików Lustre platformy Azure można skopiować do długoterminowego magazynu w Azure Blob Storage, tworząc zadanie eksportu.

Metadane dla wyeksportowanych plików

Gdy pliki są eksportowane z systemu plików Azure Managed Lustre do kontenera obiektów blob, dodatkowe metadane są zapisywane w celu uproszczenia ponownego importowania zawartości do systemu plików.

W poniższej tabeli wymieniono atrybuty POSIX z systemu plików Lustre, które są zapisywane w metadanych obiektu blob jako pary klucz-wartość:

Atrybut POSIX Typ
owner int
group int
permissions ósemkowy lub rwxrwxwx format; Bit sticky jest obsługiwany

Atrybuty katalogu są zapisywane w pustym obiekcie blob. Ten obiekt blob ma taką samą nazwę jak ścieżka katalogu i zawiera następującą parę klucz-wartość w metadanych obiektu blob: hdi_isfolder : true.

Atrybuty POSIX można zmodyfikować ręcznie przed użyciem kontenera w celu nawodnienia nowego klastra Lustre. Edytuj lub dodaj metadane obiektu blob przy użyciu opisanych wcześniej par klucz-wartość.

Zagadnienia dotyczące zadań eksportu

Podczas eksportowania danych za pomocą zadania eksportu należy wziąć pod uwagę następujące elementy:

  • Jednocześnie można uruchomić tylko jedną akcję importu lub eksportu. Jeśli na przykład zadanie eksportu jest w toku, próba uruchomienia innego zadania eksportu zwróci błąd.

Kopiowanie kontenera obiektów blob Lustre za pomocą narzędzia AzCopy lub Eksplorator usługi Storage

Kontener obiektów blob Lustre można przenosić lub kopiować za pomocą narzędzia AzCopy lub Eksplorator usługi Storage.

W przypadku narzędzia AzCopy można uwzględnić atrybuty katalogu, dodając następującą flagę:

--include-directory-stub

Uwzględnienie tej flagi powoduje zachowanie atrybutów POSIX katalogu podczas transferu, na przykład owner, groupi permissions. Jeśli używasz azcopy w kontenerze magazynu bez tej flagi lub z flagą ustawioną na false, dane i katalogi są uwzględniane w transferze, ale katalogi nie zachowują atrybutów POSIX.

W Eksplorator usługi Storage tę flagę można włączyć w obszarze Ustawienia, wybierając pozycję Transfery i zaznaczając pole wyboru Uwzględnij wycinki katalogu.

Zrzut ekranu przedstawiający sposób dołączania wycinków katalogu podczas transferu w Eksplorator usługi Storage.

Następne kroki