SVN: PLD-doc/book/pl_book__dysk/pl_dysk__lvm2.sec
qwiat
qwiat w pld-linux.org
Sob, 21 Cze 2008, 00:46:17 CEST
Author: qwiat
Date: Sat Jun 21 00:46:17 2008
New Revision: 9819
Modified:
PLD-doc/book/pl_book__dysk/pl_dysk__lvm2.sec
Log:
- big redesign
Modified: PLD-doc/book/pl_book__dysk/pl_dysk__lvm2.sec
==============================================================================
--- PLD-doc/book/pl_book__dysk/pl_dysk__lvm2.sec (original)
+++ PLD-doc/book/pl_book__dysk/pl_dysk__lvm2.sec Sat Jun 21 00:46:17 2008
@@ -4,12 +4,9 @@
<para>
<productname>LVM</productname> (Logical Volume Management) to
system zaawansowanego zarządzania przestrzenią dyskową,
- który jest o wiele bardziej
- elastyczny, niż klasyczne partycje dyskowe.
- </para>
- <para>
- LVM ma dosyć złożoną strukturę, składa się z następujących
- rodzajów obiektów:
+ który jest o wiele bardziej elastyczny, niż klasyczne
+ partycje dyskowe. To wiąże się z bardziej złożoną konstrukcją,
+ która składa się z następujących struktur:
<itemizedlist>
<listitem>
<para>
@@ -36,45 +33,54 @@
</para>
</listitem>
</itemizedlist>
- Przykładowy schemat LVM-u:
+ Schemat LVM-u, który zostanie użyty jako przykład w tym rozdziale:
<screen> PV1 PV2
\ /
VG
/ | \
LV1 LV2 LV3</screen>
</para>
- <section id="lvm2_instalacja">
- <title>Instalacja</title>
- <para>
- Omawiamy implementację <productname>LVM2</productname>, zatem
- instalujemy pakiet <filename>lvm2</filename>, jeśli LVM ma być użyty
- jako główny system plików to potrzebujemy
- jeszcze pakiet <filename>lvm2-initrd</filename>
- do wygenerowania odpowiedniego obrazu initrd.
- </para>
- </section>
<section id="lvm2_planowanie">
<title>Planowanie woluminów</title>
<para>
- Musimy przygotować partycje na dyskach, które chcemy
+ Musimy wyznaczyć urządzenia blokowe których chcemy
użyć do stworzenia struktur PV.
Jeśli główny system plików ma być umieszczony na
woluminie logicznym to musimy przeznaczyć małą partycję
- dla gałęzi <filename>/boot</filename>, gdyż bootloadery lilo i grub nie
+ dla gałęzi <filename>/boot</filename>, gdyż bootloadery
+ <productname>lilo</productname> i <productname>grub</productname> nie
potrafią czytać danych z woluminów. Szczegółowy opis
dzielenia dysków na partycje zamieściliśmy w <xref linkend="pl_dysk_partycje" />.
</para>
<para>
- Planujemy utworzenie woluminów logicznych dla
- danych systemowych o następujących objętościach:
-<screen>/home - 5GB
-/var - 3GB
-/tmp - 2GB</screen>
+ Załóżmy, że mamy dwa dyski twarde po 250GB (<filename>/dev/sda</filename>
+ i <filename>/dev/sdb</filename>),
+ których powierzchnię chcemy połączyć i rozdysponować
+ pod system operacyjny. Jako, że rootfs także będzie na woluminie
+ to rozplanowanie miejsca może wyglądać następująco:
+ <itemizedlist>
+ <listitem><para><filename>/dev/sda1</filename>: mała partycja na /boot o pojemności 50MB</para></listitem>
+ <listitem><para><filename>/dev/sda2</filename>: druga partycja dla woluminów (reszta dysku)</para></listitem>
+ <listitem><para><filename>/dev/sdb</filename>: cały dysk dla woluminów</para></listitem>
+ </itemizedlist>
+ VG będzie miało rozmiar ~500GB miejsca, z czego 400GB przydzielimy
+ do użytku, a resztę pozostawimy dla przyszłych, nieokreślonych
+ na razie zastosowań. Miejsce na VG rozdysponujemy następująco:
+ <itemizedlist>
+ <listitem><para>swap: 5GB</para></listitem>
+ <listitem><para>/ (rootFS): 25GB</para></listitem>
+ <listitem><para>/home: 470GB</para></listitem>
+ </itemizedlist>
</para>
+ </section>
+ <section id="lvm2_instalacja">
+ <title>Instalacja</title>
<para>
- Dane będą przechowywane na
- "połączonych" partycjach <filename>/dev/hdd2</filename> i <filename>/dev/hdc1</filename>
- (zgodnie ze schematem we wstępie).
+ Omawiamy implementację <productname>LVM2</productname>, zatem
+ instalujemy pakiet <filename>lvm2</filename>, jeśli LVM ma być użyty
+ jako główny system plików to potrzebujemy
+ jeszcze pakiet <filename>lvm2-initrd</filename>
+ do wygenerowania odpowiedniego obrazu initrd.
</para>
</section>
<section id="lvm2_budwowanie">
@@ -85,49 +91,65 @@
</para>
<para>
- tworzymy Physical Volumes:
- <screen># pvcreate /dev/hdd2 /dev/hdc1</screen>
- tworzymy Volume Group o nazwie np. "sys":
- <screen># vgcreate sys /dev/hdd2 /dev/hdc1</screen>
- Zakładamy, że suma objętości partycji dała nam 14GB miejsca
+ Dzielimy dysk /dev/sda na dwie opisane powyżej partycje, a następnie
+ wskazujemy Physical Volumes:
+ <screen># pvcreate /dev/sda2 /dev/sdb</screen>
+ tworzymy Volume Group o nazwie np. "vgsys":
+ <screen># vgcreate vgsys /dev/sda2 /dev/sdb</screen>
Tworzymy woluminy o podanych pojemnościach w MB (-L)
- i dowolnych nazwach (-n)
-<screen># lvcreate -L 5000 -n homes sys
-# lvcreate -L 3000 -n var sys
-# lvcreate -L 2000 -n tmp sys</screen>
- tak więc na VG pozostaje 4GB wolnego miejsca, które
- możemy rozdysponować w przyszłości (o tym w dalszej części rozdziału).
- </para>
- <para>
- Rzucającą się w oczy cechą woluminów logicznych jest
+ i dowolnych nazwach (-n):
+<screen># lvcreate -L 5GB -n swap vgsys
+# lvcreate -L 25GB -n rootfs vgsys
+# lvcreate -L 470GB -n home vgsys</screen>
+ na naszym VG pozostaje 100GB wolnego miejsca, które
+ możemy rozdysponować w przyszłości (przykład dalszej części
+ rozdziału). Rzucającą się w oczy cechą woluminów logicznych jest
możliwość swobodnego nadawania im nazw, co znacznie ułatwia
- określenie zawartości takiego woluminu. Do utworzonych
- powyżej woluminów odwołujemy się za pomocą urządzeń
- <filename>/dev/sys/homes</filename>,
- <filename>/dev/sys/var</filename> i
- <filename>/dev/sys/tmp</filename>.
- </para>
- </section>
- <section id="lvm2_konfiguracja">
- <title>Konfiguracja</title>
- <para>
+ utrzymanie porządku. Do utworzonych
+ powyżej woluminów odwołujemy się za pomocą utworzonych
+ przed chwilą urządzeń:
+ <filename>/dev/vgsys/swap</filename>,
+ <filename>/dev/vgsys/rootfs</filename> i
+ <filename>/dev/vgsys/home</filename>.
Woluminy są już gotowe do pracy, musimy jeszcze tylko
- utworzyć na nich systemy plików np.:
- <screen># mkfs.xfs /dev/sys/homes</screen>
+ utworzyć na nich systemy plików, co robimy jak w przypadku
+ tradycyjnych partycji np.:
+<screen># mkswap /dev/vgsys/swap
+# mkfs.xfs /dev/vgsys/rootfs
+# mkfs.xfs /dev/vgsys/home</screen>
+ partycja dla gałęzi /boot:
+<screen># mkfs.ext2 /dev/sda1</screen>
Teraz mountujemy woluminy w klasyczny sposób i
jeśli wszystko przebiegło bez błędów
dokonujemy odpowiednich modyfikacji w
<filename>/etc/fstab</filename>.
- Jeśli chcemy umieścić
- główny system plików na LV to musimy jeszcze wygenerować
- nowy obraz initrd, co zostało przedstawione w
- <xref linkend="kernel-urzadzenia_geninitrd" />.
</para>
+ </section>
+ <section id="lvm2_konfiguracja_startowa">
+ <title>Konfiguracja startowa</title>
<para>
- Woluminy są składane automatycznie przez rc-skrypt
+ Woluminy są uruchamiane automatycznie przez rc-skrypt
<filename>/etc/rc.d/rc.sysinit</filename> lub
<filename>initrd</filename>. Moduł device mappera
również jest ładowany automatycznie.
+ Jeśli chcemy umieścić główny system plików na LV,
+ to musimy jeszcze wygenerować nowy obraz initrd, z
+ obsługą LVM. Zostało to szczegółowo przedstawione w
+ <xref linkend="kernel-urzadzenia_geninitrd" />.
+ W konfiguracji bootloadera ustawiamy opcję 'root=' na
+ <literal>/dev/vgsys/rootfs</literal>.
+ Teraz instalujemy system, instalujemy bootloder i
+ możemy zrestartować maszynę.
+ </para>
+ <para>
+ Gdy zajdzie potrzeba "ręcznego" aktywowania woluminów (np. spod RescueCD),
+ to na początek musimy się upewnić, że jest załadowany moduł
+ <emphasis>dm-mod</emphasis>. Kernel nie zgłasza
+ komunikatów o odnalezieniu woluminów, tak jak ma to miejsce
+ z partycjami, należy je odszukać za pomocą odpowiednich
+ narzędzi: <command>lvmdiskscan</command> i <command>lvscan</command>.
+ Jeśli odnaleźliśmy żądane struktury, to możemy je aktywować:
+ <screen># vgchange -a y</screen>
</para>
</section>
<section id="lvm2_diagnostyka">
@@ -140,7 +162,7 @@
<command>vgdisplay</command>, <command>lvdisplay</command>.
</para>
<para>
- Do niektórych operacji z voluminami będziemy musieli je
+ Do niektórych operacji z woluminami będziemy musieli je
odmontować i deaktywować. Aby deaktywować wszystkie woluminy
użyjemy polecenia
<screen># vgchange -a n</screen>
@@ -149,20 +171,20 @@
</para>
</section>
<section id="lvm2_powiekszanie">
- <title>Zarządzanie - Powiększanie woluminu</title>
+ <title>Zarządzanie: powiększanie woluminu</title>
<para>
Teraz przedstawimy potęgę LVM-a: pokażemy jak powiększyć wolumin, gdy dochodzimy
do wniosku, że przeznaczonego miejsca jest za mało.
- Załóżmy, że mamy woluminy utworzone zgodnie z wcześnijeszymi przykładami
- i chcemy przenaczyć całą dostępną wolną przestrzeń na naszym VG (4GB)
- dla <filename>/dev/sys/homes</filename>:
- <screen># lvextend -l 100%VG /dev/sys/homes</screen>
+ Załóżmy, że mamy woluminy utworzone zgodnie z wcześniejszymi przykładami
+ i chcemy przeznaczyć całą dostępną wolną przestrzeń na naszym VG (100GB)
+ dla <filename>/dev/vgsys/homes</filename>:
+ <screen># lvextend -l 100%VG /dev/vgsys/home</screen>
Teraz, kiedy wolumin jest powiększony, musimy rozszerzyć system plików,
w naszych przykładach jest to XFS, zatem musimy podmontować wolumin,
a następnie:
<screen># xfs_growfs /home</screen>
Operacja trwa krótko i nie powoduje utraty danych, jednak jak przypadku
- każdych operacji dyskowych, powinniśmy wczeniej wykonać kopię zapasową.
+ każdych operacji dyskowych, powinniśmy wcześniej wykonać kopię zapasową.
Każdy system plików posiada własne narzędzia do zmiany rozmiaru systemu plików,
szczegóły w ich dokumentacji.
</para>
@@ -171,8 +193,8 @@
<title>Porady</title>
<para>
Woluminy LVM powodują zwiększone ryzyko uszkodzenia
- danych, gdyż awaria jednego dysku jest jednoznaczna
- z utratą wszystkich danych. Z tego powodu zaleca się
+ danych, gdyż awaria jednego dysku może spowodować utratę
+ wszystkich danych. Z tego powodu zaleca się
tworzenie woluminów na macierzach RAID.
</para>
</section>
Więcej informacji o liście dyskusyjnej pld-doc