Pierwszy prototyp obiektowej pamięci masowej świat ujrzał w 1996 roku. Za 10 lat Amazon Web Services uruchomi Amazon S3, a świat zacznie stopniowo oszaleć na punkcie płaskiej przestrzeni adresowej. Dzięki możliwości obsługi metadanych i skalowalności bez spadku wydajności pod wpływem obciążenia, przechowywanie obiektów szybko stało się standardem dla większości usług przechowywania danych w chmurze i nie tylko. Kolejną ważną cechą jest to, że doskonale nadaje się do przechowywania archiwów i podobnych, rzadko używanych plików. Wszyscy zaangażowani w przechowywanie danych byli zachwyceni i nosili w rękach nową technologię.

Jednak w młynie plotek roiło się od plotek, że przechowywanie obiektów jest przeznaczone jedynie dla dużych chmur, a jeśli nie potrzebujesz rozwiązań od przeklętych kapitalistów, to stworzenie własnego będzie bardzo trudne. Wiele już napisano na temat wdrażania własnej chmury, ale niewiele jest informacji na temat tworzenia tzw. rozwiązań zgodnych z S3.
Dzisiaj sprawdzimy, jakie są opcje dla „Jak dorośli, nie CEPH i większy plik”, wdrożymy jedną z nich i sprawdzimy, czy wszystko działa przy użyciu Veeam Backup & Replication. Twierdzi, że obsługuje pracę z pamięcią masową zgodną ze standardem S3. Będziemy sprawdzać to oświadczenie.
A co z innymi?
Proponuję zacząć od krótkiego przeglądu rynku i opcji w zakresie przechowywania obiektów. Za powszechnie uznawany lider i standard uznaje się Amazon S3. Dwoma największymi konkurentami są Microsoft Azure Blob Storage i IBM Cloud Object Storage.
Czy to wszystko? Czy naprawdę nie ma innych konkurentów? Oczywiście istnieją konkurenci, ale niektórzy idą własną drogą, jak Google Cloud czy Oracle Cloud Object Storage, które nie oferują pełnego wsparcia dla interfejsu API S3. Niektórzy używają starszych wersji API, np. Baidu Cloud. Niektóre z nich, jak np. Hitachi Cloud, wymagają zastosowania specjalnej logiki, co z pewnością będzie wiązało się z własnymi trudnościami. W każdym razie wszyscy są porównywani do Amazona, co można uznać za standard branżowy.
Jednak w rozwiązaniach lokalnych wybór jest znacznie większy, dlatego określmy kryteria, które są dla nas ważne. W zasadzie wystarczą dwa: obsługa interfejsu API S3 i użycie podpisywania v4. Szczerze mówiąc, jako przyszli klienci interesują nas wyłącznie interfejsy do interakcji, a wewnętrzne działanie samego magazynu nie interesuje nas aż tak bardzo.
Istnieje wiele rozwiązań spełniających te proste warunki. Na przykład klasyczne korporacyjne wagi ciężkie:
- DellEMC ECS
- NetApp S3 StorageGrid
- Wiadra Nutanix
- Pure Storage FlashBlade i StorReduce
- Pamięć masowa Huawei Fusion
Istnieje nisza rozwiązań czysto programistycznych, które działają od razu:
- Czerwony kapelusz Ceph
- Pamięć masowa SUSE Enterprise
- Cloudian
I nawet ci, którzy lubią dokładnie wszystko po montażu składać, nie obrazili się:
- CEPH w czystej postaci
- Minio (Linux wersja, ponieważ do Windows Jest wiele pytań odnośnie tej wersji)
Lista jest jeszcze niekompletna, możecie ją omówić w komentarzach. Przed wdrożeniem nie zapomnij sprawdzić wydajności systemu i zgodności z API. Najgorsza rzecz, jakiej możesz potrzebować, to utrata terabajtów danych z powodu zawieszonych zapytań. Dlatego nie krępuj się przeprowadzać testów obciążeniowych. Ogólnie rzecz biorąc, każde oprogramowanie dla dorosłych, które przetwarza duże ilości danych, ma przynajmniej raporty zgodności. W przypadku Veeam jest do wzajemnego testowania, co pozwala nam z przekonaniem deklarować pełną kompatybilność naszych produktów z konkretnym sprzętem. To już jest praca dwustronna, nie zawsze szybka, ale stale się rozwijamy sprawdzone rozwiązania.
Montaż naszego stoiska
Chciałbym powiedzieć parę słów na temat wyboru tematu testu.
Po pierwsze chciałem znaleźć opcję, która będzie działać od razu. No, albo przynajmniej z maksymalnym prawdopodobieństwem, że zadziała bez konieczności wykonywania jakichkolwiek zbędnych ruchów. Tańczenie z tamburynem i grzebanie w konsoli nocą to świetna zabawa, ale czasem chcesz, żeby wszystko działało od razu. A ogólna niezawodność takich rozwiązań jest zazwyczaj wyższa. I tak, straciliśmy ducha przygody, przestaliśmy włazić do okien naszych ukochanych kobiet itd. (c).
Po drugie, szczerze mówiąc, potrzeba pracy z pamięcią masową obiektów pojawia się w stosunkowo dużych firmach, więc w takich przypadkach poszukiwanie rozwiązań na poziomie korporacyjnym nie tylko nie jest czymś wstydliwym, ale wręcz zalecanym. W każdym razie nie znam żadnego przypadku, aby kogokolwiek zwolniono za zakup takich rozwiązań.
Na podstawie powyższych informacji mój wybór padł na Dell EMC ECS Wersja społecznościowa. To bardzo ciekawy projekt i myślę, że warto o nim opowiedzieć.
Pierwsza rzecz, która przychodzi na myśl, gdy widzisz ten dodatek Wydanie wspólnotowe — że jest to po prostu kopia pełnoprawnego systemu ECS z pewnymi ograniczeniami, które można usunąć poprzez zakup licencji. Cóż, nie!
Pamiętaj:
!!!Community Edition to osobny projekt stworzony w celach testowych i nie wymagający wsparcia technicznego ze strony firmy Dell!!
I nie da się go przekształcić w pełnoprawny ECS, nawet jeśli bardzo byś chciał.
Rozwiążmy to
Wielu uważa, że Dell EMC ECS to jedno z najlepszych rozwiązań, jeśli potrzebujesz pamięci masowej obiektów. Wszystkie projekty realizowane pod marką ECS, zarówno komercyjne, jak i korporacyjne, opierają się na . Rodzaj gestu dobrej woli ze strony firmy Dell. Oprócz oprogramowania działającego na sprzęcie danej marki dostępna jest także wersja open source, którą można wdrożyć w chmurze, na maszynie wirtualnej, w kontenerze lub na dowolnym własnym sprzęcie. Patrząc w przyszłość, istnieje nawet wersja OVA, z której skorzystamy.
DELL ECS Community Edition to miniaturowa wersja pełnoprawnego oprogramowania działająca na serwerach marki Dell EMC ECS.
Zidentyfikowałem cztery główne różnice:
- Brak obsługi szyfrowania. To wstyd, ale nie jest to krytyka.
- Brakuje warstwy tkaniny. Ta rzecz jest odpowiedzialna za budowanie klastrów, zarządzanie zasobami, aktualizacje, monitorowanie i przechowywanie obrazów Docker. To jest rzeczywiście wstyd, ale Della też można zrozumieć.
- Najbardziej irytującą konsekwencją poprzedniego punktu jest to, że rozmiaru węzła nie można zwiększyć po zakończeniu instalacji.
- Brak wsparcia technicznego. Jest to produkt do testów, którego nie zabrania się używać w małych instalacjach, ale osobiście nie odważyłbym się tam wgrać petabajtów ważnych danych. Ale technicznie rzecz biorąc, nikt nie może ci tego zabronić.

