Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Pierwszy prototyp obiektowych magazynów świat ujrzał w 1996 roku. Po 10 latach Amazon Web Services uruchomi Amazon S3, a świat zacznie stopniowo wariować z powodu płaskiej przestrzeni adresowej. Dzięki pracy z metadanymi i swojej możliwości skalowania, nie obciążając się, magazyny obiektowe szybko stały się standardem dla większości usług przechowywania danych w chmurze, a nie tylko. Inną ważną cechą jest ich dobra adaptacja do przechowywania archiwów i podobnych rzadko używanych plików. Wszyscy związani z przechowywaniem danych cieszyli się i nosili tę nową technologię na rękach.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Jednak wśród ludzi krążyły plotki, że magazyny obiektowe to tylko kwestia dużych chmur, a jeśli nie potrzebujesz rozwiązań od przeklętych kapitalistów, to stworzenie własnych będzie bardzo trudne. O wdrożeniu własnej chmury napisano już wiele, ale o stworzeniu tak zwanych rozwiązań zgodnych z S3 informacji jest mało.

Dlatego dzisiaj przyjrzymy się, jakie są opcje „Jak u dorosłych, a nie CEPH i większy pilnik”, rozwinemy jedną z nich, a sprawdzenie, czy wszystko działa, zrealizujemy za pomocą Veeam Backup & Replication. Zgłoszono w nim wsparcie dla pracy z przechowalniami kompatybilnymi z S3, i właśnie to stwierdzenie będziemy weryfikować.

A co u innych?

Zacznijmy od krótkiego przeglądu rynku i opcji magazynów obiektowych. Powszechnie uznawanym liderem i standardem jest Amazon S3. Dwa najbliżsi rywale to Microsoft Azure Blob Storage i IBM Cloud Object Storage.

Czy to wszystko? Czy nie ma innych konkurentów? Oczywiście, konkurenci istnieją, ale niektórzy idą swoją drogą, jak Google Cloud czy Oracle Cloud Object Storage, z niepełnym wsparciem dla API S3. Niektórzy korzystają z starszych wersji API, jak Baidu Cloud. A niektórzy, jak Hitachi Cloud, wymagają zastosowania szczególnej logiki, co na pewno wywoła swoje trudności. W każdym razie, wszystkich porównuje się do Amazona, który można uznać za standard przemysłowy.

A w rozwiązaniach on-premise wybór jest znacznie większy, więc oznaczmy ważne dla nas kryteria. W zasadzie wystarczą tylko dwa: wsparcie dla API S3 i korzystanie z podpisywania v4. Szczerze mówiąc, jako przyszłego klienta interesują nas tylko interfejsy do interakcji, a wewnętrzna kuchnia samego magazynu nie interesuje nas już tak bardzo.

Pod te proste warunki pasuje naprawdę wiele rozwiązań. Na przykład, klasyczne korporacyjne ciężary:

  • DellEMC ECS
  • NetApp S3 StorageGrid
  • Nutanix Buckets
  • Pure Storage FlashBlade i StorReduce
  • Huawei FusionStorage

Jest nisza czysto programowych rozwiązań, działających od razu:

  • Red Hat Ceph
  • SUSE Enterprise Storage
  • Cloudian

A nawet miłośnicy starannego dopracowywania po złożeniu nie zostali zlekceważeni:

  • CEPH w czystej postaci
  • Minio (wersja Linux, bo do wersji Windows jest wiele pytań)

Lista jest daleka od pełności, można ją omówić w komentarzach. Tylko nie zapominajcie przed wdrożeniem sprawdzić oprócz zgodności API także wydajność systemu. Ostatnią rzeczą, jakiej potrzebujecie, jest utrata terabajtów danych z powodu zawieszonych zapytań. Więc nie obawiajcie się testów obciążeniowych. Właściwie całe oprogramowanie dla dorosłych, które pracuje z dużymi ilościami danych, ma przynajmniej raporty o zgodności. W przypadku Veeam jest jest całym programem wzajemnych testów, pozwalającym z pełnym przekonaniem ogłaszać pełną zgodność naszych produktów z konkretnym sprzętem. To już dwustronna praca, nie zawsze szybka, ale nieustannie rozszerzamy lista przetestowane rozwiązania.

