Majhna digresija: ta LR je sintetika.
Nekatere naloge, opisane tukaj, je mogoče opraviti veliko preprosteje, a ker je naloga l/r spoznati
s funkcionalnostjo raid in lvm so nekatere operacije umetno zapletene.
Zahteve za orodja za izvedbo LR:
Orodja za virtualizacijo, kot je Virtualbox
Slika namestitve Linuxa, na primer Debian9
Razpoložljivost interneta za prenos več paketov
Povežite se prek ssh z nameščenim VM (izbirno)
POZOR
To laboratorijsko delo je povezano s tako subtilno zadevo, kot je varnost podatkov - to je področje, kjer
ki omogoča izgubo vseh vaših podatkov zaradi najmanjše napake – ene dodatne črke ali številke.
Ker opravljate laboratorijsko delo, niste v nobeni nevarnosti, le da boste morali začeti delati znova.
V resničnem življenju je vse veliko bolj resno, zato morate imena diskov vnesti zelo previdno, z razumevanjem
kaj točno počnete s trenutnim ukazom in s katerimi diski delate.
Druga pomembna točka je poimenovanje diskov in particij: glede na situacijo se lahko številke diskov razlikujejo
od tistih vrednosti, ki so predstavljene v ukazih pri laboratorijskem delu.
Torej, če na primer odstranite disk sda iz matrike in nato dodate nov disk, bo prikazan nov disk
v sistemu z imenom sda. Če znova zaženete pred dodajanjem novega diska, potem novega
disk se bo imenoval sdb, stari pa sda
Laboratorij je treba izvajati kot superuporabnik (root), kot zahteva večina ukazov
povišani privilegiji in nima smisla nenehno stopnjevati privilegije prek sudo
Študijska gradiva
RAID
LVM
Poimenovanje diska v OS Linux
Kaj je razdelek
Kaj je razdelilna tabela in kje je shranjena?
Kaj je grub
Uporabljeni pripomočki
1) ogled informacij o disku
lsblk -o IME, VELIKOST, FSTYPE, TYPE, MOUNTPOINT
fdisk -l
2) ogled informacij in delo z LVM
pvs
pvextend
pvccreate
pvresize
itd
vgreduce
lv
lvextend
3) ogled informacij in delo z RAID
mačka /proc/mdstat
madadm
4) točke pritrditve
mount
umount
mačka /etc/fstab
mačka /etc/mtab
5) ponovna particija diska
fdisk /dev/XXX
6) kopiranje particij
dd if=/dev/xxx of=/dev/yyy
7) delo s particijsko mizo
delx
sfdisk
mkfs.ext4
8) delo z zagonskim nalagalnikom
grub-install /dev/XXX
posodobitev-grub
9) razno
tudi
apt
rsync
Laboratorijske vaje so sestavljene iz 3 delov:
nastavitev delujočega sistema z uporabo lvm, raid
emulacija ene od okvar diska
sprotna menjava diskov, dodajanje novih diskov in premikanje particij.
Naloga 1 (namestitev OS in konfiguracija LVM, RAID)
1) Ustvarite nov virtualni stroj in mu dajte naslednje lastnosti:
1 GB RAM
1 procesor
2 trdi diski (poimenujte jih ssd1, ssd2 in jim dodelite enake velikosti, označite polja za vročo zamenjavo in ssd)
Krmilnik SATA, konfiguriran za 4 vrata
2) Začnite nameščati Linux in ko pridete do izbire trdih diskov, naredite naslednje:
Metoda razdelitve: ročna, po kateri bi morali videti to sliko:
Nastavitev ločene particije za /boot: Izberite prvi disk in na njem ustvarite novo tabelo particij
Velikost particije: 512M
Točka priklopa: /boot
Ponovite nastavitve za drugi disk, a ker ne morete dvakrat priklopiti / zagnati dvakrat hkrati, izberite točko priklopa: nobena, sčasoma dobite naslednje (slika s podbojem, prelen, da bi jo ponovil):
Nastavitev RAID:
Izberite prosti prostor na prvem disku in konfigurirajte vrsto particije kot fizični nosilec za RAID
Izberite "Končano z nastavitvijo particije"
Ponovite popolnoma enake nastavitve za drugi disk, kar ima za posledico naslednje:
Izberite "Konfiguriraj programski RAID"
Ustvari MD napravo
Vrsta naprave programskega RAID: izberite zrcaljeno polje
Aktivne naprave za polje RAID XXXX: izberite oba pogona
Rezervne naprave: pustite 0 privzeto
Aktivne naprave za polje RAID XX: izberite particije, ki ste jih ustvarili pod raidom
Ohrani trenutno postavitev particije in konfiguriraj LVM: Da
Ustvari skupino nosilcev
Ime skupine nosilcev: sistem
Naprave za novo skupino nosilcev: izberite ustvarjeni RAID
Ustvari logični nosilec
ime logičnega nosilca: root
velikost logičnega nosilca: 25 velikosti vašega diska
Ustvari logični nosilec
ime logičnega nosilca: var
velikost logičnega nosilca: 25 velikosti vašega diska
Ustvari logični nosilec
ime logičnega nosilca: log
velikost logičnega nosilca: 15 velikosti vašega diska
Z izbiro Display configuration details bi morali dobiti naslednjo sliko:
Ko končate z nastavitvijo LVM, bi morali videti naslednje:
Postavitev particije: enega za drugim izberite vsak nosilec, ustvarjen v LVM, in ga postavite, na primer za root, takole:
Uporabi kot: ext4
točka pritrditve: /
Rezultat označevanja korenske particije bi moral izgledati takole:
ponovite operacijo particioniranja za var in log, pri čemer izberete ustrezne točke priklopa (/var in /var/log vnesete ročno), dobite naslednji rezultat:
Izberite Dokončaj particioniranje
Postavljenih vam bo več vprašanj o dejstvu, da imate še vedno nepriklopljeno particijo in da zamenjava ni konfigurirana. Na obe vprašanji je treba odgovoriti nikalno.
Končni rezultat bi moral izgledati takole:
3) Zaključite namestitev operacijskega sistema z namestitvijo grub na prvo napravo (sda) in zaženite sistem.
4) Kopirajte vsebino /boot particije s pogona sda (ssd1) na pogon sdb (ssd2)
Naštejte vse diske, ki vam jih je dal prejšnji ukaz, in opišite, za kakšen disk gre
Poiščite pogon, kjer grub ni bil nameščen, in izvedite to namestitev: grub-install /dev/sdb
si oglejte informacije o trenutnem napadu z ukazom cat /proc/mdstat in zapišite, kar vidite.
poglejte izpis ukazov: pvs, vgs, lvs, mount in zapišite, kaj točno ste videli
S svojimi besedami opišite, kaj ste naredili in kakšen rezultat ste dobili z nalogo.
Po zaključku te naloge je priporočljivo, da shranite varnostno kopijo mape navideznega stroja ali make
potepuška škatla: https://t.me/bykvaadm/191
Rezultat: Virtualni stroj z diski ssd1, ssd2
Naloga 2 (Emulacija okvare enega od diskov)
1) Če ste označili polje za vročo zamenjavo, lahko diske brišete sproti
Izbrišite disk ssd1 v lastnostih stroja
Poiščite imenik, kjer so shranjene datoteke vašega virtualnega stroja, in izbrišite ssd1.vmdk
2) Prepričajte se, da vaš virtualni stroj še vedno deluje
3) Ponovno zaženite virtualni stroj in se prepričajte, da še vedno deluje
4) preverite stanje polja RAID: cat /proc/mdstat
5) dodajte nov disk enake velikosti v vmesnik VM in ga poimenujte ssd3
6) opravite operacije:
preverite, ali je novi disk prispel v sistem z uporabo fdisk -l
kopirajte particijsko tabelo s starega diska na novega: sfdisk -d /dev/XXXX | sfdisk /dev/LLG
poglejte rezultat z uporabo fdisk -l
Dodajte nov disk v polje raid: mdadm —manage /dev/md0 —add /dev/YYY
Poglejte rezultat: cat /proc/mdstat. Videti bi morali, da se je sinhronizacija začela
7) Sedaj morate ročno sinhronizirati particije, ki niso del RAID.
Če želite to narediti, bomo uporabili pripomoček dd, kopiranje z diska v živo na novega, ki ste ga pred kratkim namestili
dd if=/dev/XXX of=/dev/YYY
8) Ko je sinhronizacija končana, namestite grub na nov pogon
9) Znova zaženite VM, da se prepričate, da vse deluje
S svojimi besedami opišite, kaj ste naredili in kakšen rezultat ste dobili z nalogo.
Rezultat: disk ssd1 je bil odstranjen, disk ssd2 shranjen, disk ssd3 dodan.
Naloga 3 (Dodajanje novih diskov in premikanje particije)
To je najbolj zapletena in obsežna naloga od vseh predstavljenih.
Zelo natančno preverite, kaj počnete in s katerimi diski in particijami.
Priporočljivo je, da pred zagonom naredite kopijo.
Ta naloga je neodvisna od naloge št. 2, lahko jo izvedete po nalogi št. 1, prilagojeno za imena diskov.
Drugi del te laboratorijske naloge naj bi pripeljal do popolnoma enakega stanja, kot je bilo po opravljenem prvem delu.
Da bi vam olajšali delo, priporočam, da diskov ne odstranite fizično iz gostiteljskega računalnika, ampak samo
odklopite jih v lastnostih stroja. Z vidika OS v VM bo videti popolnoma enako, vendar lahko
če se kaj zgodi, priklopite disk nazaj in nadaljujte z delom tako, da vrnete nekaj točk nazaj, če
imate težave. Na primer, morda ste to naredili nepravilno ali ste pozabili kopirati particijo /boot na nov disk.
Svetujem vam le, da večkrat preverite, s katerimi diski in particijami delate, ali še bolje
Na list papirja zapišite ujemanje med diski, particijami in številko "fizičnega" diska. Lepo in jasno drevo
ekipni žreb lsblk, uporabite ga čim pogosteje za analizo, kaj ste storili in kaj morate storiti.
K zgodbi...
Predstavljajte si, da vaš strežnik že dolgo deluje na 2 pogonih SSD, ko nenadoma...
1) Simulirajte okvaro diska ssd2 tako, da disk odstranite iz lastnosti VM in znova zaženete
2) Oglejte si trenutno stanje diskov in RAID:
5) Najprej morate poskrbeti za varnost podatkov na starem disku.
Tokrat bomo podatke prenašali s pomočjo LVM:
Najprej morate kopirati tabelo datotek s starega diska na novega:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Zamenjajte pravilne diske za x,y in ugotovite, kaj naredi ta ukaz.
Zaženite lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT in primerjajte njegov rezultat s prejšnjim klicem.
Kaj se je spremenilo?
uporabite ukaz dd za kopiranje /boot podatkov na nov disk
dd if=/dev/XXX of=/dev/YYY
če je /boot ostal nameščen na starem disku, ga je treba znova namestiti na živi disk:
mount | grep boot # смотрим куда смонтирован диск
lsblk # смотрим какие диски есть в системе и смотрим есть ли диск, полученный из предыдущего пункта
umount /boot # отмонтируем /boot
mount -a # выполним монтирование всех точек согласно /etc/fstab.
# Поскольку там указана точка монтирования /dev/sda, то будет выполнено корректное перемонтирование на живой диск
Namestite zagonski nalagalnik na nov pogon ssd
grub-install /dev/YYY
Zakaj izvajamo to operacijo?
ustvarite novo matriko raid, ki vključuje samo en nov ssd disk:
Zgornji ukaz ne bo deloval brez podajanja posebnega ključa.
Preberite pomoč in dodajte ta ključ ukazu.
Uporabite ukaz cat /proc/mdstat, da preverite rezultat vaše operacije. Kaj se je spremenilo?
Zaženite lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT in primerjajte njegov rezultat s prejšnjim klicem.
Kaj se je spremenilo?
6) Naslednji korak je konfiguracija LVM
zaženite ukaz pvs za ogled informacij o trenutnih fizičnih nosilcih
ustvarite nov fizični nosilec, vključno s predhodno ustvarjenim poljem RAID:
pvcreate /dev/md63
Zaženite lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT in primerjajte njegov rezultat s prejšnjim klicem.
Kaj se je spremenilo?
Ponovno zaženite ukaz pvs. Kaj se je spremenilo?
Povečajmo velikost sistema Volume Group z naslednjim ukazom:
vgextend system /dev/md63
Zaženite ukaze in zapišite, kaj ste videli in kaj se je spremenilo.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
Na katerem fizičnem disku se trenutno nahaja LV var,log,root?
Premaknite podatke s starega pogona na novega z uporabo pravilnih imen naprav.
Zaženite ukaze in zapišite, kaj ste videli in kaj se je spremenilo.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Spremenimo naš VG tako, da z njega odstranimo stari raid disk. Nadomestite pravilno ime napada.
vgreduce system /dev/md0
Zaženite ukaze in zapišite, kaj ste videli in kaj se je spremenilo.
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
pvs
vgs
Da bo slika lepša, znova montirajte /boot na drugi ssd disk (ssd4) in poženite lsblk. Posledično disk ssd3 ne
nič se ne sme montirati. Previdno preverite, ali particija /boot ni prazna! ls /boot mora pokazati
več datotek in map. Preučite, kaj je shranjeno v tem razdelku, in zapišite, kateri imenik datotek je odgovoren za kaj.
7) odstranite disk ssd3 in dodajte ssd5, hdd1, hdd2 v skladu z zgoraj opisanimi tehničnimi specifikacijami, kar ima za posledico:
ssd4 - prvi novi ssd
ssd5 - drugi novi ssd
hdd1 - prvi novi trdi disk
hdd2 - drugi novi trdi disk
8) Preverite, kaj se je zgodilo po dodajanju diskov:
kopirajte particijsko tabelo in zamenjajte pravilne diske:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Upoštevajte, da ko smo particijsko tabelo kopirali s starega diska, se je zdelo, da je nova velikost
ne uporablja celotne kapacitete trdega diska.
Zato bomo kmalu morali spremeniti velikost te particije in razširiti napad.
Prepričajte se sami z zagonom ukaza:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
10) kopirajte zagonsko particijo /boot iz ssd4 v ssd5
dd if=/dev/XXX of=/dev/YYY
11) Namestite grub na nov pogon (ssd5)
12) spremenite velikost druge particije diska ssd5
zaženite pripomoček za particioniranje diska:
fdisk /dev/XXX
vnesite tipko d za brisanje obstoječe particije (izberite 2)
vnesite ključ n, da ustvarite novo particijo
vnesite tipko p, da označite, da je vrsta particije "primarna"
vnesite ključ 2, tako da ima nova particija drugo številko
Prvi sektor: pritisnite enter, da sprejmete samodejno izračunano velikost začetka particije
Zadnji sektor: pritisnite enter, da sprejmete samodejno izračunano velikost konca particije
vnesite tipko l, da si ogledate seznam vseh možnih vrst particij in v njem poiščete Linux raid auto
vnesite tipko t, da spremenite vrsto ustvarjene particije (2) in vnesite številko, ki ste jo našli v prejšnjem koraku.
vnesite tipko w, da zapišete spremembo na disk.
12) ponovno preberite particijsko tabelo in preverite rezultat
dodajte nov disk v trenutno polje raid (ne pozabite zamenjati pravilnih diskov)
mdadm --manage /dev/md63 --add /dev/sda2
Razširimo število diskov v našem polju na 2:
mdadm --grow /dev/md63 --raid-devices=2
Poglejte rezultat: označeni imamo 2 niza, vendar imata oba odseka, vključena v to polje, različne velikosti
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
13) povečajte velikost particije na disku ssd4
zaženite pripomoček za particioniranje diska:
fdisk /dev/XXX
vnesite tipko d za brisanje obstoječe particije (izberite 2)
vnesite ključ n, da ustvarite novo particijo
vnesite tipko p, da označite, da je vrsta particije "primarna"
vnesite ključ 2, tako da ima nova particija drugo številko
Prvi sektor: pritisnite enter, da sprejmete samodejno izračunano velikost začetka particije
Zadnji sektor: pritisnite enter, da sprejmete samodejno izračunano velikost konca particije
Na koncu označevanja izberite Ne, da pustite podpis članstva particije v matriki.
vnesite tipko w, da zapišete spremembo na disk.
12) ponovno preberite particijsko tabelo in preverite rezultat
Upoštevajte, da imajo zdaj particije sda2, sdc2 velikost > od velikosti raid naprave.
13) na tej stopnji je zdaj mogoče razširiti velikost napada
mdadm --grow /dev/md63 --size=max
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT # check result
Preglejte lsblk in zabeležite, kaj se je spremenilo
14) Kljub temu, da smo spremenili velikost napada, se same velikosti vg root,var,log niso spremenile
poglej velikost PV:
pvs
Razširimo velikost našega PV-ja:
pvresize /dev/md63
poglej velikost PV:
pvs
15) Dodajte novo prikazano lokacijo VG var,root
lvs # посмотрим сколько сейчас размечено
lvextend -l +50%FREE /dev/system/root
lvextend -l +100%FREE /dev/system/var
lvs # проверьте что получилось
Na tej točki ste zaključili selitev glavnega polja na nove diske. delo s ssd1, ssd2 je zaključeno
16) Naša naslednja naloga je premakniti /var/log na nove diske, za to bomo ustvarili novo polje in lvm na trdih diskih.
Ustvarimo logični nosilec z velikostjo celotnega prostega prostora in ga poimenujmo val_log
lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат
formatirajte ustvarjeno particijo v ext4
mkfs.ext4 /dev/mapper/data-var_log
poglejmo rezultat
lsblk
17) prenesite podatke dnevnika iz stare particije v novo
začasno namestite novo shrambo dnevnika
mount /dev/mapper/data-var_log /mnt
sinhronizirajmo particije
apt install rsync
rsync -avzr /var/log/ /mnt/
Ugotovimo, kateri procesi se trenutno izvajajo v /var/log
apt install lsof
lsof | grep '/var/log'
ustavite te procese
systemctl stop rsyslog.service syslog.socket
izvede končno sinhronizacijo particij (podatki, ki so se morda spremenili od zadnje sinhronizacije)
rsync -avzr /var/log/ /mnt/
zamenjaj odseke
umount /mnt
umount /var/log
mount /dev/mapper/data-var_log /var/log
preverimo kaj se je zgodilo
lsblk
18) Uredite /etc/fstab
fstab - datoteka, ki beleži pravila, po katerih bodo particije nameščene ob zagonu
naša naloga je poiskati vrstico, kjer je /var/log nameščen, in popraviti napravo system-log o data-var_log
19) Najpomembnejša stvar na tej stopnji je, da ne pozabite spremeniti tabele radela (na primer ext4). Ker ne glede na to, kako spremenimo kateri koli raid, lvm, dokler FS na particiji ne dobi obvestila, da se je velikost particije zdaj spremenila, ne bomo mogli uporabljati novega prostora. Uporabite ukaz resize2fs spremeniti FS.
20) Končni akord
Ponovno zaženimo. Če ste vse naredili pravilno, boste vrnjeni v svoj OS (to je potrebno, da se prepričate, da vse deluje. Ta korak nima drugega pomena kot samotestiranje)
preverite, ali je bilo vse, kar smo želeli narediti, dejansko narejeno:
pvs
lvs
vgs
lsblk
cat /proc/mdstat
21) [NEOBVEZNO] Sledite korakom
znova zaženite tako, da pritisnete F12, da določite različne pogone ob zagonu, da zagotovite, da se lahko zaženete
s katerega koli od ssd diskov, tako da nas ni strah, da bi kateri od njih odpovedal
zdaj imate nepotreben LV log v sistemu VG. Dodelite ta prostor med root ali var, vendar namesto z uporabo
modeli 100% BREZPLAČNO določite velikost ročno s tipko -L:
-L 500M
odpravite težavo, da se /boot nahaja na dveh particijah brez sinhronizacije, tega ni treba narediti pravilno,
tukaj je dodan kot primer. Ne pozabite najprej nekam kopirati vsebine /boot.
ustvarite nov napad in vanj vključite sda1,sda2
vključite te particije v obstoječi raid in obnovite /boot na glavni raid, vendar brez njegove namestitve.