A co z większą wersją?
Przyjrzyjmy się rozwiązaniom sprzętowym w Europie, aby uzyskać pełniejszy obraz ekosystemu.
Nie potwierdzę ani nie zaprzeczę stwierdzeniu, że DELL ECS to najlepsze lokalne rozwiązanie do obiektowej pamięci masowej, ale jeśli masz coś do powiedzenia na ten temat, chętnie przeczytam Twoje uwagi w komentarzach. Przynajmniej według wersji Dell EMC z pewnością należy do pierwszej piątki liderów rynku OBS. Choć rozwiązania oparte na chmurze nie są tam brane pod uwagę, to jest to temat na osobną dyskusję.
Technicznie rzecz biorąc, ECS jest obiektową pamięcią masową zapewniającą dostęp do danych za pośrednictwem protokołów przechowywania w chmurze. Obsługuje AWS S3 i OpenStack Swift. W przypadku kontenerów obsługujących pliki, ECS obsługuje protokół NFSv3, co pozwala na eksportowanie poszczególnych plików.
Proces zapisywania informacji jest dość nietypowy, zwłaszcza w porównaniu z klasycznymi systemami pamięci blokowej.
- Gdy pojawiają się nowe dane, tworzony jest nowy obiekt, który ma nazwę, same dane i metadane.
- Obiekty dzielone są na fragmenty o rozmiarze 128 MB, a każdy fragment zapisywany jest na trzech węzłach jednocześnie.
- Plik indeksu, w którym przechowywane są identyfikatory i lokalizacje przechowywania, jest aktualizowany.
- Plik dziennika jest aktualizowany i zapisywany na trzech węzłach.
- Klient otrzymuje wiadomość o pomyślnym zakończeniu nagrywania.
Wszystkie trzy kopie danych są zapisywane równolegle. Nagranie uważa się za udane wyłącznie w przypadku, gdy wszystkie trzy kopie zostały nagrane prawidłowo.