Zbieramy nasze stanowisko

Chciałbym trochę porozmawiać o wyborze obiektu badawczego.

Po pierwsze, chciałem znaleźć opcję, która od razu będzie działać z pudełka. Cóż, przynajmniej z maksymalnym prawdopodobieństwem, że zadziała bez potrzeby wykonywania zbędnych ruchów. Tańce z bębnem i grzebanie w konsoli w nocy są bardzo fascynujące, ale czasem chce się, żeby wszystko działało od razu. A ogólna niezawodność takich rozwiązań jest zazwyczaj wyższa. I tak, w nas minął duch awanturnictwa, przestaliśmy wspinać się przez okna do ukochanych kobiet itd. (s).

Po drugie, szczerze mówiąc, potrzeba pracy z obiektowymi składowiskami pojawia się w dość dużych firmach, więc to ten przypadek, kiedy spojrzenie w kierunku rozwiązań na poziomie enterprise nie tylko nie jest czymś wstydliwym, ale nawet jest pozytywnie postrzegane. Przynajmniej jak na razie nie znam przykładów, aby kogoś zwolnili za zakup takich rozwiązań.

Na podstawie powyższego, mój wybór padł na Dell EMC ECS Community Edition. To bardzo interesujący projekt i uważam, że warto o nim opowiedzieć.

Pierwsza myśl, która przychodzi mi do głowy przy widoku dodatku Community Edition — że to po prostu kalki z pełnoprawnego ECS z pewnymi ograniczeniami, które są usuwane po zakupie licencji. Otóż nie!

Zapamiętaj:

!!!Community Edition to osobny projekt stworzony do testowania, bez wsparcia technicznego od Dell!!
I nie można go przekształcić w pełnoprawny ECS, nawet jeśli bardzo by się chciało.

Zajmijmy się tym

Wielu uważa, że Dell EMC ECS to jedno z najlepszych rozwiązań, jeśli potrzebujesz obiektowego przechowywania. Wszystkie projekty pod marką ECS, w tym komercyjne i korporacyjne, opierają się na githubie. Taki gest dobrej woli od Dell. Oprócz oprogramowania, które działa na ich markowym sprzęcie, istnieje również wersja open source, którą można uruchomić zarówno w chmurze, na maszynie wirtualnej, w kontenerze, jak i na własnym sprzęcie. Idąc naprzód – jest nawet wersja OVA, z której skorzystamy.
Sam DELL ECS Community Edition to mini-wersja pełnoprawnego oprogramowania działającego na markowych serwerach Dell EMC ECS.

Wyróżniłem cztery główne różnice:

  • Brak wsparcia dla szyfrowania. Szkoda, ale nie krytyczne.
  • Brak warstwy Fabric. To narzędzie odpowiada za budowanie klastrów, zarządzanie zasobami, aktualizacje, monitorowanie oraz przechowywanie obrazów Docker. To już jest bardzo nieprzyjemne, ale można to zrozumieć ze strony Dell.
  • Najgorszą konsekwencją powyższego punktu jest to, że rozmiar węzła nie może być zwiększony po zakończeniu instalacji.
  • Brak wsparcia technicznego. To produkt do testowania, który można używać w małych instalacjach, ale osobiście nie zdecydowałbym się na przechowywanie petabajtów ważnych danych. Technicznie nikt ci w tym nie przeszkodzi.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

A co w dużej wersji?

Szybko przejrzymy rozwiązania sprzętowe, aby mieć pełniejsze wyobrażenie o ekosystemie.

Nie będę potwierdzać ani zaprzeczać stwierdzeniu, że DELL ECS to najlepsza lokalna obiektowa pamięć masowa, ale jeśli masz coś do powiedzenia na ten temat, chętnie przeczytam w komentarzach. W każdym razie według IDC MarketScape 2018 Dell EMC zdecydowanie wchodzi w pierwszą piątkę liderów rynku OBS. Choć nie uwzględnia się tam rozwiązań opartych na chmurze, ale to osobna sprawa.

