Migracja danych i oszczędność kosztów na dużą skalę dzięki Amazon S3 File Gateway

29 marca 2023

Migracja danych i oszczednosc kosztow na duza skale dzieki Amazon S3 File Gateway

Migracja danych do chmury wymaga doświadczenia z różnymi typami danych oraz umiejętności zachowania struktury danych źródłowych i atrybutów metadanych. Klienci często przechowują dane w plikach lokalnych na tradycyjnych serwerach plików, zachowując oryginalny znacznik czasu utworzenia danych z różnych powodów, w tym zarządzania cyklem życia danych. Jednocześnie klienci mają trudności z określeniem ścieżki migracji danych do chmury, która obsługuje zarówno zachowanie struktury danych źródłowych, metadanych, jak i implementację hybrydową. To ostatecznie uniemożliwia klientom osiągnięcie pełnego zakresu korzyści z przechowywania w chmurze, w tym kosztów, wydajności i skali.

Klienci używają Amazon S3 File Gateway i Amazon Simple Storage Service (S3) do odpowiedniej migracji danych lokalnych do chmury i ich przechowywania. Gdy dane znajdą się w magazynie Amazon S3, klienci korzystają z S3 Lifecycle Policy jako skalowalnego rozwiązania do automatyzacji warstwowania obiektów w różnych klasach magazynu Amazon S3 w oparciu o obiekt „Creation Date”, co pomaga klientom optymalizować koszty przechowywania na dużą skalę. Kiedy klient przesyła obiekty do Amazon S3 za pomocą S3 File Gateway, aktualizuje „Datę modyfikacji” pliku ze źródła jako obiekt „Data utworzenia” w S3 i zapisuje go. Wraz z nową „Datą utworzenia” w S3 resetuje się wiek obiektów w Amazon S3, co uniemożliwia Polityce cyklu życia użycie oryginalnej „Daty utworzenia” z serwera źródłowego do przeniesienia obiektów do niższej klasy przechowywania. Stanowi to wyzwanie dla klientów, którzy posiadają wiele starszych plików lokalnie i korzystają z S3 File Gateway do migracji i przesyłania do

Architektura rozwiązania

Ta architektura ilustruje sposób migracji i przesyłania plików z oryginalnymi metadanymi do chmury z lokalnego systemu plików. Jak pokazano, skopiujesz dane źródłowe za pomocą Robocopy, a następnie zapiszesz je w udziale plików S3 File Gateway. Plik źródłowy zawiera pola metadanych, takie jak „Data ostatniej modyfikacji” i „Data utworzenia”. Odtąd tę informację o metadanych źródłowych autorzy nazywają oryginalnym czasem stat() w dokumencie. Następnie rozwiązanie automatyzuje migrację danych za pomocą S3 File Gateway i przechowuje dane w zasobniku S3 z wybraną klasą pamięci na podstawie oryginalnej funkcji stat().

Dla każdego obiektu przechowywanego w zasobniku S3 przez „Amazon S3 File Gateway”, Amazon S3 przechowuje zestaw metadanych obiektów zdefiniowanych przez użytkownika, aby zachować oryginalny czas stat() plików źródłowych. Autorzy używają funkcji Lambda do odczytywania pierwotnego czasu stat() ze zdefiniowanych przez użytkownika pól metadanych w celu wywołania instancji API i przeniesienia obiektów do odpowiedniej klasy pamięci S3. W tym przykładzie klasy pamięci masowej Glacier Instant Retrieval (GIR) i Glacier Deep Archive (GDA) S3 zostały użyte do celów demonstracyjnych.

Ten diagram architektury prezentuje dwa różne przypadki użycia. Pierwszym przypadkiem użycia jest migracja danych z lokalnego serwera plików do zasobnika pamięci masowej Amazon S3 przy użyciu bramy Amazon S3 File Gateway. Drugi przypadek użycia polega na przyznaniu dostępu do obiektów przechowywanych w Amazon S3 za pośrednictwem interfejsu plików Amazon S3 File Gateway z lokalizacji miejscowej.

Migracja danych i oszczednosc kosztow na duza skale dzieki Amazon S3 File Gateway

Uwzględnione usługi

Rozwiązanie składa się z następujących głównych usług. Najpierw autorzy przedstawią ich kontekst. Następnie przeprowadzą Cię przez proces, w jaki te usługi tworzą całościowe rozwiązanie.

Robocopy

Robocopy umożliwia kopiowanie metadanych plików lokalnych podczas procesu kopiowania plików z serwera plików Microsoft Windows. Istnieje wiele metod, których można użyć do zachowania metadanych plików dla obiektów (plików) migrowanych do Amazon S3. Zaraz dowiesz się, jak uruchomić polecenie Robocopy, aby zademonstrować, jak zsynchronizować sygnaturę czasową pliku i metadane uprawnień ze źródła do udziału plików S3 File Gateway.

