This is an old revision of the document!


Laborator 4. Virtualizare nativă

Cunoștințe și abilități ce vor fi dobândite

  • Cunoștințe legate de adresare IP, mască de rețea, adresă de rețea, adresă de broadcast
  • Împărțirea unui spațiu de adresă (subnetare, VLSM – Variable Length Subnet Mask)
  • Configurarea adreselor IP pe dispozitive dedicate (Cisco, Packet Tracer)

Exerciții

01. [10p] Investigare LVM

Dorim să investigăm o configurație existentă LVM. Pentru aceasta pornim mașina virtuală aferentă KVM:

student@mjolnir:~/saisp$ ./lvm-start-kvm

și ne conectăm peste SSH pentru a lucra în mașina virtuală:

student@mjolnir:~/saisp$ ssh -l root 192.168.0.2

Mașina virtuală conține o configurație LVM; pachetul lvm2, necesar configurării, este instalat. Pentru a o investiga listăm volumele fizice, grupurile de volume și volumele logice folosind, respectiv comenzile pvs, vgs, lvs:

root@lvm:~# pvs
  PV         VG      Fmt  Attr PSize    PFree
  /dev/sdb1  azeroth lvm2 a--  1020.00m    0
  /dev/sdc1  azeroth lvm2 a--  1020.00m    0
root@lvm:~# vgs
  VG      #PV #LV #SN Attr   VSize VFree
  azeroth   2   3   0 wz--n- 1.99g    0
root@lvm:~# lvs
  LV        VG      Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
  arathor   azeroth -wi-a----- 700.00m
  dalaran   azeroth -wi-a----- 840.00m
  lordaeron azeroth -wi-a----- 500.00m

Detalii aflăm folosind comenzile pvdisplay, vgdisplay și lvdisplay:

root@lvm:~# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sdb1
  [...]
  --- Physical volume ---
  PV Name               /dev/sdc1
  [...]
root@lvm:~# vgdisplay
  --- Volume group ---
  VG Name               azeroth
  [...]
root@lvm:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/azeroth/lordaeron
  [...]
 
  --- Logical volume ---
  LV Path                /dev/azeroth/arathor
  [...]
 
  --- Logical volume ---
  LV Path                /dev/azeroth/dalaran
  [...]

Observăm că în cadrul infrastructurii LVM există două volume fizice (physical volumes): /dev/sdb1 și /dev/sdc1. Aceste două volume fizice sunt angrenate într-un grup de volume denumit azeroth, care este partiționat în trei volume logice denumite arathor, dalaran și lordaeron.

Căile către volumele logice sunt, respectiv /dev/azeroth/arathor, /dev/azeroth/dalaran și /dev/azeroth/lordaeron. Calea către fiecare volum cuprinde numele grupului de volume și apoi numele volumului logic. Acestea sunt, de fapt, link-uri simbolice către fișiere de tip dispozitiv direct din /dev:

root@lvm:~# ls -l /dev/azeroth/lordaeron
lrwxrwxrwx 1 root root 7 Mar 16 16:57 /dev/azeroth/lordaeron -> ../dm-0

02. [10p] Creare entități LVM

Mai avem încă două partiții fizice pe care le putem folosi: /dev/sdb2 și /dev/sdc2. Le vom folosi pentru a crea un nou grup de volum și apoi noi volume logice.

Vom crea grupul de volume kalimdor și volumele logice durotar, ashenvale și tanaris cu dimensiunile respectiv de 1G, 500M, 500M.

Pentru început marcăm volumele fizice ca viitoare componente LVM:

root@lvm:~# pvcreate /dev/sdb2
  Physical volume "/dev/sdb2" successfully created
root@lvm:~# pvcreate /dev/sdc2
  Physical volume "/dev/sdc2" successfully created

Investigăm crearea acestora folosind comenzile pvs și pvdisplay:

root@lvm:~# pvs
  PV         VG      Fmt  Attr PSize    PFree
  /dev/sdb1  azeroth lvm2 a--  1020.00m    0 
  /dev/sdb2          lvm2 a--     1.00g 1.00g
  /dev/sdc1  azeroth lvm2 a--  1020.00m    0 
  /dev/sdc2          lvm2 a--     1.00g 1.00g
root@lvm:~# pvdisplay
  [...]

