Administrowanie systemami komputerowymi |
---|
2 |
Master Boot Record (MBR)
Zadanie polegało na skopiowaniu MBR z dysku do pliku, a później oglądnięcie jego zawartości, za pomocą programu xxd. Program ten wyświetla nam dane binarne w sposób przyjazny do analizowania. Wykonanie takiej kopii jest zalecane. Dzięki niej będziemy mogli odzyskać nasze dane, w przypadku awarii MBR. Należy jednak pamiętać, że w przypadku posiadania partycji rozszerzonych na naszym dysku, aby odzyskać dane z nich, będziemy potrzebowali także ich MBR. Dlatego lepszym sposobem jest wykonanie kopii poleceniem:
sfdisk –d /dev/sda > partycje.bakZ powyższego screenu można rozpoznać że na dysku są 2 partycje podstawowe. Pierwsza jest typu 83-linux a druga 82-SWAP. Oprócz tego na dysku jest partycja rozszerzona rozpoczynająca się w sektorze 35155968. Po przeglądnięciu wszystkich partycji które są zawarte w partycji rozszerzonej doliczyliśmy się 14 partycji na całym dysku.
Tworzenie i formatowanie dysków wirtualnych
W tym zadaniu mieliśmy utworzyć dyski wirtualne, które potem będziemy wykorzystywać w kolejnych zadaniach. Pojedynczy dysk tworzony był serią poleceń:
dd if=/dev/zero of=dysk0.img bs=1M count=2000
losetup /dev/loop0 dysk0.img
mkfs.ext2 /dev/loop0
Pierwsze z nich tworzy nam pusty plik o rozmiarze 2 gigabajtów, następne wiąże utworzony przez nas plik z urządzeniem /dev/loop0, a ostatnie formatuje to urządzenie(dysk) do zadanego przez nas systemu plików.
Montowanie dysków i szybkość działania systemów plikówĆwiczenie polegało na porównaniu czasów odczytu i zapisu danych na dyskach z różnymi systemami plikowymi. Dla usprawnienia procesu testowania, korzystaliśmy z następującej komendy:
time bonnie -u nobody -n 30 -s 0 -d dysk0/
Czasy odczytów przedstawione są w tabeli:
Typ czas | Ext2 | Ext3 | xfs | reiser |
---|---|---|---|---|
Real | 17.363s | 2.999s | 6.554s | 4.334s |
User | 0.164s | 0.048s | 0.128s | 0.064s |
sys | 16.681s | 2.324s | 5.040s | 4.000s |
Z porównania czasów można wywnioskować że w nowszej wersji systemu ext3 znacząco została poprawiona obsługa zapisu nowych plików.
RAID poziomu 0, 1, 5 i 6
Ćwiczenie polegało na testowaniu wydajności zapisu i odczytu różnych konfiguracji raid. Macierz RAID poziomu 0 tworzy się poleceniem:
# mdadm --create --verbose /dev/md/0 --level=0 --raid-disks=2 /dev/loop0 /dev/loop1
gdzie /dev/md/0 jest nazwą urządzenia za którym będzie widoczna macierz, level=0 to poziom macierzy a następne opcje oznaczają ile dysków wchodzi w skład oraz jakie to są urządzenia. Oczywiście w przypadku macierzy RAID 5 i ^6 były wykorzystywane odpowiednio 3 i 4 dyski. Czasy przedstawia tabela:
Typ Czasy | RAID 0 | RAID 1 | RAID 5 | RAID 6 |
---|---|---|---|---|
Real | 2.636s | 0.03 | 0.05 | 0.03 |
User | 0.044s | 2.37 | 2.48 | 2.37 |
sys | 2.296s | 04.42 | 04.91 | 04.42 |
Jak można się było spodziewać czasy systemowe wykonania zapisu/odczytu w przypadku raidów korzystających z mirroringu są wyższe niż rzeczywiste. Ma to związek z tym, że przy zapisie dane muszą być skopiowane na pozostałe dyski, oraz w przypadku raidu 5 i 6 muszą zostać obliczone bity parzystości. Dlatego proces zajmuje więcej czasu procesora, niż zauważa to użytkownik.
Symulacja uszkodzenia macierzy RAID 6
W tym zadaniu wywoływaliśmy uszkodzenie jednego z dysków składowych macierzy RAID 6, po czym obserwowaliśmy proces odbudowy takiej macierzy, po podłączeniu nowego dysku.
Obserwując informacje zwracane przez polecenie cat /proc/mdstat widzimy, że system wykrył uszkodzenie jednego z dysków macierzy(flaga (F) przy jednym z dysków).
Po podłączeniu dysku można było zaobserwować, że następuje odzyskiwanie danych i ponowny ich zapis na nowym dysku(postępujący wskaźnik recovery).
Zakończenie ćwiczeń z RAID
Ćwiczenie polegało na usunięciu utworzonych do tej pory dysków poleceniem
losetup –d /dev/loop0
Oraz analogicznymi dla pozostałych dysków.
Tworzenie dysków wirtualnych
Ćwiczenie polegało na utworzeniu trzech dysków wirtualnych, które będą wykorzystywane w następnych ćwiczeniach w partycji LVM. Podobnie jak w przypadku zadań z raid-em będziemy korzystać z plików imitujących dyski, podpiętych do urządzeń /dev/loop
Utworzenie woluminu fizycznego PV
Fizyczne woluminy utworzyliśmy poleceniem
pvcreate /dev/loop0 /dev/loop1 /dev/loop2Następnie informację o utworzonym woluminie możemy uzyskać poleceniem pvscan:
Utworzenie grupy woluminów i woluminów logicznych
Zadanie polegało na utworzeniu grupy woluminów korzystając z polecenia vgcreate. Zaczęliśmy od utworzenia grupy złożonej z dwóch woluminów fizycznych, do której później dodaliśmy trzeci wolumin fizyczny.
Następnie w utworzonej grupie woluminów utworzyliśmy trzy woluminy logiczne. Pierwsze dwa miały rozmiar po 20 mb, a trzeci miał rozmiar 60 mb. Pierwszy z woluminów podczas tworzenia ma podane, aby został umiejscowiony w /dev/loop0. Dwa pozostałe, przez brak podania miejca, zostaną rozłożone automatycznie(zajmą wolną przestrzeń).
Następnie na każdym z woluminów logicznych utworzyliśmy system plików ext3 z rozmiarem bloku 1024 B, oraz plik z danymi o rozmiarze 2 MB.
Zmiana rozmiaru woluminu logicznego
W tym zadaniu zmienialiśmy rozmiary woluminów logicznych. Wolumin /dev/grupa/1v1 został zwiększony o 20MB. Po wykonaniu polecenia
lvextend –L+20M /dev/grupa/1v1
zmiana nie została zauważona. Stała się ona widoczna dopiero po wykonaniu
resize2fs /dev/grupa/1v1
czyli zmianie obszaru zajmowanego przez system plików. Zostaliśmy przy tym poinformowani, że dokonywane przez nas zmiany zostaną wykonane „w locie”, ponieważ system plików jest zamontowany. Gdy podobną operację próbowaliśmy wykonać na partycji /dev/grupa/1v2 dostaliśmy informację, że nie możemy wykonać operacji, gdyż nie mamy wystarczającej liczby miejsca na jednym z fizycznych woluminów. Ma to związek z tym, że partycja /dev/grupa/1v2 jest równomiernie rozkładana na 3 woluminach.
W przypadku gdy zmianą jaką chcemy dokonać jest zmniejszenie rozmiaru woluminu, musimy pamiętać, aby najpierw zmniejszyć rozmiar systemu plików, a dopiero potem zmienić rozmiar woluminu. System przy zmienianiu rozmiaru woluminu sam za nas zaokrąglił rozmiar zmniejszenia do takiego, jaki jest wymagany przez to, że nasza partycja jest dzielona pomiędzy trzy woluminy fizyczne. Przy zmianie rozmiaru systemu plików musimy o tym jednak pamiętać sami.
Woluminy logiczne typu „snapshot”
Ćwiczenie polegało na zapoznaniu się z możliwością tworzenia obrazów własnego dysku wykorzystywanych jako kopie zapasowe. Dzięki temu możemy w prosty sposób wykonać kopię któregoś z woluminów poleceniem
Lvcreate –L10M –s –n backup /dev/grupa/lvol0
Zapisuje ono obecny stan woluminu. Wszystkie późniejsze zmiany które nastąpią na oryginalnym dysku nie zostaną dołączone do kopii, co widać na poniższym zrzucie:
Manipulowanie grupami VG
Zadanie miało na celu zapoznanie się z zarządzaniem grupami VG. Wykonując kolejne ćwiczenia mogliśmy zaobserwować, że całkowite usunięcie fizycznego woluminu z grupy możliwe jest dopiero jeżeli nie istnieje żaden logiczny wolumin, który korzysta z zasobów woluminu fizycznego. W tym celu usunęliśmy woluminy /dev/grupa/lvol0 oraz /dev/grupa/1v2 oraz przenieśliśmy dane woluminu /dev/grupa/1v1 z /dev/loop0 na inne woluminy fizyczne należące do VG „grupa”. Dopiero po tej operacji mogliśmy usunąć wolumin /dev/loop0 z grupy „grupa”.
Dopiero po wykonaniu tych operacji mogliśmy utworzyć nową grupę na woluminie /dev/loop0, oraz nowy wolumin logiczny w grupie „grupa2”.
Zakończenie ćwiczeń z LVM
Ćwiczenie miało na celu usunięcie wszelkich zmian jakie dokonaliśmy wykonując ćwiczenia z LVM, a wiec odmontowanie partycji, usunięcie woluminów logicznych, usunięcie grup VG oraz zwolnienie urządzeń /dev/loop.
GUID Partition Table (GPT)
Aby wykonać to zadanie, na początku należy stworzyć sobie nowy dysk twardy o rozmiarze 2 GB. Po uruchomieniu systemu z nowo zamontowanym dyskiem, należy poleceniem fdisk –l odnaleźć nazwę urządzenia, za którym system rozpoznaje nasz nowy dysk. Partycjonowanie dysku układem GPT wykonamy programem parted.
Uruchomienie programu parted:
parted /dev/sdb
Utworzenie nowej etykiety dysku oraz tablicy partycji gpt: mklabel gpt
Utworzenie trzech partycji,
Pierwsza – partyca rozruchowa EFI o rozmiarze 32 MB
mkpart primary fat32 0 32
Druga – partycja wymiany o rozmiarze 512 MB
mkpart primary linux-swap 32 544
Trzecia – partycja główna systemu wypełniająca resztę dysku
mkpart primary ext3 544 2147
Wyświetlenie utworzonego układu partycji:
Wyjście z parted i założenie systemu plików na partycjach
quit
mkdosfs /dev/sdb1
mke2fs –j /dev/sdb3
mkswap /dev/sdb2
Pobranie pierwszych 512 bajtów z dysku, dla zaobserwowania, że gpt, aby zachować kompatybilność z systemem mbr pozostawia pierwsze 512 bajtów nie ruszone.
dd if=/dev/sdb of=mbr bs=512 count=1
xxd mbr