pyth0n3 Posted February 23, 2012 Report Posted February 23, 2012 (edited) In acest articol voi discuta despre volume management in sistemele solaris.In articolul Structura fizica/logica disk-uri (system level) am explicat ce inseamna o partitie slice iar acum voi explica cum poate fi creat un volum raid 0 , si cum poate fi creat un volum raid 1 pentru mirroring.Pentru stocarea datelor este foarte important crerea unui ambient de mirroring. Voi da si o definitie simpla de baza pentrua intelege termenul hot spare pool.Structurele pot fi diverse ,deci asta depinde de procedurile pe care un corporate le impune pentru structura unuilogical volume.Spre exemplu ar putea exista o simpla metoda de rsync intre 2 box-uri de storage la un anumit interval programat sau chiar crearea unuivolum de mirroring care va face rsync in timp real , in mod paralel sau inmod serial.Am spus ca un simplu hard disk poate fi impartit in 10 slice dela 0 la 9 si ca 3 din ele nu pot fi modificate.Ei bine pentru crearea unuivolum raid se pot folosi aceste partitii chemate slice.Structura unui slice poate fi reprezentata in felul urmator:--------- ---------- - - -- - - -- - - --slice1 - -slice4 -- - - -- - - -- - - ---------- --------- c1d0s1 c1d1s4##########################c1 -> controllerd0 -> primul disk (deoarece numaratoarea pleaca de la 0)s1 -> primul slice##################################################c1 -> controllerd1 -> al doilea disk (deoarece numaratoarea pleaca de la 0)s4 -> al patrulea slice########################Note:Folosind format se poate aloca spatiu fiecarui slice "format - disk partitioning and maintenance utility"Preuspun ca userii sunt deja obijnuiti cu sigla RTFM asadar man formatar putea fi de ajutor.Oricum acest utility este interactiv , se alege discul, se alege partitiase va aloca spatiul pentru slice si se salveaza asadar fiecare slice poatefi folosita prin path-ul absolut care este: /dev/dsk/c1d0s1 si /dev/dsk/c1d1s4.Fiecarui slice va fi alocat spatiu , deci presupunem ca :/dev/dsk/c1d0s1 = 5 GB /dev/dsk/c1d1s4 = 5 GBNote: Este important ca spatiul sa fie acelasi atunci cand se va face mirroringIn exemplu am folosit spatii mici soar pentru a intelege structura.Vom presupune ca primul disk vine folosit pentru stocarea datelor DB si ilvom chema master iar al doilea il vom numi slave, acesta va tine o copie de backup a datelor din primul disk.In acelasi timp in cazul in care unul din disk-uri se va strica va exista intotdeauna o copie a datelor iar in momentul in care disck-ul va fi schimbat cu alt disck acesta va face o copie a disk-ului care detine datele .Se pot crea mai multe disk-uri pt mirroring deci nu e neaparat nevoie sa fie limitat la 2.In acest articol ma limit sa explic care ar fi idea unui mirroring deacea folosesc 2 disck-uri dar intruncorporate se vor folosi cum am mai spus diverse box-uri de storage cu spatiufoarte mare, (spre exemplu unitati de masura de tipul petabyte).Puteti sa vapierdeti cand faceti un volume discover de aceea presupun ca va lucra un grup de persoane si nu numai una singura (ar fi imposibil).Inainte de a crea un volum in solaris trebuie cunoscute cateva chestii.Avand in vedere faptul ca pot fi create mii de volume sistemul va trebui sa tina cont de fiecare volum in parte.Ei bine acest lucru se poate face prin crearea unui database.Nu este un database normal precum credeti dar are aceeasi structura pentru stocarea datelor.Este esential crearea unui database inainte de a crea un volum, deoarece sistemul nu va permite crearea volumului in cazul in care nu va gasi acest tip de database prezent in sistem. Acest database vine definit in urmatorul fel : "State Database Replicas".Avand in vedere faptul ca acest database vine creat intro partitie a unuidisk este necesar sa fie create cat mai multe copii posibil tinand contca un disk poate fi corup iar daca vine corupt si acest database sistemulde logical volume vine corupt, acest lucru comporta pierderea datelor.Sistemul este in grad sa controleze si sa modifice un database in momentulin care vine corupt folosind un (majority consensus algorithm)Sistemul va rula daca cel putin jumatate din replici sunt disponibile (nu sunt corupte)Sistemul va intra in panica daca mai mult de jumatate din replici disponibile sunt corupte.Pentru a avea un echilibru este important ca sa fie create db-uri (replici)in toate disck-urile sau in majoritatea.O replica ocupa 4 Mbytes (8192 sectoare.)In urmatorul exemplu eu am creat cate doua db-uri pe fiecare disk.E important saexiste pe disk-uri diverse si nu toate in acelasi loc.Pentru a crea 2 db-uri pe fiecare partitie pe care le-am ales se poate face urmatoarea sintaxa:metadb -a -f -c 2 c1d0s1 metadb -a -f -c 2 c1d1s3 Urmatoarea sintaxa va arata daca totul a avut success a m pc luo 16 8192 /dev/dsk/c1d0s1 a pc luo 8208 8192 /dev/dsk/c1d0s1 a pc luo 16 8192 /dev/dsk/c1d1s4 a pc luo 8208 8192 /dev/dsk/c1d1s4Note: Nu ezitati sa faceti si man metadb O data create aceste replici se poat crea volumele , In primul rand vom crea cate un volum raid 0 pe fiecare partitie in parte:/usr/sbin/metainit d0 1 1 c1d0s1 /usr/sbin/metainit d1 1 1 c1d1s4Vom avea doua volume raid 0 d0 si d1ls /dev/md/dskd0 d1 Pentru a crea un mirror d2 raid1 cu d0 master si d1 slave /usr/sbin/metainit d2 -m d0 /usr/sbin/metattach d2 d1ls /dev/md/dskd0 d1 d2Pentru a crea un filesystem UFS in acest volum se poatefolosi urmatoareasintaxa : /usr/sbin/newfs /dev/md/rdsk/d2 Acest volum poate fi montat sub orice director.mount /dev/md/rdsk/d2 /mountpointNote.Veti observa ca filesystem-ul are doar jumatate din dimensiunea partitiilor care le-ati folosit disponibila, cealalta jumatate vine folosita pentru mirror. ################################# # ........... ............ # # . d0 . . d1 . # # .---------. . ---------. # # .- -. . - -. # # .- -. . - -. #________________________________________________ # .- -. . - -. # # .-slice1 -. . -slice4 -. # # .- -. . - -. # # .- -. . - -. # # .- -. . - -. # # .---------. . ---------. # # . c1d0s1 . . c1d1s4 . # # ........... ............ # # d2 # # # #################################Datele vor fi scrise in mod egal in ambele partitiiIn teorie vor fi scrise pe primul disk si sincronizate in timp real pe aldoilea.Am spus ca voi explica ce inseamna un hot spare pool:Un hot spare pool poate fi un disk unde vine creat un volum logic.Acest volum vine atasat la un volum de mirroring si va face in asa fel incat in momentul in care unul din disk-urile prezente in volum vine corupt il va inlocui in mod automat si iar datele vor face rsync in automat cu noul volum atasat.Bineinteles citind acest articol nu veti ajunge la un stadiu de expertidar veti intelege structura de baza care va va ajuta sa creati volumedestul de complexe.Pe parcurs voi mai reveni cu articole de acest gen si chiar diverse pentru a ilustra diverse situatii care pot fi intalnite chiar si cu filesystem-uri diverse.wget http://sprunge.us/CJBb -O lvm_raid_solaris.txt Edited February 23, 2012 by pyth0n3 Quote