Observăm că, pe moment, volumele logice /dev/sdb2 și /dev/sdc2 nu fac parte din nici un volum.

Acum creăm volumul kalimdor din cele două volume fizice:

root@lvm:~# vgcreate kalimdor /dev/sdb2 /dev/sdc2
  Volume group "kalimdor" successfully created

Urmărim configurația grupului de volume nou creat folosind comenzile vgs, respectiv vgdisplay:

root@lvm:~# vgs kalimdor
  VG       #PV #LV #SN Attr   VSize VFree
  kalimdor   2   0   0 wz--n- 1.99g 1.99g
root@lvm:~# vgdisplay kalimdor
  --- Volume group ---
  VG Name               kalimdor

Ulterior creăm și cele trei volume logice:

root@lvm:~# lvcreate -n durotar -L 1G kalimdor 
  Logical volume "durotar" created
root@lvm:~# lvcreate -n ashenvale -L 500m kalimdor 
  Logical volume "ashenvale" created
root@lvm:~# lvcreate -n tanaris -L 500m kalimdor 
  Logical volume "tanaris" created

Apoi folosim comenzile lvs și lvdisplay pentru a afișa informații despre volumele logice create:

root@lvm:~# lvs
  LV        VG       Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
  arathor   azeroth  -wi-a----- 700.00m
  dalaran   azeroth  -wi-a----- 840.00m
  lordaeron azeroth  -wi-a----- 500.00m
  ashenvale kalimdor -wi-a----- 500.00m
  durotar   kalimdor -wi-a-----   1.00g
  tanaris   kalimdor -wi-a----- 500.00m
root@lvm:~# lvdisplay
  [...]

În final am folosit patru partiții fizice (/dev/sdb1, /dev/sdc1, /dev/sdb2, /dev/sdc2) pentru a crea două grupuri de volume (azeroth și kalimdor) și trei volume logice pe fiecare grup de volume.

03. [15p] Actualizare volume

Dorim să renunțăm la al doilea grup de volume (kalimdor). Ștergeți acest grup de volume și apoi extindeți grupul de volume azeroth pentru a cuprinde parțiile fizice /dev/sdb2 și /dev/sdc2.

Pentru a extinde un grup de volume folosiți comanda vgextend.

Extindeți dimensiunile volumelor logice de pe grupul azeroth pentru a acoperi întreaga dimensiune a acestuia.

Pentru a extinde un volum logic folosiți comanda lvextend.

04. [10p] Investigare RAID

Dorim să investigăm o configurație existentă RAID. Pentru aceasta pornim mașina virtuală aferentă KVM:

student@mjolnir:~/saisp$ ./raid-start-kvm

și ne conectăm peste SSH pentru a lucra în mașina virtuală:

student@mjolnir:~/saisp$ ssh -l root 192.168.0.2

Mașina virtuală conține o configurație RAID; pachetul mdadm, necesar configurării, este instalat. Pentru a o investiga listăm partițiile RAID aferente urmărim fișierul /proc/mdstat:

root@raid:~# cat /proc/mdstat 
Personalities : [raid0] 
md0 : active raid0 sdd1[2] sdc1[1] sdb1[0]
      3139584 blocks super 1.2 512k chunks
 
unused devices: <none>

Apoi folosimd comanda mdadm cu opțiunile aferent:

root@raid:~# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sun Mar 16 19:40:32 2014
     Raid Level : raid0
     Array Size : 3139584 (2.99 GiB 3.21 GB)
   Raid Devices : 3
  Total Devices : 3
 
    [...]
    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
 
root@raid:~# mdadm --examine /dev/sdb1
[...]
root@raid:~# mdadm --examine /dev/sdc1
[...]
root@raid:~# mdadm --examine /dev/sdd1
[...]

Avem așadar în array-ul software RAID (/dev/md0) care se bazează pe o trei partiții fizice (/dev/sdb1, /dev/sdc1, /dev/sdd1). Tipul RAID folosit este raid0.

05. [10p] Creare array RAID0

Ne propunem să mai facem, temporar, un array RAID0 care conține două partiții fizice; array-ul se va numi /dev/md1 și va conține partițiile /dev/sdb2 și /dev/sdc2. Ulterior vom șterge configurația.

Creăm array-ul de tip RAID0 conținând cele două partiții:

root@raid:~# mdadm --create /dev/md1 --level=0 --raid-devices=2 /dev/sdb2 /dev/sdc2
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

Urmărim configurația creată prin intermediul fișierului /proc/mdstat:

root@raid:~# cat /proc/mdstat
Personalities : [raid0]
md1 : active raid0 sdc2[1] sdb2[0]
      2095104 blocks super 1.2 512k chunks
 
md0 : active raid0 sdb1[0] sdd1[2] sdc1[1]
      3139584 blocks super 1.2 512k chunks
 
unused devices: <none>

Array-ul /dev/md1 este un array de tip RAID0.

Ca să revenim în configurația inițială, vom șterge array-ul și vom anula configurația de pe cele două partiții folosind comenzile de mai jos:

root@raid:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@raid:~# mdadm --zero-superblock /dev/sdb2
root@raid:~# mdadm --zero-superblock /dev/sdc2

În acest moment array-ul a fost dezactivat și putem folosi partițiile /dev/sdb2 și /dev/sdc2.

06. [5p] Creare array RAID5

Ne propunem să creăm un array RAID5 numit /dev/md2. Folosiți partițiile /dev/sdb2, /dev/sdc2 și /dev/sdd2 pentru a realiza acest lucru.

La crearea array-ului RAID5 va dura ceva până când vor fi sincronizate cele trei partiții. Puteți urmări acest lucru prin intermediul comenzi:

root@raid:~# cat /proc/mdstat

07. [10p] Refacere array RAID5

Simulați căderea partiției /dev/sdb2 din array-ul RAID5 /dev/md2. Apoi refaceți array-ul.

Folosiți opțiunile --fail și --remove pentru a dezactiva o partiție. Apoi folosiți opțiunea -add pentru a readăuga partiția în array.

08. [15p] Construire LVM peste RAID

Peste cele două array-uri RAID /dev/md0 și /dev/md2 contruiți un grup de volume LVM. Peste grupul de volume construiți patru volume logice. Formatați primele două volum logice create cu ext4 și montați-le în subdirectoare din /mnt.

Pachetul lvm2 este instalat, necesar pentru configurarea LVM.

09. [15p] Criptare volum LVM

Vrem să criptăm un modul LVM folosind LUKS (Linux Unified Key System). Vom folosi al treilea volum logic creat anterior.

Pachetul cryptsetup, necesar acestui exercițiu este instalat.

Puteți urmări pașii de aici.

Pentru început formatăm volumele cu suport de criptare:

root@raid:~# cryptsetup -v luksFormat /dev/antagarich/tatalia
 
WARNING!
========
This will overwrite data on /dev/antagarich/tatalia irrevocably.
 
Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:
Command successful.

Acolo unde se cere parolă introduceți parola corespunzătoare.

Apoi “deschidem” partiția și furnizăm parola:

root@raid:~# cryptsetup luksOpen /dev/antagarich/tatalia crypto-tatalia
Enter passphrase for /dev/antagarich/tatalia:

Acum avem creat dispozitivul /dev/mapper/crypto-tatalia pe care îl putem folosi. Formatăm dispozitivul cu ext4:

root@raid:~# mkfs.ext4 /dev/mapper/crypto-tatalia

Montăm dispozitivul în /mnt/crypto-tatalia:

root@raid:~# mkdir /mnt/crypto-tatalia
root@raid:~# mount /dev/mapper/crypto-tatalia /mnt/crypto-tatalia
root@raid:~# ls /mnt/crypto-tatalia
lost+found

Ca să încheiem folosirea dispozitivului, întâi îl vom demonta:

root@raid:~# umount /mnt/crypto-tatalia

iar apoi vom “închide” partiția. O nouă deschidere va necesita reintroducerea parolei:

root@raid:~# cryptsetup luksClose crypto-tatalia

Aplicați pașii de mai sus pentru a cripta în mod similar al patrulea volum logic.

10. [BONUS - 10p] Montare automată volum LVM criptat

Configurați fișierele /etc/fstab și /etc/crypttab astfel încât cele două volume logice LVM criptate anterior să fie montate la pornirea sistemului.

Urmăriți indicațiile de aici.

Al patrulea (ultimul) argument din fișierul /etc/crypttab trebuie să fie șirul luks.

saisp/labs/04.1390483070.txt.gz · Last modified: 2014/01/23 15:17 by mihai.carabas
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0