If-Koubou

Jak skonfigurować oprogramowanie RAID dla prostego serwera plików w systemie Ubuntu

Jak skonfigurować oprogramowanie RAID dla prostego serwera plików w systemie Ubuntu (Jak)

Czy potrzebujesz taniego serwera plików, który jest łatwy w konfiguracji, "solidny i solidny" z funkcją powiadamiania e-mailem? pokaże Ci, jak korzystać z Ubuntu, oprogramowania RAID i SaMBa, aby to osiągnąć.

Przegląd

Pomimo niedawnego szumu, który przenosi wszystko na "wszechpotężną" chmurę, czasami możesz nie chcieć swoich informacji na czyimś serwerze, albo po prostu może nie być możliwe pobieranie za każdym razem potrzebnych danych z Internetu (na przykład zaimplementowanie obrazu ). Zanim pozbędziesz się miejsca w swoim budżecie na rozwiązanie pamięci masowej, zastanów się nad konfiguracją, która nie wymaga licencji na Linuksa.

Powiedziawszy to, przejście na stronę tanią / darmową nie oznacza "rzucania ostrożności na wiatr". W tym celu odnotujemy punkty, o których należy pamiętać, konfiguracje, które powinny zostać wprowadzone oprócz używania oprogramowania RAID, aby osiągnąć maksymalny stosunek ceny do niezawodności.

Zdjęcie: Filomena Scalise

Informacje o oprogramowaniu RAID

Jak sama nazwa wskazuje, jest to konfiguracja RAID (nadmiarowa tablica niedrogich dysków), która jest wykonywana całkowicie w oprogramowaniu, zamiast użycia dedykowanej karty sprzętowej. Główną zaletą takiego rozwiązania jest koszt, ponieważ ta dedykowana karta stanowi dodatkową premię do podstawowej konfiguracji systemu. Głównymi wadami są przede wszystkim wydajność i pewna niezawodność, ponieważ taka karta zwykle posiada własny procesor RAM + CPU do wykonywania obliczeń wymaganych dla matematyki redundancji, buforowania danych dla zwiększenia wydajności oraz opcjonalnej baterii podtrzymującej, która przechowuje niepisane operacje w pamięci podręcznej do momentu moc została przywrócona w przypadku braku zasilania.

Z konfiguracją RAID oprogramowania poświęcasz część wydajności procesora systemowego w celu obniżenia całkowitego kosztu systemu, jednak przy dzisiejszych procesorach obciążenie to jest względnie znikome (szczególnie jeśli zamierzasz głównie poświęcić ten serwer jako "serwer plików"). Jeśli chodzi o wydajność dysku, jest kara ... Jednak nigdy nie natknąłem się na wąskie gardło z podsystemu dyskowego z serwera, aby zauważyć, jak głębokie jest to. Tom's Hardware Guide "Tom's goes RAID5" to staroświecki, ale wyczerpujący artykuł na ten temat, który osobiście wykorzystuję jako referencję, jednak weź poziom odniesienia z przymrużeniem oka, ponieważ mówi o implementacji oprogramowania RAID w systemie Windows (jak w przypadku wszystko inne, jestem pewien, że Linux jest znacznie lepszy: P).

Wymagania wstępne

  • Cierpliwość młoda, to jest długa lektura.
  • Zakłada się, że wiesz, czym jest RAID i do czego jest on używany.
  • Ten przewodnik został napisany przy użyciu Ubuntu server9.10 x64, dlatego też zakłada się, że masz również system oparty na Debianie.
  • Zobaczysz, że używam VIM jako programu redaktora, tylko dlatego, że jestem do tego przyzwyczajony ... możesz użyć dowolnego edytora, który chcesz.
  • System Ubuntu, którego użyłem do napisania tego przewodnika, został zainstalowany na dysku z kluczem. Pozwoliło mi to na użycie sda1 jako części macierzy RAID, więc dostosuj odpowiednio do swojej konfiguracji.
  • W zależności od typu macierzy RAID, którą chcesz utworzyć, potrzebujesz co najmniej dwóch dysków w twoim systemie, w tym przewodniku korzystamy z 6 dysków.

Wybór dysków tworzących tablicę