Amazon S3 File Gateway

S3 File Gateway to usługa AWS, która umożliwia migrację lokalnych danych plików do magazynu Amazon Simple Storage Service (S3) w AWS. Klienci używają Amazon S3 File Gateway do przechowywania i pobierania plików danych Server Message Block (SMB) i Network File Share (NFS) w postaci obiektów w magazynie Amazon S3. Po przesłaniu obiektów do magazynu S3 klienci mogą korzystać z wielu dostępnych funkcji. Niektóre z tych funkcji obejmują szyfrowanie, przechowywanie wersji i zarządzanie cyklem życia.

AWS Lambda

AWS Lambda to bezserwerowa, sterowana zdarzeniami usługa obliczeniowa, która umożliwia uruchamianie kodu bez konieczności udostępniania lub zarządzania serwerami. W tym rozwiązaniu AWS Lambda pomaga zautomatyzować przenoszenie plików do odpowiedniej klasy pamięci Amazon S3, wykorzystując głęboką integrację z Amazon S3.

Omówienie rozwiązania

Oryginalne dane znajdują się w lokalnej pamięci masowej NAS z dostępem do protokołu SMB lub NFS. Na potrzeby tego postu wraz z autorami przyjrzysz się przepływowi pracy rozwiązania. Wraz z nimi prześledzisz:

  1. Użycie Robocopy do kopiowania danych i zachowania oryginału
  2. Konfigurowanie Amazon S3 File Gateway i pamięć masową Amazon S3.
  3. Wykorzystanie AWS Lambda do automatyzacji zasad cyklu życia S3.

Użycie Robocopy do kopiowania danych i zachowania oryginału

Podczas kopiowania danych za pomocą narzędzia Robocopy do S3 File Gateway należy zadbać o zastosowanie odpowiednich technik zachowania metadanych. Dzięki temu oryginalny znacznik czasu pliku zostanie zachowany podczas kopiowania danych z lokalnych systemów NAS do S3 File Gateway i ostatecznie do Amazon S3. Musisz określić, czy chcesz skopiować metadane pliku podczas wykonywania kopii. Powinieneś użyć odpowiednich opcji w narzędziu Robocopy, aby skopiować metadane za pomocą Amazon S3 File Gateway. Więcej informacji możesz znaleźć w dokumentacji metadanych S3.

Oto przykład pokazujący, jak Robocopy działa w celu zachowania metadanych pliku źródłowego, które ostatecznie są przechowywane jako metadane użytkownika w obiekcie S3 za pomocą S3 File Gateway.

Gdzie:

  • /TIMEFIX = znacznik czasu synchronizacji
  • /E kopiuje podfoldery, w tym puste foldery
  • /SECFIX kopiuje uprawnienia NTFS
  • /V dla pełnego rejestrowania

Oto przykład, jak skopiować tylko uprawnienia i informacje ACL:

C:\> robocopy <source> <destination> /e /sec /secfix /COPY:ATSOU

Robocopy posiada opcję podglądu lub uruchomienia próbnego (/L), której można użyć, aby zobaczyć, jakie aktualizacje wprowadzi przed wykonaniem operacji. Warto zauważyć, że korzystanie z Robocopy może być powolne, ponieważ zależy to od liczby plików w każdym prefiksie, szybkości dysku głównego stacji roboczej klienta oraz tego, czy wersjonowanie Amazon S3 jest włączone i czy posiada znaczniki usunięcia. Aby uzyskać szczegółowe informacje, zapoznaj się z dokumentacją Robocopy.

Konfigurowanie Amazon S3 File Gateway i pamięć masową Amazon S3

Możesz zainstalować Amazon S3 File Gateway jako maszynę wirtualną w swoim środowisku lokalnym. Obsługuje VMware, Microsoft Hyper-V i Linux KVM lub działa jako dedykowane urządzenie sprzętowe. Kiedy Robocopy kopiuje pliki z serwera źródłowego do udziału plików w S3 File Gateway, przesyła pliki do magazynu S3 jako obiekty danych w AWS. Brama plików służy jako pamięć podręczna dla plików, do których użytkownicy muszą często uzyskiwać dostęp. Pliki, do których nie uzyskuje się dostępu lub które są rzadko używane, są pobierane z zasobnika Amazon S3 właśnie za pośrednictwem bramy plików.

