Azure Blob Storage vs File Storage

Microsoft oferuje kilka opcji przechowywania danych w chmurze. Każda z opcji ma swoje unikalne przeznaczenie do obsługi różnych potrzeb biznesowych. Jedną z istotnych możliwości, jakie zapewnia Microsoft Azure, jest możliwość migracji do różnych opcji przechowywania danych w razie potrzeby.

Na koncie Azure Storage dostępne są różne opcje przechowywania danych użytkownika.

  • Blob Storage
  • File Storage
  • Table Storage
  • Queue Storage
  • Disk

Ten blog próbuje rozróżnić pomiędzy Azure Blob Storage i File Storage, które są dostępne w Azure Storage Account.

Wprowadzenie

Blob Storage

Azure Blob Storage to rozwiązanie do przechowywania obiektów w chmurze. Blob Storage pozwala na przechowywanie ogromnej ilości nieustrukturyzowanych danych. Dane nieustrukturyzowane nie muszą mieć określonego modelu danych.

File Storage

Azure Files oferuje w pełni zarządzane udziały w plikach w chmurze, które są dostępne za pośrednictwem standardu przemysłowego SMB. Udziały plików Azure mogą być montowane jednocześnie w chmurze lub w siedzibie firmy we wdrożeniach systemów Windows, Linux i macOS. Można je buforować na serwerach Windows za pomocą usługi Azure File Sync w celu uzyskania szybszego dostępu.

Kiedy używać

Przechowalnia plików

Przechowalnia plików Azure Blob Storage została zaprojektowana w celu zaspokojenia określonych potrzeb. Jeśli Twój biznesowy przypadek użycia wymaga przechowywania nieustrukturyzowanych danych, takich jak audio, wideo, obrazy, itp. to prawdopodobnie powinieneś wybrać tę opcję. Obiekty, które są przechowywane w Blob nie muszą mieć rozszerzenia.

Następujące punkty opisują scenariusze przypadków użycia:

  • Serwisowanie obrazów lub dokumentów bezpośrednio do przeglądarki
  • Przechowywanie plików dla dostępu rozproszonego
  • Streaming video i audio
  • Zapisywanie do log Files
  • Przechowywanie danych dla backupu, przywracania, przywracania, odzyskiwania po awarii i archiwizacji
  • Przechowywanie danych do analizy w ramach usługi on-premises lub Azure-hosted

Przechowywanie plików

Przechowywanie plików może być używane, jeśli Twój przypadek użycia biznesowego wymaga zajmowania się głównie standardowymi rozszerzeniami plików, takimi jak *.docx, *.png i *.bak to prawdopodobnie powinieneś wybrać tę opcję przechowywania.

Następujące punkty opisują scenariusze przypadków użycia:

  • Zastąpić lub uzupełnić serwery plików w siedzibie firmy
  • „Podnieś i przenieś” aplikacje
  • Uprościć rozwój chmury

Bezpłatnie pobierz ten blog jako dokument PDF do czytania w trybie offline.

Scenariusz w czasie rzeczywistym

Rozważmy scenariusz w środowisku programistycznym, w którym każdy programista potrzebuje dostępu do IDE i narzędzi bez korzystania z Internetu, aby je pobrać. W tej sytuacji, Azure Blob Storage spełniłby potrzebę i używając którego można tylko przechowywać narzędzia rozwojowe, a następnie dać link do zespołu, aby uzyskać dostęp do lokalizacji Blob.

Do wdrożenia serwera plików w organizacji, należy wybrać opcję Azure Files. Serwer plików jest używany do współdzielenia plików między działami w organizacji. Jeśli chodzi o udostępnianie plików, użytkownik końcowy nie powinien mieć dostępu do kopii pliku z jego URI i musi być zmapowany lokalnie w komputerach. To jest, kiedy Azure File Storage pasuje do twoich potrzeb.

Wysyłanie dużych plików

Powszechnym podejściem używanym do wysyłania dużych plików jest dzielenie ich na kawałki. Dzielenie nie jest tylko funkcją do przesyłania plików, ale kawałki muszą być połączone w jeden plik po zakończeniu przesyłania.

Dla powyższego zadania, która opcja będzie dobrym rozwiązaniem? Azure Blob lub File Storage?

Odpowiedzią jest Azure Blob Storage. Chociaż ten scenariusz dotyczy plików, Azure Blob Storage jest dobrym rozwiązaniem ze względu na swoje możliwości dostępne z półki.

Azure Blob Storage zawiera trzy typy blobów: Block, Page i Append. Blok jest pojedynczą jednostką w Blobie. Blob może zawierać wiele bloków, ale nie więcej niż 50,000 bloków na Blob. Oznacza to, że możesz podzielić Bloba na 50,000 bloków, aby przesłać je do magazynu Azure Blobs. Minimalny rozmiar bloku to 64KB, a maksymalny to 100 MB. Jeśli spojrzysz na (na przykład bibliotekę .NET), jednym z obiektów jest BlockBlob, który jest częścią klasy CloudBlockBlob. Ta klasa oferuje mnóstwo rzeczy do pracy z Block Blob.

