Zaawansowana instalacja Ubuntu #1 – Software RAID 21


Ten poradnik przeprowadzi cię krok po kroku poprzez instalację Ubuntu na Software RAID. Chciałbym się tutaj ograniczyć do minimum jeśli chodzi o teorię, ponieważ w sieci przeczytacie masę artykułów na ten temat.

Z naszej kochanej Wikipedii dowiemy się że:
RAID (Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków) – polega na współpracy dwóch lub więcej dysków twardych w taki sposób, aby zapewnić dodatkowe możliwości, nieosiągalne przy użyciu jednego dysku. RAID używa się w następujących celach:

  • zwiększenie niezawodności (odporność na awarie),
  • przyspieszenie transmisji danych,
  • powiększenie przestrzeni dostępnej jako jedna całość.

Rozróżniamy 3 rodzaje RAID

  • Hardware RAID
  • Fake RAID
  • Software RAID ( realizowany przez program mdadm )

Odnośnie różnic między nimi, w wielkim skrócie przeczytacie w HOW-TO kolegi enhancer, który to zainteresował mnie tematem do tego stopnia, że postanowiłem skrobnąć ten mały poradnik.
Instalator Ubuntu zezwala na budowanie macierzy w 3 trybach tj.

Co potrzebujemy?
Będziemy potrzebowali płytki z Ubuntu. Może to być wersja alternate, serwerowa bądź DVD. Wersja liveCD odpada ze względu na brak instalatora tekstowego. Będą nam również potrzebne przynajmniej 2 identyczne dyski, co jest niezbędnym minimum do budowy macierzy RAID0 lub 1. Dodatkowo jeśli nasza płyta główna obsługuje RAID (zazwyczaj jest to fake raid) to upewniamy się w biosie czy aby na pewno jest wyłączony.

Co chcemy osiągnąć?
Naszym celem jest przyśpieszenie operacji na dysku i zwiększenie bezpieczeństwa kluczowych dla nas danych.

Planujemy macierz
Jako przykład posłużą nam 2 dyski 20GB. W dzisiejszych czasach to zdecydowanie za mało, ale wystarczająco do zobrazowania koncepcji.
Oba dyski podzielimy w identyczny sposób na 4 części

  • /boot na którego przeznaczymy 0,1GB
  • / na którego przeznaczymy 5GB
  • SWAP ok 0,5GB
  • /home reszta danych

Rozkład partycji

Partycję przeznaczoną pod /boot połączymy w RAID1 ponieważ system nie potrafi wystartować z RAID0.
System / z kolei zainstalujemy na RAID0 dzięki czemu zwiększymy szybkość operacji wykonywanych na tej partycji. Przypominam, że prędkość w tym momencie będzie teoretycznie dwukrotnie większa. Dodatkowo dzięki zastosowaniu RAID0 do połączenia 2 partycji uzyskamy łączną pojemność 10GB.
Przestrzeń wymiany również połączmy w RAID0. Nie zależy nam w ogóle na bezpieczeństwie danych na tej partycji.
Ostatnią i najważniejszą dla nas partycją jest /home, na której to przechowujemy bardzo istotne dla nas dane. By zwiększyć bezpieczeństwo danych połączymy ją w RAID1. Dzięki czemu będziemy mieć na dwóch dyskach te same dane tzw. mirror. Gdy jeden z dysków się uszkodzi, dane będziemy mieć na drugim. Sposób połączenia przedstawia rysunek niżej.

Łączymy w RAID

Po skonfigurowaniu macierzy powinniśmy uzyskać rozkład jak na rysunku poniżej.

Gotowy RAID