Gdy pliki są kopiowane do udziału plików, dane są pobierane do usługi Amazon S3 w postaci obiektów. Oryginalne metadane tych plików są zachowywane/przechowywane w „metadanych użytkownika” obiektów S3. Podczas gdy każdy obiekt Amazon S3 będzie miał nowy czas utworzenia zgodnie z S3, interesuje Cię oryginalny parametr „mtime” przechowywany w „metadanych użytkownika”.

Po wstępnej migracji danych do pamięci masowej S3 można zaimplementować wiele funkcji S3 w celu dalszej optymalizacji kosztów i poprawy stanu bezpieczeństwa danych. Aby dokładniej zapoznać się z możliwościami File Gateway i Amazon S3, skorzystaj z tych linków do dokumentacji.

Wykorzystanie AWS Lambda do automatyzacji zasad cyklu życia S3.

Używając Amazon S3 File Gateway, każdy obiekt, który zostanie zapisany w Amazon S3 z wywołaniem PUT REST, które uruchamia funkcję AWS Lambda. Ta funkcja AWS Lambda odczytuje oryginalne znaczniki czasu plików z „metadanych użytkownika” obiektów S3. Funkcja oblicza parametr „mtime” (który jest przechowywany w formacie czasu systemu Unix) i stosuje regułę, aby wiedzieć, czy dane kwalifikują się do przydzielenia do innej klasy pamięci Amazon S3. Jeśli dane kwalifikują się do przeniesienia zgodnie ze zdefiniowanymi regułami, funkcja wykonuje akcję przeniesienia danych, jeśli to konieczne. W tym miejscu możesz zdefiniować swoje progi dla zasad cyklu życia S3, aby podzielić obiekty na różne klasy pamięci masowej.

Zapoznaj się z przykładowym kodem poniżej, którego możesz użyć do zbudowania rozwiązania. Możesz go zmieniać i modyfikować w razie potrzeby, aby spełniał Twoje wymagania.

import boto3

import json

import math

import numpy as np

bucket='demo-storagegateway'

s3 = boto3.client('s3')

from urllib.parse import unquote_plus

def lambda_handler(event, context):

sourcekey = event['Records'][0]['s3']['object']['key']

print ("sourcekey", sourcekey, unquote_plus(sourcekey))

 

response = s3.head_object(Bucket=bucket, Key=unquote_plus(sourcekey))

metadatareturn = response['Metadata']['file-mtime']

OriginalTime = np.timedelta64(metadatareturn[:-2].ljust(9, '0'),'ns')

print("metadata", metadatareturnint)

if (OriginalTime + np.timedelta64(3650, "D")) > np.timedelta64(365, "D"):

print("made it to file_key_name")

file_key_name = unquote_plus(sourcekey)

print(file_key_name)

print("made it to copy_source_object")

copy_source_object = {'Bucket': bucket, 'Key': file_key_name}

print(copy_source_object)

Testcopy=s3.copy_object(CopySource=copy_source_object, Bucket=bucket, Key=file_key_name, StorageClass='GLACIER') print("Testcopy", Testcopy)

Podsumowanie

Przy użyciu tego artykułu autorzy omówili, jak zachować oryginalne znaczniki czasu plików podczas początkowej fazy migracji, polegającej na przenoszeniu danych z lokalnego serwera plików do usługi Amazon S3 za pośrednictwem bramy plików S3. Dowiedziałeś się również, jak wykorzystać głęboką integrację AWS Lambda z Amazon S3, aby przenieść swoje pliki do tańszej pamięci w oparciu o określoną datę zdefiniowaną w twoim kodzie. Zaletą tego podejścia jest to, że żadne dane nie zostaną pominięte, a ponadto można przeprowadzić migrację i zachować wszystkie metadane w ekonomiczny sposób. To rozwiązanie służy nie tylko ścieżce migracji danych, ale także otwiera drzwi do Twojej podróży do chmury.

Wykorzystując AWS Storage Gateway, Amazon S3 i AWS Lambda, możesz przenieść swoje dane do trwałej, skalowalnej i wysoce dostępnej pamięci masowej w chmurze. Możesz skorzystać z pamięci masowej w chmurze hybrydowej, uzyskując dostęp do swoich danych lokalnie bez wprowadzania jakichkolwiek zmian w istniejącym środowisku. Umożliwia to wdrożenie funkcji natywnych dla chmury, aby uprościć zarządzanie danymi, zoptymalizować wartość danych i uzyskać oszczędności kosztów na dużą skalę.

Źródło: AWS

Case Studies
Referencje

Bardzo profesjonalne podejście, niesamowicie szybki czas reakcji i bardzo miła obsługa sprawiły, że na pewno podejmiemy jeszcze współpracę. 

Marcin Krzaczkowski
Założyciel Automa.Net
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.