Na przykład, właściwość StreamWriteSizeInBytes pozwala ustawić rozmiar Block Blob, który może być dobry do obsługi niestabilnej prędkości sieci. Każdy blok Blob posiada również metadane, które pozwalają na indywidualną kontrolę. Na przykład, jeśli chcesz się upewnić, że wszystkie bloki są pomyślnie przekazane do danego Bloba, możesz użyć Content-MD5.

Azure File Storage nie ma tej możliwości out-of-the-box. Jeśli potrzebujesz podzielić plik, musisz znaleźć metodę pośrednią, taką jak klasa FileStream lub skorzystać z usług innych producentów.

Opcje monitorowania dostępne dla Blob Storage i File Storage

Azure Portal

Po skonfigurowaniu żądanego konta pamięci masowej do opcji Diagnostyka w sekcji Monitorowanie, będziesz mógł zdefiniować typ danych metrycznych, które chcesz monitorować oraz politykę retencji danych.

Domyślny zestaw metryk jest wyświetlany w postaci wykresów na panelu konta pamięci masowej, jak również na poszczególnych panelach usług (Bloby i Pliki). Po włączeniu metryk dla usługi może upłynąć do godziny, zanim dane pojawią się na jej wykresach. Możesz wybrać opcję Edytuj na dowolnym wykresie metryki, aby skonfigurować, które metryki mają być wyświetlane na wykresie.

Opcja monitorowania pamięci masowej portalu Azure

Serverless360 (produkt z półki)

Możliwe jest monitorowanie zarówno Blobów pamięci masowej, jak i Plików pamięci masowej w monitorze Status lub Threshold. Status Monitor generuje raport o określonych porach dnia przedstawiający stan encji w stosunku do pożądanych wartości. Threshold Monitor generuje raport gdy pewne właściwości naruszają pożądane wartości przez określony czas. Głównie, Serverless360 monitoruje Bloby i Pliki w oparciu o ich właściwości, a nie metryki, w przeciwieństwie do Azure Portal.

Entity Type Właściwości, które mogą być monitorowane
Storage Blob Lease State, Blob Count, Blob Size (Bytes), Block Blob Count, Block Blob Size (Bytes), Page Blob Count, Page Blob Size (Bytes), Append Blob Count, Append Blob Size (Bytes)
Storage File Usage (Bytes)

Poniższy obraz przedstawia konfigurację Blob w Status Monitor aplikacji Serverless360.

Sl360 blob status monitor

Poniżej znajduje się szczegół błędu wygenerowany, jeśli błąd utrzymuje się przez żądany okres.

Sl360 blob error details

Scalability

Ważne jest, aby znać kwoty i limity Azure Storage, aby wybrać właściwą opcję. Najwyższym poziomem reprezentacji dla pojemności w Azure Blob Storage są Kontenery, natomiast dla Plików – Udziały.

.

Azure Blobs Resource Target
Max size of single Blob container 500 TB
Max number of blocks in a block Blob or append Blob 50,000 bloków
Maksymalny rozmiar bloku w bloku Blob 100 MB
Maksymalny rozmiar bloku Blob 50 000 X 100 MB (ok. 4,75 TB)
Max size of a block in an append Blob 4 MB
Max size of an append Blob 50 000 x 4 MB (ok. 195 GB)
Max rozmiar strony Blob 8 TB
Max liczba przechowywanych polityk dostępu na kontener Blob 5
Azure Files Resource Target
Maks. rozmiar udziału pliku 5 TB
Maks. rozmiar pliku w udziale pliku 1 TB
Max liczba plików w udziale pliku Bez ograniczeń
Max IOPS na udział 1000 IOPS
Maks. liczba przechowywanych polityk dostępu na udział w pliku 5
Maks. szybkość żądań na konto pamięci masowej 20,000 żądań na sekundę dla plików o dowolnym prawidłowym rozmiarze
Docelowa przepustowość dla pojedynczego udziału w pliku Do 60 MB na sekundę
Maksymalna liczba otwartych uchwytów dla jednego pliku 2000 otwartych uchwytów
Maksymalna liczba otwartych uchwytów dla jednego pliku
Maksymalna liczba migawek udostępnionych 200 migawek udostępnionych

Bezpieczeństwo

Szyfrowanie usługi Azure Storage Blob i Files Storage Service, ponieważ wchodzą one w zakres poziomu konta Azure Storage Account. Kiedy aplikacja zapisuje/odczytuje nowy Blob/Plik, są one szyfrowane 256-bitowym algorytmem AES (Advanced Encryption Standard). W przypadku wywołania przez REST API, zarówno Azure Blobs jak i Azure Files są obsługiwane poprzez włączenie Secure Required Transfer.

