This is an old revision of the document!


Laborator 6. Sisteme de fișiere în rețea

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

  • Configurarea unui server și a unui client de NFS (Network File System)
  • Folosirea protocolului iSCSI pentru a exporta block-device-uri
  • Configurarea unui client iSCSI
  • Instalarea și configurarea unui sistem de fișiere distribuit (Ceph/GlusterFS)

Pregătire infrastructură de laborator

  • Pentru a pregăti configurația de laborator, pe mașina virtuală (stația saisp) folosiți comenzile următoare din contul utilizatorului root de pe stația saisp (puteți da copy/paste la comenzi în terminal):
    root@saisp:~# wget https://raw.github.com/RL-UPB/rl-lab-prepare/master/rl-lab-08-prepare
    root@saisp:~# chmod +x rl-lab-08-prepare
    root@saisp:~# ./rl-lab-08-prepare

    Comanda durează circa 20 de secunde. Lasați-o să ruleze complet.

Exerciții

Atentie! Inainte de a instala pachete, executati urmatorii pasi pe masinile virtuale:

00. [5p] Configurarea rezolvării numelor pentru servere

În cele mai multe configurații ale serverelor și clienților de stocare este necesară folosirea numelor (hostname) acestora pentru adresare și nu adresa IP. Această configurare poate fi făcută direct în serviciul de DNS, dar acest lucru are un dezavantaj: dacă serviciul de DNS are o problemă, sistemul de stocare nu va mai functiona. O practică des întâlnită este configurarea statică pe fiecare mașină de stocare a numelor celorlalte servere de stocare. Acest lucru se realizează în fișierul /etc/hosts.

Configurați pentru stațiile storage1, storage2 și storage3 posibilitatea de a se adresa una pe cealaltă folosind numele lor (Hint: man hosts).

01. [10p] Partajarea de fișiere folosind protocolul NFS

În general, în centrele de date, dezvoltarea puterii de calcul a fost realizată pe orizontală (scale-out), preferându-se achiziționarea mai multor sisteme cu putere de calcul medie decât super-calculatoare integrate. S-a pus problema ca datele stocate să fie accesibile din orice nod al rețelei. Un serviciu ce poate oferi această facilitate este NFS (Network File System). În arhitectura NFS există un server de stocare care va pune la dispoziție un subset al ierarhiei sale de directoare altor stații numite în continuare clienți.