Właściwa instalacja
Uruchamiamy komputer z płytki i zaczynamy instalację

  • W przypadku Ubuntu serwer oraz alternate wybieramy Instalacja Ubuntu. Gdy w napędzie mamy płytkę DVD to wybieramy Instalacja Ubuntu w trybie tekstowym. Osobiście instalacji dokonuję z Ubuntu 8.04.2 Serwer.
  • W oknie Partycjonuj dyski wybieramy Ręcznie.
    raidinstalacja02
  • Jak widzimy poniżej, mamy 2 identyczne dyski 21,5GB. Wchodzimy na dysk pierwszy i zakładamy pustą tablice partycji.
    raidinstalacja03
  • Wybieramy Wolną przestrzeń, a następnie Utwórz nową partycję
    raidinstalacja05
  • Podajemy parametry naszej partycji. Według naszych założeń pierwsza miała być partycja /boot o wielkości 0.1GB
    raidinstalacja06raidinstalacja07raidinstalacja08
  • Wybieramy Użyj jako i zmieniamy System plików EXT3 z księgowaniem na fizyczny wolumin dla RAID.
    raidinstalacja09raidinstalacja10raidinstalacja11
  • Po wybraniu Zakończono ustawianie partycji wracamy do zarządzania dyskami
    raidinstalacja12
  • Jedna partycja założona. Musimy jeszcze założyć 3 partycje. Klikamy w Wolną przestrzeń i zakładamy partycje dla /, SWAP oraz /home. Po skończeniu dzielenia, sytuacja na dysku powinna wyglądać mniej więcej tak
    raidinstalacja14
  • W identyczny sposób zakładamy dokładnie takie same partycje na drugim dysku.
    raidinstalacja15
  • Wybieramy Konfiguruj RAID programowy a następnie wyrażamy zgodę na zapisanie zmian w urządzeniach i konfigurację RAID
  • Tworzymy nasze pierwsze urządzenie RAID. Wybieramy Utwórz urządzenie wielodyskowe (MD)
    raidinstalacja17
  • Partycja /boot ma być na RAID1 więc taki wybieramy. W następnym oknie określamy ile urządzeń będzie przeznaczonych na macierz RAID1. Zostawiamy to co nam proponuje instalator. Oczywiście mirror możemy mieć na większej ilości dysków (co jeszcze bardziej zwiększy bezpieczeństwo). My akurat mamy tylko dwa dyski:)
    raidinstalacja19
  • Na następnym ekranie możemy określić ilość dysków zapasowych. Gdyby jeden z dysków z RAID1 nawalił, wówczas rezerwowy zacząłby pracować za niego. Oczywiście w tym momencie wydajność macierzy nam spadnie ponieważ dysk będzie duplikował partycję działającego dysku w macierzy, tak by dane znów były na dwóch dyskach. Mamy tylko 2 dyski więc nie możemy mieć rezerwowego.raidinstalacja20
  • Następnie wskazujemy instalatorowi, które to partycje mają być połączone w RAID1. W naszym przypadku są to pierwsze partycje z obu dysków. Zaznaczamy spacją /dev/sda1 oraz /dev/sdb1 i klikamy Dalej
    raidinstalacja21
  • Po zatwierdzeniu wracamy do menu, w którym wybieramy jaki RAID chcemy utworzyć. Musimy jeszcze stworzyć 3 urządzenia RAID:
    – RAID0 dla partycji /, w którego skład wchodzi sda2 oraz sdb2,
    – RAID0 dla partycji SWAP, w którego skład wchodzi sda3 oraz sdb3,
    – RAID1 dla partycji /home, w którego skład wchodzi sda4 oraz sdb4.
  • Po założeniu wszystkich urządzeń wybieramy Zakończ i wracamy do menu w którym dzieliliśmy dyski na partycje. Tym razem powinniśmy już widzieć nasze nowe urządzenia RAID
    raidinstalacja27
  • Wybieramy nr 1 98.6MB i przechodzimy do ustawiania partycji. W nowym oknie klikamy Użyj jako i wybieramy system plików dla naszej partycji /boot. Gdy już to zrobimy to ustawiamy tylko punkt montowania i jedną partycje z czterech mamy gotową:)
    raidinstalacja29
  • Po zakończeniu ustawień, powinniśmy dostać coś podobnego do obrazka poniżej.
    raidinstalacja30
  • W identyczny sposób zakładamy kolejne trzy partycje. Gdy już wszystko skończymy partycje powinny wyglądać tak.
    raidinstalacja31
  • Wybieramy Zakończ partycjonowanie i zapisz zmiany na dysku. Po zatwierdzeniu zaczyna się właściwa instalacja systemu na naszej macierzy RAID 🙂
    raidinstalacja32
  • Czasem po zatwierdzeniu wyskakuje ostrzeżenie jak niżej. Możemy je spokojnie zignorować, potwierdzając Dalej.
    raidinstalacja33
  • Po zainstalowaniu możemy jeszcze sprawdzić czy „To” działa:)

    test@ubuntu:~$ df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/md1 9,4G 393M 9,0G 5% /
    varrun 252M 48K 252M 1% /var/run
    varlock 252M 0 252M 0% /var/lock
    udev 252M 84K 252M 1% /dev
    devshm 252M 0 252M 0% /dev/shm
    /dev/md0 94M 51M 44M 54% /boot
    /dev/md3 15G 33M 15G 1% /home

    Jak widzimy nasze partycje działają na urządzeniach md co oznacza RAID.

    test@ubuntu:~$ free -m
    total used free shared buffers cached
    Mem: 503 126 377 0 9 91
    -/+ buffers/cache: 25 478
    Swap: 956 0 956

    Przestrzeń wymiany również dostępna, także wszystko jest OK 🙂