Czytanie jest prostsze:
- Klient żąda danych.
- Przeszukiwany jest indeks w celu znalezienia lokalizacji, w której przechowywane są dane.
- Dane są odczytywane z jednego węzła i wysyłane do klienta.

Serwerów jest całkiem sporo, przyjrzyjmy się więc najmniejszemu Dell EMC ECS EX300. Pojemność zaczyna się od 60 TB, z możliwością zwiększenia do 1,5 PB. Jego starszy brat, Dell EMC ECS EX3000, umożliwia przechowywanie do 8,6 PB na szafę.
Wdrożyć
Technicznie rzecz biorąc, rozwiązanie Dell ECS CE można wdrożyć na dowolną skalę. W każdym razie nie znalazłem żadnych wyraźnych ograniczeń. Jednak najwygodniej jest wykonać całe skalowanie poprzez klonowanie pierwszego węzła, do czego będziemy potrzebować:
- 8 procesor wirtualny
- RAM 64GB
- 16 GB na system operacyjny
- 1TB bezpośrednio do przechowywania
- Najnowsze wydanie CentOS minimalny
Jest to opcja dla osób, które chcą zainstalować wszystko samodzielnie, od podstaw. Ta opcja nie będzie dla nas odpowiednia, ponieważ do wdrożenia użyję obrazu OVA.
Ale w każdym przypadku wymagania są dość surowe nawet dla jednego węzła, a jeśli ściśle przestrzegamy litery prawa, to potrzebnych jest cztery takie węzły.
Jednak twórcy ECS CE żyją w realnym świecie, a instalacja kończy się sukcesem nawet na jednym węźle, przy czym minimalne wymagania są następujące:
- 4 procesor wirtualny
- 16 GB RAM
- 16 GB na system operacyjny
- Sama pamięć masowa 104 GB
Oto zasoby niezbędne do wdrożenia obrazu OVA. Już o wiele bardziej humanitarne i realistyczne.
Sam węzeł instalacyjny można pobrać z oficjalnej strony . Dostępna jest również szczegółowa dokumentacja dotycząca wdrażania rozwiązań typu „wszystko w jednym”, ale można ją również przeczytać na oficjalnej stronie internetowej . Dlatego nie będziemy się rozwodzić nad rozwojem OVA; nie ma tu żadnych sztuczek. Najważniejsze jest to, aby przed uruchomieniem nie zapomnieć o rozszerzeniu dysku do wymaganej objętości lub podłączeniu niezbędnych urządzeń.
Uruchamiamy maszynę, otwieramy konsolę i korzystamy z najlepszych domyślnych kredytów:
- logowanie: admin
- hasło: ChangeMe
Następnie uruchamiamy sudo nmtui i konfigurujemy interfejs sieciowy – adres IP/maskę, DNS i bramę. Pamiętając, że w CentOS minimalne, brak narzędzi sieciowych, sprawdź ustawienia poprzez adres IP.