Vom instala serverul de NFS pe stația storage1 (pe distribuții Debian-based pachetul poartă numele nfs-kernel-server:

root@storage1:~# apt-get install nfs-kernel-server

Vom crea un director /nfs cu un fișier test-nfs în acesta:

root@storage1:~# mkdir /nfs
root@storage1:~# echo test > /nfs/test-nfs

Toate directoarele exportate către clienți vor fi configurate în fișierul /etc/exports. Vom exporta directorul /nfs creat anterior:

root@storage1:~# cat /etc/exports |grep /nfs
/nfs    192.168.1.2(rw,sync,no_subtree_check)

Pe prima poziție se află directorul care va fi exportat (/nfs), pe a doua poziție se află adresa IP a clientului care va putea accesa acest director, iar în paranteză se află diferite atribute:

  • rw (read/write) - ierarhia de directoare va putea fi citită și scrisă
  • sync - toate datele scrise de către clienți vor ajunge la server în momentul apelului de sistem. Nu se va stoca informația în buffere. Acest lucru este necesar în momentul în care mai multe entități folosesc același director exportat pentru a asigura consistența
  • no_subtree_check - la accesarea oricărui fișier din sistemul de directoare nu se face nici o verificare asupra existenței acelei căi de acces. Acest lucru crește performanța serviciului NFS, dar poate cauza probleme în situații în care un client accesează un anume fișier, iar altul îl redenumește

După configurarea fișierului /etc/exports trebuie resetat serviciul NFS:

root@storage1:~# /etc/init.d/nfs-kernel-server restart

Pentru a testa funcționalitatea vom crea directorul /nfs pe stația storage2 și vom monta directorul exportat de storage1 (este necesar să aveți instalat pachetul nfs-common):

root@storage2:~# apt-get install nfs-common
nfs-common is already the newest version.
root@storage2:~# mkdir /nfs
root@storage2:~# mount -t nfs storage1:/nfs /nfs
root@storage2:~# ls -l /nfs/
total 4
-rw-r--r-- 1 root root 5 Mar 29 16:52 test-nfs

În general, este o bună practică să montăm directorul exportat în aceeași ierarhie și pe client, pentru ca sistemul de stocare să fie transparent utilizatorilor, indiferent de nodul folosit.

Încercați să creați un nou fișier sau să scrieți în fișierul existent:

root@storage2:~# touch /nfs/test-nfs2
touch: cannot touch/nfs/test-nfs2’: Permission denied

Implicit serverul de NFS nu permite modificarea ierarhiei de directoare exportate dacă aceasta aparține utilizatorului privilegiat root. Pentru a permite acest lucru trebuie adăugată opțiunea no_root_squash la exportarea directorului și resetarea serverului de NFS:

root@storage1:~# cat /etc/exports |grep squash
/nfs    192.168.1.2(rw,sync,no_subtree_check,no_root_squash)
root@storage1:~# /etc/init.d/nfs-kernel-server restart

Observați faptul că acum putem modifica ierarhia de directoare:

root@storage2:~# touch /nfs/test-nfs2
root@storage2:~# ls -l /nfs/
total 4
-rw-r--r-- 1 root root 5 Mar 29 16:52 test-nfs
-rw-r--r-- 1 root root 0 Mar 29 17:14 test-nfs2

Montați directorul /nfs și pe stația storage3. Nu uitați să adăugați adresa IP a acesteia în fișierul de configurare al serverului NFS și să îl resetați pe acesta (Hint: man exports; /IP networks).

02. [10p] Exportarea unei partitii folosind NFS

Stația storage3 are un disc /dev/sdb ce se dorește a fi partajat cu celelalte două stații, iar calea comună de acces pentru toate 3 stațiile va fi /nfs-storage3. Realizați configurațiile necesare pentru pentru a partaja discul /dev/sdb de pe storage3 urmând pașii:

  • creati o partitie pe discul /dev/sdb
  • formatați partitia creata cu un sistem de fișiere la alegere
  • montați partitia pe stația storage3 în directorul /nfs-storage3
  • exportați directorul /nfs-storage3 folosind prin serviciul de NFS
  • montați pe stațiile storage1 și storage2 directorul exportat de storage3 și creați câte un fișier de pe fiecare

03. [10p] Montarea automată a sistemului de fișiere NFS

Dorim ca montarea sistemul de fișiere NFS să fie realizată automat după un restart al mașinii virtuale. Acest lucru se poate realiza după același principiu al sistemelor de fișiere obișnuite, folosind fișierul /etc/fstab:

root@storage1:~# cat /etc/fstab|grep storage3
storage3:/nfs-storage3  /nfs-storage3   nfs     auto    0       0

Realizați configurația necesară pentru a monta automat sistemele de fișiere NFS pe stația storage2, exportate de stațiile storage1 și storage3.

04. [15p] Configurarea unei sesiuni iSCSI client-server

Într-un sistem de tipul Cluster/Grid, deseori este necesară accesarea unui block-device de distanță, iar operațiile suportate să fie aceleași ca și cazul în care respectivul block-device (disc) este conectat local, direct la placa de bază a stației respective. Acest lucru este posibil prin protocolul iSCSI care împachetează toate comenzile protocolului de comunicație cu discuri SCSI în pachete IP. Astfel este posibilă accesarea la distanță a oricărui disc, ba chiar partajarea acestuia între mai multe entități, nivelul de granularitate fiind blocul de date (nu mai există sistem de fișiere ca în cazul protocolului NFS).

În nomenclatura iSCSI, serverul ce pune la dispoziția clientului diferite block-device-uri poartă numele de target. Pe Linux, target-ul iSCSI implicit inclus în nucleu se numește Linux IO. Vom instala serverul de iSCSI pe stația storage1 (pachetul poartă numele de targetcli cu opțiunea –no-install-recommends pentru a nu instala pachete recomandate, întrucât dimensiunea acestora este foarte mare).:

Inainte de a instala targetcli, modificati, in /etc/apt/sources.list, toate aparitiile lui jessie in wheezy, apoi efectuati apt-get update.

root@storage1:~# apt-get install --no-install-recommends targetcli

targetcli este un command line interface creat pentru management-ul serverului de iSCSI (target) pe Linux. Target-ul LIO de pe Linux este capabil să exporte discuri ce au mediu de stocare discuri fizice sau fișiere. Vom deschide targetcli pe stația storage1:

root@storage1:~# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli GIT_VERSION (rtslib GIT_VERSION)
Copyright (c) 2011-2013 by Datera, Inc.
All rights reserved.
Loaded iscsi_target_mod kernel module.
[...]
/> ls
o- / ............................................... [...]
  o- backstores .................................... [...]
  | o- fileio ......................... [0 Storage Object]
  | o- iblock ......................... [0 Storage Object]
  | o- pscsi .......................... [0 Storage Object]
  | o- rd_dr .......................... [0 Storage Object]
  | o- rd_mcp ......................... [0 Storage Object]
  o- ib_srpt ................................. [0 Targets]
  o- iscsi ................................... [0 Targets]
  o- loopback ................................ [0 Targets]
  o- qla2xxx ................................. [0 Targets]
  o- tcm_fc .................................. [0 Targets]

Cu ajutorul comenzii ls vedem toate configurațiile de la un moment dat. Acestea sunt organizate ca o ierarhie de fișiere. Observați toate tipurile de backstores care pot fi exportate. Noi vom lucra cu tipul fileio (fișiere) și iblock (discuri fizice). Dorim să creăm un backstore de tipul fileio:

/> cd backstores
/backstores> cd fileio
/backstores/fileio> help create
SYNTAX
  create name file_or_dev [size] [generate_wwn] [buffered]

Observați că putem să explorăm ierarhia de configurații folosind comanda cd. Am folosit comanda help create pentru a vedea ce opțiuni avem pentru crearea unui backstore. Vom crea un backstore de dimensiunea 100M ce are ca suport fișierul /disk1.img:

/backstores/fileio> create disk1 /disk1.img 100MB
Generating a wwn serial.
Not using buffered mode.
Created fileio disk1.

Următorul pas va fi să creăm un IQN (iSCSI Qualified Name) pentru target-ul nostru în subierarhia de configurare iscsi:

/backstores/fileio> cd /iscsi
/iscsi> help create
SYNTAX
  create [wwn]
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.storage1.x8664:sn.25e09e86bb4d.
Selected TPG Tag 1.
Successfully created TPG 1.

În continuare vom dezactiva autentificarea asociată cu acest IQN. Vom folosi comanda cd urmată de valoarea IQN generată pentru a intra în modul de configurare ale acesteia (puteți folosi auto-complete):

/iscsi> cd iqn.2003-01.org.linux-iscsi.storage1.x8664:sn.25e09e86bb4d/
/iscsi/iqn.20....25e09e86bb4d> ls
o- iqn.2003-01.org.linux-iscsi.storage1.x8664:sn.25e09e86bb4d .......... [1 TPG]
  o- tpgt1 ........................................................... [enabled]
    o- acls ........................................................... [0 ACLs]
    o- luns ........................................................... [0 LUNs]
    o- portals ..................................................... [0 Portals]

Observați că trebuie să mergem pe intrarea tpgt1 (este un tag intern asociat IQN-ului). Aici vom configura parametrii de autentificare:

/iscsi/iqn.20....25e09e86bb4d> cd tpgt1/
/iscsi/iqn.20...e86bb4d/tpgt1> set parameter AuthMethod=None
Parameter AuthMethod is now 'None'.
/iscsi/iqn.20...e86bb4d/tpgt1> set attribute authentication=0
Parameter authentication is now '0'.

In cazul in care nu puteti configura AuthMethod, este suficient sa configurati doar authentication.

Observați alte 3 sub-categorii de configurații:

  • acls - filtrarea accesului
  • luns (Logical Unit Number) - dispozitiv logic adresat de client
  • portals - nivelul rețea prin care se va face legătura la target

În concluzie trebuie să creăm cel puțin un portal pentru accesul la IQN prin rețea:

/iscsi/iqn.20...e86bb4d/tpgt1> cd portals
/iscsi/iqn.20...tpgt1/portals> create
Using default IP port 3260
Automatically selected IP address 192.168.1.1.
Successfully created network portal 192.168.1.1:3260.
/iscsi/iqn.20...tpgt1/portals> cd ..

Observați că automat a selectat adresa IP a interfeței eth0 și portul 3260. Vom crea un dispozitiv logic cu ajutorul căruia vom referenția backstore-ul:

/iscsi/iqn.20...e86bb4d/tpgt1> cd luns
/iscsi/iqn.20...4d/tpgt1/luns> create /backstores/fileio/disk1
Selected LUN 0.
Successfully created LUN 0.

În submeniul acls va trebuie să înregistrăm clienții iSCSI folosind IQN-ul acestora. Deocamdată nu știm IQN-ul clienților, îl vom configura după ce instalăm clienții de iSCSI. Să vizualizăm configurația actuală:

/> ls
o- / .................................................................................... [...]
  o- backstores ......................................................................... [...]
  | o- fileio .............................................................. [1 Storage Object]
  | | o- disk1 ......................................................... [/disk1.img activated]
  | o- iblock .............................................................. [0 Storage Object]
  | o- pscsi ............................................................... [0 Storage Object]
  | o- rd_dr ............................................................... [0 Storage Object]
  | o- rd_mcp .............................................................. [0 Storage Object]
  o- ib_srpt ...................................................................... [0 Targets]
  o- iscsi ......................................................................... [1 Target]
  | o- iqn.2003-01.org.linux-iscsi.storage1.x8664:sn.25e09e86bb4d ..................... [1 TPG]
  |   o- tpgt1 ...................................................................... [enabled]
  |     o- acls ...................................................................... [0 ACLs]
  |     o- luns ....................................................................... [1 LUN]
  |     | o- lun0 ................................................. [fileio/disk1 (/disk1.img)]
  |     o- portals ................................................................. [1 Portal]
  |       o- 192.168.1.1:3260 ............................................. [OK, iser disabled]
  o- loopback ..................................................................... [0 Targets]
  o- qla2xxx ...................................................................... [0 Targets]
  o- tcm_fc ....................................................................... [0 Targets]

Înainte să realizăm configurația clientului de iSCSI, vom salva configurația target-ului pentru a se păstra în cazul unui restart al serverului:

/> saveconfig
WARNING: Saving storage1 current configuration to disk will overwrite your boot settings.
The current target configuration will become the default boot config.
Are you sure? Type 'yes': yes

Pe sistemele Linux, clienții iSCSI trebuie să instaleze pachetul open-iscsi care conține comanda iscsiadm. Vom instala acest pachet pe stația storage2:

root@storage2:~# apt-get install open-iscsi

Vom genera un IQN pentru stația storage2 folosind comanda iscsi-iname și vom pune numele în fișierul /etc/iscsi/initiatorname.iscsi:

root@storage2:~# iscsi-iname
root@storage2:~# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2005-03.org.open-iscsi:fc35d7d3fc24

Apoi, reporniti serviciul open-iscsi:

root@storage2:~# service open-iscsi restart

Înainte de a termina configurarea clientului, trebuie să adăugăm IQN-ul clientului storage2 în ACL-ul target-ului. Pe stația storage1. Nu uitați să salvați configurația:

root@storage1:~# targetcli
/> cd /iscsi/iqn.2003-01.org.linux-iscsi.storage1.x8664:sn.25e09e86bb4d/tpgt1/
/iscsi/iqn.20...e86bb4d/tpgt1> cd acls
/iscsi/iqn.20...4d/tpgt1/acls> help create
SYNTAX
  create wwn [add_mapped_luns]
/iscsi/iqn.20...4d/tpgt1/acls> create iqn.2005-03.org.open-iscsi:fc35d7d3fc24
Successfully created Node ACL for iqn.2005-03.org.open-iscsi:fc35d7d3fc24
Created mapped LUN 0.
/iscsi/iqn.20...4d/tpgt1/acls> cd /
/> saveconfig
/> saveconfig
WARNING: Saving storage1 current configuration to disk will overwrite your boot settings.
The current target configuration will become the default boot config.
Are you sure? Type 'yes': yes

Ne întoarcem la configurația clientului storage2. În primul rând clientul trebuie să verifice dacă există vreun target la adresa IP/hostname-ul serverului:

root@storage2:~# iscsiadm --mode discovery --type st --portal 192.168.1.1
192.168.1.1:3260,1 iqn.2003-01.org.linux-iscsi.storage1.x8664:sn.25e09e86bb4d

Observați noțiunea de portal folosită și la client (la server am creat portal-ul 192.168.1.1). –type se referă la tipul pachetului folosit pentru discovery (st=send target).

Comanda iscsiadm -m node -L all va face încerca să se autentifice automat la toate target-ul descoperite folosind modul discovery al comenzii iscsiadm (–mode discovery):

root@storage2:~# iscsiadm -m node -L all
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.storage1.x8664:sn.25e09e86bb4d, portal: 192.168.1.1,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.storage1.x8664:sn.25e09e86bb4d, portal: 192.168.1.1,3260] successful.

