2005.01_Programowy RAID oraz LVM_[Sprzet].pdf
(
695 KB
)
Pobierz
439127159 UNPDF
sprzęt
Programowy
RAID oraz LVM
Piotr Wolny
komputerów jest wyposażo-
nych w więcej niż jeden dysk
twardy. Tradycyjnie, zakłada-
my na tych dyskach kilka partycji, gdyż
Linux umożliwia nam montowanie róż-
nych części systemu plików (np.
/usr
czy
/home
) z niezależnych urządzeń. Na tym
nie kończą się możliwości wykorzystania
dysków twardych w Linuksie. Od dawna
nasz system wspiera dwa bardziej zaawan-
sowane mechanizmy gromadzenia danych:
Software RAID
oraz
Logical Volume Mana-
ger
. Przy ich pomocy możemy zwięk-
szyć wydajność pamięci masowej, a także
poprawić bezpieczeństwo przechowy-
wanych danych. Choć zarówno
Softwa-
re RAID,
jak i
Logical Volume Manager
(
LVM
), kojarzą się często z wielkimi serwe-
rami, wyposażonymi w dziesiątki dysków,
to z powodzeniem możemy je wykorzysty-
wać również na domowych komputerach,
wyposażonych w dwa, trzy dyski twarde.
Ponadto,
LVM
jest również użyteczny
z jednym dyskiem.
larnych rodzajów RAID można przeczytać
w ramce
Poziomy RAID
. Generalnie, RAID
umożliwia:
• zwiększenie bezpieczeństwa danych,
jeśli stosujemy nadmiarowe dyski
(bez nadmiarowych dysków nasz
RAID jest bardziej podatny na awarię
niż pojedyncze dyski);
• szybkość odczytu i zapisu danych
zwiększa się, jeśli tylko zastosujemy
rozdzielanie (ang.
striping
) danych
na dwa lub więcej niezależnych urzą-
dzeń fizycznych;
• połączenie kilku niezależnych urzą-
dzeń w jeden system plików może
zwiększyć wygodę administracji sys-
temem w pewnych konfiguracjach.
Pamiętajmy jednak, że RAID ma pewne
ograniczenia:
• jedno utworzone urządzenie RAID nie
może być dzielone na partycje, co cza-
sami powoduje konieczność konfigu-
rowania kilku RAID równocześnie;
RAID a LVM
Historycznie, starszym rozwiązaniem jest
programowy
RAID. Idea
Redundant Arrays
of Inexpensive Disks
nie jest taka stara, gdyż
pochodzi z 1987 roku. Opracowano wtedy
koncepcję łączenia wielu tanich dysków
w jedno duże i szybkie urządzenie. Aby
awaria jednego z połączonych dysków nie
powodowała utraty danych na całej macie-
rzy, w koncepcji ujęto dyski nadmiarowe
(ang.
redundant
), niezbędne do odtwo-
rzenia danych, w przypadku awarii. Tra-
dycyjne RAID wykonuje się sprzętowo,
najczęściej łącząc dyski SCSI, które, po
podłączeniu do komputera, są widocz-
ne jako jedno urządzenie. Linux umożli-
wia nam budowę RAID poprzez progra-
mowe połączenie dysków w macierze
i mogą to być zarówno urządzenia SCSI,
IDE, jak również SATA. Na temat popu-
DVD
Po uruchomieniu Linux+ Live
DVD można przetestować oma-
wiane zagadnienia.
Na płycie CD/DVD
Na płycie CD/DVD znajduje się
oprogramowanie omawiane
w artykule.
O autorze
Autor hobbistycznie i zawodo-
wo zajmuje się Linuksem mniej
więcej od czasów jądra 2.0.20.
Obecnie pracuje w organiza-
cji społecznej. Poza Linuksem
fascynuje go rock progresywny.
Kontakt z autorem:
autorzy@lpmagazine.org
Rysunek 1.
W Linuksie dyski różnego
typu możemy łączyć w jedno urządzenie
RAID lub LVM
60
styczeń 2005
C
oraz więcej spośród naszych
software raid oraz logical volume manager
sprzęt
Rysunek 2.
Sterowniki do RAID i LVM
znajdziemy w jądrze Linuksa
Tworzymy programowy
RAID
Programowy RAID możemy założyć na
co najmniej dwóch dowolnych partycjach.
Aby miał on jakikolwiek sens, partycje te
powinny znajdować się na osobnych dys-
kach. Zakładanie RAID na dwóch party-
cjach jednego dysku nie zwiększy bezpie-
czeństwa danych, ani nie przyspieszy ope-
racji dyskowych. Możemy łączyć w jeden
RAID partycje z całkiem różnych dysków,
np. IDE, SCSI czy SATA, ale z reguły taka
hybryda będzie pracowała z prędko-
ścią najwolniejszego spośród nich. Jeśli
chcemy łączyć dwa dyski IDE, powinny
one znajdować się na osobnych kanałach
IDE – gdy będą połączone jedną taśmą,
zauważymy wyraźny spadek wydajności.
Programowy RAID jest realizowany na
poziomie jądra systemu. Musimy posiadać
w jądrze wsparcie dla RAID. Przy konfi-
guracji jądra, w dziale
Multi-device sup-
port (RAID and LVM)
, powinniśmy zazna-
czyć
RAID support
oraz potrzebne tryby
RAID (możemy wszystkie). Najwygodniej
jest wkompilować obsługę RAID na stałe
do jądra. Możemy również nie kompilo-
wać jądra samodzielnie i polegać na dys-
trybucyjnym – we wszystkich nowych
dystrybucjach znajdziemy moduły
linear,
raid0, raid5
itd., potrzebne do działa-
nia naszej macierzy. Wystarczy polecenie
cat /proc/mdstat
, aby dowiedzieć się, czy
nasze jądro posiada wsparcie dla
Software
RAID
. Jeśli zobaczymy komunikat o braku
pliku, musimy skonfigurować i skompilo-
wać nowe jądro własnoręcznie.
Programowy RAID jest dostępny w ją-
drze Linuksa od bardzo dawna – jest stan
dardowo obecny w jądrach z serii 2.4.x
i 2.6.x, ale istnieją łatki pozwalające używać
go z jądrami 2.2.x, a nawet 2.0.x. Wszystkie
opisane tutaj czynności wykonywałem na
jądrze 2.6.9 – powinny one wyglądać iden-
tycznie w starszych wersjach jądra, włą-
cznie z serią 2.4.x.
Poza wsparciem w jądrze systemu,
będziemy potrzebować jeszcze dwóch
pakietów z oprogramowaniem:
mdadm
oraz
raidtools
(w Debianie –
raidtools2
).
Ten pierwszy zawiera narzędzie do akty-
wowania i zatrzymywania urządzeń
RAID, a drugi dostarcza podstawowych
narzędzi do tworzenia macierzy. Znajdzie-
my te pakiety we wszystkich popularnych
dystrybucjach Linuksa.
Załóżmy, że nasz system operacyj-
ny jest zainstalowany na dysku
sda
, a na
RAID chcemy przeznaczyć dyski IDE:
hda
RAID i LVM podczas
instalacji dystrybucji
Instalatory większości nowoczesnych dys-
trybucji umożliwiają utworzenie urządzeń
RAID i LVM już podczas instalacji Linuksa.
Przykładowo, w Aurox Linuksie wystarczy,
że wybierzemy
Partycjonowanie ręczne
Disk Druidem
i będziemy mogli utworzyć
RAID-a, LVM-a, a nawet LVM-a na RAID-
ie. W nowych wersjach Mandrakelinuksa
również musimy wybrać ręczny podział
na partycje, a później dodatkowo przełą-
czyć się na tryb zaawansowany. Instala-
tor tej dystrybucji ma podobne możliwości,
ale zdaje się, że nie pozwala na tworzenie
LVM-a na RAID-ie.
Jeśli wiemy, jak działają urządze-
nia RAID oraz LVM, utworzenie ich przy
pomocy któregoś z tych instalatorów
nie powinno stwarzać żadnych proble-
mów. Przykładowo, aby stworzyć RAID
w Aurox Linuksie, klikamy na RAID, wybie-
ramy pierwszy z dysków i zaznaczamy
utworzyć partycję programowego RAID.
Następnie to samo powtarzamy dla kolej-
nych dysków. Na zakończenie, jeszcze raz
klikamy na RAID i wybieramy utworzyć
urządzenie programowego RAID. Wtedy
będziemy mogli podać jego typ, punkt
zamontowania oraz system plików, który
zostanie na nim utworzony. LVM tworzy-
my podobnie – najpierw tworzymy jedną
lub kilka partycji typu
physical volume
LVM
, a później klikamy na LVM i tworzymy
poszczególne woluminy logiczne.
Moje doświadczenia z tworzeniem
RAID-a oraz LVM-a przez instalatory
dystrybucji nie są zachęcające. Polecam
instalację na tradycyjnych urządzeniach,
a dopiero później stworzenie RAID-a czy
LVM-a i przeniesienie na nie odpowiednich
katalogów.
• raz utworzony RAID nie może zostać
rozszerzony na więcej dysków.
Dzięki RAID, to co komputer widzi jako
jedno urządzenie blokowe, może być
w istocie kombinacją kilku partycji na róż-
nych dyskach twardych.
Logical Volume
Manager
idzie znacznie dalej. Udostęp-
niane przez niego urządzenia blokowe
nie tylko mogą fizycznie znajdować się
na dowolnej ilości dysków czy partycji, ale
również możliwe jest ich łatwe powięk-
szanie, zmniejszanie oraz przenoszenie.
To tak, jakby jedna tablica partycji obej-
mowała nie tylko kilka dysków, ale rów-
nież umożliwiała dodawanie/usuwanie,
zwiększanie/zmniejszanie partycji bez
żadnej przerwy w pracy systemu – czasem
nawet bez odmontowania partycji. Możli-
we jest przy tym równie łatwe dokładanie
kolejnych dysków. Reasumując, dzięki LVM
otrzymujemy:
• całkowitą dowolność w przydzielaniu
poszczególnych fizycznych dysków czy
partycji jako urządzeń blokowych w sys-
temie (np. urządzenie zamontowane
jako
/home
może składać się z jedne-
go dysku IDE i połowy dysku SCSI);
• możliwość łatwego zwiększania i zmnie-
jszania (jeśli system plików umożliwia
to drugie) poszczególnych urządzeń
widzianych przez system operacyjny
oraz przenoszenia ich między dyskami
(obejmuje to również łatwe dodawanie
i odejmowanie dysków z systemu);
• rozdzielanie (ang.
striping
) danych na
dwa lub więcej niezależnych urządzeń
fizycznych, aby zwiększyć wydajność;
• funkcję ułatwiającą wykonywanie
kopii bezpieczeństwa (
snapshot
).
i
hdd
. Na obydwu tych dyskach utwo-
rzyliśmy partycje, przy czym na RAID
mają być przeznaczone
hda2
oraz
hdd2
.
Zanim rozpoczniemy właściwą pracę,
możemy przetestować szybkość działa-
nia tych dysków, przed zbudowaniem
z nich macierzy. Jak na poważnie podejść
do testowania wydajności dysków, korzy-
stając z programu
Bonnie++
, opisuję
w ramce
Jak testować dyski?
. Przy pro-
jektowaniu systemu, w którym ważną
rolę odgrywa wydajność pamięci maso-
wej, należy zawsze kierować się wskaza-
niami programu
Bonnie++
lub podobne-
go. W tym artykule, aby szybko i obrazo-
wo pokazać różnice pomiędzy konfigura-
cjami RAID, posłużę się programem
dd
.
Przykładowo, po utworzeniu na partycji
Wadą linuksowego LVM-a jest brak możli-
wości stosowania nadmiarowych dysków,
ale możemy połączyć go z programowym
RAID-1, aby zapewnić sobie dodatkowe
zabezpieczenie.
www.lpmagazine.org
61
sprzęt
hda2
systemu plików
ext2
, zamontowa-
niu jej w
/mnt/test/
, wykonałem komendy:
cd /mnt/test;
dd if=/dev/zero of=ska-
suj_mnie count=2000000
. W efekcie otrzy-
małem następującą prędkość zapisu linio-
wego jednego dużego pliku:
cia tej macierzy podczas uruchamiania
się jądra systemu;
chunk-size
określa w
kilobajtach, na jakie najmniejsze jednost-
ki będą dzielone dane podczas zapisu na
macierz (nie można jednoznacznie powie-
dzieć, jaka wartość spowoduje najlepszą
wydajność, ale wstępnie możemy przyjąć,
że będzie ona równa
block size
naszego
systemu plików). Dalej wyliczamy i nume-
rujemy wszystkie użyte partycje.
Kolejnym krokiem jest zmiana przy
pomocy programu
fdisk
identyfikato-
rów partycji, na których będzie działa-
ła macierz. Powinny one otrzymać typ
fd
, czyli
Linux raid auto
. Bez tej czynno-
ści macierz będzie działać, ale nie zosta-
nie automatycznie wykryta przez jądro
systemu.
Gdy wszystko jest gotowe, wykonu-
jemy polecenie
mkraid /dev/md0
. Oczy-
wiście, w jego wyniku utracimy wszyst-
kie dane, które mieliśmy na partycjach
wymienionych w
/etc/raidtab
. W rezulta-
cie powinniśmy otrzymać coś takiego:
Widzimy prawie dwukrotny wzrost pręd-
kości zapisu tego pliku (z 32,8 do 18,4
sekundy). Podobna macierz, utworzo-
na w moim komputerze na dyskach
SATA, poradziła sobie z tym zapisem
w 14 sekund.
W ten sposób otrzymaliśmy urzą-
dzenie, które powinno działać znacz-
nie szybciej od pojedynczego dysku,
zarówno przy operacjach odczytu, jak
i zapisu. Możemy zamontować je
w dowolnym miejscu systemu plików,
w którym występuje intensywne użycie
dysku, np. w
/var/www
. Wystarczy tylko
odpowiedni wpis w
/etc/fstab
i prze-
niesienie starych danych na nowe urzą-
dzenie. Jeśli chcemy używać macierzy
w kilku różnych miejscach systemu
plików, musimy dołożyć więcej dysków
lub posiadane dyski podzielić na więcej
partycji, następnie zdefiniować w
/etc/
raidtab
kolejne urządzenia
/dev/md1, md2
itd., wszystkie je zainicjować (
mkraid
), sfor-
matować oraz zamontować.
Jeśli prawidłowo zainstalowaliśmy
pakiety
mdadmin
oraz
raidtools
, skryp-
ty odpowiedzialne za zamykanie syste-
mu powinny zatrzymać macierz (wyko-
nać komendę
raidstop
z odpowiednim
parametrem), zanim nasze dyski zostaną
odłączone od zasilania. W wielu dystry-
bucjach będzie również działało powia-
damianie pocztą administratora systemu
o awarii któregoś z dysków. Wspomnia-
ne pakiety mają jeszcze sporo więcej moż-
liwości – warto przejrzeć ich pliki konfi-
guracyjne w katalogach
/etc/default/ oraz
/etc/mdadm/.
1024000000 bytes transferred
in 28,490542 seconds
(35941752 bytes/sec)
Przy zastosowaniu systemu plików
ext3
czas potrzebny dla wykonania tej opera-
cji urósł do 32,8 sekundy.
RAID-0
Najpierw wypróbujemy RAID-0. Aby
go utworzyć, musimy napisać plik
/etc/
raidtab
. Na początek umieściłem tam
następujące wpisy:
raiddev /dev/md0
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/hda2
raid-disk 0
device /dev/hdd2
raid-disk 1
handling MD device /dev/md0
analyzing super-block
disk 0: /dev/hda2, 14659312kB,
raid superblock at 14659200kB
disk 1: /dev/hdd2, 18922680kB,
raid superblock at 18922560kB
Jak widzimy, ten plik nie jest skompli-
kowany. Pierwsza linia określa, które-
go urządzenia dotyczy ta konfigura-
cja. Poza
md0
możemy mieć dowol-
nie dużą ilość innych urządzeń (oczy-
wiście, powinny się one znajdować na
innych partycjach). Opcją
raid-level
ustalamy rodzaj macierzy – w tym
przypadku RAID-0, czyli
stripe
. Jako
nr-
raid-disk
podajemy,ilepartycjimapracować
w tym urządzeniu;
persistent-superblock
spowoduje, że w
superbloku
podanych
dalej partycji zostaną zapisane informa-
cje potrzebne do automatycznego wykry-
Jak widzimy, mimo, że partycje te różnią
się wielkością, macierz została utworzona.
Teraz możemy sprawdzić ją komendą
cat
/proc/mdstat
. Powinniśmy zobaczyć np.
coś takiego:
Personalities : [linear] [raid0]
[raid1] [raid5] [raid6] [raid10]
md0 : active raid0 hdd2[1] hda2[0]
33581760 blocks 4k chunks
unused devices: <none>
RAID-1
Załóżmy, że postanowiliśmy zmienić swoją
konfigurację, tworząc RAID-1 w miejsce
RAID-0 – tak naprawdę dopiero RAID-1
jest prawdziwym RAID
,
gdyż w RAID-0
nie ma nadmiarowych dysków. Zanim
rozpoczniemy tworzenie nowego urzą-
dzenia, musimy koniecznie dezakty-
wować poprzednie. Pierwszym kro-
kiem jest odmontowanie systemu plików
zamontowanego na macierzy (np.
umount
/var/www
). Następnie wykonujemy ko-
mendę
raidstop /dev/md0
. Dopiero
wtedy możemy zmieniać układ partycji
na dyskach i tworzyć nowe macierze.
Jeśli pominiemy te kroki, ani konfigura-
cja nowej macierzy, ani zmiany w ukła-
dzie partycji nie będą skuteczne – co naj-
wyżej mogą doprowadzić do bezpowrot-
nej utraty danych.
Od teraz urządzenie
/dev/md0
traktujemy
jak partycję dysku twardego. Możemy np.
wykonać polecenia:
# mkfs.ext3 /dev/md0
# mount /dev/md0 /mnt/test/
# cd /mnt/test/
# dd if=/dev/zero of=
skasuj_mnie count=2000000
Rysunek 3.
Wszystkie potrzebne
informacje do zbudowania RAID
i LVM możemy znaleźć po angielsku
w odpowiednich HOWTO
Na moim systemie ten szybki test pokazał:
1024000000 bytes transferred
in 18,410448 seconds
(55620591 bytes/sec)
62
styczeń 2005
software raid oraz logical volume manager
sprzęt
Plik konfiguracyjny
/etc/raidtab
dla
RAID-1 jest prawie identyczny, jak dla
RAID-0:
DESTROYING the contents of /dev/md0
in 5 seconds, Ctrl-C if unsure!
handling MD device /dev/md0
analyzing super-block
disk 0: /dev/hda2, 14659312kB,
raid superblock at 14659200kB
disk 1: /dev/hdd2, 18922680kB,
raid superblock at 18922560kB
Integracja RAID/LVM
w systemie
To, gdzie zamontujemy nowo powsta-
łe urządzenia, zależy od celu, jaki przy-
świecał nam przy koniguracji LVM-a czy
RAID-a, jak również od specyiki nasze-
go systemu. Mogą one zarówno przyspie-
szyć dostęp do danych (jeśli korzystamy z
rozdzielania dostępu na wiele izycznych
urządzeń), jak i usprawnić administrowa-
nie miejscem na dysku i zwiększyć bez-
pieczeństwo danych. Stosujmy więc go
w tych miejscach, gdzie wymagana jest
któraś z tych właściwości. Pierwszymi
lokalizacjami, które przychodzą na myśl
są
/home
oraz
/var –
z reguły tam naj-
częściej przewidzieliśmy za dużo lub za
mało miejsca na dysku, a także tam na
ogół mamy najważniejsze dane. W przy-
padku, gdy nasze nowe urządzenie działa
szybciej niż zwykłe dyski (dzięki wykorzy-
staniu
strip
), możemy zdecydować się na
przeniesienie na niego katalogu
/tmp
– ist-
nieją aplikacje, które intensywnie go wyko-
rzystują, czy nawet
/usr
, co może minimal-
nie przyśpieszyć uruchamianie się progra-
mów na komputerze
biurkowym.
Aby przenieść dane z podstawowego
urządzenia na nowe, możemy najprościej
zamontować go w tymczasowej lokali-
zacji (np.
/mnt/tmp
) i użyć komendy, np.
cp -ax /var/* /mnt/tmp/
, następnie
opróżnić przykładowy katalog
/var
i uak-
tualnić
/etc/fstab
, aby właściwe urządze-
nie było montowane w tym miejscu.
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/hda2
raid-disk 0
device /dev/hdd2
raid-disk 1
Od teraz urządzenie
/dev/md0
jest
gotowe do użycia. Ma ono pojemność 14
GB, czyli tyle samo, ile mniejsza z uży-
tych partycji. Tworzymy na nim system
plików i sprawdzamy, jak działa. Komen-
da
dd
, użyta identycznie jak w poprzed-
nich przykładach, tym razem potrzebo-
wała aż ponad 35 sekund na wykonanie
swojego zadania. Widzimy, że RAID-1
przy operacji zapisu działa nieznacznie
wolniej niż pojedynczy dysk twardy.
Kosztem zmniejszenia wydajności
otrzymujemy większe bezpieczeństwo
danych. Gdy jeden z dysków ulegnie
awarii, macierz będzie pracowała dalej,
a w logach systemowych pojawi się infor-
macja o konieczności jego wymiany.
Następnie wydajemy polecenie
mkraid
/dev/md0
i dostajemy w efekcie komu-
nikat:
handling MD device /dev/md0
analyzing super-block
disk 0: /dev/hda2, 14659312kB,
raid superblock at 14659200kB
/dev/hda2 appears to be already
part of a raid array -- use -f to
force the destruction of the
old superblock
mkraid: aborted.
RAID-5
Stworzenie RAID-5 nie jest wcale trud-
niejsze niż RAID-0 i RAID-1. Przykła-
dowy
/etc/raidtab
, który stworzyłem na
swoim komputerze, może wyglądać tak:
Jak widać, system odmówił stworzenia
nowej macierzy na urządzeniach, na któ-
rych poprzednio utworzyliśmy RAID-0.
Jesteśmy jednak pewni, że chcemy całko-
wicie zniszczyć poprzednią macierz, więc
wydajemy polecenie:
mkraid -R /dev/md0
i otrzymujemy np.:
raiddev /dev/md0
raid-level 5
nr-raid-disks 4
persistent-superblock 1
chunk-size 4
device /dev/hda2
raid-disk 0
device /dev/hdd2
raid-disk 1
device /dev/sda3
raid-disk 2
device /dev/sdb9
raid-disk 3
Wydane polecenie
mkraid -R /dev/md0
pokazało:
Rysunek 4.
Przykładowa konstrukcja LVM
DESTROYING the contents of /dev/md0
in 5 seconds, Ctrl-C if unsure!
handling MD device /dev/md0
analyzing super-block
disk 0: /dev/hda2, 14659312kB,
raid superblock at 14659200kB
disk 1: /dev/hdd2, 18922680kB,
raid superblock at 18922560kB
disk 2: /dev/sda3, 39070080kB,
raid superblock at 39070016kB
www.lpmagazine.org
63
sprzęt
przystąpimy do pracy, musimy koniecznie
przyswoić sobie kilka podstawowych ter-
minów, stosowanych w LVM-ie – bez tego
dosyć szybko się pogubimy.
LVM tworzy dodatkową warstwę abs-
trakcji pomiędzy urządzeniami pamięci
masowej a systemem plików w systemie.
W efekcie, pomiędzy partycją na dysku
a systemem plików w komputerze poja-
wiają się dodatkowe terminy:
Multiple devices driver support
. Z dostęp-
nych tam dodatkowych opcji powinniśmy
zaznaczyć przynajmniej
Snapshot target
oraz
Mirror target
– mimo, że są one ozna-
czone jako eksperymentalne, to są już
w powszechnym użyciu (najpierw musimy
wybrać
Prompt for development and/or
incomplete code/drivers
w dziale
Code
maturity level options
)
.
Najwygodniej jest wkompilować
LVM-a na stałe do jądra, ale w niektórych
dystrybucjach znajdziemy go w posta-
ci modułu o nazwie
dm-mod
. Jeśli pole-
gamy na jądrze dystrybucyjnym, musimy
tylko załadować ten moduł. Powinniśmy
używać jąder z serii 2.6.x, gdyż w star-
szych, z serii 2.4.x, znajduje się poprzed-
nia generacja LVM-a, która posiada nieco
mniejsze możliwości.
Poza wsparciem w jądrze, potrzebu-
jemy również zestawu programów do
tworzenia i administracji LVM. Są one
z reguły w pakiecie o nazwie
lvm2
,
a nie w pakiecie
lvm
lub
lvm01
, który jest
przeznaczony do współpracy ze starszy-
mi wersjami jądra. Używanie złej wersji
programów narzędziowych może ścią-
gnąć na nas nieoczekiwane problemy,
więc zwróćmy uwagę, czy mamy zainsta-
lowany właściwy i tylko właściwy pakiet.
Ponadto, musimy zainstalować wszyst-
kie biblioteki, od których jest on zależny
(zwłaszcza
libdevmapper
).
Rysunek 5.
Koniguracja naszych
urządzeń wymaga użycia poleceń,
działających z linii komend
•
physical volume
(PV) – wolumin
fizyczny to po prostu dysk twardy lub
częściej partycja na dysku twardym,
ale może to być również urządzenie
programowego RAID-a;
•
volume group
(VG) – grupa wolumi-
nów to jeden lub kilka woluminów
fizycznych (mamy z nią do czynienia
zawsze, nawet gdy posiadamy tylko
jeden PV);
•
logical volume
(LV) – wolumin logicz-
ny (system widzi LV jako urządzenie
blokowe, więc jeśli stosujemy LVM-a,
system plików (np. ext3) zakładamy
nie na partycji, ale na LV; podobnie, w
systemie montujemy LV, a nie partycję;
na jednej grupie woluminów tworzy-
my jeden lub więcej LV);
•
physical extent
(PE) i
logical extent
(LE) – ekstenty fizyczny i logicz-
ny (dane na woluminach fizycznych
i logicznych dzielone są na mniejsze
jednostki, np. po 4 MB; wielkość PE
i LE są takie same).
disk 3: /dev/sdb9, 9775521kB,
raid superblock at 9775424kB
Tak utworzone urządzenie ma rozmiar
ok. 27 GB. Dlaczego? Musimy pomnożyć
rozmiar najmniejszej z użytych partycji
(9775521kB ~= 9GB) razy ilość dysków
i odjąć rozmiar jednej partycji, potrzeb-
nej na dane o parzystości, więc 9*4-
9=27.
Szybki test, przy pomocy komendy
dd
i urządzenia
/dev/zero
, zajął na moim
systemie 20 sekund, więc RAID-5 działa
szybciej niż pojedynczy dysk, ale oczy-
wiście wolniej niż RAID-0.
Zapasowe dyski
Dla zwiększenia bezpieczeństwa macierzy
typu RAID-1 i RAID-5 (a także nieopisy-
wanych tutaj RAID-6 i RAID-10) możemy
wykorzystać dyski zapasowe (
spare disk
).
Taki dysk nie jest normalnie używany –
żadne dane nie są zapisywane ani odczy-
tywane z niego. W momencie, gdy jeden
z dysków zostanie uszkodzony, macierz
automatycznie odtworzy jego zawartość
na pierwszym, dostępnym
spare disk
.
Dzięki temu wyłączenie systemu w celu
wymiany uszkodzonych dysków może
zostać zaplanowane na znacznie później-
szy termin – możemy czekać nawet do
kolejnej awarii któregoś dysku i nie straci-
my żadnych danych.
Aby dodać do macierzy dysk zapaso-
wy, wystarczy do
/etc/raidtab
dopisać np.
takie linie:
Wybór urządzeń
Przy projektowaniu macierzy dyskowej
musieliśmy wybrać, na których party-
cjach jakich dysków zostanie ona utworzo-
na. LVM może korzystać z poszczególnych
Do działania LVM-a potrzebujemy w ją-
drze wsparcia dla
Device mapper
. Przy
konfiguracji jądra znajdziemy go w dziale
Listing 1.
Przykładowy raport, generowany przez vgdisplay
--- Volume group ---
VG Name dyski_IDE
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 37,27 GB
PE Size 4,00 MB
Total PE 9540
Alloc PE / Size 0 / 0
Free PE / Size 9540 / 37,27 GB
VG UUID OEEclx-9gIP-Oqyl-R1cH-9tkK-Mlm7-rWW4xi
device /dev/sdd1
spare-disk 0
Tworzymy LVM-a
Logical Volume Manager
sam w sobie nie
jest trudny do skonfigurowania. To co
odstrasza od niego wielu użytkowników,
to stosowana w nim terminologia. Zanim
64
styczeń 2005
Plik z chomika:
SOLARIX33
Inne pliki z tego folderu:
2006.09_LIRC – zdalne sterowanie w Linuksie_[Sprzet].pdf
(4689 KB)
2006.09_Telefon komórkowy i Linux_[Sprzet].pdf
(1314 KB)
2006.08_Odzyskiwanie danych_[Sprzet].pdf
(3336 KB)
2006.08_Procesory dwurdzeniowe w Linuksie_[Sprzet].pdf
(1682 KB)
2006.07_Linux na ekranie telewizora_[Sprzet].pdf
(1574 KB)
Inne foldery tego chomika:
Administracja
Aktualnosci
Audio
Bazy Danych
Bezpieczenstwo
Zgłoś jeśli
naruszono regulamin