A ponieważ tylko odważni podbijają morza, wykonujemy yum update, a następnie restartujemy. To rozwiązanie jest całkiem bezpieczne, ponieważ wszystkie wdrożenia odbywają się za pośrednictwem podręczników, a wszystkie ważne pakiety Dockera są zablokowane w bieżącej wersji.
Teraz czas na edycję skryptu instalacyjnego. Żadnych wymyślnych okien ani pseudointerfejsu użytkownika – wszystko odbywa się za pośrednictwem Twojego ulubionego edytora tekstu. Technicznie rzecz biorąc, istnieją dwa sposoby: możesz uruchomić każde polecenie ręcznie lub od razu uruchomić konfigurator wdrażania wideo. Spowoduje to po prostu otwarcie pliku konfiguracyjnego w programie vim i uruchomienie sprawdzenia przy wyjściu. Ale nie ma sensu świadomie upraszczać sobie życia, więc wydajmy jeszcze dwa polecenia. Choć nie ma w tym sensu, ostrzegałem =)
Więc piszemy plik vim ECS-CommunityEdition/deploy.xml i dokonujemy minimalnych, optymalnych zmian, aby ECS było włączone i działało. Listę parametrów można skrócić, ale ja zrobiłem to tak:
- licensed_accepted: true Nie musisz tego zmieniać, ale podczas wdrażania zostaniesz wyraźnie poproszony o zaakceptowanie zmiany i wyświetlony zostanie miły komunikat. Możliwe, że to nawet jest ukryte znaczenie.

- Odkomentuj wiersze autonames: i custom: Wprowadź co najmniej jedną żądaną nazwę węzła — nazwa hosta zostanie nią zastąpiona podczas procesu instalacji.
- install_node: 192.168.1.1 Określ rzeczywisty adres IP węzła. W naszym przypadku podajemy to samo co w nmtui
- dns_domain: wprowadź swoją domenę.
- dns_servers: wprowadź swój adres DNS.
- ntp_servers: możesz określić dowolny. Wybrałem pierwszy, na jaki trafiłem, z puli 0.pool.ntp.org (był to 91.216.168.42)
- autonaming: niestandardowy Jeśli nie odkomentujesz, księżyc będzie nazywał się Luna.
- Urządzenia_blokowe_ecs:
/ dev / sdb
Z nieznanego powodu może tu nie być urządzenia pamięci masowej /dev/vda - pule_magazynowe:
Członkowie:
192.168.1.1 Tutaj ponownie podajemy rzeczywisty adres IP węzła - Urządzenia_blokowe_ecs:
/dev/sdb Powtórz operację wycinania nieistniejących urządzeń.
Ogólnie rzecz biorąc, cały plik jest opisany bardzo szczegółowo w , ale kto to przeczyta w tak niespokojnych czasach. Jest tam również napisane, że wymagane minimum to podanie adresu IP i maski, ale w moim laboratorium trudno było skonfigurować ten zestaw i musiałem go rozszerzyć do podanego powyżej.

Po wyjściu z edytora należy uruchomić polecenie update_deploy /home/admin/ECS-CommunityEdition/deploy.yml. Jeśli wszystko zostanie wykonane poprawnie, zostanie to wyraźnie odnotowane.

Następnie nadal musisz uruchomić videploy, zaczekać na aktualizację środowiska, po czym możesz uruchomić samą instalację za pomocą polecenia ova-step1 i po jego pomyślnym wykonaniu poleceniem ova-step2. Ważne: nie zatrzymuj skryptów ręcznie! Niektóre czynności mogą zająć dużo czasu, mogą nie zadziałać od razu i może się wydawać, że wszystko jest zepsute. W każdym razie musisz poczekać, aż skrypt zakończy się naturalnie. Na końcu powinieneś zobaczyć komunikat podobny do tego.

Teraz możemy w końcu otworzyć panel sterowania WebUI używając znanego nam adresu IP. Jeżeli na etapie konfiguracji nic nie zmieniłeś, domyślnym kontem będzie root/ChangeMe. Możesz od razu zacząć korzystać z naszej pamięci masowej zgodnej ze standardem S3. Jest dostępny na portach 9020 dla protokołu HTTP i 9021 dla protokołu HTTPS. Ponownie, jeśli nic nie zostało zmienione, wówczas access_key: object_admin1 i secret_key: ChangeMeChangeMeChangeMeChangeMe.
Ale nie wybiegajmy za daleko w przyszłość i zacznijmy od początku.