Zarówno Azure Blobs, jak i Azure Files wymagają Shared Access Signature (SAS), aby uzyskać delegowany dostęp do Blobów i Plików. Oprócz autoryzacji, oba są obsługiwane przez Azure AD i współdzielony token dostępu.

Azure Blobs pozwalają osiągnąć szyfrowanie przez klasę BlobEncryptionPolicy z Azure Key Vault. Pliki Azure Files wykorzystują szyfrowanie wbudowane w protokół SMB 3.0. Ponadto, zarówno Azure Blobs jak i Azure Files wspierają regułę CORS (Cross-Origin Resource Sharing). CORS pozwala na opisanie białej listy dla żądania nagłówka HTTP.

Jeśli chodzi o bezpieczeństwo sieci, masz większą kontrolę nad przychodzącym ruchem sieciowym zarówno do Azure Blobs, jak i Azure Files. Pozwala on tylko na określony zakres IP i sieci wirtualnych, aby uzyskać do nich dostęp.

Odzyskiwanie danych po katastrofie

Kopia zapasowa danych jest istotna dla każdego przedsiębiorstwa, w którym dane są uważane za krew ich organizacji. Niestety, odzyskiwanie i kopie zapasowe Azure nie mają automatyzacji do tworzenia kopii zapasowych danych bezpośrednio z Blob i File Storage. Aby obsłużyć, dane mogą być pobierane w dół do infrastruktury on-premises lub utworzyć nowe konto pamięci masowej w innym regionie do przechowywania danych.

Azure Blobs: Użyj Copy Blob, aby asynchronicznie skopiować swój Blob do docelowego konta Storage Account.

Azure Files: Użyj Kopiuj plik do asynchronicznego kopiowania udziału pliku do docelowego konta pamięci masowej.

Ceny

Opisane tu ceny są oparte na dokumentacji Microsoft

Ceny przechowywania danych

Poniżej podano ceny przechowywania danych w Azure File i Blob Storage

Blob Storage PREMIUM HOT COOL ARCHIVE
Pierwsze 50 terabajtów (TB) / miesiąc $0.18 per GB $0.022 per GB $0.01 per GB $0.00099 per GB
Następne 450 TB / miesiąc $0.18 per GB $0.0212 per GB $0.01 per GB $0.00099 per GB
Over 500 TB / Month $0.18 per GB $0.0203 per GB $0.01 per GB $0.00099 per GB
File Storage STANDARD
GB/miesiąc $0.06 za każdy wykorzystany GB
Snapshoty GB/miesiąc $0.06 per used GB

Ceny operacji i transferu danych

Poniżej podano ceny operacji i transferu danych w Azure File and Blob Storage

.

Blob Storage PREMIUM HOT COOL ARCHIVE
Operacje zapisu (za 10,000)1 $0.021 $0.05 $0.10 $0.11
List and Create Container Operations (per 10,000)2 $0.06 $0.05 $0.05 $0.05
Operacje odczytu (na 10 000)3
Odczyt o wysokim priorytecie archiwizacji (na 10 000)5
$0.0017 $0.004 $0.01 $5.50
$30
Wszystkie pozostałe Operacje (na 10 000), z wyjątkiem Usuń, które jest darmowe $0.0017 $0.004 $0.004 $0.004
Odzyskiwanie danych (za GB)4
Odzyskiwanie archiwów o wysokim priorytecie (za GB)5
Darmowe Darmowe $0.01 $0.022
$0.06
Zapis danych (na GB)4 Darmowy Darmowy $0.0025 Darmowe
Przechowywanie plików STANDARD
Operacje na kontenerach (na 10 000) $0.015
List Operations (per 10,000) $0.015
Wszystkie inne operacje z wyjątkiem Delete, które jest darmowe (per 10,000) $0.0015
Geo-Replication Data Transfer (per GiB) N/A

Wrap Up

W rewolucji cyfrowej transformacji, aplikacje są modernizowane i wymaga to wielkoskalowego wzorca nie tylko w warstwie aplikacji, ale także w warstwie danych, do której moim zdaniem Azure Files nie pasuje. Azure Files byłby nadal dobry, jeśli aplikacja jest obsługiwana dla określonej grupy odbiorców.

Prawdopodobnie istnieją indywidualne aspekty, które należy rozważyć przed podjęciem decyzji o wyborze najlepszej opcji pomiędzy Azure Blob Storage i Files. Biorąc pod uwagę wspólne funkcjonalności, wolałbym raczej Azure Blob Storage niż Files.

Autor: Nadeem Ahamed

Nadeem jest Technical Product Marketerem w Serverless360. Pasjonuje się blogowaniem na temat najnowszych technologii. Wierzy, że blogi są najlepszym sposobem na dzielenie się wiedzą wśród społeczności, a jego pasja do pisania nigdy się nie skończy, aż do ostatniego dnia oddechu. Zawsze wierzy w sentencję „Looks so Good on the Outside, It’ll Make You Feel Good Inside”.View all posts by Nadeem Ahamed