Z technicznego punktu widzenia ECS to obiektowe przechowywanie danych, które zapewnia dostęp do danych przez protokoły chmurowego przechowywania. Obsługuje AWS S3 i OpenStack Swift. Dla zasobników z włączoną funkcjonalnością plików ECS wspiera NFSv3, co umożliwia eksport plików.

Proces zapisywania informacji jest dość nietypowy, szczególnie w porównaniu z klasycznymi systemami blokowego przechowywania.

  • Po pojawieniu się nowych danych tworzony jest nowy obiekt, który ma nazwę, same dane i metadane.
  • Obiekty dzielą się na fragmenty po 128 MB, a każdy fragment zapisywany jest jednocześnie na trzech węzłach.
  • Następuje aktualizacja pliku indeksu, w którym zapisane są identyfikatory i lokalizacje przechowywania.
  • Aktualizowany jest również plik dziennika (log zapisu), który również zapisywany jest na trzech węzłach.
  • Klient otrzymuje wiadomość o pomyślnym zapisaniu.
    Wszystkie trzy kopie danych zapisywane są równolegle. Zapis jest uważany za pomyślny tylko wtedy, gdy wszystkie trzy kopie zostały zapisane pomyślnie.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Czytanie odbywa się w sposób prostszy:

  • Klient żąda danych.
  • W indeksie szuka się miejsca przechowywania danych.
  • Dane są odczytywane z jednego węzła i wysyłane do klienta.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Samych serwerów jest całkiem dużo, więc przyjrzyjmy się najmniejszemu modelowi Dell EMC ECS EX300. Zaczyna się od 60 TB, z możliwościami rozbudowy do 1,5 PB. A jego starszy brat, Dell EMC ECS EX3000, pozwala już przechować aż 8,6 PB na szafę.

Wdrożenie

Technicznie Dell ECS CE można rozbudować na dowolną wielkość. W każdym razie, nie znalazłem żadnych wyraźnych ograniczeń. Jednak całe skalowanie najlepiej robić metodą klonowania pierwszego węzła, do którego potrzebne będą:

  • 8 vCPU
  • 64 GB RAM
  • 16 GB dla systemu operacyjnego
  • 1 TB bezpośrednio do przechowywania
  • Ostatnia wersja CentOS minimal

To opcja dla tych, którzy chcą wszystko instalować samodzielnie od podstaw. Dla nas ta opcja nie jest aktualna, ponieważ będę używać obrazu OVA do wdrożeń.

Jednak w każdym razie wymagania są dość surowe nawet dla jednego węzła, a jeśli ściśle przestrzegać litery prawa, to takich węzłów potrzeba cztery.

Jednak twórcy ECS CE żyją w realnym świecie i instalacja przebiega pomyślnie nawet z jednym węzłem, a minimalne wymagania są następujące:

  • 4 vCPU
  • 16 GB RAM
  • 16 GB dla systemu operacyjnego
  • 104 GB samego przechowywania

Dokładnie takie zasoby są potrzebne do wdrożenia obrazu OVA. Już znacznie bardziej rozsądnie i realistycznie.

Samą instalacyjną jednostkę można pobrać z oficjalnej strony. github. Znajdziesz tam również szczegółową dokumentację dotyczącą wdrożenia wszystkiego w jednym, ale możesz także przeczytać na oficjalnym readthedocs. Dlatego nie będziemy szczegółowo omawiać wdrożenia OVA, odbywa się to bez żadnych trików. Najważniejsze to nie zapomnieć przed uruchomieniem rozszerzyć dysk do odpowiedniego rozmiaru lub podłączyć potrzebne.
Uruchamiamy maszynę, otwieramy konsolę i używamy najlepszych domyślnych danych logowania:

  • login: admin
  • hasło: ChangeMe

Następnie uruchamiamy sudo nmtui i konfigurujemy interfejs sieciowy — IP/maska, DNS i brama. Pamiętając, że w CentOS minimal nie ma net-tools, sprawdzamy ustawienia przez ip addr.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