Kiedy zalogujesz się po raz pierwszy, będziesz zmuszony zmienić hasło na właściwe i całkowicie poprawne. Główny panel jest dość przejrzysty, więc zajmijmy się czymś ciekawszym niż wyjaśnianie oczywistych wskaźników. Na przykład utwórzmy użytkownika, który będzie miał dostęp do magazynu. W świecie dostawców usług nazywa się je najemcami. Można to zrobić w Zarządzaj > Użytkownicy > Nowy użytkownik obiektu

Podczas tworzenia użytkownika zostaniemy poproszeni o podanie przestrzeni nazw. Technicznie rzecz biorąc, nic nie stoi na przeszkodzie, aby stworzyć ich tyle, ilu jest użytkowników. I odwrotnie. Dzięki temu zasoby mogą być zarządzane niezależnie przez każdego najemcę.
Następnie wybieramy potrzebne nam funkcje i generujemy klucze użytkownika. S3/Atmos w zupełności mi wystarczy. I nie zapomnij zapisać klucza 😉

Użytkownik został utworzony, teraz czas przydzielić mu kontener. Przejdź do Zarządzaj > Zasobnik i wypełnij wymagane pola. Tutaj wszystko jest proste.

Teraz mamy wszystko gotowe do pełnowymiarowego wykorzystania bojowego naszego magazynu S3.
Konfigurowanie Veeam
Jak zatem pamiętamy, jednym z głównych zastosowań pamięci obiektowej jest długoterminowe przechowywanie informacji, do których dostęp jest rzadko uzyskiwany. Idealnym przykładem jest potrzeba przechowywania kopii zapasowych w zdalnej lokalizacji. W rozwiązaniu Veeam Backup & Replication funkcja ta nazywa się Capacity Tier.
Zacznijmy konfigurację od dodania Dell ECS CE do interfejsu Veeam. Na karcie Infrastruktura kopii zapasowych uruchom Kreatora dodawania nowego repozytorium i wybierz opcję Pamięć masowa obiektów.

Wybraliśmy to, od czego wszystko się zaczęło – zgodność z S3.

W wyświetlonym oknie wpisz żądaną nazwę i przejdź do kroku Konto. Tutaj należy podać w formularzu Punkt serwisowy , region można pozostawić bez zmian i dodać utworzonego użytkownika. Serwer bramkowy jest konieczny, jeśli magazyn danych znajduje się w odległym miejscu, ale jest to już temat optymalizacji infrastruktury i osobny artykuł, więc możesz go tutaj pominąć.

Jeśli wszystko jest poprawnie określone i skonfigurowane, pojawi się ostrzeżenie o certyfikacie, a następnie okno z zasobnikiem, w którym można utworzyć folder na nasze pliki.

Przechodzimy przez kreatora do końca i cieszymy się efektem.

Następnym krokiem jest albo utworzenie nowego repozytorium kopii zapasowych Scale-out, albo dodanie naszego S3 do istniejącego — będzie ono używane jako warstwa pojemności do przechowywania danych archiwalnych. W obecnej wersji nie ma możliwości bezpośredniego wykorzystania pamięci masowej zgodnej ze standardem S3 jako zwykłego repozytorium. Jest zbyt wiele raczej nieoczywistych problemów, które należy rozwiązać, ale wszystko jest możliwe.
Przejdź do ustawień repozytorium i włącz opcję Capacity Tier. Wszystko jest tam przejrzyste, ale jest jeden ciekawy niuans: jeśli chcesz, aby wszystkie dane zostały wysłane do pamięci masowej obiektów tak szybko, jak to możliwe, po prostu ustaw 0 dni.

Po zakończeniu pracy kreatora, jeśli nie chcesz czekać, możesz nacisnąć ctrl+PPM na repozytorium, wymusić rozpoczęcie zadania warstwowania i obserwować, jak wykresy się przesuwają.

To na razie tyle. Myślę, że udało mi się wykazać, że przechowywanie bloków pamięci masowej nie jest takie straszne, jak ludzie myślą. Tak, istnieje mnóstwo rozwiązań i możliwości wdrożenia, ale jeden artykuł nie jest w stanie objąć wszystkiego. Podzielmy się zatem naszymi doświadczeniami w komentarzach.
Źródło: www.habr.com