Pentru a inspecta sesiunile active vom folosi modul session al utilitarului iscsi:

root@storage2:~#  iscsiadm -m session
tcp: [1] 192.168.1.1:3260,1 iqn.2003-01.org.linux-iscsi.storage1.x8664:sn.25e09e86bb4d (non-flash)

Pentru a vedea informații detaliate despre o sesiuni vom folosi parametrul -P al comenzii urmat de nivelul de verbozitate (1, 2 sau 3):

root@storage2:~#  iscsiadm -m session -P 1
Target: iqn.2003-01.org.linux-iscsi.storage1.x8664:sn.25e09e86bb4d (non-flash)
        Current Portal: 192.168.1.1:3260,1
        Persistent Portal: 192.168.1.1:3260,1
                **********
                Interface:
                **********
                Iface Name: default
                Iface Transport: tcp
                Iface Initiatorname: iqn.2005-03.org.open-iscsi:fc35d7d3fc24
                Iface IPaddress: 192.168.1.2
                Iface HWaddress: <empty>
                Iface Netdev: <empty>
                SID: 1
                iSCSI Connection State: LOGGED IN
                iSCSI Session State: LOGGED_IN
                Internal iscsid Session State: NO CHANGE

În acest moment utilitarul iscsiadm a mai adăugat un disc pe client /dev/sdd:

root@storage2:~# dmesg|tail -10
[10654.656653] scsi2 : iSCSI Initiator over TCP/IP
[10654.914445] scsi 2:0:0:0: Direct-Access     LIO-ORG  FILEIO           4.0  PQ: 0 ANSI: 5
[10654.915060] sd 2:0:0:0: Attached scsi generic sg3 type 0
[10654.918771] sd 2:0:0:0: [sdd] 204800 512-byte logical blocks: (104 MB/100 MiB)
[10654.921415] sd 2:0:0:0: [sdd] Write Protect is off
[10654.921418] sd 2:0:0:0: [sdd] Mode Sense: 43 00 00 08
[10654.922477] sd 2:0:0:0: [sdd] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[10654.931024]  sdd: unknown partition table
[10654.936476] sd 2:0:0:0: [sdd] Attached SCSI disk

Observați că discul e adăugat ca și un disc normal, conectat direct la stația respectivă.

Creați o tabelă de partiții și formatați discul cu un sistem de fișiere. Montați sistemul de fișiere creat și realizați operații de citire/scriere.

Același LUN nu se poate monta pe 2 clienți diferiți decât dacă se folosește un sistem de fișiere shared (ex.: VMFS de la VMware - vezi Curs 06 - Sisteme de fișiere în rețea).