A ponieważ tylko odważni zdobywają morza, wykonujemy yum update, a następnie reboot. W rzeczywistości jest to dość bezpieczne, ponieważ wszystkie wdrożenia odbywają się za pośrednictwem playbooków, a wszystkie ważne pakiety dockera są zablokowane na bieżącej wersji.

Teraz nadszedł czas, aby edytować skrypt instalacyjny. Żadnych ładnych okienek ani pseudo UI — wszystko przez Twój ulubiony edytor tekstu. Technicznie istnieją dwa podejścia: można uruchamiać każdą komendę ręcznie lub od razu uruchomić konfigurator videploy. Po prostu otworzy on konfigurację w vim, a po wyjściu przeprowadzi jej sprawdzenie. Ale świadome ułatwianie sobie życia nie jest interesujące, dlatego wykonamy dwie dodatkowe komendy. Chociaż nie ma w tym sensu, ostrzegłem Cię =)

Zatem robimy vim ECS-CommunityEdition/deploy.xml i wprowadzamy optymalnie minimalne zmiany, aby ECS mogło działać. Listę parametrów można skrócić, ale zrobiłem to w ten sposób:

  • licensed_accepted: true Można tego nie zmieniać, wtedy podczas wdrożenia wyraźnie poproszą Cię o akceptację i pokażą miły komunikat. Może to być nawet taki mały żart.
    Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług
  • Odkomentować linijki autonames: i custom: Wprowadzić przynajmniej jedną pożądaną nazwę dla węzła — hostname zostanie zastąpiony nią w trakcie instalacji.
  • install_node: 192.168.1.1 Wprowadzić rzeczywisty IP węzła. W naszym przypadku wskazujemy ten sam, co w nmtui
  • dns_domain: wpisujemy naszą domenę.
  • dns_servers: wpisujemy swoje dns.
  • ntp_servers: można wskazać dowolny. Ja wziąłem pierwszy lepszy z puli 0.pool.ntp.org (nim stał się 91.216.168.42)
  • autonaming: custom Jeśli nie odkomentujesz, to księżyc będzie się nazywał Luna.
  • ecs_block_devices:
    /dev/sdb
    Z jakiegoś nieznanego powodu może tu się znaleźć nieistniejące urządzenie blokowe /dev/vda
  • storage_pools:
    members:
    192.168.1.1 Tutaj ponownie podajemy rzeczywisty IP węzła
  • ecs_block_devices:
    /dev/sdb Повторяем операцию вырезания несуществующих устройств.

Cały plik jest bardzo szczegółowo opisany w dokumentacji, ale kto będzie to czytał w tym niespokojnym czasie. Jest tam napisane, że minimalnie wystarczające to podanie adresu IP i maski, ale w moim laboratorium taki zestaw działał kiepsko i musiałem to rozszerzyć do podanego powyżej.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Po wyjściu z edytora musisz uruchomić update_deploy /home/admin/ECS-CommunityEdition/deploy.yml, a jeśli wszystko zostało zrobione poprawnie, zostanie to wyraźnie zgłoszone.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Następnie musisz uruchomić videploy, poczekać na aktualizację środowiska, a następnie można rozpocząć samą instalację poleceniem ova-step1, a po jej pomyślnym wykonaniu poleceniem ova-step2. Ważne: nie przerywaj pracy skryptów ręcznie! Niektóre kroki mogą zająć dużo czasu, nie udać się za pierwszym razem i wyglądać na złamane. W każdym przypadku należy poczekać na naturalne zakończenie skryptu. Na końcu powinieneś zobaczyć mniej więcej takie wiadomości.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Teraz w końcu możemy otworzyć panel sterowania WebUI pod znanym nam adresem IP. Jeśli na etapie konfiguracji nie zmieniałeś, domyślna nazwa użytkownika to root/ChangeMe. Można nawet od razu korzystać z naszego przechowywania zgodnego z S3. Jest dostępne na portach 9020 dla HTTP i 9021 dla HTTPS. Jeszcze raz, jeśli nic nie zmieniałeś, to access_key: object_admin1 i secret_key: ChangeMeChangeMeChangeMeChangeMeChangeMe.

