Amazon File Cache – wysokowydajna pamięć podręczna w AWS dla lokalnych systemów plików

12 października 2022

Autorzy z radością ogłaszają dostępność Amazon File Cache, nowej usługi szybkiej pamięci podręcznej w AWS, zaprojektowanej do przetwarzania danych plików przechowywanych w różnych lokalizacjach – w tym lokalnie.

Pamięć podręczna plików przyspiesza i upraszcza najbardziej wymagające przepływy pracy w chmurze i hybrydowe, zapewniając aplikacjom dostęp do plików za pomocą szybkiego i znanego interfejsu POSIX, bez względu na to, czy oryginalne pliki są przechowywane lokalnie w dowolnym systemie plików, do którego można uzyskać dostęp za pośrednictwem NFS v3 lub na Amazon Simple Storage Service (Amazon S3).

Wyobraź sobie, że posiadasz duży zestaw danych w lokalnej infrastrukturze pamięci masowej, a tworzenie raportów na koniec miesiąca zwykle zajmuje od dwóch do trzech dni. Chcesz przenieść to sporadyczne obciążenie do chmury, aby uruchomić je na większych komputerach z wydajniejszym procesorem i pamięcią, aby skrócić czas przetwarzania. Jednakże nie jesteś jeszcze gotowy na przeniesienie zestawu danych do chmury.

Teraz wyobraź sobie inny scenariusz, w którym masz dostęp do dużego zestawu danych w Amazon Simple Storage Service (Amazon S3), rozdzielonego na wiele regionów. Twoja aplikacja, która chce wykorzystać ten zestaw danych, jest zakodowana pod kątem tradycyjnego dostępu do systemu plików (POSIX) i używa narzędzi wiersza poleceń, takich jak awk, sed, potoki i tak dalej. Twoja aplikacja wymaga dostępu do plików z opóźnieniami poniżej milisekund. Nie można zaktualizować kodu źródłowego, aby korzystać z interfejsu API S3.

Pamięć podręczna plików pomaga rozwiązać te przypadki użycia i wiele innych. Pomyśl o zarządzaniu i transformacji plików wideo, zestawach danych AI/ML i tak dalej. File Cache tworzy pamięć podręczną opartą na systemie plików przed systemami plików NFS v3 lub zasobnikami S3 w co najmniej jednym regionie. W przejrzysty sposób ładuje zawartość pliku i metadane (takie jak nazwa pliku, rozmiar i uprawnienia) ze źródła i przedstawia je aplikacjom jako tradycyjny system plików. Pamięć podręczna plików automatycznie zwalnia ostatnio używane pliki z pamięci podręcznej, aby zapewnić, że najbardziej aktywne pliki są dostępne w pamięci podręcznej aplikacji.

Z pamięcią podręczną można połączyć maksymalnie osiem systemów plików NFS lub osiem zasobników S3, które będą udostępniane jako ujednolicony zestaw plików i katalogów. Dostęp do pamięci podręcznej można uzyskać z różnych usług obliczeniowych AWS, takich jak maszyny wirtualne lub kontenery. Połączenie między pamięcią podręczną plików a infrastrukturą lokalną wykorzystuje istniejące połączenie sieciowe oparte na AWS Direct Connect i/lub Site-to-Site VPN.

Korzystając z pamięci podręcznej plików, aplikacje korzystają ze spójnych opóźnień poniżej milisekund, przepustowości do setek GB/s i milionów operacji na sekundę. Podobnie jak w przypadku innych usług przechowywania, takich jak Amazon Elastic Block Store (Amazon EBS), wydajność zależy od rozmiaru pamięci podręcznej. Rozmiar pamięci podręcznej można rozszerzyć do skali petabajtowej, przy minimalnym rozmiarze 1,2 TiB.

Sprawdź, jak to działa

Aby pokazać, jak to działa, utwórz pamięć podręczną plików na dwóch istniejących systemach plików Amazon FSx dla OpenZFS. W rzeczywistym scenariuszu prawdopodobnie utworzysz pamięci podręczne na lokalnych systemach plików. Aby jak najlepiej to zobrazować, autorzy wybrali FSx dla OpenZFS, ponieważ nie mają pod ręką lokalnego centrum danych. Oba demonstracyjne systemy plików OpenZFS są dostępne z prywatnej podsieci na koncie AWS. Wreszcie możesz mieć dostęp do pamięci podręcznej z instancji EC2 Linux.

Otwórz przeglądarkę i przejdź do konsoli zarządzania AWS. Wyszukaj „Amazon FSx” w pasku wyszukiwania konsoli i kliknij Cache w lewym menu nawigacyjnym. Alternatywnie przejdź bezpośrednio do sekcji File Cache konsoli. Aby rozpocząć, wybierz Utwórz pamięć podręczną.

