Udostępnij za pośrednictwem


Wstępne ładowanie plików w usłudze Azure HPC Cache

Funkcja priming usługi Azure HPC Cache umożliwia klientom wstępne ładowanie plików w pamięci podręcznej.

Za pomocą tej funkcji można pobrać oczekiwany zestaw roboczy plików i wypełnić pamięć podręczną przed rozpoczęciem pracy. Ta technika jest czasami nazywana ociepleniem pamięci podręcznej.

Zwiększanie wydajności pamięci podręcznej przez zwiększenie "trafień" pamięci podręcznej. Jeśli maszyna kliencka żąda zasobu, który musi zostać odczytany z magazynu zaplecza, opóźnienie pobierania i zwracania tego pliku może być znaczące — zwłaszcza jeśli system magazynu jest lokalnym serwerem NAS. Jeśli utworzysz pamięć podręczną przy użyciu plików, które będą potrzebne przed rozpoczęciem zadania obliczeniowego, żądania plików będą wydajniejsze podczas wykonywania zadania.

Ta funkcja używa pliku manifestu JSON do określenia plików do załadowania. Każde zadanie priming przyjmuje jeden plik manifestu.

Utwórz zadania priming pamięci podręcznej przy użyciu witryny Azure Portal lub punktów końcowych interfejsu API REST platformy Azure wymienionych na końcu tego dokumentu.

Można utworzyć maksymalnie 10 zadań priming. W zależności od rozmiaru pamięci podręcznej można uruchamiać jednocześnie między trzema i 10 zadaniami priming; inne są kolejkowane do momentu zwolnienia zasobów.

Konfigurowanie i wymagania wstępne

Przed utworzeniem zadania priming wykonaj następujące kroki:

  1. Tworzenie usługi Azure HPC Cache. (Zapoznaj się z Tworzenie usługi Azure HPC Cache w celu uzyskania pomocy).
  2. Zdefiniuj co najmniej jeden obiekt docelowy magazynu, w tym utworzenie zagregowanej ścieżki przestrzeni nazw (lub ścieżek). Dokumentacja docelowa magazynu
  3. Utwórz manifest zadania priming (instrukcje poniżej) i zapisz go w kontenerze obiektów blob, który jest dostępny dla pamięci podręcznej HPC Cache. Możesz też przechowywać manifest przy użyciu interfejsów API REST platformy Azure w celu utworzenia zadań priming pod dowolnym adresem URL, do którego może uzyskiwać dostęp usługa HPC Cache.

Tworzenie pliku manifestu priming

Manifest priming jest plikiem JSON, który definiuje zawartość, która będzie wstępnie ładowana w pamięci podręcznej po uruchomieniu zadania priming.

W manifeście określ ścieżkę przestrzeni nazw do katalogów lub plików, które mają zostać wstępnie załadowane. Możesz również skonfigurować reguły dołączania i wykluczania, aby dostosować ładowaną zawartość.

Przykładowy manifest priming


{
    "config": {
        "cache_mode": "0",
        "maxreadsize": "0",
        "resolve_symlink": "0",
        "threads":"8",
        "skip_estimation":"0"
    },
    
    "files": [
        "/bin/tool.py",
        "/bin/othertool.py"
    ],
    
    "directories": [
        {"path": "/lib/toollib"},
        {
            "path": "/lib/otherlib", 
            "include": ["\\.py$"]
        },
        {
            "path": "/lib/xsupport", 
            "include": ["\\.py$"], 
            "exclude": ["\\.elc$", "\\.pyc$"]
        }
    ],
    
    "include": ["\\.txt$"],
    "exclude": ["~$", "\\.bak$"]
}

Istnieją trzy sekcje pliku manifestu priming:

  • Konfiguracja (config) — ustawienia zadania priming

  • Instrukcje dotyczące plików i katalogów:

    • files - pojedyncze pliki, które zostaną wstępnie załadowane
    • directories — ścieżki plików, które zostaną wstępnie załadowane
  • Globalne instrukcje dołączania i wykluczania (include i exclude) — ciągi wyrażeń regularnych, które modyfikują zadanie priming katalogu

Ustawienia konfiguracji

Sekcja config pliku manifestu ustawia następujące parametry:

  • Tryb pamięci podręcznej — ustawia zachowanie zadania priming. Dostępne opcje:

    • 0 — Dane — załaduj wszystkie określone dane i atrybuty pliku w pamięci podręcznej. Jest to opcja domyślna.
    • 1 — Metadane — ładowanie tylko atrybutów pliku.
    • 2 — Szacowanie — załaduj atrybuty pliku, a także zwróć szacowaną liczbę plików, katalogów i łącznego rozmiaru danych (w bajtach), które byłyby ugruntowane, jeśli zawartość w tym manifeście została uruchomiona w trybie danych.
  • maxreadsize — Ustawia maksymalną liczbę bajtów, które zostaną wstępnie załadowane na plik. Pozostaw ten zestaw na wartość 0 (wartość domyślna), aby zawsze ładować cały plik niezależnie od rozmiaru.

  • resolve_symlink — Ustaw wartość true (1), jeśli chcesz rozpoznać łącza symboliczne podczas tworzenia wartości priming. Jeśli resolve_symlink jest włączona, obiekty docelowe linków symbolicznych są wstępnie ładowane całkowicie, niezależnie od reguł dołączania i wykluczania.

  • threads - Liczba wątków priming do użycia. Prawidłowe wartości to od 1 do 128. Wartość domyślna to 8, aby zrównoważyć między żądaniami klienta priming i obsługą.

  • skip_estimation — Przed rozpoczęciem kopiowania plików zadanie priming uruchamia oszacowanie ilości danych, które mają być ugruntowane. Ustaw flagę skip_estimation na true (1), jeśli chcesz przejść bezpośrednio do fazy priming pliku. Jeśli pominiesz fazę szacowania, raport postępu może być mniej dokładny. Wartość domyślna to 0, aby uwzględnić fazę szacowania.

Ścieżki plików i katalogów

Sekcje files i directories manifestu określają, które pliki są wstępnie ładowane podczas zadania tworzenia kopii zapasowej.

Określ pliki i katalogi według ich ścieżek przestrzeni nazw pamięci podręcznej. Są to te same ścieżki, których klienci używają do uzyskiwania dostępu do plików za pośrednictwem pamięci podręcznej HPC Cache i nie muszą być takie same jak ścieżki systemu magazynu ani nazwy eksportu. Przeczytaj temat Planowanie zagregowanej przestrzeni nazw , aby dowiedzieć się więcej.

Rozpocznij ścieżki z katalogu głównego przestrzeni nazw pamięci podręcznej.

Uwaga

Elementy wymienione w programie files są uwzględniane nawet wtedy, gdy są zgodne z regułami wykluczania później.

Wartość directories zawiera listę ścieżek, które są oceniane pod kątem zawartości w celu wstępnego załadowania w pamięci podręcznej. Wszystkie poddrzewa są uwzględniane w zadaniu priming, chyba że zostały one specjalnie wykluczone.

Wartości ścieżki katalogu mogą mieć własne instrukcje dołączania i wykluczania, które mają zastosowanie tylko do ścieżki, z którą są zdefiniowane. Na przykład wiersz "directories": [{"path": "/cache/library1", "exclude": "\\.bak$"}] wstępnie załadowałby wszystkie pliki pod ścieżką przestrzeni nazw /cache/library1/ z wyjątkiem plików w tej ścieżce, które kończą się na .bak.

Instrukcje dołączania/wykluczania na poziomie katalogu nie są takie same jak instrukcje dołączania globalnego i wykluczania opisane poniżej. Należy zachować ostrożność, aby przeczytać szczegółowe informacje na temat interakcji instrukcji na poziomie katalogu z instrukcjami dołączania globalnego i wykluczania.

Uwaga

Ze względu na sposób analizowania pliku manifestu potrzebne są dwa znaki ucieczki, aby chronić problematyczny znak ciągu w instrukcjach dołączania i wykluczania. Na przykład użyj wyrażenia \\.txt , aby dopasować pliki .txt.

Dołączanie i wykluczanie instrukcji

Po plikach i katalogach można określić instrukcje globalne include i exclude . Te ustawienia globalne mają zastosowanie do wszystkich katalogów. Nie mają one zastosowania do plików, które zostały określone w instrukcji files .