05. [10p] Restricționarea accesului la dispozitivile logice (LUN)

Vom mai crea un nou LUN ce are ca backstore tot un fișier:

/backstores/fileio> create disk2 /disk2.img 100M
Generating a wwn serial.
Not using buffered mode.
Created fileio disk2.
/backstores/fileio> cd /iscsi/iqn.2003-01.org.linux-iscsi.storage1.x8664:sn.25e09e86bb4d/tpgt1/luns/
/iscsi/iqn.20...4d/tpgt1/luns>

Vom mai crea încă un LUN asociat backstore-ului disk2.img:

/iscsi/iqn.20...4d/tpgt1/luns> create /backstores/fileio/disk2 1
Successfully created LUN 1.
Created mapped LUN 1 in node ACL iqn.2005-03.org.open-iscsi:fc35d7d3fc24

Observați că în mod implicit acesta s-a adăugat automat pentru clientul storage2 (la IQN-ul acestuia). Dorim să scoatem această mapare:

/iscsi/iqn.20...4d/tpgt1/luns> cd ../acls/iqn.2005-03.org.open-iscsi:fc35d7d3fc24
/iscsi/iqn.20...:fc35d7d3fc24> ls
o- iqn.2005-03.org.open-iscsi:fc35d7d3fc24 ........................................... [2 Mapped LUNs]
  o- mapped_lun0 ......................................................................... [lun0 (rw)]
  o- mapped_lun1 ......................................................................... [lun1 (rw)]