Amazon FSx

Wprowadź nazwę pamięci podręcznej dla Twojej pamięci podręcznej (AWSNewsBlog dla tego demo) i pojemność pamięci podręcznej. Pojemność pamięci wyrażona jest w terabajtach. Minimalna wartość to 1,2 TiB lub przyrosty o 2,4 TiB. Zwróć uwagę, że pojemność przepływności wzrasta, gdy wybierasz duże rozmiary pamięci podręcznej.

Ustawienia pamięci podręcznej Amazon FSx

Sprawdź i zaakceptuj domyślne wartości podane dla sieci i szyfrowania. W przypadku sieci możesz wybrać VPC, podsieć i grupę zabezpieczeń do skojarzenia z interfejsem sieciowym pamięci podręcznej.

Zaleca się wdrożenie pamięci podręcznej w tej samej podsieci, co usługa obliczeniowa, aby zminimalizować opóźnienia podczas uzyskiwania dostępu do plików. Do szyfrowania możesz użyć klucza zarządzanego przez AWS KMS (domyślnie) lub wybrać własny.

Następnie utwórz Data Repository Association. To jest łącze między pamięcią podręczną a źródłem danych. Źródłem danych może być system plików NFS, zasobnik lub prefiks S3. Możesz utworzyć do ośmiu skojarzeń repozytoriów danych dla jednej pamięci podręcznej. Wszystkie skojarzenia repozytorium danych dla pamięci podręcznej mają ten sam typ: wszystkie są NFS v3 lub wszystkie S3. Jeśli potrzebujesz obu, możesz utworzyć dwie pamięci podręczne.

W tym demo wybierz połączenie dwóch systemów plików OpenZFS na swoim koncie AWS. Możesz połączyć się z dowolnymi serwerami NFS v3, w tym z tymi, które już masz lokalnie. Ścieżka pamięci podręcznej pozwala wybrać, gdzie źródłowy system plików zostanie zamontowany w pamięci podręcznej. Ścieżka do repozytorium danych to adres URL do repozytorium danych NFS v3 lub S3. Format to nfs://nazwa_hosta/ścieżka lub s3://nazwa_zasobnika/ścieżka.

Adresy IP serwerów DNS umożliwiają pamięci podręcznej plików rozpoznanie nazwy DNS serwera NFS. Jest to przydatne, gdy rozwiązywanie DNS jest prywatne, jak w omawianym przykładzie. Gdy kojarzysz serwery NFS v3 wdrożone w VPC i używasz serwera DNS dostarczonego przez AWS, adres IP serwera DNS Twojego VPC to zakres VPC + dwa. W tym przykładzie zakres CIDR VPC to 172.31.0.0, stąd adres IP serwera DNS to 172.31.0.2.

Nie zapomnij kliknąć przycisku Dodaj! W przeciwnym razie twoje dane wejściowe zostaną zignorowane. Możesz powtórzyć operację, aby dodać więcej repozytoriów danych.

Data Repository Association

Data Repository Association

Po wprowadzeniu dwóch repozytoriów danych wybierz Dalej i przejrzyj swoje wybory. Kiedy będziesz gotowy, wybierz Utwórz pamięć podręczną.

Tworzenie pamięci podręcznej

Po kilku minutach stan pamięci podręcznej zmieni się na Dostępny.

Po kilku minutach stan pamięci podręcznej zmieni się na Dostępny.

Ostatnią częścią jest zamontowanie pamięci podręcznej na maszynie, na której wdrożone jest Twoje obciążenie. Pamięć podręczna plików wykorzystuje Lustre behind the scene. Najpierw musisz zainstalować klienta Luster dla Linuksa, jak wyjaśniono w naszej dokumentacji. Po zakończeniu wybierz przycisk Dołącz na konsoli, aby otrzymać instrukcje dotyczące pobrania i zainstalowania klienta Luster oraz zamontowania systemu plików pamięci podręcznej.

Lustre behind the scene

Aby to zrobić, połącz się z instancją EC2 działającą w tym samym VPC. Następnie wpisz:

sudo mount -t lustre -o relatime,flock file_cache_dns_name@tcp:/mountname /mnt

To polecenie montuje moją pamięć podręczną z dwiema opcjami:

  • relatime – przechowuje dane dotyczące czasu (czasu dostępu do i-węzła), ale nie za każdym razem, gdy plik jest uzyskiwany. Gdy ta opcja jest włączona, dane atime są zapisywane na dysku tylko wtedy, gdy plik został zmodyfikowany od czasu ostatniej aktualizacji danych atime (mtime) lub jeśli ostatnio uzyskano dostęp do pliku wcześniej niż określony czas temu (domyślnie jeden dzień). Relatime jest wymagany do prawidłowego działania automatycznego wyrzucania pamięci podręcznej.
  • flock – umożliwia blokowanie plików w pamięci podręcznej. Jeśli nie chcesz, aby blokowanie plików było włączone, użyj polecenia mount bez flock.