Ogólnie rzecz biorąc, reguły są dopasowywane w kolejności, więc instrukcje, które pojawiają się wcześniej w pliku manifestu, są stosowane przed późniejszymi. Opisy w tym artykule zakładają również, że wcześniejsze reguły zostały już zastosowane i nie są zgodne.

  • Instrukcje include — podczas skanowania katalogów zadanie priming ignoruje wszystkie pliki, które nie pasują do wyrażeń regularnych w ustawieniu include .

  • Instrukcje wykluczania — podczas skanowania katalogów zadanie priming ignoruje dowolny plik zgodny z wyrażeniami regularnymi w ustawieniuexclude.

    Więcej informacji o tym, jak globalne reguły wykluczania współdziałają z innymi regułami:

    • Globalne reguły wykluczania zastępują globalne reguły dołączania. Oznacza to, że jeśli nazwa pliku jest zgodna zarówno z wyrażeniem dołączania globalnego, jak i wyrażeniem wykluczania globalnego, nie zostanie wstępnie załadowane przez zadanie priming.

    • Na poziomie katalogu reguły obejmują zastępowanie globalnych reguł wykluczania.

      Nazwa pliku, która odpowiada zarówno wyrażeniu na poziomie katalogu, jak i globalnemu wyrażeniu wykluczania, zostanie wstępnie załadowana przez zadanie priming.

    • Instrukcje plików zastępują wszystkie reguły wykluczania.

Można pominąć instrukcje dołączania i wykluczania, aby umieścić wszystkie pliki w katalogach.

Więcej informacji na temat reguł dołączania/wykluczania i sposobu ich dopasowania do nazw plików:

  • Jeśli nazwa pasuje do wpisu na liście wykluczania poszczególnych katalogów, zostanie pominięta.

  • Jeśli istnieje lista dołączana do poszczególnych katalogów, nazwa jest dołączona lub wykluczona w zależności od tego, czy jest wyświetlana na tej liście.

  • Jeśli nazwa pasuje do wpisu na globalnej liście wykluczeń, zostanie pominięta.

  • Jeśli istnieje globalna lista dołączania, nazwa zostanie uwzględniona, jeśli zostanie wyświetlona na tej liście lub wykluczona, jeśli nie zostanie wyświetlona na tej liście.

  • Jeśli istnieje lista dołączania poszczególnych katalogów, nazwa jest wykluczona. W przeciwnym razie jest on dołączany.

  • Jeśli katalog i element nadrzędny tego katalogu są wyświetlane na liście katalogów, określone reguły dla katalogu są stosowane wraz z regułami globalnymi i regułami katalogu przodków są ignorowane.

  • W nazwach i regułach jest rozróżniana wielkość liter. Źródła bez uwzględniania wielkości liter nie są obsługiwane.

  • Łączna liczba reguł plików i reguł katalogu może nie przekraczać 4000. Liczba reguł wyrażeń regularnych dla dowolnej listy dołączania/wykluczania może nie przekraczać 5.

  • Jeśli jedna specyfikacja katalogu nakłada się na drugą, ta z bardziej jawną ścieżką ma pierwszeństwo.

  • Jest to błąd manifestu określający tę samą ścieżkę więcej niż raz na liście plików lub na liście katalogów.

Przekazywanie pliku manifestu priming

Gdy plik manifestu jest gotowy, przekaż go do kontenera obiektów blob platformy Azure na koncie magazynu dostępnym z poziomu pamięci podręcznej HPC Cache. Jeśli używasz interfejsów API zamiast portalu do tworzenia zadań do tworzenia kopii zapasowej, możesz przechowywać je na innym serwerze internetowym, ale musisz wykonać różne kroki, aby upewnić się, że pamięć podręczna może uzyskać do niego dostęp.

  • Jeśli utworzysz zadanie priming w witrynie Azure Portal, wybierz plik manifestu na stronie ustawień pamięci podręcznej HPC Cache Prime cache zgodnie z poniższym opisem. Wybranie go z ustawień pamięci podręcznej powoduje automatyczne utworzenie sygnatury dostępu współdzielonego (SAS), która daje pamięci podręcznej ograniczony dostęp do pliku priming.

  • Jeśli używasz interfejsów API do tworzenia zadania priming zamiast korzystania z portalu, upewnij się, że pamięć podręczna jest autoryzowana do uzyskiwania dostępu do tego pliku. Zapisz plik w dostępnej lokalizacji (na przykład na serwerze internetowym, który znajduje się wewnątrz pamięci podręcznej lub sieci magazynu), albo ręcznie utwórz adres URL sygnatury dostępu współdzielonego dla pliku priming.

    Przeczytaj Artykuł Udzielanie ograniczonego dostępu do zasobów usługi Azure Storage przy użyciu sygnatur dostępu współdzielonego (SAS), aby dowiedzieć się, jak utworzyć adres URL sygnatury dostępu współdzielonego konta dla pliku manifestu priming. Plik manifestu musi być dostępny z protokołem HTTPS.

