SVN: PLD-doc/book/pl_book__dysk/pl_konfiguracja__soft_raid.sec
qwiat
qwiat w pld-linux.org
Nie, 31 Gru 2006, 00:26:50 CET
Author: qwiat
Date: Sun Dec 31 00:26:49 2006
New Revision: 8121
Modified:
PLD-doc/book/pl_book__dysk/pl_konfiguracja__soft_raid.sec
Log:
- reorganizacja rozdzialu
- dodanie info o UDEV
- dodanie info o initrd
- dodane porady planowania macierzy
- dodane linki do innych rozdzialow
- usuniete linki do stron internetowych zwiazanych z LVM (nie ten rozdzial)
- dodanie dwoch slow o usludze mdadm
- kosmetyka
Modified: PLD-doc/book/pl_book__dysk/pl_konfiguracja__soft_raid.sec
==============================================================================
--- PLD-doc/book/pl_book__dysk/pl_konfiguracja__soft_raid.sec (original)
+++ PLD-doc/book/pl_book__dysk/pl_konfiguracja__soft_raid.sec Sun Dec 31 00:26:49 2006
@@ -63,7 +63,7 @@
<listitem>
<para>
RAID 5 (<literal>raid5</literal>, <literal>5</literal>)
- - rozpraszane są zarówno dane jak i informacje o
+ - rozpraszane są zarówno dane jak i informacje o
parzystości na wszystkich dyskach, dzięki czemu
wydajność jest wyższa niż w RAID 4; pojemność n-1,
wymaga przynajmniej trzech dysków.
@@ -90,6 +90,8 @@
</para>
</listitem>
</itemizedlist>
+ Najczęściej stosuje się macierze RAID1 i RAID5, do specyficznych
+ zastosowań używa się RAID0, pozostałe są rzadziej spotykane.
</para>
<section id="soft_raid_instalacja">
@@ -110,17 +112,26 @@
</para>
</section>
- <section id="soft_raid_partycje">
- <title>Podział na partycje</title>
+ <section id="soft_raid_planowanie">
+ <title>Planowanie macierzy</title>
<para>
- Zaczynamy od założenia partycji na każdym dysku,
- który ma wchodzić w skład macierzy. Partycje powinny
- być równe, w przeciwnym razie wielkość macierzy będzie
- wyznaczana przez najmniejszą partycję. Najlepszym
- narzędziem do tego celu jest program fdisk, gdyż pozwala
- dzielić dysk z dokładnością do cylindra. Więcej informacji
- o podziale na partycje zdobędziemy w
- <xref linkend="pl_dysk_partycje" />.
+ Jeśli zamierzamy tworzyć macierz opartą na partycjach,
+ to musimy założyć partycje na każdym dysku,
+ który ma wchodzić w skład macierzy. Urządzenie z
+ których składamy macierz powinny być równe,
+ w przeciwnym razie wielkość macierzy będzie
+ wyznaczana przez najmniejszą partycję.
+ </para>
+ <para>
+ Kernel może być ładowany wyłącznie z macierzy RAID 1, jeśli więc będziemy
+ chcieli używać np. RAID5 na głównym systemie plików to musimy umieścić
+ gałąź <filename>/boot</filename> na osobnej, niewielkiej macierzy RAID1.
+ Należy oprzeć się pokusie umieszczenia obszaru wymiany (swap) na RAID0,
+ gdyż awaria jednego z dysków może doprowadzić do załamania systemu.
+ </para>
+ <para>
+ Więcej informacji o podziale na partycje i planowaniu miejsca na dysku
+ zdobędziemy w <xref linkend="pl_dysk_partycje" />.
</para>
</section>
@@ -131,28 +142,34 @@
polecenia mdadm:
</para>
<para>
- <emphasis>mdadm -C {$dev_RAID} --level={$rodzaj} --raid-devices={$ilość_partycji} {$lista_partycji}</emphasis>
+ <emphasis>mdadm -C {$dev_RAID} --level={$rodzaj} --raid-devices={$ilość_urzadzen} {$urzadzenia}</emphasis>
</para>
<para>
<itemizedlist>
- <listitem><para>-C, --create - utwórz nową macierz.</para></listitem>
- <listitem><para>-l, --level - ustaw poziom RAID np: linear,
+ <listitem><para><option>-C, --create</option> - utwórz nową macierz.</para></listitem>
+ <listitem><para><option>-l, --level</option> - ustaw poziom RAID np: linear,
raid0, 0, stripe, raid1, 1, mirror, raid4, 4, raid5, 5, raid6,
6; Jak możemy zauważyć niektóre opcje są synonimami.
Przy opcji Building pierwsze mogą być użyte: raid0, raid1, raid4, raid5.
</para></listitem>
- <listitem><para>-n, --raid-devices - liczba aktywnych
+ <listitem><para><option>-n, --raid-devices</option> - liczba aktywnych
urządzeń (dysków) w macierzy
</para></listitem>
- <listitem><para>-x, --spare-devices - liczba zapasowych (eXtra)
+ <listitem><para><option>-x, --spare-devices</option> - liczba zapasowych (eXtra)
urządzeń w tworzonej macierzy. Zapasowe dyski można dodawać i
usuwać także później.</para></listitem>
- <listitem><para>-v --verbose - tryb "gadatliwy"</para></listitem>
+ <listitem><para><option>-v --verbose</option> - tryb "gadatliwy"</para></listitem>
+ <listitem>
+ <para>
+ <option>--auto=yes</option> - automatyczne tworzenie urządzeń w
+ <filename>/dev/</filename> przez mdadm (stosowane zwykle przy
+ użyciu UDEVa), więcej w Poradach na końcu rozdziału.
+ </para>
+ </listitem>
</itemizedlist>
</para>
<para>
Przykłady tworzenia macierzy różnego typu:
-
<itemizedlist>
<listitem>
<para>
@@ -160,23 +177,24 @@
<filename>/dev/sda1</filename> i
<filename>/dev/sdb1</filename> jako
<filename>/dev/md0</filename>
- <screen># mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda1 /dev/sdb1</screen>
+ <screen># mdadm -C -v /dev/md0 --level=0 -n 2 /dev/sda1 /dev/sdb1</screen>
</para>
</listitem>
<listitem>
<para>
RAID1 na dwóch partycjach - <filename>/dev/sdc1</filename>
i <filename>/dev/sdd1</filename> jako <filename>/dev/md1</filename>
- <screen># mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1</screen>
+ <screen># mdadm -C -v /dev/md1 --level=1 -n 2 /dev/sdc1 /dev/sdd1</screen>
</para>
</listitem>
<listitem>
<para>
RAID5 na 4 partycjach w tym jedna jako zapasowa
- (spare), jeśli nie podasz ile ma być zapasowych
+ (hot spare), jeśli nie podasz ile ma być zapasowych
partycji domyślnie 1 zostanie zarezerwowana na
zapasową
- <screen># mdadm --create --verbose /dev/md2 --level=5 --raid-devices=4 --spare-devices=1 /dev/sda3 /dev/sdb3 /dev/sdc3 /dev/sdd3</screen>
+ <screen># mdadm -C -v /dev/md2 --level=5 -n 4 --spare-devices=1 \
+/dev/sda3 /dev/sdb3 /dev/sdc3 /dev/sdd3</screen>
</para>
</listitem>
</itemizedlist>
@@ -189,7 +207,7 @@
czyli zakładamy system plików i odwołujemy się do niej np: jako
<filename>/dev/md0</filename> np.:
<screen># mkfs.xfs /dev/md0</screen>
- Teraz możemy dokonać odpowiednich poprawek w pliku
+ Teraz możemy dokonać odpowiednich wpisów w pliku
<filename>/etc/fstab</filename>.
</para>
<para>
@@ -207,22 +225,53 @@
ARRAY /dev/md2 devices=/dev/sda3,/dev/sdb3,/dev/sdc3,/dev/sdd3</screen>
</para>
<para>
- Jeśli któraś z macierzy ma obsługiwać główny system plików
- to musimy jeszcze skonfigurować bootloader (w następnym rozdziale),
- w przeciwnym wypadku już możemy ich używać. Dla pewności
- możemy zrestartować system i sprawdzić czy macierze się składają
- poprawnie.
+ Macierze (inne niż rootfs) są składane przez
+ rc-skrypt <filename>/etc/rc.d/rc.sysinit</filename>,
+ na podstawie powyższych wpisów konfiguracyjnych, zatem po restarcie
+ maszyny będziemy już z nich korzystać.
+ Jeśli mamy macierz z głównym systemem plików, to musimy
+ jeszcze przygotować initrd i bootloader (poniżej).
</para>
</section>
-
- <section id="soft_raid_bootloader">
- <title>Konfiguracja bootloadera</title>
+
+
+ <section id="soft_raid_initrd">
+ <title>Initrd</title>
<para>
- Jeśli chcemy by system startował z macierzy RAID1 (RAID0 i RAID2-5 nie są obsługiwane przez
- <productname>LILO\GRUB</productname>) musimy
- skonfigurować bootloader, w przypadku <productname>LILO</productname>
- w <filename>/etc/lilo.conf</filename> należy podać odpowiednie
- urządzenie dla opcji "root=" i "boot=":
+ Jeśli główny system plików ma być na macierzy to musimy
+ wygenerować obraz <emphasis>initrd</emphasis> z modułami,
+ które pozwolą na złożenie macierzy.
+ Na początek musimy mieć zainstalowany
+ pakiet mdadm-initrd. Generowanie takiego initrd przebiega
+ dokładnie tak samo jak dla zwykłego urządzenia blokowego,
+ musimy się tylko upewnić, że do obrazu trafiły dodatkowo
+ moduły: md-mod, odpowiednio raid0, raid1... i ewentualnie
+ xor. Generowanie obrazu initrd szczegółowo zostało opisane
+ w <xref linkend="kernel-urzadzenia_geninitrd" />.
+ </para>
+ </section>
+
+
+ <section id="soft_raid_boot_na_raid1">
+ <title>Bootloader</title>
+ <para>
+ Jeśli na raidzie ma się znaleźć głównym system plików (bez
+ <filename>/boot</filename>), to konfiguracja jest identyczna
+ jak w przypadku klasycznych urządzeń blokowych.
+ </para>
+ <para>
+ Jeśli gałąź <filename>/boot</filename>
+ ma się znaleźć na macierzy (wyłącznie RAID1) to powinniśmy
+ zainstalować bootloader na każdym z dysków wchodzących w
+ skład macierzy, dzięki czemu będziemy mogli
+ uruchomić system mimo awarii jednego z dysków.
+ RAID0 i RAID2-5 nie są obsługiwane przez
+ <productname>LILO\GRUB</productname>
+ </para>
+ <para>
+ W <productname>LILO</productname> w pliku <filename>/etc/lilo.conf</filename>
+ należy podać odpowiednie
+ urządzenie dla opcji <option>root</option> i <option>boot</option>:
<screen>boot=/dev/md0
raid-extra-boot="/dev/sda,/dev/sdb"
@@ -230,7 +279,10 @@
label=pld
root=/dev/md0
initrd=/boot/initrd</screen>
- Po zmodyfikowaniu konfiguracji musimy zaktualizować bootloader
+ Opcja w opcji <option>raid-extra-boot</option> wskazujemy urządzenia
+ na których ma zostać zainstalowany bootloader (urządzenia wchodzące
+ w skład <filename>/dev/md0</filename>). Po zmodyfikowaniu
+ konfiguracji musimy zaktualizować bootloader
poleceniem <command>lilo</command>.
</para>
@@ -288,6 +340,7 @@
will insure that if id0 fails that you can still boot to the os with id0
pulled and not have to have an emergency boot floppy.</screen>
+ Bootloadery szczegółowo opisaliśmy w <xref linkend="bootloader_wstep" />.
</para>
</section>
<section id="soft_raid_diagnostyka">
@@ -304,22 +357,54 @@
<section id="soft_raid_porady">
<title>Porady</title>
- <para>
- Mając dwie macierze RAID0 np: <filename>/dev/md0</filename> i
- <filename>/dev/md1</filename>, możemy utworzyć macierz RAID10
- jako <filename>/dev/md2</filename>
- <screen># mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/md0 /dev/md1</screen>
- analogicznie RAID01 tworzymy mając dwie macierze RAID1.
- </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Mając dwie macierze RAID0 np: <filename>/dev/md0</filename> i
+ <filename>/dev/md1</filename>, możemy utworzyć macierz RAID10
+ jako <filename>/dev/md2</filename>
+ <screen># mdadm -C -v /dev/md2 --level=1 -n 2 /dev/md0 /dev/md1</screen>
+ analogicznie RAID01 tworzymy mając dwie macierze RAID1.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Aby samemu złożyć macierz (z np: <productname>PLD Live CD</productname>)
+ wydajemy polecenie, które może wyglądać następująco:
+ <screen># mdadm -A /dev/md0 /dev/hda /dev/hdb</screen>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Jeśli macierz jest składana w trakcie startu systemu
+ to automatycznie tworzony jest plik urządzenia <filename>/dev/mdX</filename>.
+ Kiedy właśnie tworzymy macierz lub nie startowała wraz z system, to możemy
+ skorzystać z gotowych urządzeń w <filename>/dev</filename> (pakiet dev)
+ lub samemu je utworzyć (pakiet udev).
+ Udev nie tworzy urządzeń <filename>/dev/md0</filename>,
+ więc musimy w tym celu użyć parametru <option>--auto=yes</option>
+ w wywołaniach programu mdadm, lub utworzyć je poleceniem
+ <command>mknod</command>. Urządzeniu nadajemy
+ <literal>major</literal> o wartości 9 i kolejny, niepowtarzalny
+ numer <literal>minor</literal>.
+ Nie musimy się za to martwić o moduły, są ładowane automatycznie przez mdadm lub
+ z initrd. Więcej o UDEV w <xref linkend="kernel-urzadzenia_moduly_udev" />.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Wraz z pakietem mdadm dostarczany jest rc-skrypt uruchamiający mdadm
+ w trybie monitorowania (jako demona). Więcej szczegółów w dokumentacji
+ programu mdadm.
+ </para>
+ </listitem>
+ </itemizedlist>
+
</section>
<section id="soft_raid_dodatki">
<title>Dodatki</title>
<para>
- Uruchomienie macierzy z np: <productname>PLD Live CD</productname>
- <screen># mdadm -A /dev/md0 /dev/hda /dev/hdb</screen>
- </para>
- <para>
Literatura:
<itemizedlist>
<listitem>
@@ -331,12 +416,6 @@
<listitem>
<para><ulink url="http://gentoo-wiki.com/HOWTO_Gentoo_Install_on_Software_RAID">http://gentoo-wiki.com/HOWTO_Gentoo_Install_on_Software_RAID</ulink></para>
</listitem>
- <listitem>
- <para><ulink url="http://gentoo-wiki.com/HOWTO_Install_Gentoo_on_an_LVM2_root_partition">http://gentoo-wiki.com/HOWTO_Install_Gentoo_on_an_LVM2_root_partition</ulink></para>
- </listitem>
- <listitem>
- <para><ulink url="http://gentoo-wiki.com/HOWTO_Gentoo_Install_on_Software_RAID_mirror_and_LVM2_on_top_of_RAID">http://gentoo-wiki.com/HOWTO_Gentoo_Install_on_Software_RAID_mirror_and_LVM2_on_top_of_RAID</ulink></para>
- </listitem>
</itemizedlist>
</para>
</section>
Więcej informacji o liście dyskusyjnej pld-doc