/iscsi/iqn.20...:fc35d7d3fc24> delete 1
Deleted Mapped LUN 1.

06. [20p] LIO backstore as a physical block device

Creați un backstore de tip physical device (Hint: iblock) folosind discul /dev/sdb de pe stația storage1. Asociați backstore-ul creat cu un LUN și montați-l pe stația storage3. Nu uitați să mapați IQN-ul stației storage3 la noul LUN.

Implicit, clientul creat de voi va avea acces la toate LUN-urile. Permiteți accesul doar pentru LUN 2. Eliminați de asemenea LUN 2 de la IQN-ul stației storage2.

07. [10p] Instalare și configurare sistem distribuit de fișiere GlusterFS

Inainte de a trece mai departe, modificati inapoi, in /etc/apt/sources.list, toate aparitiile lui wheezy in jessie, apoi efectuati apt-get update.

În instalarea și configurația sistemului de fișiere GlusterFS vom considera ca sisteme de stocare stațiile storage1 cu discul /dev/sdc și storage3 cu discul /dev/sdc. Înainte de a instala server-ele aferente sistemului de fișiere GlusterFS, trebuie să formatăm discurile ce vor intra în componența sistemului de fișiere. Recomandată este folosirea sistemului de fișiere XFS:

root@storage1:~# apt-get install xfsprogs
root@storage1:~# fdisk /dev/sdc
Command (m for help): n
 
root@storage1:~# mkfs.xfs /dev/sdc1
 
root@storage3:~# fdisk /dev/sdc
Command (m for help): n
 
root@storage3:~# apt-get install xfsprogs
root@storage3:~# mkfs.xfs /dev/sdc1

Vom monta cele 2 partiții în /export pe fiecare stație în parte:

root@storage1:~# mkdir /export
root@storage1:~# echo "/dev/sdc1 /export xfs defaults 1 2" >> /etc/fstab
root@storage1:~# mount -a
 