Pamięć podręczna uzyskuje dostęp do pliku manifestu raz po uruchomieniu zadania priming. Adres URL sygnatury dostępu współdzielonego wygenerowany dla pamięci podręcznej nie jest ujawniany.

Tworzenie zadania priming

Użyj witryny Azure Portal, aby utworzyć zadanie priming. Wyświetl pamięć podręczną Azure HPC Cache w portalu i wybierz stronę Prime Cache w obszarze nagłówka Ustawienia .

zrzut ekranu przedstawiający stronę Priming w portalu z kilkoma zadaniami w różnych stanach.

Kliknij tekst Rozpocznij podsyłanie zadania w górnej części tabeli, aby zdefiniować nowe zadanie.

W polu Nazwa zadania wpisz unikatową nazwę zadania priming.

Użyj pola Plik priming, aby wybrać plik manifestu priming. Wybierz konto magazynu, kontener i plik, w którym jest przechowywany manifest priming.

zrzut ekranu przedstawiający stronę Rozpocznij zadanie tworzenia kopii zapasowej z wypełnioną nazwą zadania i ścieżką pliku priming. Poniżej pola Plik priming jest link oznaczony etykietą

Aby wybrać plik manifestu priming, kliknij link, aby wybrać miejsce docelowe magazynu. Następnie wybierz kontener, w którym jest przechowywany plik manifestu .json.

Jeśli nie możesz znaleźć pliku manifestu, pamięć podręczna może nie mieć dostępu do kontenera pliku. Upewnij się, że pamięć podręczna ma łączność sieciową z kontem magazynu i może odczytywać dane z kontenera.

Zarządzanie zadaniami priming

Zadania priming są wyświetlane na stronie Prime Cache w witrynie Azure Portal.

Na tej stronie przedstawiono nazwę każdego zadania, jego stan, bieżący stan i statystyki podsumowania dotyczące postępu tworzenia kopii zapasowej. Podsumowanie w kolumnie Szczegóły jest okresowo aktualizowane w miarę postępu zadania. Pole Stan zadania jest wypełniane po uruchomieniu zadania tworzenia kopii zapasowej. To pole zawiera również podstawowe informacje o błędzie, takie jak Nieprawidłowy manifest, jeśli wystąpi problem.

Gdy zadanie jest uruchomione, kolumna Procent wykonania pokazuje oszacowanie postępu.

Przed rozpoczęciem zadania zawsyłaniania stan jest w kolejce. Pola Stan zadania, Procent wykonania i Szczegóły są puste.

zrzut ekranu przedstawiający listę zadań tworzenia kopii zapasowej w portalu z zadaniami w różnych stanach (uruchamianie, wstrzymywanie i powodzenie). Kursor kliknął ... symbol po prawej stronie wiersza jednego zadania, a menu kontekstowe zawiera opcje wstrzymania lub wznowienia.

Kliknij sekcję ... po prawej stronie tabeli, aby wstrzymać lub wznowić zadanie tworzenia kopii zapasowej. (Zaktualizowanie stanu może potrwać kilka minut).

Aby usunąć zadanie tworzenia kopii zapasowej, wybierz je na liście i użyj kontrolki Zatrzymaj w górnej części tabeli. Możesz użyć kontrolki Zatrzymaj , aby usunąć zadanie w dowolnym stanie.

Interfejsy API REST platformy Azure

Za pomocą tych punktów końcowych interfejsu API REST można tworzyć zadania priming usługi HPC Cache i zarządzać nimi. Są one częścią 2022-05-01 wersji interfejsu API REST, dlatego upewnij się, że używasz tego ciągu w okresie api_version .

Przeczytaj dokumentację interfejsu API REST platformy Azure, aby dowiedzieć się, jak używać tych narzędzi.

Dodawanie nowego zadania priming

Interfejs startPrimingJob tworzy i kolejkuje zadanie priming. Zadanie jest uruchamiane automatycznie, gdy zasoby są dostępne.