Pierwszym krokiem w uniknięciu pułapki jest wiedza o jej istnieniu (Thufir Hawat from Dune).

Wybór dysków jest ważnym krokiem, który nie powinien być podejmowany lekkomyślnie, a Ty będziesz mądry, aby wykorzystać swoje prawdziwe doświadczenie i zważ na to ostrzeżenie:

Robić NIE używaj dysków "klasy konsumenckiej" do tworzenia macierzy, używaj dysków "klasy serwerowej" !!!!!!

Teraz wiem, co myślisz, czy nie powiedzieliśmy, że pójdziemy na tanie? i tak zrobiliśmy, ale jest to dokładnie jedno z miejsc, w którym jest to lekkomyślne i należy go unikać. Pomimo atrakcyjnej ceny, dyski twarde klasy konsumenckiej nie są przeznaczone do użytku w trybie 24/7 "on". Zaufaj mi, twój naprawdę próbował tego dla ciebie. Co najmniej cztery dyski klasy konsumenckiej na 3 serwerach skonfigurowanych w ten sposób (ze względu na ograniczenia budżetowe) nie powiodły się po około 1,5 ~ 1,8 roku od pierwszego dnia uruchomienia serwera. Chociaż nie było utraty danych, ponieważ RAID wykonał zadanie dobrze i przetrwały ... takie momenty skracają oczekiwaną długość życia sysadmin, nie wspominając o czasie przestoju dla firmy na utrzymanie serwera (coś, co może skończyć kosztować więcej niż dyski wyższej klasy).

Niektórzy mogą powiedzieć, że nie ma różnicy między stopą niepowodzenia obu typów. Może to być prawda, jednak pomimo tych twierdzeń, dyski klasy serwerowej wciąż mają wyższy poziom SMART ograniczeń i QAing za nimi (jak można zauważyć, że nie są one wprowadzane na rynek, gdy tylko dyski konsumenckie są), więc nadal bardzo polecam, abyś dostarczył dodatkowe $$ $ na uaktualnienie.

Wybór poziomu RAID.

Chociaż nie zamierzam zagłębiać się we wszystkie dostępne opcje (jest to bardzo dobrze udokumentowane we wpisie wikipedia), uważam, że warto powiedzieć, że zawsze powinieneś wybrać co najmniej RAID 6 lub nawet więcej ( będziemy używać Linux RAID10). Dzieje się tak dlatego, że w przypadku awarii dysku istnieje większe prawdopodobieństwo awarii sąsiedniego dysku, a następnie masz awarię "na dwóch dyskach". Co więcej, jeśli zamierzasz używać dużych dysków, ponieważ większe dyski mają większą gęstość danych na powierzchni talerza, szansa na niepowodzenie jest większa. Dyski IMHO od 2T i później zawsze będą należeć do tej kategorii, więc bądź świadomy.

Do roboty

Dyski partycjonujące

W systemie Linux / GNU możemy używać całego urządzenia blokowego do przechowywania potrzebnych nam partycji, ponieważ ułatwi to korzystanie z narzędzi ratunkowych na dysku, na wypadek, gdyby system przestał działać. Używamy tutaj programu "fdisk", ale jeśli zamierzasz użyć dysków większych niż 2T, będziesz musiał użyć programu do partycjonowania, który obsługuje partycje GPT, podobnie jak parted.

sudo fdisk / dev / sdb

Uwaga: Zauważyłem, że możliwe jest utworzenie macierzy bez zmiany typu partycji, ale ponieważ jest to sposób opisany w całej sieci, idę w jej ślady (ponownie, gdy używam całego urządzenia blokowego, to jest niepotrzebne).

Po naciśnięciu klawisza fdisk naciśnięcia klawiszy są następujące:

n; dla nowej partycji
wchodzić
p; dla partycji podstawowej
wchodzić
1; numer partycji
wchodzić ; zaakceptuj domyślne
wchodzić ; zaakceptuj domyślne
t; aby zmienić typ
fd; ustawia typ na "Automatyczne wykrywanie raidu linuxowego" (83h)
w; zapisz zmiany na dysku i zakończ

Spłucz i powtórz dla wszystkich dysków, które będą częścią tablicy.

Tworzenie macierzy RAID10 systemu Linux

Zaletą korzystania z "Linux raid10 "jest to, że wie, jak wykorzystać nieparzystą liczbę dysków w celu zwiększenia wydajności i odporności jeszcze bardziej niż waniliowy RAID10, oprócz faktu, że podczas korzystania z niego tablica" 10 "może być utworzona w jednym krok.

Utwórz tablicę z dysków, które przygotowaliśmy w ostatnim kroku, wydając:

sudo mdadm - tworzenie / dev / md0 --chunk = 256 --level = 10 -p f2 - sca-devices = 5 / dev / sda1 / dev / sdb1 / dev / sdc1 / dev / sdd1 / dev / sde1 - -gadatliwy

Uwaga: To wszystko tylko jedna linia, mimo że reprezentacja dzieli ją na dwie.

Przerwijmy parametry w dół:

  • "-Chunk = 256" - Wielkość bajtów pasków rajdu jest zerwana, a rozmiar ten jest zalecany dla nowych / dużych dysków (dyski 2T używane do uczynienia tego przewodnika były bez wątpienia w tej kategorii).
  • "-Level = 10" - Używa Linux raid10 (jeśli wymagany jest tradycyjny nalot, z jakiegokolwiek powodu, musiałbyś stworzyć dwie tablice i dołączyć do nich).
  • "-P f2" - Używa "dalekiego" planu rotacji, patrz uwaga poniżej, aby uzyskać więcej informacji, a "2" oznacza, że ​​tablica zachowa dwie kopie danych.

Uwaga: Używamy planu "daleko", ponieważ powoduje to, że fizyczny układ danych na dyskach NIE jest taki sam. Pomaga to przezwyciężyć sytuację, w której sprzęt jednego z dysków ulegnie awarii z powodu błędu produkcyjnego (i nie myśl, że "to się nie wydarzy", tak jak naprawdę zrobiłeś). Ponieważ oba dyski są tej samej marki i tego samego modelu, zostały użyte w ten sam sposób i tradycyjnie zachowały dane w tej samej fizycznej lokalizacji ... Istnieje ryzyko, że dysk zawierający kopię danych nie działa zbyt lub jest blisko i nie zapewni wymaganej odporności, dopóki nie pojawi się dysk zastępczy. Plan "daleko" sprawia, że ​​dystrybucja danych do zupełnie innej fizycznej lokalizacji na dyskach do kopiowania, oprócz korzystania z dysków, które nie są blisko siebie w obudowie komputera. Więcej informacji można znaleźć tutaj i w linkach poniżej.

Po utworzeniu tablicy rozpocznie się jej proces synchronizacji. Chociaż możesz chcieć poczekać na tradycje (ponieważ może to chwilę potrwać), możesz natychmiast rozpocząć korzystanie z tablicy.

Postęp można zaobserwować za pomocą:

obejrzyj -d cat / proc / mdstat

Utwórz plik konfiguracyjny mdadm.conf

Chociaż udowodniono, że Ubuntu po prostu wie, aby skanować i aktywować tablicę automatycznie po uruchomieniu, dla kompletności i uprzejmości dla następnego administratora, utworzymy plik. Twój system nie automatycznie tworzy plik i stara się zapamiętać wszystkie składniki / partycje twojego zestawu RAID, jest talią rozsądku administratora systemu. Ta informacja może i powinna być przechowywana w pliku mdadm.conf. Formatowanie może być trudne, ale na szczęście wyjście polecenia mdadm -detail -scan -verbose zapewnia to.

Uwaga: Mówi się, że: "Większość dystrybucji oczekuje pliku mdadm.conf w / etc /, nie / etc / mdadm. Wierzę, że jest to "ubuntu-ism", aby mieć go jako /etc/mdadm/mdadm.conf ". Ze względu na to, że my używając Ubuntu tutaj, pójdziemy z tym.

sudo mdadm --detail --scan --verbose> /etc/mdadm/mdadm.conf

WAŻNY! musisz usunąć jeden "0" z nowo utworzonego pliku, ponieważ składnia wynikająca z powyższego polecenia nie jest całkowicie poprawna (GNU / Linux nie jest jeszcze systemem operacyjnym).

Jeśli chcesz zobaczyć problem, który powoduje ta błędna konfiguracja, możesz wydać "skandować" komenda w tym miejscu, przed dokonaniem regulacji:

mdadm --examine --scan

Aby to zmienić, edytuj plik /etc/mdadm/mdadm.conf i zmień:

metadane = 00.90

Czytać:

metadane = 0,90

Uruchomienie mdadm -examine -scan polecenie teraz powinno wrócić bez błędu.

Konfiguracja systemu plików w tablicy

Użyłem ext4 dla tego przykładu, ponieważ dla mnie to po prostu opierało się na znajomości systemu plików ext3, który pojawił się wcześniej, zapewniając obiecaną lepszą wydajność i funkcje.
Proponuję poświęcić trochę czasu na zbadanie, który system plików lepiej odpowiada Twoim potrzebom, a dobrym początkiem tego jest nasz artykuł "Który plik systemu Linux powinieneś wybrać?".

sudo mkfs.ext4 / dev / md0

Uwaga: W tym przypadku nie podzieliłem wynikowej tablicy, ponieważ po prostu nie było to potrzebne w tym czasie, ponieważ strona żądająca zażądała co najmniej 3,5T ciągłej przestrzeni. Powiedziawszy to, gdybym chciał stworzyć partycje, musiałbym użyć narzędzia do partycjonowania GPT, takiego jak "parted".

Montowanie

Utwórz punkt montowania:

sudo mkdir / media / raid10

Uwaga: To może być dowolna lokalizacja, powyższe jest tylko przykładem.

Ponieważ mamy do czynienia z "zmontowanym urządzeniem", będziemy nie użyj UUID systemu plików, który znajduje się na urządzeniu do montażu (zgodnie z zaleceniami dla innych typów urządzeń w naszym przewodniku "co to jest fx i jak to działa"), ponieważ system może rzeczywiście widzieć część systemu plików na pojedynczym dysku i Spróbuj nieprawidłowo zamontuj go bezpośrednio. aby przezwyciężyć to, chcemy wyraźnie poczekać, aż urządzenie zostanie "zmontowane", zanim spróbujemy go zamontować, i użyjemy złożonej nazwy macierzy ("md") w ciągu fstab do osiągnięcia tego.
Edytuj plik fstab:

sudo vim / etc / fstab

I dodaj do tego wiersz:

/ dev / md0 / media / raid10 / ext4 domyślnie 1 2

Uwaga: Jeśli zmienisz lokalizację montażu lub system plików z przykładu, będziesz musiał odpowiednio dostosować powyższe.

Użyj mount z parametrem automatycznym (-a), aby zasymulować rozruch systemu, więc wiesz, że konfiguracja działa poprawnie i że urządzenie RAID zostanie automatycznie zamontowane po ponownym uruchomieniu systemu:

sudo mount -a

Powinieneś teraz widzieć tablicę zamontowaną za pomocą polecenia "mount" bez parametrów.

Alerty e-mail dla macierzy RAID

W przeciwieństwie do sprzętowych macierzy RAID, w przypadku macierzy programowej nie ma kontrolera, który uruchomiłby sygnał dźwiękowy informujący, kiedy coś poszło nie tak. Dlatego powiadomienia e-mailowe będą naszym jedynym sposobem sprawdzenia, czy coś stało się z jednym lub więcej dyskami w tablicy, a tym samym uczynienie go najważniejszy krok.

Postępuj zgodnie z instrukcją "Jak skonfigurować powiadomienia e-mail w systemie Linux za pomocą Gmaila lub SMTP", a po jej zakończeniu wróć tutaj, aby wykonać określone kroki RAID.

Potwierdź, że mdadm może wysyłać wiadomości e-mail
Poniższe polecenie powie mdadm, aby odpalił tylko jeden e-mail i zamknął.

sudo mdadm --monitor --scan --test --oneshot

Jeśli się powiedzie, powinieneś otrzymać e-mail z informacją o stanie tablicy.

Ustaw konfigurację mdadm, aby wysłać wiadomość e-mail przy uruchomieniu
Chociaż nie jest to bezwzględnie konieczne, warto od czasu do czasu otrzymywać aktualizację z komputera, aby poinformować nas o możliwości działania poczty e-mail oraz o stanie tablicy. prawdopodobnie nie zostaniesz przytłoczony wiadomościami e-mail, ponieważ to ustawienie dotyczy tylko startupów (które na serwerach powinno ich nie być wiele).
Edytuj plik konfiguracyjny mdadm:

sudo vim / etc / default / mdadm

Dodaj -test parametr do DAEMON_OPTIONS sekcja tak, aby wyglądała następująco:

DAEMON_OPTIONS = "- syslog --test"

Możesz ponownie uruchomić maszynę tylko po to, aby upewnić się, że jesteś "w pętli", ale nie jest to koniecznością.

Konfiguracja Samby

Zainstalowanie SaMBa na serwerze Linux pozwala działać jak serwer plików Windows. Aby uzyskać dane, które hostujemy na serwerze Linux dostępnym dla klientów Windows, zainstalujemy i skonfigurujemy SaMBa.
To zabawne, że nazwa pakietu SaMBa jest kalamburem protokołu Microsoftu używanego do udostępniania plików o nazwie SMB (Service Message Block).

W tym przewodniku serwer jest używany do celów testowych, dlatego umożliwiamy dostęp do jego udziału bez wymagając hasła, możesz poszukać więcej informacji na temat konfigurowania uprawnień po zakończeniu instalacji.

Zaleca się także utworzenie nieuprzywilejowanego użytkownika, który będzie właścicielem plików. W tym przykładzie używamy użytkownika "geek", który utworzyliśmy dla tego zadania. Wyjaśnienia dotyczące tworzenia użytkownika oraz zarządzania prawami własności i uprawnień można znaleźć w przewodniku "Utwórz nowego użytkownika na Ubuntu Server 9.10" i "Przewodnik dla początkujących w zarządzaniu użytkownikami i grupami w systemie Linux".

Zainstaluj Sambę:

aptitude install samba

Edytuj plik konfiguracyjny Samby:

sudo vim /etc/samba/smb.conf

Dodaj udział o nazwie "general", który udzieli dostępu do punktu montowania "/ media / raid10 / general", dołączając poniższy plik do pliku.

[generał]
ścieżka = / media / raid10 / general
force user = geek
force group = geek
tylko do odczytu = Nie
utwórz maskę = 0777
maska ​​katalogu = 0777
tylko gość = Tak
gość ok = Tak

Powyższe ustawienia powodują, że udział jest adresowalny bez hasło do każdego i czyni domyślnym właścicielem plików użytkownika "geek".

Dla Twojej informacji ten plik smb.conf został pobrany z działającego serwera.

Zrestartuj usługę samba, aby ustawienia zaczęły obowiązywać:

sudo /etc/init.d/samba restart

Po zakończeniu możesz użyć testparm polecenie, aby zobaczyć ustawienia zastosowane do serwera samba.
to wszystko, serwer powinien być teraz, dostępny z dowolnego okna okna za pomocą:

\ server-namegeneral

Rozwiązywanie problemów

Kiedy potrzebujesz rozwiązać problem lub dysk nie działa w tablicy, sugeruję odwołanie się do arkusza oszukańczego mdadm (to właśnie robię ...).

Ogólnie należy pamiętać, że gdy dysk się nie powiedzie, trzeba go "usunąć" z tablicy, wyłączyć maszynę, wymienić wadliwy napęd na nowy, a następnie "dodać" nowy dysk do macierzy po utworzeniu odpowiedniego dysku układ (partycje) na nim, jeśli to konieczne.

Gdy to zrobisz, możesz chcieć upewnić się, że tablica przebudowuje się i obserwować postępy za pomocą:

obejrzyj -d cat / proc / mdstat

Powodzenia! :)

Referencje:
mdadm ściągnij arkusz
Poziomy RAID ulegają awarii
Wyjaśnienie Linuxa RAID10
Strona man mdadm command
Strona podręcznika konfiguracji pliku mdadm
Wyjaśniono granice podziału

Korzystanie z oprogramowania RAID nie kosztuje dużo ... Tylko GŁOS ;-)