root@storage3:~# mkdir /export
root@storage3:~# echo "/dev/sdc1 /export xfs defaults 1 2" >> /etc/fstab
root@storage3:~# mount -a

Vom instala serverul GlusterFS pe ambele stații după care vom configura comunicația dintre acestea:

root@storage1:~# apt-get install glusterfs-server
root@storage3:~# apt-get install glusterfs-server
 
root@storage1:~# gluster peer probe storage3
peer probe: success
root@storage1:~# gluster peer status
Number of Peers: 1
 
Hostname: storage3
Port: 24007
Uuid: ba15f574-bcf3-4608-8173-da43857771ff
State: Peer in Cluster (Connected)

Este suficient să configurăm legătura doar pe unul din servere. Următorul pas este reprezentat de crearea volumului care va fi exportat de acest sistem de fișiere:

root@storage1:~# gluster volume create saispvol1 transport tcp storage1:/export/brick1 storage3:/export/brick1
volume create: saispvol1: success: please start the volume to access data
 
root@storage1:~# gluster volume info
 
Volume Name: saispvol1
Type: Distribute
Volume ID: 6b9fdea1-e6ea-44a0-af2a-d10c47e8939d
Status: Created
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: storage1:/export/brick1
Brick2: storage3:/export/brick1

Se observă că s-a creat volumul cu numele saispvol1, folosind protocolul tcp ca protocol de transport, iar acest volum este format din 2 brick-uri (aceste brick-uri sunt practic discurile formatate cu XFS anterior). Înainte de a porni volumul vom permite accesul tuturor adreselor IP din rețeaua noastră:

root@storage1:~# gluster volume set saispvol1 auth.allow 192.168.1.*
volume set: success

Vom porni volumul:

root@storage1:~#  gluster volume start  saispvol1
volume start: saispvol1: success
root@storage1:~# gluster volume info
 
Volume Name: saispvol1
Type: Distribute
Volume ID: 6b9fdea1-e6ea-44a0-af2a-d10c47e8939d
Status: Started
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: storage1:/export/brick1
Brick2: storage3:/export/brick1
Options Reconfigured:
auth.allow: 192.168.1.*

Pentru a putea testa sistemul distribuit construit anterior, trebuie să montăm partiția exportată pe client. Vom instala clientul pentru GlusterFS pe stația storage2 și vom monta sistemul de fișiere folosind tipul glusterfs:

root@storage2:~# apt-get install glusterfs-client
root@storage2:~# mount -t glusterfs storage1:/saispvol1 /export/
root@storage2:~# df -h |grep export
storage1:/saispvol1  189M   11M  179M   6% /export

Observați dimensiunea de 189M sistemului de fișiere aceasta fiind practic suma dintre cele două discuri puse la dispozitie de stațiile storage1 și storage2. Practic datele se vor distribui pe aceste 2 partiții.

08. [10p] Replicarea datelor folosind GlusterFS

Demontați sistemul de fișiere de pe stația storage2:

root@storage2:~# umount /export

Opriți și ștergeți volumul saispvol1, iar apoi ștergeți brick-urile create pe fiecare din stațiile storage1 și storage3:

root@storage1:~# gluster volume stop saispvol1
root@storage1:~# gluster volume delete saispvol1
Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y
volume delete: saispvol1: success
root@storage1:~# rm -rf /export/brick1/
 
root@storage3:~# rm -rf /export/brick1/

Creați din nou volumul saispvol1 adăugând parametrul suplimentar replica 2 după numele volumului în comanda de creare. Montați sistemul de fișiere pe stația storage2. Ce observați?

09. [BONUS - 10p] Instalarea și configurarea sistemului distribuit de fișiere Ceph

Pe stația storage2 instalați și configurați cluster-ul Ceph urmărind acest tutorial.

După ce ați instalat cluster-ul Ceph, creați un block-device RBD (Rados Block Device) pe care să îl formatați și montați (Hint: tutorial).

Un alt tutorial despre Ceph puteti gasi aici.

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