Jump to content

Search the Community

Showing results for tags 'zpool'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Informatii generale
    • Anunturi importante
    • Bine ai venit
    • Proiecte RST
  • Sectiunea tehnica
    • Exploituri
    • Challenges (CTF)
    • Bug Bounty
    • Programare
    • Securitate web
    • Reverse engineering & exploit development
    • Mobile security
    • Sisteme de operare si discutii hardware
    • Electronica
    • Wireless Pentesting
    • Black SEO & monetizare
  • Tutoriale
    • Tutoriale in romana
    • Tutoriale in engleza
    • Tutoriale video
  • Programe
    • Programe hacking
    • Programe securitate
    • Programe utile
    • Free stuff
  • Discutii generale
    • RST Market
    • Off-topic
    • Discutii incepatori
    • Stiri securitate
    • Linkuri
    • Cosul de gunoi
  • Club Test's Topics
  • Clubul saraciei absolute's Topics
  • Chernobyl Hackers's Topics
  • Programming & Fun's Jokes / Funny pictures (programming related!)
  • Programming & Fun's Programming
  • Programming & Fun's Programming challenges
  • Bani pă net's Topics
  • Cumparaturi online's Topics
  • Web Development's Forum
  • 3D Print's Topics

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Yahoo


Jabber


Skype


Location


Interests


Biography


Location


Interests


Occupation