Po wdrożeniu procesy działające na Twojej instancji EC2 mogą normalnie uzyskiwać dostęp do plików w pamięci podręcznej. Jak zostało zdefiniowane podczas tworzenia pamięci podręcznej, pierwszy system plików ZFS jest dostępny w pamięci podręcznej w /dataset1, a drugi system plików ZFS jest dostępny jako /dataset2.

BASH:

$ echo "Hello File Cache World" > /mnt/zsf1/greetings

$ sudo mount -t lustre -o relatime,flock fc-0280000000001.fsx.us-east-2.aws.internal@tcp:/r3xxxxxx /mnt/cache

$ ls -al /mnt/cache
total 98
drwxr-xr-x 5 root root 33280 Sep 21 14:37 .
drwxr-xr-x 2 root root 33280 Sep 21 14:33 dataset1
drwxr-xr-x 2 root root 33280 Sep 21 14:37 dataset2

$ cat /mnt/cache/dataset1/greetings
Hello File Cache World

Możesz obserwować i mierzyć aktywność i stan Twoich pamięci podręcznych za pomocą metryk Amazon CloudWatch i monitorowania dzienników AWS CloudTrail.

Metryki CloudWatch dla zasobu pamięci podręcznej plików są podzielone na trzy kategorie:

  • Metryki front-end we/wy;
  • Metryki we/wy zaplecza;
  • Wskaźniki wykorzystania front-endu w pamięci podręcznej.

Jak zwykle możesz tworzyć dashboardy lub definiować alarmy, które będą informowane, gdy metryki osiągną zdefiniowane przez Ciebie progi.

O czym warto pamiętać

Istnieje kilka kluczowych punktów, o których należy pamiętać podczas korzystania lub planowania korzystania z pamięci podręcznej plików.

Po pierwsze, pamięć podręczna plików szyfruje dane w spoczynku i obsługuje szyfrowanie danych podczas przesyłania. Twoje dane są zawsze szyfrowane w spoczynku przy użyciu kluczy zarządzanych w usłudze zarządzania kluczami AWS (AWS KMS). Możesz użyć kluczy należących do usługi lub własnych kluczy (CMK zarządzanych przez klienta).

Po drugie, pamięć podręczna plików zapewnia dwie opcje importowania danych z repozytoriów danych do pamięci podręcznej: ładowanie z opóźnieniem i wstępne ładowanie. Opóźnione ładowanie importuje dane na żądanie, jeśli te nie są jeszcze buforowane, a wstępne ładowanie importuje dane na żądanie użytkownika przed rozpoczęciem obciążenia. Ładowanie z opóźnieniem jest ustawieniem domyślnym. Ma to sens w przypadku większości obciążeń, ponieważ umożliwia rozpoczęcie obciążenia bez oczekiwania na zaimportowanie metadanych i danych do pamięci podręcznej. Wstępne ładowanie jest przydatne, gdy wzorzec dostępu jest wrażliwy na opóźnienia pierwszego bajtu.

Cennik i dostępność

Korzystanie z pamięci podręcznej plików nie wiąże się z żadnymi kosztami wstępnymi ani stałymi. Opłaty są naliczane za aprowizowaną pojemność pamięci podręcznej i pojemność magazynu metadanych. Strona z cennikiem zawiera niezbędne szczegóły. Oprócz samej pamięci podręcznej plików płacisz za koszty żądań S3, opłaty za AWS Direct Connect i zwykłe opłaty za transfer danych za ruch wychodzący między Azją, między regionami i Internet między pamięcią podręczną plików a źródłami danych.

Pamięć podręczna plików jest dostępna w wschodnich stanach USA (Ohio, Płn. Wirginia), zachodnich stanach USA (Oregon), Azji i Pacyfiku (Singapur, Sydney, Tokio), Kanadzie (centrum), Europie (Frankfurt, Irlandia, Londyn).

Rozpocznij tworzenie swojego pliku pamięci podręcznej już dziś!

źródło: AWS

Case Studies
Referencje

Firma Hostersi pozwoliła nam osadzić ogólne zagadnienia programu Well Architected Framework w kontekście naszej firmy. Oszczędziło nam to wiele czasu i pozwoliło znaleźć lepiej dopasowane rozwiązania do specyfiki naszego biznesu. WAF był świetnym katalizatorem do wprowadzenie szeregu zmian w obszarze niezawodności, szybkości i bezpieczeństwa edrone. 

Piotr Stachowicz
CTO
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.