En lille parentes: dette laboratorium er syntetisk.
Nogle af opgaverne, der er beskrevet her, kan gøres meget nemmere, men da formålet med laboratoriet er at blive bekendt med
funktionaliteten i RAID og LVM, er nogle operationer kunstigt gjort mere komplekse.
Kravene til værktøjerne til at udføre laboratoriet:
- Virtualiseringsværktøjer, f.eks. VirtualBox
- Installationsbillede af Linux, for eksempel
- Adgang til internettet for at downloade flere pakker
- SSH-forbindelse til den installerede VM (valgfrit)
ADVARSEL
Dette laboratorium arbejde relaterer sig til det delikate emne databeskyttelse — et område,
hvor en lille fejl — et overskydende bogstav eller tal kan få dig til at miste alle dine data.
Da du udfører laboratoriearbejde, er du ikke i fare, bortset fra at du måske skal starte forfra.
I det virkelige liv er alt meget alvorligere, så man skal være meget omhyggelig med at indtaste navne på diske, så man forstår
hvad man præcist udfører med den aktuelle kommando og hvilke diske man arbejder med.
Et andet vigtigt punkt er navngivning af diske og partitioner: afhængigt af situationen kan disknumrene variere
fra de værdier, der præsenteres i kommandoerne i laboratoriearbejdet.
For eksempel, hvis man fjerner disken sda fra arrayet og derefter tilføjer en ny disk, vil den nye disk blive vist
i systemet med navnet sda. Men hvis man genstarter før man tilføjer den nye disk, vil den nye
disk have navnet sdb, og den gamle vil blive kaldt sda.
Laboratoriearbejdet skal udføres under superbrugeren (root), da størstedelen af kommandoerne kræver
forhøjede privilegier og det giver ikke mening konstant at hæve privilegierne via sudo.
Materialer til studie
- RAID
- LVM
- Navngivning af diske i Linux OS
- Hvad er en partition?
- Hvad er en partitionstabel, og hvor gemmes den?
- Hvad er grub?
Brugte værktøjer
1) vis information om diske
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
- fdisk -l
2) vis information og arbejd med LVM - pvs
- pvextend
- pvcreate
- pvresize
- vgs
- vgreduce
- lvs
- lvextend
3) vis information og arbejd med RAID - cat /proc/mdstat
- mdadm
4) monteringspunkter - mount
- umount
- cat /etc/fstab
- cat /etc/mtab
5) redistribuering af disken - fdisk /dev/XXX
6) kopiere partitioner - dd if=/dev/xxx of=/dev/yyy
7) arbejde med partitionstabellen - partx
- sfdisk
- mkfs.ext4
8) arbejde med bootloaderen - grub-install /dev/XXX
- update-grub
9) diverse - lsof
- apt
- rsync
Laboratoriet arbejde består af 3 dele:
- opsætning af et fungerende system ved hjælp af lvm, raid
- simulering af fejlen på en af diskene
- udskiftning af diske under drift, med tilføjelse af nye diske og overførsel af partitioner.
Opgave 1 (Installation af OS og konfiguration af LVM, RAID)
1) Opret en ny virtuel maskine med følgende specifikationer:
- 1 gb ram
- 1 cpu
- 2 hdd (navngiv dem ssd1, ssd2 og tildel dem samme størrelse, sæt flueben i hot swap og ssd)
- SATA-controlleren er indstillet til 4 porte

2) Start installationen af Linux og når du når til valget af harddiskene, gør følgende:
Partitioneringsmetode: manuel, hvorefter du skal se følgende billede:

Opsætning af en separat partition til /boot: Vælg den første disk og opret en ny partitionstabel på den
- Partitionstørrelse: 512M
- Monteringspunkt: /boot
- Gentag opsætningen for den anden disk, men da det ikke er muligt at montere /boot to gange samtidigt, skal du vælge monteringspunkt: none, og derved opnå følgende (billede med fejl, orker ikke at rette det):

Opsætning af RAID:
- Vælg den ledige plads på den første disk og indstil den som type partition fysisk volumen til RAID
- Vælg "Færdig med at opsætte partitionen"
- Gentag den eksakte opsætning for den anden disk, så du til sidst får følgende:

- Vælg punktet "Konfigurer software RAID"
- Opret MD-enhed
- Software RAID-enhedstype: Vælg spejlarray
- Aktive enheder til RAID XXXX-arrayet: Vælg begge diske
- Spare-enheder: Lad 0 være som standard
- Aktive enheder til RAID XX-arrayet: vælg de partitioner, du oprettede til raid
- Finish
- I sidste ende skal du få følgende billede:

Opsætning af LVM: Vælg Konfigurer den Logiske Volume Manager
- Behold den nuværende partitionlayout og konfigurer LVM: Ja
- Opret volumen gruppe
- Volumen gruppenavn: system
- Enheder til den nye volumen gruppe: Vælg dit oprettede RAID
- Opret logisk volumen
- logisk volumen navn: root
- logisk volumen størrelse: 25 af størrelsen på din disk
- Opret logisk volumen
- logisk volumen navn: var
- logisk volumen størrelse: 25 af størrelsen på din disk
- Opret logisk volumen
- logisk volumen navn: log
- logisk volumen størrelse: 15 af størrelsen på din disk
- Ved at vælge Vis konfigurationsdetaljer skal du få følgende billede:

- Når LVM opsætningen er færdig, skal du se følgende:

Partitionering af partitioner: vælg i rækkefølge hver oprettet LVM volumen og partitioner dem, for eksempel sådan for root:
- Brug som: ext4
- monteringspunkt: /
- resultatet af partitioneringen af rodpartitionen skal se sådan ud:

- gentag partitioneringsoperationen for var og log, vælg de relevante monteringspunkter (/var og /var/log indtast manuelt), så du får følgende resultat:

- Vælg Afslut partitionering
- Du vil blive stillet nogle spørgsmål om, at du har en ikke-monteret partition og ikke har konfigureret swap. Du bør svare negativt på begge spørgsmål.
Det endelige resultat skal være sådan her:

3) Afslut installationen af operativsystemet ved at installere grub på den første enhed (sda) og genstarte systemet.
4) Udfør kopieringen af indholdet fra partitionen /boot fra disken sda (ssd1) til disken sdb (ssd2)dd if=/dev/sda1 of=/dev/sdb15) Udfør installationen af grub på den anden enhed:
se diskene i systemet:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTOpliste alle diske, som den forrige kommando gav, og beskriv hvad det er for en disk
Find den disk, på hvilken grub ikke er installeret, og udfør denne installation:
grub-install /dev/sdbse oplysninger om den nuværende raid med kommandoen cat /proc/mdstat og noter hvad du ser.
se output fra kommandoerne: pvs, vgs, lvs, mount og notér hvad du præcist så
Beskriv med dine egne ord, hvad du har gjort, og hvilket resultat du har opnået i slutningen af opgaven
Efter at have udført denne opgave anbefales det at tage en sikkerhedskopi af mappen med den virtuelle maskine eller lave
vagrant box:
Resultat: Virtuel maskine med diske ssd1, ssd2
Opgave 2 (Emulering af fejlen på en af diskene)
1) Hvis du har sat kryds ved hot swap, så er det muligt at fjerne diske under drift
- Udfør fjernelse af disken ssd1 i maskinens egenskaber
- Find mappen, hvor dine virtuelle maskinefiler opbevares, og slet ssd1.vmdk
2) Sørg for, at din virtuelle maskine stadig fungerer
3) Udfør en genstart af den virtuelle maskine, og sørg for, at den stadig fungerer
4) tjek status for RAID-arrayet: cat /proc/mdstat
5) tilføj en ny disk af samme størrelse i VM-grænsefladen, og kald den ssd3
6) udfør operationerne: - se om den nye disk er blevet registreret i systemet med kommandoen fdisk -l
- kopiér partitionstabellen fra den gamle disk til den nye: sfdisk -d /dev/XXXX | sfdisk /dev/YYY
- se resultatet med kommandoen fdisk -l
- Tilføj den nye disk til raid-arrayet: mdadm —manage /dev/md0 —add /dev/YYY
- Se resultatet: cat /proc/mdstat. Du bør se, at synkroniseringen er begyndt
7) Nu skal du manuelt udføre synkroniseringen af partitionerne, der ikke er en del af RAID.
Til dette formål vil vi bruge værktøjet dd til at kopiere fra den «live» disk til den nye, som du lige har tilføjetdd if=/dev/XXX of=/dev/YYY8) Efter afslutning af synkroniseringen installer grub på den nye disk
9) Udfør en genstart af VM for at sikre, at alt fungerer
Beskriv med dine egne ord, hvad du har gjort, og hvilket resultat du har opnået i slutningen af opgaven
Resultat: Disk ssd1 er fjernet, disk ssd2 er bevaret, disk ssd3 er tilføjet.Opgave 3 (Tilføjelse af nye drev og overførsel af partition)
Dette er den mest komplekse og tidskrævende opgave blandt de præsenterede.
Vær meget opmærksom på, hvad du gør, og hvilke drev og partitioner du arbejder med.
Det anbefales at tage en sikkerhedskopi, før du udfører det.
Denne opgave er uafhængig af opgave nr. 2, og den kan udføres efter opgave nr. 1 med hensyn til drevnavne.
Den anden del af opgaven i dette laboratorium skal bringe systemet tilbage til den nøjagtige tilstand, det var i efter udførelsen af den første del.For at gøre det lettere for dig anbefaler jeg ikke at fjerne de fysiske drev fra værtsmaskinen, men blot
afkoble dem i maskinens indstillinger. Set fra OS' synspunkt vil det se fuldstændig ens ud i VM, men du vil kunne
i tilfælde af problemer genoprette drevet og fortsætte arbejdet ved at rulle lidt tilbage, hvis du
har problemer. For eksempel kan du have udført forkerte ændringer eller glemt at kopiere partitionen /boot til det nye drev.
Jeg kan kun rådgive dig om at dobbelttjekke, hvilke drev og partitioner du arbejder med, og endnu bedre
at skrive ned, hvilken drev, partitioner og det 'fysiske' drevnummer, der svarer til dem. Et pænt og klart træ
tegnes af kommandoenlsblk, brug det så ofte som muligt til at analysere, hvad du har gjort, og hvad der skal gøres.Til historien…
Forestil dig, at din server har kørt i lang tid på 2 SSD-drev, da pludselig…
1) Emuler fejlen på drevet SSD2 ved at fjerne det fra VM's indstillinger og genstarte
2) Tjek den nuværende tilstand af drevene og RAID:cat /proc/mdstat fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT3) Du er heldig - ledelsen har givet tilladelse til at købe flere nye drev:
2 SATA-drev med stor kapacitet til den længe ventede opgave med at flytte logpartitionen til et separat drev
2 SSD'er til at erstatte det døde drev, samt en til at erstatte det, der stadig fungerer.
Det skal bemærkes, at kurven server understøtter installation af kun 4 drev ad gangen,
så alle drev kan ikke tilføjes samtidig.HDD's kapacitet skal vælges til at være 2 gange større end SSD.
SSD's kapacitet skal vælges til at være 1,25 gange større end de tidligere SSD'er.4) Tilføj et nyt SSD-drev, kald det SSD4, og efter tilføjelsen skal du kontrollere, hvad der skete:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT5) Først og fremmest skal du sikre databeskyttelsen af det gamle drev.
Denne gang vil vi overføre data ved hjælp af LVM:- Først skal du kopiere filsystemet fra den gamle disk til den nye:
sfdisk -d /dev/XXX | sfdisk /dev/YYYErstat x,y med de korrekte diske og forstå, hvad denne kommando gør.
Kør kommandoen lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT og sammenlign output med den tidligere kørsel.
Hvad er ændret?
Brug kommandoen dd til at kopiere data fra /boot til den nye diskdd if=/dev/XXX of=/dev/YYYHvis /boot stadig er monteret på den gamle disk, skal det genmonteres på den aktive disk:
mount | grep boot # tjek hvor disken er monteret lsblk # tjek hvilke diske der er i systemet og se om den disk, der er nævnt i det forrige punkt, er til stede umount /boot # unmount /boot mount -a # monter alle punkter ifølge /etc/fstab. # Da monteringspunktet /dev/sda er angivet der, vil det korrekt blive genmonteret på den aktive diskInstaller bootloaderen på den nye SSD-disk
grub-install /dev/YYYHvorfor udfører vi denne operation?
Opret et nyt RAID-array, der kun inkluderer den nye SSD-disk:
mdadm --create --verbose /dev/md63 --level=1 --raid-devices=1 /dev/YYYKommandoen ovenfor vil ikke fungere uden at angive en speciel nøgle.
Læs vejledningen og tilføj denne nøgle til kommandoen.Brug kommandoen cat /proc/mdstat til at kontrollere resultatet af din operation. Hvad har ændret sig?
Kør kommandoen lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT og sammenlign output med den tidligere kørsel.
Hvad er ændret?
6) Næste trin er at konfigurere LVM
Kør kommandoen pvs for at se oplysninger om de aktuelle fysiske volumener
Opret et nyt fysisk volumen, der inkluderer det tidligere oprettede RAID-array:pvcreate /dev/md63Kør kommandoen lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT og sammenlign output med den tidligere kørsel.
Hvad er ændret?
Kør kommandoen pvs igen. Hvad har ændret sig?
Vi vil forstørre størrelsen på Volume Group system med følgende kommando:vgextend system /dev/md63Udfør kommandoerne og noter, hvad du har set, og hvad der har ændret sig.
vgdisplay system -v pvs vgs lvs -a -o+devicesPå hvilken fysisk disk findes LV var, log, root nu?
Udfør flytningen af data fra den gamle disk til den nye, og indsæt de korrekte enhedsnavne.
pvmove -i 10 -n /dev/system/root /dev/md0 /dev/md63Gentag operationen for alle logiske volumener
Udfør kommandoerne og noter, hvad du har set, og hvad der har ændret sig.
vgdisplay system -v pvs vgs lvs -a -o+devices lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTVi ændrer vores VG ved at fjerne disken fra det gamle RAID. Indsæt korrekt RAID-navn.
vgreduce system /dev/md0Udfør kommandoerne og noter, hvad du har set, og hvad der har ændret sig.
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT pvs vgsFor at gøre det mere pænt, genmonter /boot på den anden SSD-disk (ssd4) og udfør lsblk. Resultatet bør være, at der ikke
ikke bør være noget monteret på disken ssd3. Kontroller grundigt, at partitionen /boot ikke er tom!ls /bootbør vise
filer og mapper. Gennemgå hvad der er gemt i denne sektion og noter hvilken fil/katalog der gør hvad.
7) fjern ssd3 disken og tilføj ssd5, hdd1, hdd2 i overensstemmelse med de ovenfor beskrevne krav, og opnå i alt:
ssd4 — den første nye ssd
ssd5 — den anden nye ssd
hdd1 — den første nye hdd
hdd2 — den anden nye hdd8) Kontroller hvad der skete efter tilføjelsen af diske:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT9) Lad os genoprette funktionen af det primære raid-array:
- udfør kopiering af partitionsskemaet, idet du sætter de rigtige diske ind:
sfdisk -d /dev/XXX | sfdisk /dev/YYY - Bemærk, at da vi kopierede partitionsskemaet fra den gamle disk, viste det sig, at den nye størrelse
ikke brugte hele kapaciteten af harddisken.
Derfor vil vi snart have brug for at ændre størrelsen på denne partition og udvide raidet.
Sørg selv for dét ved at indtaste kommandoen:lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT10) kopier boot-partitionen /boot fra disken ssd4 til ssd5
dd if=/dev/XXX of=/dev/YYY11) Installer grub på den nye disk (ssd5)
12) lad os ændre størrelsen på den anden partition på disken ssd5start værktøjet til at arbejde med diskpartitionering:
fdisk /dev/XXXindtast tasten d for at slette den eksisterende partition (vælg 2)
indtast tasten n for at oprette en ny partition
indtast tasten p for at angive partitionstypen til "primær"
indtast tasten 2 for at den nye partition får nummer 2
Første sektor: tryk enter for at acceptere den automatisk beregnede størrelse af begyndelsen af partitionen
Sidste sektor: tryk enter for at acceptere den automatisk beregnede størrelse af slutningen af partitionen
indtast tasten l for at se listen over alle mulige partitionstyper og find Linux raid auto i den
indtast tasten t for at ændre typen af den oprettede partition (2) og indtast det fundne nummer fra det tidligere trin.
indtast tasten w for at gemme ændringen på disken.
12) lad os læse partitionsskemaet igen og kontrollere resultatetpartx -u /dev/XXX lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTtilføj den nye disk til det nuværende raid-array (glem ikke at indsætte de rigtige diske)
mdadm --manage /dev/md63 --add /dev/sda2Lad os udvide antallet af diske i vores array til 2 stk:
mdadm --grow /dev/md63 --raid-devices=2Se resultatet: vi har allokeret 2 arrays, men begge partitioner, der indgår i dette array, har forskellige størrelser
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT13) lad os øge størrelsen på partitionen på disken ssd4
start værktøjet til at arbejde med diskpartitionering:
fdisk /dev/XXXindtast tasten d for at slette den eksisterende partition (vælg 2)
indtast tasten n for at oprette en ny partition
indtast tasten p for at angive partitionstypen til "primær"
indtast tasten 2 for at den nye partition får nummer 2
Første sektor: tryk enter for at acceptere den automatisk beregnede størrelse af begyndelsen af partitionen
Sidste sektor: tryk enter for at acceptere den automatisk beregnede størrelse af slutningen af partitionen
I slutningen af partitioneringen skal du vælge No for at lade signaturen for partitionens tilhørighed til arrayet være intakt.
indtast tasten w for at gemme ændringen på disken.
12) lad os læse partitionsskemaet igen og kontrollere resultatetpartx -u /dev/XXX lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTbemærk, nu har sda2, sdc2 partitioner en størrelse > end størrelsen på raid-enheden.
13) På dette trin kan størrelsen på RAID nu udvides
mdadm --grow /dev/md63 --size=max lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT # tjek resultatetGennemse lsblk og noter hvad der er ændret
14) Selvom vi har ændret størrelsen på RAID, er størrelserne for vg root, var, log ikke ændret- tjek hvad størrelsen på PV er:
pvs - lad os udvide størrelsen på vores PV:
pvresize /dev/md63 - tjek hvad størrelsen på PV er:
pvs15) Vi tilføjer det nyopståede plads til VG var, root
lvs # lad os se hvor meget der nu er allokeret lvextend -l +50%FREE /dev/system/root lvextend -l +100%FREE /dev/system/var lvs # tjek hvad vi har opnåetPå dette tidspunkt har du afsluttet migrationen af det primære array til de nye diske. Arbejdet med ssd1, ssd2 er afsluttet
16) Vores næste opgave er at flytte /var/log til de nye diske, til dette vil vi oprette et nyt array og LVM på HDD diske.
- lad os se hvilke navne de nye HDD diske har
fdisk -l - lad os oprette et RAID array
mdadm --create /dev/md127 --level=1 --raid-devices=2 /dev/sdc /dev/sdd - lad os oprette en ny PV på RAID'en lavet af de store diske
pvcreate data /dev/md127 - lad os oprette en gruppe i denne PV med navnet data
vgcreate data /dev/md127 - lad os oprette et logisk volumen med størrelsen af alt frit plads og kalde det var_log
lvcreate -l 100%FREE -n var_log data # lvs # lad os se resultatet - formater det oprettede partition til ext4
mkfs.ext4 /dev/mapper/data-var_log - lad os se resultatet
lsblk17) flyt dataene fra logfilerne fra den gamle partition til den nye
monter midlertidigt det nye logopbevaringssted
mount /dev/mapper/data-var_log /mntudfør synchronisering af partitioner
apt install rsync rsync -avzr /var/log/ /mnt/find ud af hvilke processer der arbejder aktuelt med /var/log
apt install lsof lsof | grep '/var/log'stop disse processer
systemctl stop rsyslog.service syslog.socketudfør den finale synchronisering af partitionerne (af de data, der kunne være ændret siden sidste synchronisering)
rsync -avzr /var/log/ /mnt/bytte om på partitionerne
umount /mnt umount /var/log mount /dev/mapper/data-var_log /var/logtjek hvad vi har opnået
lsblk18) Retter /etc/fstab
fstab er en fil, hvor reglerne for hvordan partitionerne bliver monteret ved opstart, noteres
vores opgave er at finde den linje, hvor /var/log monteres og rette enhedensystem-logog få en fungerende kommando.data-var_log19) Det vigtigste på dette trin er ikke at glemme at ændre partitionstabellen (ext4 for eksempel). Uanset hvordan vi ændrer RAID, LVM — så længe filsystemet på partitionen ikke er informeret om, at størrelsen på partitionen nu er ændret, kan vi ikke bruge det nye plads. Brug kommandoen
resize2fstil at ændre filsystemet.20) Den endelige akord
- Vi udfører en genstart. Hvis du har gjort alt rigtigt, vil du igen få adgang til dit operativsystem (dette er nødvendigt for at sikre, at alt fungerer. Dette trin har ingen anden betydning end selvkontrol).
- Udfør tjek for at sikre, at alt, hvad vi ønskede at gøre, virkelig er gjort:
pvs lvs vgs lsblk cat /proc/mdstat
21) [VALGFULDT] Udfør handlinger
- Genstart ved at trykke på F12 for at angive forskellige drev ved opstart, så du kan bekræfte, at du kan starte fra
ethvert af ssd-drevene, så vi ikke frygter fejlfunktion af et af dem. - Nu har du en unødvendig LV log i VG system. Fordel dette rum mellem root eller var, men i stedet for at bruge
konstruktionen 100%FREE, angiv størrelsen manuelt med nøglen -L:-L 500M - Løs problemet med, at /boot er på to partitioner uden synkronisering, det er ikke korrekt at gøre sådan,
dette er tilføjet her som eksempel. Glem ikke at kopiere indholdet af /boot et sted først.- Opret et nyt RAID og inkludér sda1, sda2 i det.
- Tilslut disse partitioner til det eksisterende RAID og gendan /boot i det primære RAID, men uden at montere det.
- lad os se hvilke navne de nye HDD diske har
- tjek hvad størrelsen på PV er:
- udfør kopiering af partitionsskemaet, idet du sætter de rigtige diske ind:
- Først skal du kopiere filsystemet fra den gamle disk til den nye:
Kilde: habr.com