Found 1 result

  1. Download white paper : wget http://sprunge.us/JgZi -O zfs_by_example.txt In acest articol voi discuta despre ZFS (Zettabyte File System). Zettabyte este o unitate de masura si poate fi reprezentata in urmatorul fel: 1 Zettabyte = 1,180,591,620,717,411,303,424 (270) bytes, 1,024 Exabytes, 983,826,350,597,842,752 pages of plaintext (1,200 characters) 4,919,131,752,989,213 books (200 pages or 240,000 characters) 375,299,968,947,541 digital pictures (with 3MB average file size) 281,474,976,710,656 MP3 audio files (with 4MB average file size) 1,732,153,702,834 650MB CD’s 251,030,052,003 4.38GB DVD’s 43,980,465,111 25GB Blu-ray discs ZFS este un filesystem open source care a fost svilupat de catre Sun MicrosystemVine distribuit sub licenta Common Development and Distribution License, si exista un porting pt Linux.Pentru cei interesati (ZFS on Linux).Un feature esential a acestui filesystem ar fi "data integrity".Poate preveni ca datele sa fie corupte, voi face si o minima demonstratie in unul din exemple unde voi incerca sa corup o parte din date.Acepta fisiere de dimensiuni destul de mari (16 exabytes) si o limita de 256 zettabytes pentru dimensiunea total? a sistemului de fi?iere. Inainte de a crea cateva exemple voi ilustra diferenta intre modul in care vin contruite diverse sisteme de fisiere si zfs. Sistemul de fisiere zfs vine construit intrun recipient chemat zpool .Un zpool vine construit din dispozitive virtuale care in acelasi rand sunt construite din dispozitive de block ,acestea pot fi partitii de hard disk sau drive-uri intregi. Un sistem de fisiere de obicei poate fi creat intrun dispozitiv unic (hard disk) si necesita un volume manager pentru a utiliza mai mult de un dispozitiv.Un exemplu poate ilustra acest lucru: -------------------------- -------------------------- - - - - - filesystem1 - - filesystem2 - - - - - -------------------------- -------------------------- - - - - ____________-____________ ____________-____________ _ _ _ _ _ logical volume1 _ _ logical volume2 _ _ _ _ _ _________________________ _________________________ | | ######### | ######### ######### | ######### # # # # # # # # # disk # # disk # # disk # # disk # # # # # # # # # ######### ######### ######### ######### Deobicei in majoritatea cazurilor unde vine folosit un volume manager aceasta este structura pe baza careia vine creat un sistem de fisiere In schimb zfs contruieste sistemul de fisiere intrun singur recipient chemat zpool , in acelasi timp sistemele de fisiere pot fi structurate intro ierarhie.Exemplu zpool: ------------- - - -filesystem - - 6 - ------------- - - ------------- ------------- - - - - -filesystem - -filesystem - - 4 - - 5 - ------------- ------------- - - - - ------------- ------------- ------------- - - - - - - -filesystem - -filesystem - -filesystem - - 1 - - 2 - - 3 - ------------- ------------- ------------- - - - ____________-_______________-_______________-____________ _ _ _ ZPOOL _ _ _ _________________________________________________________ | | | | | | ######### ######### ######### ######### # # # # # # # # # disk1 # # disk2 # # disk3 # # diskX # # # # # # # # # ######### ######### ######### ######### Diferenta dintre voume manager este ca in zfs se poate crea un singur zpool in care pot fi atasate toate partitiile sau drive-uri intregi si sistemele de fisiere pot avea o ierarhie .Un sistem de fisiere poate avea in internul lui alte sisteme de fisiere. Spatiul acestor sisteme de fisiere poate fi delimitat , fiecare poate avea o anumita cota (dimensiune), vom vedea pe parcurs cum pot fi alocate aceste dimensiuni. Exemplele urmatoare sunt facute intrun sistem Unix SunOS 5.10 in exemple voi folosi 2 partitii separate (slice) , aceeasi sintaxa ramane valabila pentru drive-uri separate Voi crea un zpool care va gazdui diverse sisteme de fisiere folosind doua slice, evindent pe parcurs se poat adauga alte partitii sau discuri in mod dinamic Sistemele de fisiere create nu necesita unmount, si nu trebuie creata nici un fel de directiva in /etc/vfstab , o data creat fiecare sistem de fisiere va fi montat in mod automat iar in momentul in care se vor adauga discuri noi , spatiul va fi modificat in mod dinamic. Pentru test voi folosi urmatoarele (slice): c1d1s3 -> 1GB c1d1s4 -> 1GB Voi folosi 2 servere separate Hostname pyth0n3 Debian 6 -> pentru a testa integritatea datelor Hostname eclipse Solaris 10 -> pentru a crea un zfs Sintaxa pentru a crea un zpool este urmatoarea zpool nume_pool disk1 disk2 diskX Se poate crea spre exemplu un zpool mirror cu urmatoarea sintaxa zpool nume_pool mirror disk1 disk2 mirror disk3 disk4 Spre exemplu un zpool mirror creat din doua disck-uri de 2GB va avea 1GB de spatiu deoarece unul din disk-uri va fi folosit pentru mirroring. Se poate crea spre exemplu un zpool folosind un singur disk sau o singura partitie a unui disk.Exemplu: zpool create eclipse_pool c1d1s3 O data ce aceasta sintaxa a fost rulata s-au intamplat urmatoarele: A fost creat un zpool eclipse_zpool, si a fost montat in mod automat ,mount sau df poate demonstra acest lucru [eclipse]# mount ........ ........ /eclipse_pool on eclipse_pool read/write/setuid/devices/nonbmand/exec/xattr/atime/dev=2d5000e on Thu Mar 8 06:58:32 2012 [eclipse]#[eclipse]# df -h eclipse_pool Filesystem size used avail capacity Mounted on eclipse_pool 984M 21K 984M 1% /eclipse_pool [eclipse]# Un zpool vine montat in mod automat dupa ce a fost construit si poate fi direct folosit ca sistem de fisiere ,acest lucru permite in mod automat stocarea oricarui tip de fisier in /eclipse_pool. [eclipse]# zpool status -v eclipse_pool pool: eclipse_pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM eclipse_pool ONLINE 0 0 0 c1d1s3 ONLINE 0 0 0 errors: No known data errors [eclipse]# zpool status arata daca acest sistem de fisiere nu prezinta errori, numarul disk-urilor sau a prtitiilor care fac parte si daca este pregatit pentru a putea fi folosit .Un status online va demonstra ca sistemul de fisiere este deja pus la dispozitie si poate fi folosit.Un alt tip de optiune care poate aduce informatii in legatura cu un pool care a fost creat este zpool list [eclipse]# zpool list NAME SIZE ALLOC FREE CAP HEALTH ALTROOT eclipse_pool 1016M 76.5K 1016M 0% ONLINE - [eclipse]# Pentru a extinde spatiul e destul de simplu, pot fi atasate alte discuri sau partitii iar spatiul va fi extins in mod dinamic. zpool add eclipse_pool c1d1s4 eclipse_pool a fost extins in mod automat iar un zpool list sau df poate demonstra acest lucru [eclipse]# zpool list NAME SIZE ALLOC FREE CAP HEALTH ALTROOT eclipse_pool 1.98G 134K 1.98G 0% ONLINE - [eclipse]# [eclipse]# df -h eclipse_pool Filesystem size used avail capacity Mounted on eclipse_pool 2.0G 21K 2.0G 1% /eclipse_pool [eclipse]# A fost atasat un alt slice de 1Gb , momentan sistemul de fisiere are 2 GB de spatiu.zpool status va demonstra faptul ca a fost atasat un alt dispozitiv [eclipse]# zpool status -v eclipse_pool pool: eclipse_pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM eclipse_pool ONLINE 0 0 0 c1d1s3 ONLINE 0 0 0 c1d1s4 ONLINE 0 0 0 errors: No known data errors [eclipse]# In acest mod pot fi atasate diverse alte dispozitive marind sistemul de fisiere in mod dinamic. Un pool poate fi distrus intrun mod foarte simplu si rapid de aceea sintaxele comenzilor ar trebui rulate cu multa atentie. Pentru a distruge tot ce a fost contruit pana in prezent se poate folosi urmatoarea sintaxa. zpool destroy eclipse_pool Un zpool list va demonstra faptul ca nu exista [eclipse]# zpool list no pools available [eclipse]# In exemplele urmatoare voi crea un pool mirror , necesita un minim de doua dispozitive. Voi folosi aceleasi slice care au fost folosite in exemplele precedente c1d1s3 -> 1GB c1d1s4 -> 1GB Pentru a crea un mirror din 2 dispozitive se poate folosi urmatoarea sintaxa: zpool create eclipse_mirrorpool mirror c1d1s3 c1d1s4 Ca si in exemplu precedent acesta pool va fi montat in mod automat [eclipse]# zpool status -v eclipse_mirrorpool pool: eclipse_mirrorpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM eclipse_mirrorpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1d1s3 ONLINE 0 0 0 c1d1s4 ONLINE 0 0 0 errors: No known data errors [eclipse]# In schimb acest pool nu va mai avea 2Gb ci jumatate din spatiul alocat deoarece cealalta jumatate va fi folosita pentru mirroring Filesystem size used avail capacity Mounted on eclipse_mirrorpool 984M 21K 984M 1% /eclipse_mirrorpool [eclipse]# Cum am precizat dimensiunea este 984M aproximativ un GB , jumatate din spatiul celor doua slice alocate. Acest sistem de fisiere poate fi populat cu date , iar in urmatoarele exemple voi incerca sa corup unul din dispozitivele atasate pentru a distruge datele. [eclipse]# pwd /eclipse_mirrorpool [eclipse]# mkfile 30M sensitive_data.txt [eclipse]# df -h . Filesystem size used avail capacity Mounted on eclipse_mirrorpool 984M 16M 968M 2% /eclipse_mirrorpool [eclipse]# ls -ltrh total 57875 -rw------T 1 root root 30M Mar 8 08:14 sensitive_data.txt [eclipse]# Voi copia acest file pe un alt sistem extern pentru a crea un test de integritate [pyth0n3@mc]$ uname -a Linux mc 2.6.32-5-686 #1 SMP Wed Jan 11 12:29:30 UTC 2012 i686 GNU/Linux [pyth0n3@mc]$ scp eclipse:/eclipse_mirrorpool/sensitive_data.txt sensitive_da> sensitive_data.txt 100% 30MB 1.8MB/s 00:17 [pyth0n3@mc]$ /usr/bin/shasum -a 256 sensitive_data.txt > sha256.data.sum [pyth0n3@mc]$ cat sha256 75c91b29d5522c8a97c779e50bc33f11e07ed37b2baa31c8c727016e92915c1d sensitive_data.txt [pyth0n3@mc]$ date Thu Mar 8 08:25:05 CET 2012 [pyth0n3@mc]$ [pyth0n3@mc]$ O metoda simpla pentru a distruge dispozitive este dd [eclipse]# date Thu Mar 8 08:25:58 CET 2012 [eclipse]# dd if=/dev/urandom of=/dev/dsk/c1d1s3 bs=512 count=1024 1024+0 records in 1024+0 records out [eclipse]# [eclipse]# zpool status -v eclipse_mirrorpool pool: eclipse_mirrorpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM eclipse_mirrorpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1d1s3 ONLINE 0 0 0 c1d1s4 ONLINE 0 0 0 errors: No known data errors [eclipse]# Chiar daca dispozitivul c1d1s3 a fost distrus , zpool status nu arata nici un fel de problema . [pyth0n3@mc]$ date Thu Mar 8 08:27:25 CET 2012 [pyth0n3@mc]$ scp eclipse:/eclipse_mirrorpool/sensitive_data.txt sensitive_da> sensitive_data.txt 100% 30MB 2.3MB/s 00:13 [pyth0n3@mc]$ /usr/bin/shasum -c sha256.data.sum sensitive_data.txt: OK [pyth0n3@mc]$ O copie a aceluiasi fisier nu prezinta nici un fel de probleme,testul de integritate arata ca fisierul nu a fost corupt La inceputul acestui articol am spus ca in zfs sistemele de fisiere pot fi create intro ierarhie Momentan am creat un pool eclipse_mirrorpool care poate gazdui alte sisteme de fisiere Pentru a crea un alt filesystem in eclipse_mirrorpool spre exemplu un filesystem chemat home se poate folosi urmatoaree sintaxa zfs create eclipse_mirrorpool/home Presupunem ca in /home vrem sa facem un alt sistm de fisiere chemat /testing zfs create eclipse_mirrorpool/home/testing In momentul in care comenizile vin rulate cu success nu prezinta un output, iar pentru a controla ceea ce a fost creat folosind sintaxele precedente se poate folosi zfs list [eclipse]# zfs list NAME USED AVAIL REFER MOUNTPOINT eclipse_mirrorpool 30.2M 954M 30.0M /eclipse_mirrorpool eclipse_mirrorpool/home 42K 954M 21K /eclipse_mirrorpool/home eclipse_mirrorpool/home/testing 21K 954M 21K /eclipse_mirrorpool/home/testing [eclipse]# Note: Un lucru important de observat este faptul ca toate sistemele de fisiere create au acelasi spatiu disponibil si anume 954M.Asta ar insemna ca fiecare poate folosi acest spatiu dar in momentul in care unul din ele va umple acest spatiu celelalte nu il vor putea folosi.Presupunem ca sistemul de fisiere testing ar trebui sa foloseasca doar 50Mb din spatiul tolal iar sistemul de fisiere home va trebui sa foloseasca doar 200Mb.Ei bine aceasta limita poate fi imposa de catre o cota. Un lucru important de observat este faptul ca toate sistemele de fisiere create au acelasi spatiu disponibil si anume 954M.Asta ar insemna ca fiecare poate folosi acest spatiu dar in momentul in care unul din ele va umple acest spatiu celelalte nu il vor putea folosi.Presupunem ca sistemul de fisiere testing ar trebui sa foloseasca doar 50Mb din spatiul tolal iar sistemul de fisiere home va trebui sa foloseasca doar 200Mb.Ei bine aceasta limita poate fi imposa de catre o cota. Un lucru important de observat este faptul ca toate sistemele de fisiere create au acelasi spatiu disponibil si anume 954M.Asta ar insemna ca fiecare poate folosi acest spatiu dar in momentul in care unul din ele va umple acest spatiu celelalte nu il vor putea folosi.Presupunem ca sistemul de fisiere testing ar trebui sa foloseasca doar 50Mb din spatiul tolal iar sistemul de fisiere home va trebui sa foloseasca doar 200Mb.Ei bine aceasta limita poate fi imposa de catre o cota. Vom aloca doar 200 de Mb pentru home zfs set quota=200M eclipse_mirrorpool/home Vom aloca doar 50 de MB pentru testing zfs set quota=50M eclipse_mirrorpool/home/testing Pentru a observa ceea ce a fost setat pana acum in legatura cu limita sistemelor de fisiere se poate folosi urmatoarea sintaxa [eclipse]# zfs get -r quota eclipse_mirrorpool NAME PROPERTY VALUE SOURCE eclipse_mirrorpool quota none default eclipse_mirrorpool/home quota 200M local eclipse_mirrorpool/home/testing quota 50M local [eclipse]# zfs list NAME USED AVAIL REFER MOUNTPOINT eclipse_mirrorpool 30.2M 954M 30.0M /eclipse_mirrorpool eclipse_mirrorpool/home 43K 200M 22K /eclipse_mirrorpool/home eclipse_mirrorpool/home/testing 21K 50.0M 21K /eclipse_mirrorpool/home/testing [eclipse]# Acum fiecare filesystem poate fi folosit pana in momentul in care spatiul stabilit de catre quota se va umple. Note: Un alt lucru pe care zfs il permite este schimbarea numelui oricarui din sistemele de fisiere create [eclipse]# zfs rename eclipse_mirrorpool/home/testing eclipse_mirrorpool/home/testing2 [eclipse]# zfs list NAME USED AVAIL REFER MOUNTPOINT eclipse_mirrorpool 30.2M 954M 30.0M /eclipse_mirrorpool eclipse_mirrorpool/home 43K 200M 22K /eclipse_mirrorpool/home eclipse_mirrorpool/home/testing2 21K 50.0M 21K /eclipse_mirrorpool/home/testing2 [eclipse]# Se poate observa cum fiecare filesystem vine montat separat in mod automat de catre zfs , df sau mount poate demonstra acest lucru eclipse_mirrorpool 984M 30M 954M 4% /eclipse_mirrorpool eclipse_mirrorpool/home 200M 23K 200M 1% /eclipse_mirrorpool/home eclipse_mirrorpool/home/testing2 50M 21K 50M 1% /eclipse_mirrorpool/home/testing2 [eclipse]# mount ..... ..... /eclipse_mirrorpool on eclipse_mirrorpool read/write/setuid/devices/nonbmand/exec/xattr/atime/dev=2d5000f on Thu Mar 8 07:33:29 2012 /eclipse_mirrorpool/home on eclipse_mirrorpool/home read/write/setuid/devices/nonbmand/exec/xattr/atime/dev=2d50010 on Thu Mar 8 08:37:17 2012 /eclipse_mirrorpool/home/testing2 on eclipse_mirrorpool/home/testing2 read/write ..... ..... Un alt lucru important pe care zfs il are este posibilitatea de a crea un snapshot(o fotografie a unui sistem de fisiere la un anumit timp )sau un clone (un clone este de fapt un link simbolic catre un snapshot dar permite sa fie montat si se poate scrie in filesystem, in schimp un snaphot e readonly) Note: Daca spre exemplu sistemul de fisiere are 1Gb de spatiu si vine creat un fisier de 512Mb vor mai ramane liberi 512 Mb in acel filesystem (Acest lucru e logic).Daca in acest moment vine creat un snapshot n acest sistem de fisiere spatiul disponibil al filesystem-ului va fi tot 512Mb , nu vine preluat spatiu suplimentar.Dar in momentul in care fisierul care ocupa deja 512Mb va fi eliminat si va fi creat un alt fisier in aceeasi instanta de 700Mb , snapshot-ul va ocupa aceeasi 512Mb + 700Mb care au fost creati.Deci chiar daca fisierele au fost eliminate si au fost create alte fisiere snapshot-ul va exista si va ocupa acelasi spatiu.Bineinteles daca se va crea un fisier de 700Mb vor mai ramane liberi 300Mb chiar daca un snapshot ocupa deja 512Mb deoarece zfs face o copie inainte de orice operatie de scriere. Pentru a crea un snapshot a sistemului de fisiere creat in precedenta , spre exemplu testing2 se va folosi urmatoarea sintaxa zfs snapshot eclipse_mirrorpool/home/testing2@testingsnapshot1 Snapshot-ul se va gasi in sistemul de fisiere eclipse_mirrorpool/home/testing2 sun urmatorul path /eclipse_mirrorpool/home/testing2/.zfs/snapshot (fiecare snapshot va fi readonly) Note: Un ls -a nu va arata directorul .zfs Pentru a face un restore a unui snapshot se poate executa urmatoarea sintaxa: zfs rollback eclipse_mirrorpool/home/testing2@testingsnapshot1 Un snapshot poate fi clonat , cu permisii read/write si montat in oricare alt filesystem Exemplu , vom clona snapshot-ul creat eclipse_mirrorpool/home/testing2@testingsnapshot1 in eclipse_mirrorpool/home zfs clone eclipse_mirrorpool/home/testing2@testingsnapshot1 eclipse_mirrorpool/home/clone_testingsnapshot1 Folosind zfs list se pot vedea toate modificarile facute pana in prezen [eclipse]# zfs list NAME USED AVAIL REFER MOUNTPOINT eclipse_mirrorpool 60.3M 924M 30.0M /eclipse_mirrorpool eclipse_mirrorpool/home 30.1M 170M 24K /eclipse_mirrorpool/home eclipse_mirrorpool/home/clone_testingsnapshot1 0 170M 30.0M /eclipse_mirrorpool/home/clone_testingsnapshot1 eclipse_mirrorpool/home/testing2 30.0M 20.0M 21K /eclipse_mirrorpool/home/testing2 eclipse_mirrorpool/home/testing2@testingsnapshot1 30.0M - 30.0M - Note: Un snapshot nu poate fi eliminat atata timp cat un clone exista, pot fi eliminate dar impreuna zfs destroy -R -f eclipse_mirrorpool/home/testing2@testingsnapshot1 Aceasta sintaxa va distrude un snapshot impreuna cu un clone care ii apartine [eclipse]# zfs list NAME USED AVAIL REFER MOUNTPOINT eclipse_mirrorpool 30.2M 954M 30.0M /eclipse_mirrorpool eclipse_mirrorpool/home 44K 200M 23K /eclipse_mirrorpool/home eclipse_mirrorpool/home/testing2 21K 50.0M 21K /eclipse_mirrorpool/home/testing2 [eclipse]# Acest articul a ilustrat doar cateva aspecte ZFS , pentru a intelege mai bine cum funtioneaza acest sistem de fisiere sunteti rugati sa cititi manualul http://docs.oracle.com/cd/E19253-01/819-5461/index.html Daca aveti intrebari in legatura cu subiectul nu ezitati sa le faceti
×
×
  • Create New...