URL: POST

     https://MY-ARM-HOST/subscriptions/MY-SUBSCRIPTION-ID/resourceGroups/MY-RESOURCE-GROUP-NAME/providers/Microsoft.StorageCache/caches/MY-CACHE-NAME/startPrimingJob?api-version=2022-05-01

     BODY:
     {
         "primingJobName": "MY-PRIMING-JOB",
         "primingManifestUrl": "MY-JSON-MANIFEST-FILE-URL"
     }

primingManifestUrl Dla wartości przekaż adres URL sygnatury dostępu współdzielonego pliku lub inny adres URL HTTPS dostępny dla pamięci podręcznej. Przeczytaj artykuł Upload the priming manifest file (Przekaż plik manifestu priming), aby dowiedzieć się więcej.

Zatrzymywanie zadania tworzenia kopii zapasowej

Interfejs stopPrimingJob anuluje zadanie (jeśli jest uruchomione) i usuwa je z listy zadań. Użyj tego interfejsu, aby usunąć zadanie priming w dowolnym stanie.


URL: POST 
     https://MY-ARM-HOST/subscriptions/MY-SUBSCRIPTION-ID/resourceGroups/MY-RESOURCE-GROUP-NAME/providers/Microsoft.StorageCache/caches/MY-CACHE-NAME/stopPrimingJob?api-version=2022-05-01

BODY:
     {
         "primingJobId": "MY-JOB-ID-TO-REMOVE"
     }

Pobieranie zadań priming

Użyj interfejsu Get cache API, aby wyświetlić listę zadań priming pamięci podręcznej. Ten interfejs API zwraca wiele informacji o pamięci podręcznej; poszukaj informacji o zadaniu priming w sekcji "właściwości pamięci podręcznej".

Zwracane są nazwy i identyfikatory zadań priming wraz z innymi informacjami.


URL: GET 
     https://MY-ARM-HOST/subscriptions/MY-SUBSCRIPTION-ID/resourceGroups/MY-RESOURCE-GROUP-NAME/providers/Microsoft.StorageCache/caches/MY-CACHE-NAME?api-version=2022-05-01

BODY:

Wstrzymywanie zadania priming

Interfejs pausePrimingJob zawiesza uruchomione zadanie.


URL: POST 
     https://MY-ARM-HOST/subscriptions/MY-SUBSCRIPTION-ID/resourceGroups/MY-RESOURCE-GROUP-NAME/providers/Microsoft.StorageCache/caches/MY-CACHE-NAME/pausePrimingJob?api-version=2022-05-01

BODY:
     {
         "primingJobId": "MY-JOB-ID-TO-PAUSE"
     }

Wznawianie zadania tworzenia kopii zapasowej

Użyj interfejsu resumePrimingJob , aby ponownie uaktywnić zawieszone zadanie priming.


URL: POST 
     https://MY-ARM-HOST/subscriptions/MY-SUBSCRIPTION-ID/resourceGroups/MY-RESOURCE-GROUP-NAME/providers/Microsoft.StorageCache/caches/MY-CACHE-NAME/resumePrimingJob?api-version=2022-05-01

BODY:
     {
         "primingJobId": "MY-JOB-ID-TO-RESUME"
     }

Często zadawane pytania

  • Czy mogę ponownie użyć zadania tworzenia kopii zapasowej?

    Nie dokładnie, ponieważ każde zadanie podszytowania na liście musi mieć unikatową nazwę. Po usunięciu zadania z listy można utworzyć nowe zadanie o tej samej nazwie.

    Można utworzyć wiele zadań priming odwołujących się do tego samego pliku manifestu.

  • Jak długo zadanie tworzenia kopii zapasowej nie powiodło się lub zostało ukończone na liście?

    Zadania tworzenia kopii zapasowej są utrwalane na liście do momentu ich usunięcia. Na stronie prime cache portalu zaznacz pole wyboru obok zadania i wybierz kontrolkę Zatrzymaj w górnej części listy, aby usunąć zadanie.

  • Co się stanie, jeśli zawartość, która jest ładowana wstępnie, jest większa niż magazyn pamięci podręcznej?

    Jeśli pamięć podręczna stanie się pełna, pliki pobrane później zastąpią pliki, które zostały wcześniej zastąpione.

Następne kroki