Consolidarea Serverelor din Centrele de Date Prin Virtualizarea cu K.v.m
CUPRINS
Capitolul 1 Conceptul de virtualizare
Introducere
În ultimii ani, virtualizarea a câștigat popularitate în multe domenii diferite, cum ar fi consolidarea serverelor, securitatea informațiilor și cloud computing. Acest lucru se datorează în mare parte unei creșteri în performanța hardware-ului de aproximativ zece ori în ultimul deceniu și obiectivului de reducere a capitalului și costurile operaționale din cadrul centrului de date [4]. Virtualizarea poate ajuta managerii IT sa maximizeze complet potentialul investitiei lor hardware prin cresterea numarului de aplicatii si sisteme de operare care ruleaza pe un singur server fizic. Obiective similare există si în mediul academic. Multe proiecte existente care se folosesc de virtualizare intr-o forma sau alta sa furnizeze un mediu virtual de laborator de diferite nivele de sofisticare și scalabilitate pentru studenti. Obiectivul principal pentru toate acestea; sa reduca hardwarul fizic necesar pentru administrarea si mentenanta misiuni de laborator de securitate informatica. Atunci când apare o astfel de platformă pentru mediul academic mai multi factori trebuiesc luati in considerare. Lucruri cum ar fi cerintele hardware, sisteme de operare pentru vizitatori,tipuri de misiuni si modul cum urmeaza sa fie accesate si administrate devine foarte important. In zilele noastre metoda virtualizari este cheia. Exista o multitudine de platforme si optiuni luate in considerare fiecare avand proprile avantaje.
Conceptul de virtualizare
Virtualizarea isi are radacinile in mainframe-urile din anii 1960 și 1970. In timp definirea de virtualizare a evoluat, inițial fiind considerata o metodă de împărțire în mod logic, mainframe-uri, pentru a permite rularea simultana a mai multor aplicatii. Înainte de acest moment, sistemele puteau executa doar o singură aplicatie la un moment dat. Având în vedere costul ridicat al acestor sisteme mainframe multe organizații au considerat că este dificil să justifice investiția pentru un sistem care ar putea realiza un singur lucru la un moment dat. [10] Acest lucru sa schimbat odată cu apariția masiniilor virtuale mainframe de la IBM și a continuat să evolueze de atunci. Odată cu apariția sistemelor bazate pe x86 relativ ieftine în anii 1990 și adoptarea sistemelor de operare Windows și Linux duce la o trecere de la aplicații bazate pe mainframe la aplicatii bazate mai mult pe distribuirea client-server. Acum este un lucru obișnuit pentru aceste sisteme sa ruleze mai multe aplicații simultan, deși nu în sensul că acestea au fost făcute în mainframe-uri. La inceputul anilor 2000 virtualizarea a inceput sa evolueze pentru ca sistemele de baza x86 au devenite mai puternice.
Centrele de date corporative au început să crească costul de susținere a numărului mare de sisteme. Mai ales ca aplicatii au fost dedicate în general propriul server pentru a evita conflictele cu alte aplicații. Această practică a provocat o pierdere în calculul resurselor media utilizate pentru mai multe sisteme, a fost de la 10% la 15% din capacitatea lor posibila. De la acest punct multe companii au inceput sa gaseasca in virtualizare o soluție. Din păcate, obisnuitul sistem x86 nu a fost proiectat cu suport de virtualizare în minte care a cauzat provocari atunci când se încearcă să se ocupe de unele dintre instrucțiunile privilegiate în arhitectura x86. De-a lungul anului 2000 mai multe soluții au fost elaborate de către companii și comunitatea open-source care au reușit să ofere o metodă de manevrare a instrucțiunilor privilegiate într-un singur fel și pentru a permite multiplelor sisteme de operare sa ruleze simultan pe un singur sistem bazat pe x86. Aceasta a dus la o schimbare în definiția de virtualizare pentru tot ce cuprinde.
Virtualizarea este un cadru sau metodologie de împărțire a resurselor de calculator în medii de execuție multiple, prin aplicarea uneia sau mai multor concepte sau tehnologii, cum ar fi hardware și software de partiționare, time-sharing, emulare, calitatea serviciilor si multe altele.
Virtualizarea x86 continua sa se dezvolte mai mult pe partea de virtualizare decat ca server. Virtualizarea desktop și aplicațiile virtualizari sunt domenii care continuă să crească.
Aplicatii bazate pe virtualizare
Virtualizarea adaugă un strat superior sistemului de operare făcând aplicațiile independente de acesta. Acest lucru devine util atunci când se utilizează aplicații mai vechi pe sisteme noi de operare sau la trecerea dintre sisteme de operare. Cand o aplicatie a virtualizari ruleazea este facuta sa creada ca ruleaza pe sistemul de operare acceptat initial. De obicei acest lucru necesită ca un mic mediu de rulare să fie instalat pe sistemul pe care il doresc pentru a rula aplicația virtuală. Acesta abordare oferă mai multe avantaje în comparație cu rularea aplicației native inclusa:
– Permite ca mai multe versiuni ale aplicațiilor sa fie utilizate pe același sistem in acelasi timp;
– Simplifica problemele de compatibilitate cu alte aplicații potențial incompatibile care să permită aplicațiilor sa coexiste pe același sistem;
– Simplificarea implementarii aplicațiilor și upgrade-uri de ajutor care să mențină o coerența a organizarii;
– Creșterea securității prin eliminarea necesității pentru utilizatorii finali să aibă acces de administrator la stația lor de lucru.
Virtualizarea aplicațiilor
Virtualizarea permite ca o aplicație sa fie instalată pe un server virtualizat și accesată de un client prin rețea. În loc de a rula aplicații la nivel local, fie nativ sau virtual, această practică permite aplicațiilor să fie executate pe servere aflate în interiorul centrului de date. Utilizatorii interacționează cu aplicația de la postul lor de lucru și de multe ori din afara organizației prin intermediul internetului. Acest lucru permite o mai bună alocare a resurselor fiscale și in final statiile de lucru ale utilizatorilor pot fi inlocuite cu clienti relativi mai ieftini. Alte economii pot fi obținute prin utilizarea unei infrastructuri partajate ce găzduiește toate aplicațiile.
Virtualizarea sistemelor personale
Similar cu virtualizarea aplicațiilor, virtualizarea sistemelor de tip desktop permite sistemului de operare să fie virtualizat pe un server aflat în centrul de date și prezentat utilizatorului printr-un client. Spre deosebire de virtualizarea aplicațiilor utilizatorul poate administra o instanță a desktop-ului virtual și o poate personalize potrivit nevoilor sale, dar aceasta rulează pe infrastructura centrului de date. Utilizatorii au posibilitatea de a interacționa cu desktop-ul virtual în același mod în care îl fac cu un desktop tradițional. Spre deosebire de un desktop tradițional, un desktop virtual poate fi ușor accesibil de oriunde prin intermediul internetului.
Software-ul de virtualizare
La o scară mai largă, software-ul care permite mai multor sisteme de operare sa ruleze simultan pe o singura mașină fizică se numește software de virtualizare. Deși a ajuns sa virtualizeze sisteme personale, inițial a fost proiectat și utilizat în principal în cadrul centrului de date pentru virtualizarea serverelor. Acest lucru a permis folosirea optima a infrastructurii hardware disponibile. Software-ul de virtualizare este de asemenea utilizat pe stațiile de lucru pentru a permite utilizatorilor să ruleze mai multe sisteme de operare în același timp. Acest lucru poate fi util în dezvoltarea programelor unde software-ul poate fi testat pe mai multe sisteme de operare simultan, în vederea evaluării, sau atunci când un utilizator are nevoie ocazional de acces la o funcționalitate specifică unui anumit sistem de operare.
Hipervizorul
Hipervizorul, cunoscut de asemenea sub numele de Virtual Machine Monitor (VMM), este partea de software care permite virtualizarea. Acesta este responsabil pentru crearea unui mediu virtual pe care rulează mașinile virtuale. Ea supraveghează sistemele virtuale și se asigură ca resursele sunt alocate după cum este necesar. In general hipervizorul este clasificat într-una din cele două categorii: Tipul 1 și Tipul 2.
Tipul
Tipul 1 de hypervisor este considerat hipervizor nativ. Acest tip de hipervizor rulează direct de pe hardware-ul gazdă. El este responsabil pentru alocarea si administrarea tuturor resurselor (disc, memorie, CPU, periferice) necesare mașinilor virtuale. Aceste hipervizoare de obicei, au o amprentă de memorie destul de mica și nu necesită resurse extinse. Unele necesită, de asemenea, o mașină virtuală privilegiată, cunoscută ca Domain-0 sau Dom0, pentru a oferi acces la interfața de gestionare și control pentru hipervizorul în sine. Tipul 1 de hipervizor este cel mai întâlnit in mediul de virtualizare a serverelor.
Tipul 2
Tipul 2 de hipervizor necesită un sistem de operare gazdă. Se spune că acesta este instalat deasupra sistemului de operare gazdă. Acest lucru are unele avantaje pentru ca de obicei are mai puține probleme de compatibilitate cu resursele hardware a mașinii gazdă, sistemul de operare gazdă este responsabil pentru interfațare cu hardware-ul. Tipul 2 poate fi folosit pentru portabilitatea aplicațiilor cum este cazul pentru Java Virtual Masina (JVM) sau pentru a rula sisteme de operare. Dezavantajul este încărcarea suplimentară generate din cauza faptului că are nevoie de sistemul de operare, lucru care poate penaliza performanța.
Avantajele virtualizării
Virtualizarea oferă multe avantaje față de infrastructura tradițională într-o mare varietate de aplicații. În afară de utilizarea tot mai mare a host-ului prin consolidarea serverelor, ofera de asemenea si multe beneficii secundare. Acestea variază de la reducerea costurilor la ușurința de gestionare și implementarea sistemelor personale într-o infrastructură virtuală. Multe produse de virtualizare permit duplicarea ușoară a mașinilor virtuale, proces util atunci când sunt actualizate sistemele de operare sau se fac modificări ce pot afecta un sistem dat, fără a afecta sistemele de producție. Migrarea la cald sau la rece este utilă în cazul în care o gazdă fizic trebuie modernizata sau înlocuita. Migrația ajută la reducerea sau eliminarea timpilor morți necesari ca mașinile virtuale sa fie mutate temporar sau permanent la o gazdă diferită, transparenta pentru sistemul de operare gazdă. Eforturile de recuperare în caz de dezastru pot fi mult simplificate prin utilizarea de virtualizare. În cazul unui dezastru, copiile de siguranță ale mașinilor virtuale pot fi prealuate dintr-o nouă locatie, ajuta la minimizarea timpului de nefuncționare. În ciuda tuturor avantajele, există încă unele dezavantaje pentru virtualizare. De exemplu, masinile virtuale trebuie să împartă resursele cu alte mașini virtuale de pe același sistem fizic. Aplicatii cu mare spatiu de stocare sau utilizarea procesorului nu ruleaza în mod necesar și pe un sistem în cazul în care trebuie să împartă resurse. Această problemă poate fi ajutată prin rularea doar unei singure aplicații de utilizare pentru fiecare gazdă fizica in parte. Această abordare permite la fel avantajele de portabilitate catre celelalte sisteme virtuale în timp ce minimizeaza performantele celui defect. Acesta este cea mai mare problemă care vine de la aplicațiile care au nevoie de acces la periferice fizice deosebite. În timp ce unele platforme virtuale pot avea metode de trecere de perifericele fizice ale echipamentelor sale virtuale, dar apoi oaspetele va fi limitat la operarea pe o gazdă care este specifica.
Infrastructura de tip cloud
Sistemul de virtualizare devine din ce în ce mai popular și mai mulți furnizori construiesc mediile virtuale "cloud" în propriile centre de date și spațiu de inchiriere pentru alte organizații. Această practică a devenit cunoscuta ca infrastructură de serviciu (IaaS). În loc de a merge prin a construi propriile centre de date, IaaS permite organizațiilor să închirieze spatii de alimentare de la unul sau mai multe centre de date construite, de unul sau mai mulți furnizori de obicei, pe o bază per utilizare. Acest model elimină costul locuințelor, menținerea, și să fie difuzate hardware-ul fizic de la utilizatorul final și îl anexează la furnizorul de cloud.
IaaS are dezavantajele sale în primul rând în ceea ce privește viața privată și securitatea. In scopul de a se folosi de IaaS companiile trebuie sa pastreze datele sau sa fie accesibile din acel cloud. Acest lucru înseamnă că datele trebuie să părăsească organizația și devine un element important în cazul în care organizația este reglementată de legile și reglementările de protecție pentru una sau mai multe date. Atunci când alegeți un furnizor de IaaS, organizația trebuie să verifice daca furnizorul are măsurile necesare luate pentru a se conforma legilor și reglementărilor necesare.
Capitolul 2 Partiționarea în vederea instalării mașinilor virtuale
Acest capitol descrie cum se configureaza și utilizeaza partițiile, volumele logice a spațiului de stocare a mașinii gazdă în vederea instalării mașinilor virtuale. Totodată se detaliază crearea configurațiilor RAID software, configurarea protocolului iSCSI și stocarea criptată a datelor.
2.1 Partiționarea discului
Partiționarea unui disc împarte unitatea de disc în una sau mai multe zone rezervate (partiții) și stochează informația despre aceste partiții într-o tabelă de partiții pe disc. Sistemul de operare tratează fiecare partiție ca un disc separat care conține file ale sistemului.
Sistemele Linux necesită o partitie pentru rădăcina sistemului de fișiere. Este normal să folosești alte două partiții pentru a schimba spațiul și pentru bootarea fișierelor sistemului. Pe sistemele x86 și x86_64, sistemul BIOS poate avea de obicei acces numai la primii 1024 cilindri ai discului în momentul bootării. Configurarea unei partiții de bootare separate în această regiune permite GRUB Bootloader să acceseze kernelul imaginii și alte file care sunt necesare la bootarea sistemului.
Se pot crea partiții suplimentare pentru a simplifica backup-ul ,pentru a spori securitatea sistemului, precum si pentru a satisface alte nevoi, cum ar fi setarea dezvoltarii sandboxes și a zonelor de test. Datele care se schimbă frecvent, cum ar fi directoarele utilizatorilor, baze de date, precum și filele directoare de logare, sunt atribuite pentru separarea partițiilor pentru facilitarea backup-urilor.
Schema de partiționare pentru hard disk-uri cu o înregistrare master boot record (MBR) permite să creați până la patru partiții primare în sus. Dacă este nevoie de mai mult de patru partiții, se împărte una dintre partițiile principale în până la 11 partiții logice. Partiția primară care conține partițiile logice este cunoscută ca o partiție extinsă. Schema MBR suportă disk-uri de până la 2 TB .
Pe hard disk-urile cu un GUID Partition Table(GPT), se pot configura pâne la 128 de partiții și acolo nu există conceptul de partiții existente sau logice. Ar trebui configurat un GPT dacă disk-ul este mai mare de 2 TB.
Se creeaza și administreaza master boot record utilizând comanda fdisk. Dacă se creeaza un GPT, se foloseste în schimb parted.
2.2 Gestionarea tabelei de partiții utilizând comanda fdisk
În cazul în care orice partiție de pe disk ce urmează a fi configurată folosind fdisk este momentan montată, se demonteaza înainte de a rula fdisk pe disc. În mod similar, dacă vreuna din partiții este folosită ca și spațiu de schimb, se utilizeaza comanda swapoff pentru a dezactiva partiția.
Înainte de a rula fdisk pe disk-ul care conține date, mai se face back up-ul datelor pe un alt disc sau mediu.
Nu se poate utiliza fdisk pentru a gestiona un hard disk GPT.
Utilitarul comenzii fdisk se poate folosi pentru a crea o tabelă de partiții, vedea o tabelă de partiții existentă, adaugă și șterge partiții. Alternativ se foloseste de asemenea, utilitarul comenzii cfdisk, care este un text bazat, pe versiunea grafică a fdisk.
Fdisk poate fi folosit interactiv sau poate folosi opțiunile și argumentele liniei de comandă pentru a specifica partițiile. Când se ruleaza fdisk interactiv, se specifica doar numele dispozitivului disc ca un argument, de exemplu:
fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help):
Se poate apasa tasta c pentru a opri modul DOS de compatibilitate și p pentru a afișa tabela partiției.
Command (m for help): c
DOS Compatibility flag is not set
Command (m for help): p
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002a95d
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
/dev/sda2 64 5222 41430016 8e Linux LVM
Exemplul de ieșire arată că /dev/sda este un disk de 42.9 GB. Cum hard disc-urile moderne suportă blocuri logice de adresare (LBA), orice informații despre numărul de capate și al sectoarelor pe pistă este irelevant și probabil fictiv. Dimensiunea cilindrului este folosită ca și unitate pentru începutul și sfârșitul offsets-urilor fiecărei partiții de la începutul disk-ului. Tabela de partiții este afișată după rezumatul dispozitivului și arată:
Device – Dispozitivul care corespunde partiției.
Boot – Specifică dacă partiția conține file de care GRUB Bootloader are nevoie pentru bootarea sistemului. Doar o partiție poate fi bootabilă.
Start and End – Începutul și sfârșitul offsets-urilor în cilindri. Toate partițiile sunt aliniate în limitele cilindrului.
Blocks – Dimensiunea partiției în blocuri 1-kilobyte.
Id and System – Tipul partiției. Următoarele tipuri de partiții sunt tipice pentru folosirea cu Linux:
5 Extended – O partiție extinsă care poate conține până la patru partiții logice.
82 Linux swap – Schimbă spațiului partiției.
83 Linux – Partitia Linux-ului pentru un sistem de fișiere care nu este gestionat de LVM. Aceasta este tipul implicit de partiție.
8e Linux LVM -Partitia Linux-ului gestionată de LVM.
Comanda n creează o partiție noua. De exemplu, pentru a crea intrări în tabela de partiții pentru două partiții Linux pe /dev/sdc , una dintre ele este de 5GB și cealaltă ocupă restul spațiului rămas pe disk :
fdisk /dev/sdc…
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1958, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-1958, default 1958): +5G
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (655-1958, default 655): <Enter>
Using default value 655
Last cylinder, +cylinders or +size{K,M,G} (1-1958, default 1958): <Enter>
Using default value 1958
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sdc1 1 654 5253223+ 83 Linux
/dev/sdc2 655 1958 10474380 83 Linux
Comanda t permite schimbarea tipulului de partiție. De exemplu, pentru a schimba tipul partiției 2 în Linux LVM:
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 8e
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sdc1 1 654 5253223+ 83 Linux
/dev/sdc2 655 1958 10474380 8e Linux LVM
După crearea noii tabele de partiții, se foloseste comanda w pentru a scrie tabela pe disk și apoi se inchide fdisk.
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Dacă se apasa q în schimb, fdisk închide fără a efectua modificările pe disk.
2.3 Gestionarea tabelelor de partiții folosind parted
Dacă vreo partitie de pe disc trebuie configurată utilizând parted, curent montată, trebuie demontata înainte de a rula parted pe disc. Similar, dacă vreo partiție este folosită ca și spațiu de schimb, trebuie utilizata comanda swapoff pentru a dezactiva acea partiție.
Înainte de a rula parted pe un disc care conține date, mai întâi trebuie facut back up-ul datelor pe un alt disk sau mediu.
Se poate folosi utilitarul parted pentru a eticheta un disk, pentru a crea o tabelă de partiții ,pentru a vedea o tabelă de partiții existentă, pentru a adauga partiții,pentru a modifica dimensiunea lor și pentru a șterge partiții. Parted este mult mai avansat decât fdisk pentru că suporta mai multe tipuri de etichete de disc, inclusiv disc-uri GPT, și se implementează un set mai mare de comenzi .
Se poate folosi parted interactiv sau specifica comenzile ca și argumente. Când este rulat parted interactiv, se specifica doar numele dispozitivului disk ca un argument, de exemplu :
parted /dev/sda
GNU Parted 2.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
Comanda print afișează tabela partiției:
(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 525MB 524MB primary ext4 boot
2 525MB 42.9GB 42.4GB primary lvm
Comanda mklabel creează o nouă tabele de partiții:
parted /dev/sdd
GNU Parted 2.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel
New disk label type? gpt
Warning: The existing disk label on /dev/sdd will be destroyed
and all data on this disk will be lost. Do you want to continue?
Yes/No? y
De obicei, se seteaza tipul etichetei disk-ului pentru GPT sau Msdos pentru un sistem Linux, depinde dacă dispozitivul disc-ului suporta GPT. Se solicită să confirme că se doreste suprascrierea etichetei existente a disc-ului.
Comanda mkpart creează o nouă partiție:
(parted) mkpart
Partition name? []? <Enter>
File system type? [ext2]? ext4
Start? 1
End? 5GB
Pentru disk-urile cu o etichetă msdos, se solicită să se introduca tipul partiției, care poate fi primary, extended sau logical. Tipul sistemului de fișiere este de obicei setat la una dintre fat16, fat32, ext4, sau linux-swap pentru un sistem Linux. Dacă se doreste creearea un sistem de fișiere btrfs, ext*, ocfs2,sau xfs pe partiție, specificați ext4. Dacă nu specificați unitățile, cum ar fi GB pentru gigabytes, începutul și sfârșitul offsets-urilor partiției sunt presupuse a fi în megabytes.
Pentru a afișa noua partiție, se scrie comanda print:
(parted) print
Number Start End Size File system Name Flags
1 1049kB 5000MB 4999MB ext4
Pentru a ieși din parted, se introduce quit.
Comenzile parted ca și mklabel si mkpart comit modificări imediat asupra disc-ului. Spre deosebire de fdisk, nu aveți optiunea de a ieși fără să salvați modificarile.
2.4 Maparea Tabelelor de partițiii la dispozitive
Utilitarul kpartx se foloseste pentru maparea partițiilor a oricarui dispozitiv blocat sau fișiere care conțin o tabelă de partiții și imaginile partiției. kpartx citește tabela de partițiii și creează fișierele dispozitivului pentru partiții în /dev/mapper. Fiecare fișier al dispozitivului reprezintă un volum al discului sau o partiție a discului pe un dispozitiv sau într-un fișier imagine.
Optiunea –l listează orice partiție pe care o gasește, spre exemplu în instalarea fișierului imagine :
kpartx –l system.img
loop0p1 : 0 204800 /dev/loop0 2048
loop0p2 : 0 12288000 /dev/loop0 206848
loop0p3 : 0 4096000 /dev/loop0 212494848
loop0p4 : 0 2 /dev/loop0 16590848
Această ieșire arată ca imaginea unitate conține patru partiții, și prima coloană reprezintă numele fișierelor dispozitivului care pot fi create în /dev/mapper.
Optiunea –a creează maparea dispozitivului:
kpartx –a system.img
ls /dev/mapper
control loop0p1 loop0p2 loop0p3 loop0p4
Dacă o partiție conține fișiere ale sistemului, se pot monta și vizualiza fișierele pe care le conține , spre exemplu :
mkdir /mnt/sysimage
mount /dev/mapper/loop0p1 /mnt/sysimage
ls /mnt/sysimage
config-2.6.32-220.el6.x86_64
config-2.6.32-300.3.1.el6uek.x86_64
efi
grub
initramfs-2.6.32-220.el6.x86_64.img
initramfs-2.6.32-300.3.1.el6uek.x86_64.img
…
umount /mnt/sysimage
Optiunea –d șterge mapările dispozitivului:
kpartx –d system.img
ls /dev/mapper
control
2.5 Despre Swap Space
Oracle Linux folosește swap space când sistemul tău nu are suficientă memorie fizică pentru a stoca textul (codul) și pagini de date care sunt utilizate de procesul folosit curent. Când sistemul tău are nevoie de mai multă memorie, el scrie pagini inactive pentru swap space-ul pe disk, eliberând memoria fizică. Cu toate acestea, scrierea swap space-ului are un impact negativ asupra performanței sistemului , deci creșterea swap space-ului nu este o soluție efectivă pentru deficitul de memorie. Swap space-ul este localizat pe unitățile de disk, care are un timp de acces mai încet decât memoria fizică. Dacă sistemul tău recurge mereu la swapping, ar trebui să adaugați mai multă memorie fizică, nu mai mult swap space.
Puteți configura swap space-ul pe un fișier swap în fișierele sistemului sau într-o partiție separată swap. O partiție swap dedicată este mai rapidă, dar schimbând dimensiunea unui fișier swap este mai ușor. Configurați o partiție swap, dacă stiți cât spațiu swap cere sistemul tău. În caz contrar, începeți cu un fișier swap și creați o partiție swap când stiți cât cere sistemul dumneavoastra .
2.5.1 Vizualizarea swap space-ului folosit
Pentru a vedea utilizarea swap space-ului unui sistem, examinezi conținutul /proc/swaps:
cat /proc/swaps
Filename Type Size Used Priority
/dev/sda2 partition 4128760 388 -1
/swapfile file 999992 0 -2
În acest exemplu,sistemul folosește ambele partiții swap patru gigabyte pe /dev/sda2 și 1 –gigabyte fișiere swap, /swapfile. Colona Priority arată că sistemul preferențial schimbă către partiția swap mai curând decât fișierul swap.
Se poate vizualiza /proc/meminfo sau să folosiți utilitățile ca și free, top, și vmstat pentru a vedea swap space-ul folosit, spre exemplu :
grep Swap /proc/meminfo
SwapCached: 248 kB
SwapTotal: 5128752 kB
SwapFree: 5128364 kB
free | grep Swap
Swap: 5128752 388 5128364
2.5.2 Crearea și lolosirea fișierului swap
Pentru a crea și a utiliza un fișier swap:
1.Se foloseste comanda dd pentru a creea fișierul de marimea cerută (de exemplu, un million de blocuri de un kilobyte)
dd if=/dev/zero of=/swapfile bs=1024 count=1000000
2. Se initializeaza fișierul ca fișier swap:
mkswap /swapfile
3. Se activeaza schimbarea spre fișierul swap:
swapon /swapfile
4.Adaugați o intrare la /etc/fstab pentru fișierul swap astfel încât sistemul o folosește până la următorul restart:
/swapfile swap swap defaults 0 0
2.5.3 Crearea și folosirea partiției swap
Pentru a creea si folosi o partitie swap :
1.Se foloseste fdisk pentru a crea o partiție de disc de tip 82 (Linux swap) sau parted pentru a crea o partiție de disc de tip linux-swap de dimensiunea cerută.
2. Trebuie initializata partiția (de exemplu, /dev/sda2) ca o partiție swap:
mkswap /dev/sda2
3. Trebuie activat schimbul pentru partiția swap:
swapon /swapfile
4. Se adauga o intrare la /etc/fstab pentru partiția swap astfel încât sistemul o folosește până la următorul restart:
/dev/sda2 swap swap defaults 0 0
2.5.4 Stergerea Filei de schimb sau a partitiei de schimb
Pentru a șterge un fișier swap sau o partiție swap din uz:
1. Se dezactiveaza fișierul swap sau partiția swap, de exemplu:
swapoff /swapfile
2. Trebuie stearsa intrarea pentru fișierul swap sau partiția swap din /etc/fstab.
3. Opțional, se sterge fișierul swap sau partiția swap dacă nu vreți să le folosiți în viitor.
2.6 Despre managerul volumului logic
Puteți folosi Logical Volume Manager (LVM) pentru a gestiona multiple volume fizice și configura oglindirea și bandarea volumelor logice pentru a furniza redundanța datelor și creșterea performanței I/O. În LVM, prima oară creați grupuri de volume de la volumele fizice, care sunt dispozitive de stocare, cum ar fi LUNs matrice de disc, software sau hardware pentru dispozitive RAID, hard disc-uri, și partiții de disc. Apoi puteți crea volume logice într-un grup de volume. Un volum logic de funcții ca o partiție, care la implementarea sa poate fi răspândit peste mai multe disc-uri fizice.
Puteți crea fișiere de sistem pe volume logice și puteți monta dispozitivele de volum logice în același fel ca un dispozitiv fizic. Dacă un sistem de fișiere pe un volum logic devine plin de date, puteți crește capacitatea volumului folosind spațiul liber în grupul de volum, astfel încât puteți crește sistemul de fișiere (cu condiția ca sistemul de fișiere sa aibă această capacitate). Dacă este necesar, puteți adăuga dispozitive fizice de stocare unui grup de volum pentru ai crește capacitatea.
LVM este non-distrugător și transparent pentru utilizatori. Puteți crește dimensiunea volumelor logice și schimba aspectul lor dinamic fără a fi nevoie să programați sistemul în josul timpului pentru a reconfigura stocarea fizică.
LVM folosește maparea dispozitivelor (DM) care oferă un nivel de abstractizare care permite crearea dispozitivelor logice anterioare dispozitivelor fizice și oferă fundamentul pentru software-ul RAID, criptarea și alte caracteristici de stocare.
2.6.1 Initializarea si administrarea volumelor fizice
Inainte sa poti crea un grup de volum, trebuie sa initializezi dispozitivele fizice pe care vrei sa le folosesti drept volume fizice cu LVM.
Daca dispozitivele contin informatii existente,se face o copie de rezerva a acestora.
Pentru a crea un dispozitiv fizic drept volum fizic, foloseste comanda pvcreate.
pvcreate [options]device
Ca de exemplu, creaza /dev/sdb, /devsdc, /dev/sdd, si /dev/sde ca volume fizice :
pvcreate -v /dev/sd[bcde]
Creaza un volum fizic pentru /dev/sdb cu 6313482 sectoare libere
Se reduce la zero inceputul dispozitivului /dev/sdb
Volum fizic /dev/sdb creat cu succes
…
Pentru a afisa informatii despre volume fizice, se pot folosi comenzile pvdisplay, pvs si pvscan .
Pentru a scoate un volum fizic din controlul LVM, foloseste comanda pvremove:
pvremove device
Alte comenzi ce sunt disponibile pentru administrarea volumelor fizice includ pvchange, pvck, pvmove si pvresize.
2.6.2 Crearea si administrarea grupurilor de volum
Dupa ce se initializeaza in prealabil volumele fizice, se pot adauga la un grup nou sau unul existent de volum.
Pentru a crea un grup de volum, se foloseste comanda vgcreate :
Vgcreate[options] volume_group physical_volume…
Ca de exemplu, creati grupul de volum myvg din volumele fizice /dev/sdb, /dev/sdc, sdd si /dev/sde:
vgcreate -v myvg /dev/sd[bcde]
Se sterge cache din dispozitivele LVM
Se adauga volumul fizic „ /dev/sdb” la grupul de volum „myvg”
Se adauga volumul fizic „ /dev/sdc” la grupul de volum „myvg”
Se adauga volumul fizic „ /dev/sdd” la grupul de volum „myvg”
Se adauga volumul fizic „ /dev/sde” la grupul de volum „myvg”
Se arhiveaza grupul volum „myvg”
Se creaza o copie de rezerva a grupului de volum „ /etc/ lvm/backup/myvg”
Grupul de volum „myvg” a fost creat cu succes
LVM imparte spatiul de depozitare din cadrul unui grup volum în proporții fizice, care sunt cele mai mici unitati pe care LVM le foloseste cand se aloca spatiu la volumele logice. Dimensiunea implicita a unei proportii este de 4MB.
Politica de alocare pentru grupul de volum si volumul logic determina cum LVM aloca proportii dintr-un grup de volum.
Politica implicita pentru un grup de volum este normal care aplica reguli ca: a nu se plasa dungi paralele pe acelasi volum fizic. Politica de alocare implicita pentru un volum logic este inherit, ceea ce inseamna ca volumul logic foloseste aceeasi politica ca si cea pentru grupul de volum. Puteti schimba politicile de alocare implicita folosind comenzile lvchange sau vgchange sau puteti trece peste politica de alocare cand creati un grup de volum sau un volume logic. Alte politici de alocare includ anywhere, contiguous si cling.
Pentru a adauga volume fizice la un grup de volum, se foloseste comanda vgextend :
vgextend [options] volume_group physical_volume …
Pentru a scoate volume fizice dintr-un grup de volum, se foloseste comanda vgreduce :
vgreduce [options] volume_group physical_volume …
Pentru a afisa informatii despre grupurile de volum, puteti folosi comenzile vgdisplay, vgs, si vgscan.
Pentru a scoate un grup de volum din LVM, se foloseste comanda vgremove :
vgremove volume_group
Alte comenzi care sunt disponibile pentru a administra grupuri de volum includ vgchange, vgck, vgexport,vgimport, vgmerge, vgrename, si vgsplit.
2.6.3 Crearea si administrarea volumelor logice
Dupa ce creati un grup de volum de volume fizice, puteti crea volume logice din spatiul de stocare care este disponibil in grupul de volum.
Pentru a crea un volum logic, se poate folosi comanda lvcreate :
lvcreate [options] –size size –name logical_volume volume_group
Ca de exemplu, se creeaza un volum logic mylv de 2GB in grupul de volum myvg :
lvcreate -v –size 2g –name mylv myvg
Setarea tipului de logare pentru disk
Se gaseste grupul de volum „myvg”
Se arhiveaza grupul de volum „myvg”.
Se creaza volumul logic mylv
Se creaza copia de rezerva a grupului de volum “/etc/lvm/backup/myvg”
…
Lvcreate foloseste un mapper de dispozitiv pentru a crea o intrare in fisierul dispozitiv bloc in fiecare volum logic si foloseste udev pentru a crea legaturi simbolice pentru acest fisier dispozitiv din /dev/mapper si /dev/volume_group .
Ca de exemplu, dispozitivul care corespunde volumului logic mylv in grupul de volum myvg poate fi /dev/dm -3, care este legata symbolic de /dev/mapper/myvolg-myvol and /dev/myvolg/myvol.
Nota:
Se folosesc mereu dispozitivele in /dev/mapper sau /dev/volume_group.
Aceste nume sunt persistente si sunt create automat de catre mapperul de dispozitiv, la inceputul procesului de boot. Nu se garanteaza ca dispozitivele /dev/dm-* sunt persistente de-a lungul procesului de reboot.
Dupa ce se creeaza un volum logic, poate fi configurat si folosit ca un dispozitiv fizic de stocare. Ca de exemplu, se poate configura un volum logic ca un sistem de fisiere, partitie de schimbare, ASM, sau ca pe un dispozitiv raw.
Pentru a afisa informatii despre volumele logice, se folosesc comenzile lvdisplay, lvs, si lvscan.
Pentru a sterge un volum logic dintr-un grup de volum, exista comanda lvremove.
Nota:
Trebuiesc specificate ambele nume: si cel al grupului de volum si al volumului logic.
Alte comenzi disponibile pentru administrarea volumelor locale includ lvchange, lvconvert, lvmdiskscan, lvmsadc, lvmsar, lvrename, si lvresize.
2.6.4 Crearea de instantanee de volum logic
Se poate deasemenea folosi lvcreate cu optiunea – -snapshot pentru a crea un instantaneu al unui volum logic existent ca mylv in grupul de volum myvg,de exemplu :
lvcreate –size 500m –-snapshot –-name mylv-snapshot myvg/mylv
Volumu logic “mylv-snapshot” a fost creat
Exista posibilitatea de a monta și modifica conținutul instantaneului independent de volumul original sau conserva aceasta ca o înregistrare a stării din volumul inițial la momentul la care luati instantaneul.
De obicei, instantaneul ocupa mai putin spatiu decat volumul original, depinde de cat de mult continutul volumului deviaza in timp.
Instantaneul cere doar un sfert din spatial volumului original. Puteti folosi valoarea afisata de coloana Snap% la iesirea comenzii LVS pentru a vedea cat de multe date ii sunt alocate instantaneului.
Daca valoarea lui Snap% abordeaza mai mult de 100%,pentru a indica ca un instantaneu functioneaza in afara memoriei, folositi lvresize pentru a o mari.
O alta alternativa ar fi sa micsorati dimensiunea instantaneului pentru a salva spatiu de memorie.
Pentru a contopi un instantaneu cu volumul sau original, folositi comanda lvconvert , specificand optiunea – -merge.
Pentru a sterge un instantaneu al volumului logic dintr-un grup de vlum, folositi comanda lvremove ca si pentru un volum logic.
lvremove volume_group/logical_volume_snapshot
2.6.5 Crearea si administrarea volumelor logice “thinly provisioned”
Acestea au o dimensiune virtuala care este mai mare decat memoria fizica pe care le-ati creat.
Exista posibilitatea de a crea volume logice subtiri dintr-o memorie pe care ati atribuit-o unui tip special de volume logice denumite “ thin pool”.
LVM atribuie la cerere memorie dintr-o “thin pool” la un volum lofic “thinly provisioned” in conformitate cu aplicatiile care acceseaza volumul.
Trebuie folosita comanda lvs pentru a monitoriza uzura “thin pool” pentru a-i putea creste dimensiunea daca memoria sa disponibila este in pericol de a fi epuizata.
Pentru a crea “thin pool”, folositi comanda lvcreate plus optiunea – -thin :
lvcreate –size size –thin volume_group/thin_pool_name
Ca de exemplu,create un “thin pool” mytp de dimensiunea de 1GB un grupul de volum myvg :
lvcreate –size 1g –thin myvg/mytp
Volumul logic “mytp” a fost creat
Acum se foloseste lvcreate cu optiunea – -thin pentru a crea un volum logic “thinly-provisioned” cu o dimensiune specificata de optiunea –virtualsize, ca de exemplu:
lvcreate –virtualsize size –thin volume_group/thin_pool_name \–name logical_volume
Ca de exemplu, create un volum logic “thinly-provisioned” mytv cu o dimensiune virtuala de 2GB folosind “thin pool” mytp,a carui dimensiune este mai mica decat dimensiunea volumului:
lvcreate –virtualsize 2g –thin myvg/mytp –name mytv
Volumul logic "mytv" a fost creat
Daca se va crea un instantaneu subtire a unui volum logic “thinly provisioned”, nu se specifica dimensiunea instantaneului,de exemplu:
lvcreate –-snapshot –-name mytv-snapshot myvg/mytv
Volumul logic “mytv-anapshot” a fost creat
Daca a fost specificata o dimensiune pentru instantaneul subtire, memoria sa nu ar fi fost asigurata de “thin pool”.
Daca este suficient spatiu in grupul de volum, se va folosi comanda lvresize pentru a mari dimensiunea unui “thin pool”, ca de exemplu:
lvresize -L+1G myvg/mytp
Se mareste volumul logic mytp la 2GB
Volumul logic mytp a fost redimensionat cu succes
2.6.6 Folosirea snapperului cu un volum logic “thinly provisioned”
Se poate folosi utilitatea snapperului de a crea si administra aceste instantanee ale volumului logic “thinly provisioned”. Pentru a seta configuratia snapperului pentru un volum existent:
snapper -c config_name create-config -f "lvm(fs_type)" fs_name
Aici, config_name reprezinta numele configuratiei ,fs_type este tipul sistemului de fisiere (ext4 sau xfs) si fs_name este calea sistemului de fisiere. Comanda adauga o intrare pentru config_name la /etc/sysconfig/snapper, creaza fisierul de configuratie /etc/snapper/configs/config_name si creaza un subdirector .snapshots pentru instantanee.
Implicit, snapper creaza o activitate cron.hourly pentru a crea instantanee in subdirectorul .snapshot al volumului si o activitate cron.daily pentru a sterge vechile instantanee.
Puteti edita Configuratia fisierului pentru a-I schimba sau dezactiva comportamentul.
Exista 3 tipuri de instantanee pe care le puteti crea folosind snapper:
Post – folosind un instantaneu post pentru a inregistra starea unui volum dupa modificare. Un instantaneu post ar trebui sa fie mereu asociat cu un pre-instantaneu pe care il faci cu putin inainte de a realize modificarea.
Pre –folosind un pre-instantaneu pentru a inregistra starea unui volum inainte de modificare. Un pre-instantaneu ar trebui sa fie mereu asociat cu un post-instantaneu pe care il faci imediat dupa ce ai finalizat modificarea.
Single –folosind un instantaneu single pentru a inregistra starea volumului dar nu necesita nicio asociere cu alte tipuri de instantanee din volum.
Ca de exemplu, urmatoarele comenzi creaza pre si post-instantanee ale unui volum:
snapper -c config_name create -t pre –p N
… se modifica continutul volumului …
snapper -c config_name create -t post –pre-num N –p N'
Optiunea –p face ca snapperul sa afiseze numarul de instantanee astfel incat sa puteti face referire la acesta cand create post-instantaneul sau cand comparati continutul instantaneelor pre si post.
Pentru a afisa fosierele si directoarele care au fost adaugate,sterse sau modificate intre instantanee pre si post, se foloseste subcomanda status :
snapper -c config_name status N..N'
Pentru a afisa diferenta dintre continutul fisierelor in instantaneele pre si post, se foloseste subcomanda diff :
snapper -c config_name diff N..N'
Pentru a lista instantaneele existene pentru un volum:
snapper -c config_name list
Pentru a anula schimbarile in volum de la instantaneul post N’ la pre-instantaneul N :
snapper -c config_name undochange N..N'
2.7 Despre software-ul RAID
Trasaturile multimii redundante a discurilor independente (RAID) va permite sa raspanditi date de-a lungul unitatilor pentru a creste capacitatea, pentru a implementa redundanta datelor si pentru a creste performanta. RAID este implementat de obicei si in Hardware, in memoria discurilor inteligente care exporta volume RAID ca LUNs si in Software de cadriverul multidisktre sistemul de operare.
Kernelul Oracle-Linux foloseste driverul multidisk (MD) pentru a sprijini softwareul RAID creand dispozitivele virtuale de la 2 sau mai multe dispozitive fizice de memorie.
Urmatoarele nivele ale softwareului RAID sunt utilizate si in Oracle Linux:
Raid liniar (se intinde) –Combina unitatile ca pe o unitate virtuala mai mare. Nu exista o redundant a datelor sau un beneficiu al performantei.
RAID-0 –Creste performanta dar nu furnizeaza redundant datelor. Datele sunt impartite in benzi si scrise in toate unitatile din multime.
RAID-1 –Furnizeaza redundant datelor si elasticitate scriind datele identic pe fiecare unitate din multime. Daca o unitate esueaza, o onglindire a sa poate satisface cererile de I/O. Oglindirea este o solutie scumpa pentru ca aceeasi informative este scris in toate discurile din multime.
RAID-5 –Creste performanta cititului utilizand “stripping” si furnizeaza redundant datelor. Paritatea este distribuita de-a lungul unitatilor din multime dar nu ocupa la fel de mult spatiu ca o oglindire complete. Performanta scrisului este redusa la cateva masuri din RAID-0 avand de calculate paritatea informatiei si de a adauga aceste informatii la date. Daca un disk din multime esueaza, informatia de paritate este folosita pentru a reconstrui datele pentru a satisface cerintele I/O. In acest mod, performanta la citit si elasticitatea sunt degradate pana cand inlocuiti unitatea esuata si este repopulate cu date si informatii de paritate.
RAID-6 –O variant mult mai rezistenta pentru RAID-5 care poate recupera din pierderea a doua unitati dintr-o multime.RAID-6 este folosit cand redundant datelor si relasticitatea sunt importante, dar performanta nu.
RAID-0+1 –Combina RAID-0 si RAID-1 oglindind o multime divizada pentru a furniza si redundant datelor si cresterea performantei. Esuarea unui singur disk are ca si consecinta imposibilitatea de a utiliza una din oglindiri pana cand inlocuiti discul si il repopulate cu date. Rezistenta este degradata cand timp o singura oglindire ramane disponibila.
2.7.1 Crearea dispozitivelor de software RAID
Pentru a crea un dispozitiv software RAID :
Se foloseste comanda mdadm pentru a crea dispozitivul MD RAID
mdadm –create md_device –level=RAID_level [options] –raid-devices=N device …
De exemplu , pentru a crea un dispozitiv RAID-1 /dev/md0 din /dev/sdf si /dev/sdg:
mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/sd[fg]
Pentru a crea un dispozitiv RAID-5 /dev/md1 din /dev/sdb, /dev/sdc, si dev/sdd:
mdadm –create /dev/md1 –level=5 –raid-devices=3 /dev/sd[bcd]
Daca se includ dispositive de rezerva care sa fie disponibile pentru reconfiguratie, expansiune sau pentru inlocuirea unitatilor esuate, se foloseste optiunea –spare-devices pentru a specifica numar lor, de exemplu:
mdadm –create /dev/md1 –level=5 –raid-devices=3 –spare-devices=1 /dev/sd[bcde]
Nota:
Numarul RAID-ului si a dispozitivelor de rezerva trebuie sa fie egal cu numarul dispozitivelor pe care le specificati.
Se adauga configuratia RAID-ului la /etc/mdadm.conf:
mdadm –examine –scan >> /etc/mdadm.conf
Nota:
Acest pas este optional. Ajuta mdadm sa asambleze multimile in timpul bootarii.
De exemplu, urmatoarele intrari in /etc/mdadm.conf definesc dispozitivele si multimile care corespund cu /dev/md0 si /dev/md1:
DEVICE /dev/sd[c-g]
ARRAY /dev/md0 devices=/dev/sdf,/dev/sdg
ARRAY /dev/md1 spares=1 devices=/dev/sdb,/dev/sdc,/dev/sdd,/dev/sde
Creand un dispozitiv MD RAID, se poate configura si folosi ca pe un dispozitiv fizic de memorie.
Ca de exemplu, il poate folosi ca pe un volum fizic LVM, sistem de fisiere, partitie de schimbare, disc ASM etc.
Se poate vedea /proc/mdstat pentru a verifica statusul dispozitivelor MD RAID, ca de exemplu:
cat /proc/mdstat
Personalities : [raid1]
mdo : active raid1 sdg[1] sdf[0]
Pentru a afisa cuprinsul si informatii detaliate despre MD RAID,se pot folosi optiunile –query si –Detail cu mdadm.
2.8 Crearea dispozitivelor bloc criptate
Dispozitivul mapper suporta crearea unor dispositive bloc criptate folosind disopzitivul diver dm-crypt.
Se pot accesa date in dizpozitivele criptate in timpul bootarii numai daca se introduce parola corecta.
Cand se instaleaza sistemele Linux, exista optiunea de a configura criptari in volumele de sistem, altele decat partitiile din care sistemul booteaza. Daca se protejeaza partitia de boot, se i-a in considerare orice mecanism de protectie, parola care exista in BIOS sau se creaza o parola pentru GRUB.
Pentru a configure dispozitivul mapat pentru un volum criptat:
1.Se initializeaza o partieie LUKS in dispozitiv si se configureaza cheia initiala, ca de exemplu:
cryptsetup luksFormat /dev/sdd
This will overwrite data on /dev/sdd irrevocably.
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase: passphrase
Verify passphrase: passphrase
2.Se deschide dispozitivul si se creeaza maparea acestuia:
cryptsetup luksOpen /dev/sdd cryptfs
Enter passphrase for /dev/sdd: passphrase
In acest exemplu, volumul criptat este accesibil ca /dev/mapper/cryptsfs.
3.Se creeaza o intrare pentru volumul criptat in /etc/crypttab ,ca de exemplu: <target name> <source device> <key file> <options>
cryptfs /dev/sdd none luks
Aceasta intrare determina sistemul de operare sa solicite introducerea frazei de autentificare la pornire.
Dupa sa creat un volum criptat si dispozitivul acestuia de mapare, se poate configura si folosi ca pe un dispozitiv de memorie fizica.
Ca de exemplu, se configureaza ca volum fizic LVM, sistem de fisiere, partitie de schimbare, ASM. Ca de exemplu, creaza o intrare in /etc/fstab pentru a monta dispozitivul de mapare (/dev/mapper/cryptsfs), nu a dispozitivului fizic. (/dev/sdd).
Pentru a verifica statusul unui volum criptat, se foloseste urmatoarea comanda: cryptsetup status cryptfs
/dev/mapper/cryptfs is active.
type: LUKS1
cipher: aes-cbs-essiv:sha256
keysize: 256 bits
device: /dev/xvdd1
offset: 4096 sectors
size: 6309386 sectors
mode: read/write
In cazul in care este nevoie sa fie eliminata maparea dispozitivului, se deconecteaza orice sistem de fisiere pe care volumul criptat il contine, si se ruleaza urmatoarea comanda:
cryptsetup luksClose /dev/mapper/cryptfs
2.8.1 Configurarea Multipathing
Procedura din această secțiune demonstrează cum să înființeze o configurație simpla multipath.
Pentru a configura Multipathing pe un server cu acces la stocarea SAN atașata:
Se instaleaza pachetul device-mapper-multipath:
yum install device-mapper-multipath
Se alege acum una din cele două căi de configurare:
Pentru a infiinta o configurație de bază failover fara a edita fisierul de cofiguratie /etc/multipath.conf introduceti urmatoarea comanda:
yum install device-mapper-multipath
Această comandă ,de asemenea, porneste serviciul multipath și configurează serviciul să porneasca dupa ce sistemul se reporneste.
Pentru a edita /etc/multipath.conf și a înființat o configurație mai complexă, cum ar fi activ / activ, se urmeaza pașii rămași din această procedură.
Initializarea fisierului /etc/multipath.conf
mpathconf –enable
Editati /etc/multipath.conf si definiti defaults, blacklist, blacklist_exceptions, multipaths, si sectiunile dispozitivelor necesare, de exemplu:
defaults {
udev_dir /dev
polling_interval 10
path_selector "round-robin 0"
path_grouping_policy multibus
getuid_callout "/lib/udev/scsi_id –whitelisted –device=/dev/%n"
prio alua
path_checker readsector0
rr_min_io 100
max_fds 8192
rr_weight priorities
failback immediate
no_path_retry fail
user_friendly_names yes
}
blacklist {
# Blacklist by WWID
wwid "*"
# Blacklist by device name
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
# Blacklist by device type
device {
vendor "COMPAQ "
product "HSV110 (C)COMPAQ"
}
}
blacklist_exceptions {
wwid "3600508b4000156d700012000000b0000"
wwid "360000970000292602744533032443941"
}
Multipaths {
multipath {
wwid 3600508b4000156d700012000000b0000
alias blue
path_grouping_policy multibus
path_checker readsector0
path_selector "round-robin 0"
failback manual
rr_weight priorities
no_path_retry 5
}
multipath {
wwid 360000970000292602744533032443941
alias green
}
}
devices {
device {
vendor "SUN"
product "(StorEdge 3510|T4"
path_grouping_policy multibus
getuid_callout "/sbin/scsi_id –whitelisted –device=/dev/%n"
path_selector "round-robin 0"
features "0"
hardware_handler "0"
path_checker directio
prio const
rr_weight uniform
rr_min_io 1000
Secțiunile au următoarele scopuri:
Defaults: Definește setările implicite pe căi multiple, care pot fi suprascrise de setările din secțiunea devices, și care, la rândul lor, pot fi înlocuite cu setări în secțiunea multipaths.
Blacklist: Definineste dispozitive care sunt excluse de la descoperirea topologiei multipath. Dispozitivele de pe lista neagră nu pot fi subsumate de un dispozitiv multipath. Exemplul prezintă cele trei moduri pe care le puteți folosi pentru a exclude dispozitivele: prin WWID (wwid), prin nume de dispozitiv (devnode), precum și în funcție de tipul dispozitivului(device).
Blacklist_exceptions: Defineste dispozitive care sunt incluse în descoperirea topologiei multipath, chiar dacă dispozitivele sunt implicit sau explicit menționate în secțiunea blacklist.
Multipaths: Definește setările pentru un dispozitiv multipath care este identificat prin WWID. Atributul alias specifica numele dispozitivului multipath care va aparea în / dev / mapper în loc de un nume bazat fie pe WWID sau de numărul de grup multipath. Pentru a obține WWID de un dispozitiv SCSI, folosiți comanda scsi_id:
scsi_id –whitelisted –replace-whitespace –device=device_name
Devices: Definește setările pentru tipuri individuale de controler de stocare. Fiecare tip de controler este identificat de către furnizor, produs, și o optionala revizuire a setarilor, care trebuie să potriveasca informațiile din sysfs pentru dispozitiv. Puteți găsi detalii despre matricea de stocare pe care DM-Multipath o susține și valorile lor implicite de configurare în / usr / share / doc / device-mapper multipath-version / multipath.conf.defaults, pe care o puteți utiliza ca bază pentru înregistrări în /etc/multipath.conf. Pentru a adăuga un dispozitiv de stocare pe care DM-multipath nu il listeaza ca fiind suportat, se obține furnizorul, produsul, iar fisierele revizuite de la furnizor, model, si fișierele rev în dispozitiv / sys / bloc / DEVICE_NAME /.
Următoarele mențiuni în /etc/multipath.conf ar fi potrivit pentru înființarea activă / pasivă multipathing la un iSCSI LUN cu WWID specificat.
defaults {
user_friendly_names yes
getuid_callout "/bin/scsi_id –whitelisted –replace-whitespace –device=/dev/%n”
}
multipaths {
multipath {
wwid 360000970000292602744533030303730
}
}
În această configurație de așteptare failover, I / O continuă printr-o interfață de rețea ramasa activă în cazul în care o interfeța de rețea lipseste pe inițiatorul iSCSI.
Pornind serviciul multipathd și configurati serviciul pentru a începe după ce sistemul repornește:
systemctl enable multipathd
Dispozitivele multipaths sunt identificate în / dev / mapper de World Wide Identifier (WWID), care este unic la nivel global. Alternativ, dacă se seteaza valoarea user_friendly_names a da în secțiunile implicite de /etc/multipath.conf sau prin specificarea –user_friendly_names in optiunea mpathconf, dispozitiv este numit mpathN unde N este numărul de grup multiplu. Un atribut alias în sectiunea multipaths /etc/multipath.conf specifică numele dispozitivului multipath în loc de un nume bazat fie pe WWID sau pe numărul de grup multipath.
Se poate utiliza aparatul multipath în / dev / mapper pentru referință la stocarea în același mod ca și cum ați utiliza orice alt dispozitiv de stocare fizic. De exemplu, îl puteți configura ca un volum fizic LVM, fișier sistem, partiție de swap, Automatic Storage Management (ASM) disc, sau dispozitiv brut.
Pentru a afișa configurația curentă multipath, se specifica opțiunea -ll la comanda multipath, de exemplu:
multipath –ll
mpath1(360000970000292602744533030303730) dm-0 SUN,(StorEdge 3510|T4
size=20G features=‘0’ hwhandler=‘0’ wp=rw
|-+- policy=‘round-robin 0’ prio=1 status=active
| ‘- 5:0:0:2 sdb 8:16 active ready running
‘-+- policy=‘round-robin 0’ prio=1 status=active
‘- 5:0:0:3 sdc 8:32 active ready running
În acest exemplu, / dev / mapper / mpath1 subsumează două căi ( / dev / sdb și / dev / SDC) la 20 GB de stocare într-o configurație activ / activ folosind round-robin I / O selecție de cale.WWID care identifică spatial de stocare este 360000970000292602744533030303730 și numele dispozitivului multipath sub sysfs este dm 0.
Dacă editați /etc/multipath.conf, reporniți serviciul multipathd pentru a face recitirea fisierului:
systemctl restart multipathd
2.9 Efectuarea sistemelor de fisier
Comanda mkfs construieste un sistem de fișiere pe un dispozitiv bloc:
mkfs [options] device
mkfs este un front-end pentru utilități constructor în / sbin, cum ar fi mkfs.ext4. Puteți utiliza fie comanda mkfs cu opțiunea fstype -t sau utilitarul constructor pentru a specifica tipul de sistem de fișiere pentru a construi. De exemplu, următoarele comenzi sunt modalități echivalente de a crea un sistem de fișiere ext4 cu proiectele de etichete de pe dispozitiv / dev / sdb1:
mkfs -t ext4 -L Projects /dev/sdb1
mkfs.ext4 -L Projects /dev/sdb1
Dacă nu se specifică tipul de sistem de fișiere pentru makefs, se creează un sistem de fișiere ext2
Pentru a afișa tipul de sistem de fișiere, se foloseste comanda blkid:
blkid /dev/sdb1
/dev/sdb1: UUID="ad8113d7-b279-4da8-b6e4-cfba045f66ff" TYPE="ext4" LABEL="Projects"
Comanda blkid afișeaza, de asemenea, informații despre dispozitiv, cum ar fi UUID și eticheta acestuia.
Fiecare tip de sistem de fișiere suportă un număr de caracteristici pe care le puteți activa sau dezactiva prin specificarea opțiuni suplimentare pentru mkfs sau utilitarul construit. De exemplu, puteți utiliza opțiunea -J pentru a specifica dimensiunea și locația jurnalului utilizat de tipurile de sistem de fișiere ext3 și ext4 .
2.9.1 Montarea sistemelor de fișiere
Pentru a accesa conținutul unui sistem de fișiere, trebuie să atașați dispozitivul de bloc la un punct de montare în ierarhia de directoare. Se poate utiliza comanda mkdir pentru a crea un director pentru utilizare ca un punct de montare, de exemplu:
mkdir /var/projects
Se poate folosi un director existent ca un punct de montare, dar conținutul său este ascuns până când demontati sistemul de fișiere de deasupra.
Comanda mount acordă dispozitivului ce conține sistemul de fișiere pentru punctul de montare:
mount [options] device mount_point
Se poate specifica dispozitivul dupa numele acestuia, UUID, sau eticheta. De exemplu, următoarele comenzi sunt modalități echivalente de montare a sistemului de fișiere de pe dispozitivul bloc / dev / sdb1:
mount /dev/sdb1 /var/projects
mountUUID="ad8113d7-b279-4da8-b6e4-cfba045f66ff" /var/projects
mount LABEL="Projects" /var/projects
Dacă nu se specifică nici un argument, mount afișează toate sistemele de fișiere pe care sistemul în prezent a montat, de exemplu:
mount
/dev/mapper/vg_host01-lv_root on / type ext4 (rw)
…
În acest exemplu, volumul logic LVM / dev / mapperul / vg_host01-lv_root este montat pe /. Tipul de sistem de fișiere este ext4 și este montat atât pentru citire și scriere. (Puteți folosi, de asemenea, comanda cat / proc / mounts pentru a afișa informații despre sistemele de fișiere montate.)
Comanda df afișează informații despre cât de mult spațiu rămâne pe sisteme de fișiere montate, de exemplu:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_host01-lv_root 36G 12G 22G 36% /
…
Se poate utiliza opțiunea -B (bind) la comanda mount pentru a atașa un dispozitiv bloc la mai multe puncte de montare.
Remontand o parte dintr-o ierarhie director, care nu trebuie să fie un sistem de fișiere complet. De exemplu, în urma comenzii mounts / var / proiecte / Project1 în / mnt:
mount -B /var/projects/project1 /mnt
Fiecare ierarhie de directoare acționează ca o oglindă a celeilalte. Aceleași fișiere sunt accesibile în orice locație, deși orice submounts nu sunt replicate. Aceste oglinzi nu oferă redundanță a datelor.
Se poate monta, de asemenea, un fișier pe un alt dosar, de exemplu:
touch /mnt/foo
mount -B /etc/hosts /mnt/foo
În acest exemplu, / etc / hosts și / mnt / foo reprezintă același fișier. Fișierul existent care acționează ca un punct de montare nu este accesibil până când demontați fișierul de deasupra.
Opțiunea -B nu acordă recursiv orice submounts de mai jos o ierarhie director. Pentru a include submounts în oglindă, utilizați opțiunea -R (bind recursiv) în loc.
Când se utilizeaza -B sau -R, sistemul de fișiere mount rămân aceleași opțiuni ca și cele pentru punctul original de montare. Pentru a modifica, opțiunile de montare, utilizați o comandă remount separat, de exemplu:
mount -o remount,ro /mnt/foo
Se poate marca submounts mai jos ca un punct de montare fiind comun, privat, sau slave. Atunci când se foloseste comanda
mount –make-shared
orice montari sau demontari sub punctul de montare specificat propaga la orice oglinzi pe care le creați, iar acest ierarhie de montare reflectă montari sau
demontari modificările pe care le fac la alte oglinzi.
Pentru comanda
mount –make-private
orice montari sau demontari sub punctul de montare specificat nu propaga la alte oglinzi, nici acesta ierarhie de montare reflecta montari sau demontari modificările pe care le fac la alte oglinzi.
Iar comanda
mount –make-slave
orice montari sau demontari sub punctul specificat de montare nu se propagă la alte oglinzi, dar aceasta ierarhie de muntele nu reflecta montari sau demontari modificărilor pe care le fac la alte oglinzi.
Pentru a muta un sistem montat fișier, director ierarhie, sau un fișier între punctele de montare, utilizați opțiunea -M, de exemplu:
touch /mnt/foo
mount -M /mnt/foo /mnt/bar
Pentru a demonta un sistem de fișiere, utilizați comanda umount, de exemplu:
umount /var/projects
Capitolul 3 Hipervizorul KVM
KVM este un soft de virtualizare care ofera posibilitatea de a rula mai multe sisteme de operare oaspete, cu ajutorul extensiilor de virtualizare hardware. Acesta sustine o varietate de sisteme de operare oaspete, cum ar fi Linux, Windows, Solaris, si multe altele. KVM poate fi gestionat cu ajutorul liniei de comanda sau a uneltelor grafice disponibile. Virt-Manager (Virtual Machine Manager) este aplicatia cel mai des utilizata pentru instalarea, gestionarea masinii virtuale KVM, ea sustine crearea, editarea, pornirea si oprirea masinii virtuale pe baza de KVM, precum si migrarea la rece sau direct a masinii oaspete intre gazde.
QEMU(Quick Emulator) este un emulator user-space care poate emula o varietate larga de procesoare oaspete pe procesoare gazda cu performante decente. Folosind modulele de kernel al KVM ne permite apropierea de viteza sa nativa. KVM mai este gestionat si prin intermediul libvirt API si alte tool-uri ca cel de mai sus. Unele unelte libvirt folosite la instalarea acestuia includ: virsh, virtinstall si virt-clone.
3.1Etapele de instalare a KVM-ului
3.1.1Etapa de preconditii/verificare compatibilitate hardware
Asa cum am spus si mai devreme, KVM functioneaza numai daca are un suport de virtualizare hardware, fie Intel VT sau AMD-T. Pentru a afla daca procesorul are acest suport trebuie executata comanda egrep ‘(vmx|svm)’ /proc/cpuinfo, unde vmx denotă suportul instrucțiunilor de virtualizare specific procesoarelor Intel, iar svm specific procesoarelor AMD.
[root@kvm-2:~]# egrep '(vmx|svm)' /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2
Daca execuția comenzii are ca rezultat afișarea unei linii care conține cuvântul vmx sau svm atunci sistemul poate folosi hipervizorul KVM.
3.1.2 Instalare pachete obligatorii
Pentru instalarea hipervizorului KVM împreună cu dependințele sale se folosește comanda:
apt-get install ubuntu-virt-server python-vm-builder kvm-ipxe qemu-kvm virt-install
unde qemu-kvm este emulatorul QEMU, virtinst este pachetul care conține executabilul necesar creării masinii vituale, libvirt-bin asigura emulatorul libvirtd care gestioneaza masina virtuala si controleaza hipervizorul.
3.1.3 Asigurarea de spatiu pe disk
Atunci cand este creată o mașină virtuală care folosește ca support pentru discuri un fișier, fisierele imagine corespunzătoare sunt create in directorul implicit: /var/lib/libvirt/images, insa putem alege alt director. Indiferent de directorul ales, va trebui sa verificam daca avem loc liber in acea partitie si desigur sa existe imaginea in directorul creat. KVM suporta cateva tipuri de fișiere imagine pentru mașinile virtuale, care determina cat spatiu are fiecare disc folosit de masina virtuala. Mai jos este prezentat procesul de creare a unei masini virtuale pe suportul unui fișier cu format “raw”, care folosește o dimensiune exactă din spatiul discului pe care il specificam. De exemplu, daca se specifică ca masina virtuala să aiba un disc de 10 GB, atunci acesta va crea un fișier imagine de exact 10 GB pe discul sistemului gazdă, indiferent dacă mașina virtuală utilizeaza tot spatiul sau nu. În practică, cel mai indicat este sa alocam pe discul gazdei un spatiu adecvat pentru fiecare mașină virtuală astfel încât suma mașinilor virtuale să nu depășească capacitatea disponibilă. De exemplu, daca avem patru mașini virtuale de 20 GB fiecare, atunci trebuie sa ne asiguram ca avem un spatiu de 90 de GB.
3.1.4 Creare masina virtuala
Odata ce am instalat pachetele si uneltele necesare si am partitionat disk-ul, vom putea crea masinile virtuale (VM). Masinile virtuale pot fi create în linie de comanda cu ajutorul utilitarului virt-install. În acest caz, este nevoie să se specifice mai multe informații precum numărul de procesoare, capacitatea memoriei, discului, tipul de rețea, locatia in care sa fie instalata, versiunea sistemului de operare si altele. Conexiunea dintre mașina virtuală și retea se face printr-o punte (br0) pusă la dispoziție de sistemul gazdă. Configurarea punții necesită instalarea pe sistemul gazdă a pachetului bridge-utils.
apt-get install bridge-utils
Creăm în fișierul /etc/network/interfaces o conexiune de tip bridge. Au fost instroduse următoarele linii:
auto br0
iface br0 inet manual
bridge_ports em1
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
În cazul nostru, puntea folosește o singură interfață de rețea, numită em1, a sistemului gazdă.
[root@kvm-2:~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.ac162dbe7ad4 no em1
În cazul în care sistemul gazdă ar fi rulat o variantă de Centos, se crează un fișier de configurație pentru bridge: /etc/sysconfig/network-scripts/ifcfg-em1 în care se adaugă urmatoarele opțiuni:
DEVICE="br0"
BOOTPROTO depinde de noi, daca se dorește o configurație statica trebuie sa adaugam IP address, netmask, gateway si informatii DNS
BOOTPROTO="none"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
ONBOOT="yes"
TYPE="Bridge"
DELAY="0"
Se activează comutarea pachetelor între diferite interfețe de rețea prin introducerea liniei net.ipv4.ip_forward = 1 în fișierul /etc/sysctl.conf.
Dupa ce am configurat cele de mai sus recitim fisierul:
sysctl –p /etc/sysctl.conf
Daca totul este in regula restartam serviciul de rețea, astfel bridge-ul se va crea si va permite primirea de pachete IP:
systemctl restart network
Apoi va trebui dezactivat Firewall-ul :
systemctl stop firewalld
systemctl status libvirtd – verificare status emulator
systemctl start – pornire emulator
Tot în cazul unei distribuții Centos trebuie să se dea atenție mecanismului de securitate SELinux. Daca se utilizează SELinux in modul Enforcing, atunci trebuie luate in considerare unele lucruri. Cea mai comuna problema este aceea cand se foloseste un director non-standart pentru imaginile VM. Daca utilizati un director diferit de /var/lib/libvirt/images, atunci trebuie modificat contextul de securitate pentru acel director. De exemplu se foloseste in loc de ‘images’, ‘vm-images’
Creare director: mkdir /var/lib/libvirt/vm-images
Instalarea pachetelor necesare (semanage, selinux): yum –y install policycoreutils-python
Comanda de configurare a contextului de securitate: semanage fcontext –add –t virt_image_t ‘/vm-images(/.*)?’
Revenirea la setarile de securitate anterioare se poate face cu ajutorul comenzii: restorecon –R –v /vm-images
Verificare daca s-a schimbat contextul: ls –aZ /vm-images
Verificare securitate director: semanage fcontext –l | grep virt_image_t
Mai jos este exemplificat procesul de creare a unei mașini virtuale direct din linia de comandă:
virt-install –name=alpha –ram=1024 –vcpus=1 –cdrom=/tmp/CentOS-6.5-x86_64-minimal.iso –os-type=linux –os-variant=rhel6 –network bridge=br0 –graphics=spice –disk path=/var/lib/libvirt/images/alpha.dsk,size=4G
3.1.5 Crearea mașinilor virtuale în modul grafic
Pentru crearea mașinilor virtuale în modul grafic folosim virt-manager. Această aplicație poate rula pe un sistem client, nu neaparat pe server. Acesta este și cazul cel mai întâlnit din moment ce pe server de obicei nu rulează nicio interfață grafică. Va trebui sa dam un nume masinii virtuale, in aceeasi fereastra, va trebui sa alegeti sistemul de operare dorit a fi instalat. Aici alegem instalare imagine ISO sau CD-ROM.
Dacă alegem prima opțiune, imaginea sistemului de operare trebuie să se afle pe sistemul gazdă în directorul /var/lib/libvirt/images. De exemplu, pentru descărcarea unei imagini de Ubuntu Server 14.04.2 LTS, putem apela comanda:
[root@kvm-2:/var/lib/libvirt/images]# wget http://releases.ubun tu.com/14.04.2/ubuntu-14.04.2-server-amd64.iso
Dacă se alege opțiunea doi, cea a instalării din rețea, în fereastra următoare putem specifica locația unei imagini aflate în internet sau rețeaua locală. Aceasta poate fi accesată prin unul din protocoalele HTTP, FTP, NFS.
Se introduce locatia imaginii ISO si se alege tipul si versiunea sistemului de operare:
Configurare procesor si memorie ram pentru masina virtuala:
Trebuie mentionata cantitatea de stocare pe care dorim sa o alocam masinii virtuale, debifare “Allocate entire disk now”, aceasta optiune ne impiedica de alocarea intregului disk.
Aici este afisat rezumatul comenzilor alese mai sus. Faceti clic pe setarile avansate pentru a selecta bridge networking.
KVM-ul va incepe sa creeze o masina virtuala in functie de datele introduse. Managerul Virt va deschide o consola de instalare a sistemului de operare. Ecranul urmator reprezinsta ecranul de instalare de Ubuntu 14.04.2.
3.1.6 Gestionarea Masinii virtuale
Cu acest manager de masinii virtuale se fac urmatoarele operatii: oprire, resetare, clonare si migrare masina.
Gestionarea masinii virtuale este simpla datorita Virt-Manager-ului. Se face click pe icoana ‘bulp’ in consola masinii virtuale. Aici se adauga, sterge, modifica dispozitive.
Comenzi:
Afisare toate masinile virtuale care ruleaza:
virsh list –all
Afisare versiune VM:
virsh dominfo vm1
Afisare incarcare CPU/memorie:
virt-top
Afisare partitii ale masinilor virtuale:
virt-df vm1
Oprire masina virtuala:
virsh shutdown vm1
Pornire masina virtuala:
virsh start vm1
Acces la consola masini virtuale:
console=tty0 console=ttyS0,115200
Dupa ce boot-eaza masina virtuala folositi comanda de mai jos la Host:
virsh console vm1
Adaugarea unui echipament de stocare la masina virtuala:
virsh attach-disk vm1 /dev/sdb vdb –driver qemu –mode shareable
Eliminare echipament de la masina virutala:
virsh detach-disk vm1 vdb
GUI Tools:
virt-viewer
virt-manager
Instalare tool-uri:
yum install virt-manager virt-viewer
Afisare memorie curenta a masinii virtuale:
virsh dominfo vm1 | grep memory
Max memory: 1048576 kB
Used memory: 1048576 kB
Setare memorie dinamic 512 MB:
virsh setmem vm1 524288
Vizualizare setari memorie:
virsh dominfo vm1 | grep memory
Max memory: 1048576 kB
Used memory: 524288 kB
Oprire masina virtuala:
virsh shutdown vm1
Editare configuratii:
virsh edit vm1
Restartare masina virtuala:
virsh create /etc/libvirt/qemu/vm1.xml
Pentru a schimba numarul de procesoare al masina virtuale :
virsh shutdown vm1
virsh edit vm1
<vcpu>2</vcpu>
virsh create /etc/libvirt/qemu/vm1.xml
3.1.7 Stergere Masinii Virtuale
Pentru a sterge o masina virtuala atunci cand nu mai este necesara trebuie respectati urmatorii pasi:
1. Prima data, inchiderea masini virtuale:
virsh shutdown vm1-clone
Daca masina virtuala nu raspunde sau nu este acesibila:
virsh destroy vm1-clone
2. Se scoate definitia configuratiei masini virtuale:
virsh undefine vm1-clone
3. Se sterge fisierul ce contine imaginea masini virtuale:
rm /vm-images/vm1-clone.img
CAPITOLUL 4 Evaluarea performantei si functionalitatii masinilor virtuale
Sistemul de calcul folosit in evaluari a fost un server HP Proliant DL180G6, doua soket-uri, fiecare cu sase core-uri, HT activ, rezultand un total de douzeci si patru de core-uri logice, 192 GB memorie RAM DDR3 1333 MHz ECC, 19 HDD-uri in configuratie RAID 10.
Sistemul ruleaza Ubuntu 14.04.2 LTS. Pentru virtualizare s-a folosit un hipervisor KVM versiunea 2.0.
4.1 Suita de teste Phoronix
Suita de teste Phoronix (PTS) [12] este o platformă de referință cu sursă deschisă care a fost folosita la compararea diverselor atribute ale sistemului. Din multitudinea de teste și profile disponibile cinci au fost alese pentru a măsura performanța si diverse atribute importante în mediu virtual. Aceste atribute sunt utilizarea procesorului, rata de acces la disc, rata de acces la memorie, și cât de bine hipervizorul este capabil să se ocupe de sarcini ridicate, distribuite pe mai multe masini virtuale care rulează simultan.
Cele cinci criterii de referință PTS care au fost selectate sunt:
Apache: măsoara cât de multe cereri pe secundă, un sistem dat poate
sustine atunci când efectuează 500.000 de cereri, cu 100 de cereri efectuate simultan;
John the Ripper: are ca reper numărul de calcule pe secundă de tip Blowfish;
OpenSSL: măsoara viteza reala, performanta de criptare și decriptare a 4096-biti;
Stream: are ca reper sistemul RAM, performanta acestuia de citire și scriere;
Unpack: masoara timpul necesar pentru a extrage conținutul unei arhive .tar.bz2.
4.2Instalarea suitei de teste Phoronix
Se face executand in linia de comanda a masini virtual comanda:
apt-get install phoronix-test-suite
Phornix vine cu peste 100 de teste gata facute, dar ca o avertizare, pentru fiecare test trebuiesc descărcarcate dependențele. Vestea proastă este că acest lucru poate încetini instalarea de teste și ar putea creea o potentiala cantitate mai mare de date la descărcarea și instalarea testelor.
Testarea recentă a arătat că instalarea suitei de teste CPU deja făcute poate ocupa peste 1,4 GB de fișiere suplimentare pe mașina dumneavoastra de testare.
Testele sunt:
-teste individuale care pot fi instalate și rulate individual;
-suite sau grupuri de teste, dar o suita ar putea fi formata din mici sub-suite.
De exemplu, se poate crea o suită numită "System_Testing" care ar fi alcătuita din mai multe mici sub-suite, cum ar fi "Processor_Tests", "Disk_Tests" și "RAM_Tests"
Phoronix oferă mai multe dintre aceste suite gata făcute și oferă, de asemenea, mijloace de a crea propriile suite.
Pentru a vizualiza lista de suite disponibile in prezent, se utilizeaza următoarea comandă:
phoronix-test-suite list-available-suites
care va arata informatiile recente despre suitele disponibile pe site-ul Phoronix. În plus, lista cu toate testele disponibile pot fi găsite folosind comanda:
phoronix-test-suite list-available-tests
Informtiile suplimentare cu privire la un test sunt listate prin comanda:
Phoronix-test-suite info <test>
Rularea Phoronix
Înainte de a putea rula suitele de teste Phoronix pe Ubuntu, va trebui să modificați scriptul install-ubuntu-packages.sh. Acest script este folosit de suitele de teste Phoronix pentru a instala pachetele de dependență de testare de la Ubuntu. Din păcate, există o problemă în scriptul, care îl împiedică să rulează correct in Dash. Pentru a corecta acest lucru, se editeaza fișierul /usr/share/phoronix-test-suite/pts-core/external-test-dependencies/scripts/install-ubuntu-packages.sh
if [ -x /usr/bin/aptitude ]; then
# aptitude is nice since it doesn't fail if a non-existant package is hit
# See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=503215
$ROOT – "aptitude -y install $*"
else
$ROOT – "apt-get -y –ignore-missing install $*"
fi
To this:
if [ -x /usr/bin/aptitude ]; then
# aptitude is nice since it doesn't fail if a non-existant package is hit
# See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=503215
$ROOT – aptitude -y install $*
else
$ROOT – apt-get -y –ignore-missing install $*
fi
După efectuarea acestei corecți, Phoronix ar trebui să poată instala dependențele de testare.
Cel mai simplu mod de a începe testarea este să se uite pur și simplu la lista de teste, alege unul, și rulat. Cel mai simplu mod de a face acest lucru este de a utiliza următoarea comanda:
phoronix-test-suite list-available-tests
Testul ales este lansat in executie folosind comanda:
phoronix-test-suite benchmark tiobench
La inceput ni se permite sa alegem urmatoari parametric de testare. In cazul de fata am ales operatia de scriere contingua pe disc a 32 MB de date folosind 4 fire de executie.
Disk Test Configuration
1: Write
2: Random Write
3: Read
4: Random Read
5: Test All Options
Test: 1
1: 32MB
2: 64MB
3: 128MB
4: 256MB
5: Test All Options
Size Per Thread: 1
1: 4
2: 8
3: 16
4: 32
5: Test All Options
Thread Count: 1
Apache
Apache este conceput pentru a testa performanta pe care o poate oferi un server. El face acest lucru prin sublinierea unui server dat pentru a determina cât de multe cereri pe secundă este în măsură să lucreze. Versiunea de referință este inclusa cu PTS care încearcă să execute 500.000 de solicitări, chiar si 100 de cereri simultan. Apoi măsoară cât de multe cereri pe secundă este capabil să susțină sistemul.Acest reper a fost ales, deoarece oferă o idee buna cum hipervisorul este capabil să ocupe creșterea sitemul de operare în termeni de CPU și memorie utilizata de numărul de mașini virtuale crește.
John the Ripper
Testul John the Ripper este folosit pentru a testa modul în care diferiti hipervisorii pot efectua intesiv operatii de calcul. In acest test particular PTS numărul de calcule Blowfish pe secundă este măsurat. De fiecare dată când testul John the Ripper este executat PTS va rula de trei ori și apoi media acestor valori este folosita pentru a obține rezultatul final. Rezultatul PTS al unei mașini virtuale este apoi comaprat cu alte masinii virtual active.
Unpack
Testul Unpack din PTS măsoară timpul necesar pentru a extrage un kernel Linux de la o arhivă tar.bz2. Performanța acestui etalon este data în principal da viteza de scriere / citire a discului, dar procesorul este de asemenea un factor important pentru a decomprima arhiva bz2.
Ceea ce nu era de așteptat a fost că KVM fără VirtIO a avut rezultate ceva mai bine decât KVM cu drivere VirtIO. Deoarece driverele VirtIO oferă masini virtuale o metodă mai paravirtualizata de accesare a blocului (disc) și dispozitivele de rețea ar fi de așteptat să funcționeze mai bine, atunci, fără asistență din partea VirtIO. Există câteva explicati ale acestui comportament. Una este cum VirtIO face discul cache. Exista mai multe moduri de disc cache în KVM (off, scrie prin, și scrie înapoi) fiecare care ruleaza în mod diferit în diferite condiții.
Stream
Stream în PTS este construit dintr-un program care a fost conceput pentru a masura latimea de banda de memorie durabilă, mai degrabă decât de a masura performanțele unei mașini. Testul Stream are patru moduri de operare: copiere, scara, suma, triada. In acest test, numai modul de copiere a fost folosit pentru ca celelalte trei teste se bazează mai mult pe CPU pentru a face unele calcule datele fiind date înainte de a scrie intr-o memorie. Acest lucru este in contrast cu copierea care masoara rata de transfer fara a face niciun calcul arithmetic ea pentru a transfera o gama larga de la o locatie la alta.
OpenSSL
OpenSSL este un alt punct de referință în calculul PTS. Acest test special folosește o sursă libera OpenSSL Toolkit pentru a măsura performanța de semnare și verificare folosind 4096bit in Operațiuni RSA.
Tiobench
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Consolidarea Serverelor din Centrele de Date Prin Virtualizarea cu K.v.m (ID: 162183)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