Ale nie uprzedzajmy faktów i zacznijmy od początku.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Podczas pierwszego logowania zostaniesz zmuszony do zmiany hasła na bardziej odpowiednie, co jest absolutnie właściwe. Główny pulpit nawigacyjny jest całkowicie zrozumiały, więc zróbmy coś bardziej interesującego niż wyjaśnianie oczywistych metryk. Na przykład stwórzmy użytkownika, którego będziemy używać do dostępu do przechowywania. W świecie dostawców usług nazywają takich tenantami. Dzieje się to w Manage > Users > New Object User.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Podczas tworzenia użytkownika prosimy o wskazanie namespace. Technicznie nic nie stoi nam na przeszkodzie, aby stworzyć ich tyle, ile będzie użytkowników. I odwrotnie. Pozwala to na niezależne zarządzanie zasobami dla każdego tenanta.

W związku z tym wybieramy potrzebne funkcje i generujemy klucze użytkownika. Dla mnie wystarczające będą S3/Atmos. I nie zapomnij zapisać klucza 😉.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Użytkownik został stworzony, teraz pora przydzielić mu bucket. Przechodzimy do Manage > Bucket i wypełniamy wymagane pola. Tutaj wszystko jest proste.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Teraz mamy wszystko gotowe do pełnoprawnego korzystania z naszego przechowywania S3.

Konfigurujemy Veeam.

Jak pamiętamy, jednym z głównych zastosowań obiektowych magazynów jest długoterminowe przechowywanie informacji, do których rzadko się sięga. Idealnym przykładem jest potrzeba przechowywania kopii zapasowych w zdalnej lokalizacji. W Veeam Backup & Replication funkcja ta nazywa się Capacity Tier.

Zacznijmy konfigurację od dodania naszego Dell ECS CE w interfejsie Veeam. Na zakładce Backup Infrastructure uruchamiamy kreatora dodawania nowego repozytorium i wybieramy opcję Object Storage.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Wybieramy to, dla czego wszystko zostało zrobione — S3 Compatible.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

W pojawiającym się oknie wpisujemy pożądaną nazwę i przechodzimy do kroku Account. Tutaj należy podać Service point w postaci https://your_IP:9021, region można zostawić bez zmian, a następnie dodać utworzonego użytkownika. Serwer bramowy jest potrzebny, jeśli twoje magazyn znajduje się w zdalnej lokalizacji, ale to już temat optymalizacji infrastruktury i oddzielnego artykułu, więc tutaj można to śmiało pominąć.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Jeśli wszystko jest poprawnie określone i skonfigurowane, pojawi się ostrzeżenie o certyfikacie, a następnie okno z kubełkiem, w którym można stworzyć folder dla naszych plików.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Przechodzimy przez kreatora aż do końca i cieszymy się wynikiem.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Na następnym kroku należy albo stworzyć nowe Scale-out Backup Repository, albo dodać nasze S3 do istniejącego — będzie ono używane jako Capacity Tier do archiwalnego przechowywania. Funkcji używania magazynów zgodnych z S3 bezpośrednio, jak zwykłego repozytorium, w bieżącej wersji nie ma. Jest zbyt wiele dość nieznanych problemów, które trzeba rozwiązać, ale wszystko może się zdarzyć.
Wchodzimy w ustawienia repozytorium i włączamy Capacity Tier. Wszystko jest przejrzyste, ale jest jeden interesujący szczegół: jeśli chcesz, aby wszystkie dane były jak najszybciej wysyłane do obiektowego magazynu, po prostu ustaw 0 dni.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Po przejściu kreatora, jeśli nie chcesz czekać, możesz nacisnąć ctrl+PPM na repozytorium, wymusić uruchomienie Tiering job i obserwować, jak rosną wykresy.

Obiektowe przechowywanie w plecaku, czyli jak stać się samemu dostawcą usług

Na tym na razie wszystko. Uważam, że z zadaniem pokazania, że magazyny blokowe nie są tak straszne, jak mogłoby się wydawać, poradziłem sobie. Tak, istnieje mnóstwo rozwiązań i wariantów wykonania, ale w jednym artykule nie da się wszystkiego objąć. Dlatego dzielmy się doświadczeniami w komentarzach.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster