Główna » jak » Jak skonfigurować oprogramowanie RAID dla prostego serwera plików w systemie Ubuntu

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

    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 serwerze innej osoby lub po prostu być może nie można pobrać potrzebnych danych z Internetu za każdym razem (na przykład wdrożenie 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 (Redundant Array of Niedrogich Dysków), która odbywa się całkowicie w oprogramowaniu, zamiast używać 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 zawiera własny procesor RAM + CPU do wykonywania obliczeń wymaganych dla matematyki nadmiarowości, buforowania danych w celu 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.

    Przy konfiguracji oprogramowania RAID rezygnujesz z wydajności procesora w systemie w celu obniżenia całkowitego kosztu systemu, jednak w przypadku dzisiejszych procesorów obciążenie to jest względnie znikome (zwłaszcza 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órego osobiście używam jako referencji, jednak weźcie benchmarki z przymrużeniem oka, mówiąc 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 używany.
    • Ten przewodnik został napisany przy użyciu Ubuntu server9.10 x64, dlatego zakłada się, że masz system oparty na Debianie, który również będzie działał z.
    • Zobaczysz, że używam VIM jako programu redaktora, tylko dlatego, że jestem do tego przyzwyczajony ... możesz użyć dowolnego edytora, który chciałbyś.
    • 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.

    Wybieranie 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órego nie należy lekceważyć, a rozsądnie byłoby wykorzystać prawdziwe doświadczenie i uważać 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órych 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 przestojach firmy na utrzymanie serwerów (coś, co może 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ć przez to, że nie są one dostępne na rynku, gdy tylko dyski konsumenckie są), więc nadal gorąco polecam, abyś dostarczył dodatkowe $$ $ za uaktualnienie.

    Wybór poziomu RAID.

    Chociaż nie zamierzam wchodzić we wszystkie dostępne opcje (jest to bardzo dobrze udokumentowane we wpisie wikipedia), uważam, że warto powiedzieć, że zawsze należy wybrać co najmniej RAID 6 lub nawet więcej ( będziemy używać Linux RAID10). Dzieje się tak, ponieważ w przypadku awarii dysku istnieje większa szansa na uszkodzenie sąsiedniej awarii, 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 ratujących dyski, 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, jak parted.

    sudo fdisk / dev / sdb

    Uwaga: Zauważyłem, że możliwe jest utworzenie tablicy bez zmiany typu partycji, ale ponieważ jest to sposób opisany w całej sieci, idę w jej ślady (znowu, 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" (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ż wanilowy RAID10, a także fakt, ż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 --create / 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" mówi, ż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 zawiedzie z powodu błędu produkcyjnego (i nie myśl, że "to mi się nie przydarzy" 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 bliski 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. Choć możesz 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 podczas uruchamiania, 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 wynik 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, po prostu 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ć" polecenie w tym miejscu, przed dokonaniem regulacji:

    mdadm --examine --scan

    Aby temu zaradzić, 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 zbudowało 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 "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 potrzebowałem jej w tym czasie, ponieważ żądająca strona konkretnie 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ć, a my 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ę podłączenia 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ć wiadomość e-mail z informacją o stanie tablicy.

    Ustaw konfigurację mdadm, aby wysłać wiadomość e-mail przy uruchomieniu
    Chociaż nie jest to absolutną koniecznością, od czasu do czasu warto pobrać 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ć urządzenie, aby upewnić się, że jest "w pętli", ale nie jest 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 dowiedzieć się więcej, jak ustawić uprawnienia po zakończeniu instalacji.

    Zaleca się również 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 systemie Ubuntu Server 9.10" i "Przewodnik dla początkujących dla użytkowników i grup 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 sprawiają, ż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 już być, dostępny z dowolnego okna systemu za pomocą:

    \ server-namegeneral

    Rozwiązywanie problemów

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

    Generalnie powinieneś pamiętać, że gdy dysk się nie powiedzie, musisz "usunąć" go z tablicy, wyłączyć maszynę, wymienić wadliwy dysk 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 ;-)