Podsumowanie
Cel został osiągnięty. Stworzyliśmy szybką i bezpieczną macierz do zastosowań domowych. Zaznaczam domowych, ponieważ na serwerach produkcyjnych stosuje się RAID sprzętowy który jest realizowany za pomocą osobnego kontrolera. Przy większej ilości dysków można się pokusić o zbudowanie macierzy w RAID5.
W poradniku opisałem prostszy sposób instalacji tzn. na czystych dyskach bez systemu. Co gdy mamy już zainstalowany system i chcemy sobie zrobić RAID na dokupionych dyskach, bądź też zmigrować działający system? Na te pytania postaram się odpowiedzieć w kolejnych artykułach, które napiszę, gdy tylko czas mi na to pozwoli. Dla niecierpliwych słowo klucz: mdadm 🙂



Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

21 komentarzy do “Zaawansowana instalacja Ubuntu #1 – Software RAID

  • ak

    Swap na RAID0?(!?) A po co? Jeśli już to w /etc/fstab robimy wpisy dla obu partycji swap z jednakowym priorytetem (w opcjach obu partycji dodajemy wpis pri=1) i mamy RAID0 swap bez dodatkowego narzutu – ten mechanizm jest realizowany przez podsystem obsługi partycji wymiany.
    Ale mając do dyspozycji dwa dyski nie jest to najszczęśliwsze rozwiązanie. W przypadku awarii jednego z nich mamy wielką szansę, że system się zawiesi. W tym przypadku o niebo lepiej jest zrobić swap na RAID1, nawet kosztem całego 0.5G…

  • ak

    @renq: z samym raidem nie ma problemu, ale jest to uzależnione od filesystemu. Na pewno ext2 ma taką możliwość, ext3 (chyba) również ale po tymczasowej degradacji do ext2.

  • jerresso

    A jak bardzo usługa RAID obciąża CPU, RAM? No bo skoro kontrolery sprzętowe mają swoje dedykowane procesory to gdzieś te obliczenia muszą być realizowane. Ciekawe jak to się ma do ogólnej zmiany wydajności systemu – być może wzrasta wydajność odczyt/zapis na dyskach, a spada wydajność wykonywania operacji (np. przez aplikacje). Pytanie, co tak sumarycznie się naprawdę bardziej opłaca (jeśli chodzi o wydajność, nie bezpieczeństwo).

  • slotwek

    Bardzo fajny artykul i przede wszystkim praktyczny… Na razie nie przewiduje migracji na RAID, bo do laptopa drugiego dysku sobie nie wcisne… Ale milo wiedziec, gdzie znalezc dobry artykul na ten temat 😉 Wielkie dzieki

  • ffatman

    @slotwek: „Na razie nie przewiduje migracji na RAID, bo do laptopa drugiego dysku sobie nie wcisne…”

    A jakie są możliwości „RAIDobackupu” na laptopie, tj. przychdzę do domu, podłączam się i na tym drugim domowym z automatu wyrównują mi się zapisy, ktoś wie?

  • jata

    100 MB partycja /boot ma slusznosc tylko wtedy, jesli nie bawicie sie systemem poprzez instalacje dodatkowych jader [np. generic i server lub generic i rt] lub przy aktualizacji do kolejnej wersji nie zapomnicie o usunieciu poprzednich jader…
    jesli zapomnicie, czesto aktualizacja konczy sie niepowodzeniem i „niewiadomo dlaczego tak sie dzieje”…

  • MrRobby Autor wpisu

    [quote comment=”36080″]Swap na RAID0?(!?) A po co? Jeśli już to w /etc/fstab robimy wpisy dla obu partycji swap z jednakowym priorytetem (w opcjach obu partycji dodajemy wpis pri=1) i mamy RAID0 swap bez dodatkowego narzutu – ten mechanizm jest realizowany przez podsystem obsługi partycji wymiany.
    Ale mając do dyspozycji dwa dyski nie jest to najszczęśliwsze rozwiązanie. W przypadku awarii jednego z nich mamy wielką szansę, że system się zawiesi. W tym przypadku o niebo lepiej jest zrobić swap na RAID1, nawet kosztem całego 0.5G…[/quote]
    Art miał na celu pokazać jak to instalować na RAID. Odnośnie SWAPa to masz racje 🙂 po prostu rozpędziłem:)

    [quote comment=”36100″]A jak bardzo usługa RAID obciąża CPU, RAM? No bo skoro kontrolery sprzętowe mają swoje dedykowane procesory to gdzieś te obliczenia muszą być realizowane. Ciekawe jak to się ma do ogólnej zmiany wydajności systemu – być może wzrasta wydajność odczyt/zapis na dyskach, a spada wydajność wykonywania operacji (np. przez aplikacje). Pytanie, co tak sumarycznie się naprawdę bardziej opłaca (jeśli chodzi o wydajność, nie bezpieczeństwo).[/quote]
    Niestety nie mam pojęcia ponieważ jak zauważyłeś system był instalowany na VM. Możesz zawsze zapytać autora HOW-TO o którym wspominam. On korzysta z tego typu RAIDa na swojej maszynie. Ja muszę się dopiero w dyski zaopatrzyć 🙂

    [quote comment=”36102″]to zostal jeszcz tylko LVM do opisania ;-)[/quote]
    lvm, szyfrowanie i może jakieś mixy 🙂

    [quote comment=”36262″]100 MB partycja /boot ma slusznosc tylko wtedy, jesli nie bawicie sie systemem poprzez instalacje dodatkowych jader [np. generic i server lub generic i rt] lub przy aktualizacji do kolejnej wersji nie zapomnicie o usunieciu poprzednich jader…
    jesli zapomnicie, czesto aktualizacja konczy sie niepowodzeniem i „niewiadomo dlaczego tak sie dzieje”…[/quote]
    Jeśli ktoś chce instalować swój system na RAID to raczej musi mieć jakieś pojęcie o systemie i nie martwił bym się tu o partycje /boot 🙂 Zresztą artykuł miał na celu pokazać jak instalować system na RAID a nie jak planować partycje. Osobiście mój /boot ma 100MB i przy 2 kernelach zajmuje tylko 38MB więc do zapełnienia jeszcze daleko. Ale tak jak pisałem, nie mnie to oceniać i każdy robi sobie jak chce 🙂

  • mrychu

    Witam,
    A jaki system plików preferujecie na partycję raid. Tu widzę, że został wybrany ReiserFS. Proszę ewentualnie o wyjaśnienie jeśli jest to celowe. Ja zastanawiam się pomiędzy ext3, a ext4. Proszę o poradę. Pozdrowienia dla wszystkich forumowiczów.

  • dav

    Ok, wszystko fajnie, ale nic nie pisze o tym co sie stanie i co zrobić jak padnie jeden dysk z macierzy software RAID 1 lub 5. Wywali sie system czy nie? Trzeba wlozyc nowy dysk i konfigurowac wszystko od nowa czy moze macierz sama sie naprawi?

  • ERni

    Nie działa! 😛 Zrobilem wszystko tak jak w instrukcji i dostaje komunikat na samym końcu po zapisie utworzonych partycji. „Nie zidentyfikowano glownego systemu plikow, prosze to poprawic w menu partycionowanie” robilem 3 razy zgodnie z instrukcja tylko ja spinalem dyski w raid1. 😛

  • gacek

    @ERni
    Musiałeś coś źle zrobić/zrozumieć.. Ja wszystko mam na raid1 i instalacja przebiega prawidłowo.
    Pamiętaj, że system plików określasz na macierzach a nie fizycznych dyskach.. może tu masz błąd..:)

  • Szarmen

    Czy ktoś z was próbował może zainstalować Ubuntu na RAID0 (2x Samsung 500Gb F3), na którym stoi już partycja z windowsem 7 i jedna partycja z danymi? Zostało mi 200Gb nie przydzielonego miejsca na linuxa, ale nie jestem w stanie zmusić Ubuntu do zainstalowania – instalator widzi macierz, ale nie zrobione na niej partycję windowsa.

  • Piotrek84r

    Super opis, bardzo przejrzysty i dokładny. Z linuxem mam wspólne tyle co nic (pomijająca androida). Próbowałem zainstalować ubuntu server na nowej maszynie, uefi nie widziało pena (mimo utworzenia dysku usb z dd), instalka nie widziała raidu utworzonego w biosie. A sam nie bardzo ogarniałem jakie partycje potworzyć czego wynikiem był brak GRUBa. Opis bardzo mi sięprzydał.
    Pozdrawiam