Wprowadzenie
Narzędzie mdadm
może być używane do tworzenia i zarządzania macierzami pamięci masowej przy użyciu możliwości oprogramowania RAID w systemie Linux. Administratorzy mają dużą elastyczność w koordynowaniu swoich poszczególnych urządzeń pamięci masowej i tworzenia logicznych urządzeń pamięci masowej, które mają większą wydajność lub redundancji characteristics.
W tym przewodniku, będziemy przejść przez kilka różnych konfiguracji RAID, które mogą być skonfigurowane przy użyciu Ubuntu 16.04 server.
Prerequisites
W celu wykonania kroków w tym przewodniku, powinieneś mieć:
- Użytkownik non-root z
sudo
uprawnieniami na serwerze Ubuntu 16.04: Kroki w tym przewodniku zostaną ukończone z użytkownikiemsudo
. Aby dowiedzieć się, jak skonfigurować konto z tymi uprawnieniami, postępuj zgodnie z naszym Ubuntu 16.04 początkowej konfiguracji server guide. - Podstawowe zrozumienie terminologii RAID i koncepcji: Podczas gdy ten przewodnik będzie dotykać niektórych terminologii RAID w przejściu, bardziej kompletne zrozumienie jest bardzo przydatne. Aby dowiedzieć się więcej o RAID i uzyskać lepsze zrozumienie, jaki poziom RAID jest odpowiedni dla Ciebie, przeczytaj nasz artykuł Wprowadzenie do RAID.
- Wiele surowych urządzeń pamięci masowej dostępnych na serwerze: Będziemy demonstrować, jak skonfigurować różne typy macierzy na serwerze. Jako takie, trzeba będzie kilka dysków do konfiguracji. Jeśli używasz DigitalOcean, możesz użyć woluminów Block Storage, aby wypełnić tę rolę. W zależności od typu macierzy, trzeba będzie co najmniej między dwoma do czterech urządzeń pamięci masowej.
Resetting Existing RAID Devices
Throughout tego przewodnika, będziemy wprowadzać kroki, aby utworzyć kilka różnych poziomów RAID. Jeśli chcesz śledzić, prawdopodobnie będziesz chciał ponownie użyć urządzeń pamięci masowej po każdej sekcji. Ta sekcja może być odniesieniem do nauki, jak szybko zresetować urządzenia pamięci masowej komponentów przed przetestowaniem nowego poziomu RAID. Pomiń ten rozdział na teraz, jeśli nie masz jeszcze skonfigurować żadnych array.
Proces ten będzie całkowicie zniszczyć macierz i wszelkie dane zapisane na nim. Upewnij się, że operujesz na właściwej tablicy i że skopiowałeś wszystkie dane, które chcesz zachować przed zniszczeniem tablicy.
Znajdź aktywne macierze w pliku /proc/mdstat
, wpisując:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid0 sdc sdd 209584128 blocks super 1.2 512k chunks unused devices: <none>
Odmontuj macierz z systemu plików:
- sudo umount /dev/md0
Następnie zatrzymaj i usuń macierz, wpisując:
- sudo mdadm --stop /dev/md0
- sudo mdadm --remove /dev/md0
Znajdź urządzenia, które zostały użyte do zbudowania macierzy za pomocą następującego polecenia:
Pamiętaj, że nazwy/dev/sd*
mogą się zmienić przy każdym ponownym uruchomieniu komputera! Sprawdź je za każdym razem, aby upewnić się, że pracujesz na właściwych urządzeniach.
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disk sdb 100G disk sdc 100G linux_raid_member disk sdd 100G linux_raid_member disk vda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Po wykryciu urządzeń użytych do utworzenia tablicy wyzeruj ich superblok, aby przywrócić je do normalnego stanu:
- sudo mdadm --zero-superblock /dev/sdc
- sudo mdadm --zero-superblock /dev/sdd
Powinieneś usunąć wszelkie trwałe odniesienia do tablicy. Edytuj plik /etc/fstab
i wykasuj lub usuń odwołanie do swojej tablicy:
- sudo nano /etc/fstab
. . .# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0
Wykasuj lub usuń definicję tablicy z pliku /etc/mdadm/mdadm.conf
:
- sudo nano /etc/mdadm/mdadm.conf
. . .# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91
Na koniec zaktualizuj ponownie plik initramfs
:
- sudo update-initramfs -u
W tym momencie powinieneś być gotowy do ponownego użycia urządzeń pamięci masowej pojedynczo lub jako składników innej macierzy.
Tworzenie macierzy RAID 0
Macierz RAID 0 działa poprzez rozbicie danych na kawałki i rozłożenie ich na dostępnych dyskach. Oznacza to, że każdy dysk zawiera część danych i że wiele dysków będzie odwoływać się podczas pobierania informacji.
- Wymagania: minimum 2 urządzenia pamięci masowej
- Główna korzyść: Wydajność
- Rzeczy, o których należy pamiętać: Upewnij się, że masz funkcjonalne kopie zapasowe. Awaria pojedynczego urządzenia zniszczy wszystkie dane w macierzy.
Identyfikacja urządzeń składowych
Aby rozpocząć, znajdź identyfikatory dla surowych dysków, których będziesz używać:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Jak widać powyżej, mamy dwa dyski bez systemu plików, każdy o rozmiarze 100G. W tym przykładzie, urządzenia te otrzymały identyfikatory /dev/sda
i /dev/sdb
dla tej sesji. Będą to surowe komponenty, których użyjemy do zbudowania macierzy.
Utwórz macierz
Aby utworzyć macierz RAID 0 z tych komponentów, przekaż je do polecenia mdadm --create
. Będziesz musiał określić nazwę urządzenia, które chcesz utworzyć (/dev/md0
w naszym przypadku), poziom RAID i liczbę urządzeń:
- sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb
Możesz upewnić się, że macierz RAID została pomyślnie utworzona, sprawdzając plik /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid0 sdb sda 209584128 blocks super 1.2 512k chunks unused devices: <none>
Jak widać w podświetlonym wierszu, urządzenie /dev/md0
zostało utworzone w konfiguracji RAID 0 przy użyciu urządzeń /dev/sda
i /dev/sdb
.
Utwórz i zamontuj system plików
Następnie utwórz system plików na macierzy:
- sudo mkfs.ext4 -F /dev/md0
Utwórz punkt montowania, aby dołączyć nowy system plików:
- sudo mkdir -p /mnt/md0
Możesz zamontować system plików, wpisując:
- sudo mount /dev/md0 /mnt/md0
Sprawdź, czy nowe miejsce jest dostępne, wpisując:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Nowy system plików jest zamontowany i dostępny.
Zapisz układ macierzy
Aby upewnić się, że macierz jest składana ponownie automatycznie przy starcie systemu, będziemy musieli dostosować plik /etc/mdadm/mdadm.conf
. Możesz automatycznie przeskanować aktywną macierz i dodać plik, wpisując:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Potem możesz zaktualizować initramfs, czyli początkowy system plików RAM, tak aby macierz była dostępna podczas wczesnego procesu uruchamiania:
- sudo update-initramfs -u
Dodaj nowe opcje montowania systemu plików do pliku /etc/fstab
w celu automatycznego montowania przy starcie:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Twoja macierz RAID 0 powinna być teraz automatycznie montowana przy każdym starcie.
Tworzenie macierzy RAID 1
Typ macierzy RAID 1 jest realizowany przez mirroring danych na wszystkich dostępnych dyskach. Każdy dysk w macierzy RAID 1 otrzymuje pełną kopię danych, zapewniając nadmiarowość w przypadku awarii urządzenia.
- Wymagania: minimum 2 urządzenia pamięci masowej
- Korzyść podstawowa: Nadmiarowość
- Rzeczy, o których należy pamiętać: Ponieważ utrzymywane są dwie kopie danych, tylko połowa przestrzeni dyskowej będzie zdatna do użytku
Identyfikacja urządzeń składowych
Aby zacząć, znajdź identyfikatory dla surowych dysków, których będziesz używał:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Jak widać powyżej, mamy dwa dyski bez systemu plików, każdy o rozmiarze 100G. W tym przykładzie, urządzenia te otrzymały identyfikatory /dev/sda
i /dev/sdb
dla tej sesji. Będą to surowe komponenty, których użyjemy do zbudowania macierzy.
Utwórz macierz
Aby utworzyć macierz RAID 1 z tych komponentów, przekaż je do polecenia mdadm --create
. Będziesz musiał określić nazwę urządzenia, które chcesz utworzyć (/dev/md0
w naszym przypadku), poziom RAID i liczbę urządzeń:
- sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
Jeśli urządzenia składowe, których używasz, nie są partycjami z włączoną flagą boot
, prawdopodobnie otrzymasz następujące ostrzeżenie. Bezpiecznie jest wpisać y, aby kontynuować:
Outputmdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90mdadm: size set to 104792064KContinue creating array? y
Narzędzie mdadm
rozpocznie tworzenie kopii lustrzanej dysków. Może to zająć trochę czasu, ale w tym czasie można korzystać z macierzy. Postęp tworzenia kopii lustrzanej można monitorować, sprawdzając plik /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid1 sdb sda 104792064 blocks super 1.2 resync = 20.2% (21233216/104792064) finish=6.9min speed=199507K/secunused devices: <none>
Jak widać w pierwszym wyróżnionym wierszu, urządzenie /dev/md0
zostało utworzone w konfiguracji RAID 1 przy użyciu urządzeń /dev/sda
i /dev/sdb
. Drugi podświetlony wiersz pokazuje postęp mirroringu. Podczas kończenia tego procesu można kontynuować pracę z przewodnikiem.
Utwórz i zamontuj system plików
Następnie utwórz system plików na macierzy:
- sudo mkfs.ext4 -F /dev/md0
Utwórz punkt montowania, aby dołączyć nowy system plików:
- sudo mkdir -p /mnt/md0
Możesz zamontować system plików, wpisując:
- sudo mount /dev/md0 /mnt/md0
Sprawdź, czy nowe miejsce jest dostępne, wpisując:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 99G 60M 94G 1% /mnt/md0
Nowy system plików jest zamontowany i dostępny.
Zapisz układ macierzy
Aby upewnić się, że macierz jest ponownie składana automatycznie przy starcie systemu, będziemy musieli dostosować plik /etc/mdadm/mdadm.conf
. Możesz automatycznie przeskanować aktywną macierz i dodać plik wpisując:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Potem możesz zaktualizować initramfs, czyli początkowy system plików RAM, tak aby macierz była dostępna podczas wczesnego procesu startowego:
- sudo update-initramfs -u
Dodaj nowe opcje montowania systemu plików do pliku /etc/fstab
w celu automatycznego montowania przy starcie:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Twoja macierz RAID 1 powinna być teraz automatycznie montowana przy każdym starcie.
Tworzenie macierzy RAID 5
Typ macierzy RAID 5 jest realizowany przez paskowanie danych na dostępnych urządzeniach. Jednym z elementów każdego paska jest obliczony blok parzystości. W przypadku awarii jednego z urządzeń blok parzystości i pozostałe bloki mogą zostać wykorzystane do obliczenia brakujących danych. Urządzenie, które otrzymuje blok parzystości, jest obracane, aby każde urządzenie miało zrównoważoną ilość informacji o parzystości.
- Wymagania: minimum 3 urządzenia pamięci masowej
- Korzyść podstawowa: Nadmiarowość z większą pojemnością użytkową.
- Rzeczy, o których należy pamiętać: Podczas gdy informacje o parzystości są dystrybuowane, na parzystość będzie wykorzystywana pojemność jednego dysku. RAID 5 może cierpieć z powodu bardzo słabej wydajności, gdy w degraded state.
Identify the Component Devices
Aby zacząć, znajdź identyfikatory dla surowych dysków, które będą używane:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G disksdc 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Jak widać powyżej, mamy trzy dyski bez systemu plików, każdy o rozmiarze 100G. W tym przykładzie, te urządzenia otrzymały identyfikatory /dev/sda
, /dev/sdb
i /dev/sdc
dla tej sesji. Będą to surowe komponenty, których użyjemy do zbudowania macierzy.
Utwórz macierz
Aby utworzyć macierz RAID 5 z tych komponentów, przekaż je do polecenia mdadm --create
. Należy określić nazwę urządzenia, które ma zostać utworzone (/dev/md0
w naszym przypadku), poziom RAID oraz liczbę urządzeń:
- sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
Narzędzie mdadm
rozpocznie konfigurowanie macierzy (w rzeczywistości wykorzystuje proces odzyskiwania do zbudowania macierzy ze względów wydajnościowych). Może to zająć trochę czasu, ale w tym czasie można korzystać z macierzy. Postęp tworzenia kopii lustrzanej można monitorować, sprawdzając plik /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid5 sdc sdb sda 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 recovery = 15.6% (16362536/104792064) finish=7.3min speed=200808K/secunused devices: <none>
Jak widać w pierwszym wyróżnionym wierszu, urządzenie /dev/md0
zostało utworzone w konfiguracji RAID 5 z wykorzystaniem urządzeń /dev/sda
, /dev/sdb
i /dev/sdc
. Druga podświetlona linia pokazuje postęp budowy. Można kontynuować przewodnik, gdy proces ten zostanie zakończony.
Utwórz i zamontuj system plików
Następnie utwórz system plików na macierzy:
- sudo mkfs.ext4 -F /dev/md0
Utwórz punkt montowania, aby dołączyć nowy system plików:
- sudo mkdir -p /mnt/md0
Możesz zamontować system plików, wpisując:
- sudo mount /dev/md0 /mnt/md0
Sprawdź, czy nowe miejsce jest dostępne, wpisując:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Nowy system plików jest zamontowany i dostępny.
Zapisz układ macierzy
Aby upewnić się, że macierz jest ponownie składana automatycznie przy starcie systemu, będziemy musieli dostosować plik /etc/mdadm/mdadm.conf
.
Przed dostosowaniem konfiguracji należy ponownie sprawdzić, czy macierz zakończyła składanie. Ze względu na sposób, w jaki mdadm
buduje macierze RAID 5, jeśli macierz jest nadal budowana, liczba zapasowych dysków w macierzy będzie podawana niedokładnie:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid5 sdc sdb sda 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 unused devices: <none>
Powyższe dane wyjściowe wskazują, że przebudowa została zakończona. Teraz możemy automatycznie przeskanować aktywną macierz i dołączyć plik, wpisując:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Później można zaktualizować initramfs, czyli początkowy system plików RAM, tak aby macierz była dostępna podczas wczesnego procesu rozruchu:
- sudo update-initramfs -u
Dodaj nowe opcje montowania systemu plików do pliku /etc/fstab
w celu automatycznego montowania przy rozruchu:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Twoja macierz RAID 5 powinna być teraz automatycznie montowana przy każdym rozruchu.
Tworzenie macierzy RAID 6
Typ macierzy RAID 6 jest realizowany przez paskowanie danych na dostępnych urządzeniach. Dwa elementy każdego paska to obliczone bloki parzystości. Jeśli jedno lub dwa urządzenia ulegną awarii, bloki parzystości i pozostałe bloki mogą zostać użyte do obliczenia brakujących danych. Urządzenia, które otrzymują bloki parzystości są obracane tak, że każde urządzenie ma zrównoważoną ilość informacji o parzystości. Jest to podobne do macierzy RAID 5, ale pozwala na awarię dwóch dysków.
- Wymagania: minimum 4 urządzenia pamięci masowej
- Korzyść podstawowa: Podwójna nadmiarowość z większą pojemnością użytkową.
- Rzeczy do zapamiętania: Podczas gdy informacja o parzystości jest dystrybuowana, na parzystość będą wykorzystywane dwa dyski o pojemności. RAID 6 może cierpieć z powodu bardzo słabej wydajności, gdy jest w stanie degraded.
Identify the Component Devices
Aby zacząć, znajdź identyfikatory dla surowych dysków, które będą używane:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G disksdc 100G disksdd 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Jak widać powyżej, mamy cztery dyski bez systemu plików, każdy o rozmiarze 100G. W tym przykładzie, te urządzenia otrzymały identyfikatory /dev/sda
, /dev/sdb
, /dev/sdc
i /dev/sdd
dla tej sesji. Będą to surowe komponenty, których użyjemy do zbudowania macierzy.
Utwórz macierz
Aby utworzyć macierz RAID 6 z tych komponentów, przekaż je do polecenia mdadm --create
. Należy określić nazwę urządzenia, które ma zostać utworzone (/dev/md0
w naszym przypadku), poziom RAID oraz liczbę urządzeń:
- sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Narzędzie mdadm
rozpocznie konfigurowanie macierzy (w rzeczywistości wykorzystuje proces odzyskiwania do zbudowania macierzy ze względów wydajnościowych). Może to zająć trochę czasu, ale w tym czasie można korzystać z macierzy. Postęp tworzenia kopii lustrzanej można monitorować, sprawdzając plik /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid6 sdd sdc sdb sda 209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 resync = 0.6% (668572/104792064) finish=10.3min speed=167143K/secunused devices: <none>
Jak widać w pierwszym wyróżnionym wierszu, urządzenie /dev/md0
zostało utworzone w konfiguracji RAID 6 z wykorzystaniem urządzeń /dev/sda
, /dev/sdb
, /dev/sdc
i /dev/sdd
. Drugi podświetlony wiersz pokazuje postęp budowy. Możesz kontynuować przewodnik, gdy proces ten zostanie zakończony.
Utwórz i zamontuj system plików
Następnie utwórz system plików na macierzy:
- sudo mkfs.ext4 -F /dev/md0
Utwórz punkt montowania, aby dołączyć nowy system plików:
- sudo mkdir -p /mnt/md0
Możesz zamontować system plików, wpisując:
- sudo mount /dev/md0 /mnt/md0
Sprawdź, czy nowe miejsce jest dostępne, wpisując:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Nowy system plików jest zamontowany i dostępny.
Zapisz układ macierzy
Aby upewnić się, że macierz jest ponownie montowana automatycznie przy starcie systemu, będziemy musieli dostosować plik /etc/mdadm/mdadm.conf
. Możemy automatycznie przeskanować aktywną macierz i dodać plik wpisując:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Później można zaktualizować initramfs, czyli początkowy system plików RAM, tak aby macierz była dostępna podczas wczesnego procesu startowego:
- sudo update-initramfs -u
Dodaj nowe opcje montowania systemu plików do pliku /etc/fstab
w celu automatycznego montowania przy starcie:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Twoja macierz RAID 6 powinna być teraz automatycznie montowana przy każdym starcie.
Tworzenie złożonej macierzy RAID 10
Typ macierzy RAID 10 jest tradycyjnie implementowany poprzez tworzenie paskowej macierzy RAID 0 składającej się z zestawów macierzy RAID 1. Ten zagnieżdżony typ macierzy zapewnia zarówno nadmiarowość, jak i wysoką wydajność, kosztem dużej ilości miejsca na dysku. Narzędzie mdadm
ma swój własny typ RAID 10, który zapewnia ten sam typ korzyści z większą elastycznością. Nie jest on tworzony przez zagnieżdżanie macierzy, ale ma wiele z tych samych cech i gwarancji. Będziemy tutaj używać mdadm
RAID 10.
- Wymagania: minimum 3 urządzenia pamięci masowej
- Pierwotna korzyść: Wydajność i nadmiarowość
- Rzeczy, o których należy pamiętać: Wielkość zmniejszenia pojemności macierzy jest określana przez liczbę kopii danych, które użytkownik zdecyduje się zachować. Liczba kopii, które są przechowywane z
mdadm
stylu RAID 10 jest konfigurowalny.
Domyślnie, dwie kopie każdego bloku danych będą przechowywane w tym, co jest nazywane „blisko” układ. Możliwe układy, które dyktują sposób przechowywania każdego bloku danych to:
- near: Układ domyślny. Kopie każdego chunk’u są zapisywane kolejno podczas stripingu, co oznacza, że kopie bloków danych będą zapisywane wokół tej samej części wielu dysków.
- far: Pierwsza i kolejne kopie są zapisywane w różnych częściach urządzeń pamięci masowej w macierzy. Na przykład pierwszy blok może być zapisany na początku dysku, podczas gdy drugi blok zostanie zapisany w połowie drogi na innym dysku. Może to zapewnić pewien wzrost wydajności odczytu w przypadku tradycyjnych dysków wirujących kosztem wydajności zapisu.
- offset: Każdy pasek jest kopiowany z przesunięciem o jeden dysk. Oznacza to, że kopie są odsunięte od siebie, ale nadal blisko siebie na dysku. Pomaga to zminimalizować nadmierne poszukiwanie podczas niektórych workloads.
Możesz dowiedzieć się więcej o tych układach, sprawdzając „RAID10” sekcji tej man
strony:
- man 4 md
Możesz również znaleźć tę man
stronę online tutaj.
Identyfikacja urządzeń składowych
Aby zacząć, znajdź identyfikatory dla surowych dysków, których będziesz używał:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G disksdc 100G disksdd 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Jak widać powyżej, mamy cztery dyski bez systemu plików, każdy o rozmiarze 100G. W tym przykładzie, te urządzenia otrzymały identyfikatory /dev/sda
, /dev/sdb
, /dev/sdc
i /dev/sdd
dla tej sesji. Będą to surowe komponenty, których użyjemy do zbudowania macierzy.
Utwórz macierz
Aby utworzyć macierz RAID 10 z tych komponentów, przekaż je do polecenia mdadm --create
. Będziesz musiał określić nazwę urządzenia, które chcesz utworzyć (/dev/md0
w naszym przypadku), poziom RAID i liczbę urządzeń.
Możesz skonfigurować dwie kopie przy użyciu układu near, nie określając układu i numeru kopii:
- sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Jeśli chcesz użyć innego układu lub zmienić liczbę kopii, będziesz musiał użyć opcji --layout=
, która pobiera identyfikator układu i kopii. Układy to n dla bliskiego, f dla dalekiego i o dla przesunięcia. Liczba kopii do przechowania jest dołączana później.
Na przykład, aby utworzyć tablicę z 3 kopiami w układzie offset, polecenie wyglądałoby następująco:
- sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Narzędzie mdadm
rozpocznie konfigurowanie tablicy (w rzeczywistości używa procesu odzyskiwania do zbudowania tablicy ze względów wydajnościowych). Może to zająć trochę czasu, ale w tym czasie można korzystać z macierzy. Postęp tworzenia kopii lustrzanej można monitorować, sprawdzając plik /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid10 sdd sdc sdb sda 209584128 blocks super 1.2 512K chunks 2 near-copies resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/secunused devices: <none>
Jak widać w pierwszym wyróżnionym wierszu, urządzenie /dev/md0
zostało utworzone w konfiguracji RAID 10 przy użyciu urządzeń /dev/sda
, /dev/sdb
, /dev/sdc
i /dev/sdd
. Drugi podświetlony obszar pokazuje układ, który został użyty w tym przykładzie (2 kopie w najbliższej konfiguracji). Trzeci podświetlony obszar pokazuje postęp budowy. Można kontynuować przewodnik, gdy proces ten zostanie zakończony.
Utwórz i zamontuj system plików
Następnie utwórz system plików na macierzy:
- sudo mkfs.ext4 -F /dev/md0
Utwórz punkt montowania, aby dołączyć nowy system plików:
- sudo mkdir -p /mnt/md0
Możesz zamontować system plików, wpisując:
- sudo mount /dev/md0 /mnt/md0
Sprawdź, czy nowe miejsce jest dostępne, wpisując:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Nowy system plików jest zamontowany i dostępny.
Zapisz układ macierzy
Aby upewnić się, że macierz jest ponownie montowana automatycznie przy starcie systemu, będziemy musieli dostosować plik /etc/mdadm/mdadm.conf
. Możemy automatycznie przeskanować aktywną macierz i dodać plik wpisując:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Później można zaktualizować initramfs, czyli początkowy system plików RAM, tak aby macierz była dostępna podczas wczesnego procesu startowego:
- sudo update-initramfs -u
Dodaj nowe opcje montowania systemu plików do pliku /etc/fstab
w celu automatycznego montowania przy starcie:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Twoja macierz RAID 10 powinna być teraz automatycznie montowana przy każdym starcie.
Zakończenie
W tym przewodniku pokazaliśmy, jak tworzyć różne typy macierzy przy użyciu mdadm
programowego narzędzia RAID w systemie Linux. Macierze RAID oferują pewne istotne nadmiarowość i zwiększenie wydajności w stosunku do korzystania z wielu dysków indywidualnie.
Po ustaleniu typu macierzy potrzebnej dla Twojego środowiska i utworzeniu urządzenia, trzeba będzie dowiedzieć się, jak wykonać codzienne zarządzanie z mdadm
. Nasz przewodnik, jak zarządzać macierzami RAID z mdadm
na Ubuntu 16.04 może pomóc Ci zacząć.