Erinevus lehekülje "Glusterfs kasutamine Gentooga" redaktsioonide vahel

Allikas: Kuutõrvaja
(New page: ===sissejuhatus=== ===probleem=== 1. On olemas veebiserver mis peaks olema töökorras 99% ajast. Et välistada erinevaid softi-raua vigu peaks hoidma üleval kahte. 2. Ühest veebiserv...)
 
P (Lehekülg "Glusterfs" teisaldatud pealkirja "Glusterfs kasutamine Gentooga" alla)
 
(ei näidata ühe teise kasutaja 31 vahepealset redaktsiooni)
1. rida: 1. rida:
===sissejuhatus===
 
 
 
===probleem===
 
===probleem===
  
 
1.
 
1.
 
On olemas veebiserver mis peaks olema töökorras 99% ajast. Et välistada erinevaid softi-raua
 
On olemas veebiserver mis peaks olema töökorras 99% ajast. Et välistada erinevaid softi-raua
vigu peaks hoidma üleval kahte.
+
vigu peaks hoidma üleval kahte ja nende sisu peab olema pidevalt sünkroonis.
  
 
2.
 
2.
11. rida: 9. rida:
 
veebiserveri sisu muutub pidevalt ja vaja on erinevate serverite infot hoida sünkroonis.
 
veebiserveri sisu muutub pidevalt ja vaja on erinevate serverite infot hoida sünkroonis.
  
 +
3. Kui üks server läheb maha siis peab teine töötama ilma mingite muutusteta edasi. Kui maasolnud server tuleb
 +
tagasi käiku peab ta suutma ise tuvastada ,et tema info on aegunud. Võtma kasutusele teise serveri failid
 +
ning oskama samas ise sünkroniseerida enda faile automaatselt.
 +
 +
Lahenduseks mis kõiki neid probleeme lahendab tundus peale pikemat netis kaevamist olevat glusterfs.
 +
 +
'''GlusterFS''' is a clustered file-system capable of scaling to several peta-bytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. Storage bricks can be made of any commodity hardware such as x86-64 server with SATA-II RAID and Infiniband HBA).
 +
 +
===Install===
  
 
On olemas kaks veebiserverit.
 
On olemas kaks veebiserverit.
  
Esimese ip 192.168.1.10
+
*Esimese ip '''192.168.1.10'''
Teise ip 192.168.1.11
+
 
 +
*Teise ip '''192.168.1.11'''
  
Installime mõlemale glusterfs'i
+
Installime mõlemale serverile glusterfs'i.
 +
Nii Redhatile kui debianile on olemas installifailid. Ülejäänud
 +
linuxitele on olemas tar fail. Kuna kasutame näites gentood siis kompileerime ja installime glusterfs'i sourcest.
  
 
saab seda aadressilt http://ftp.zresearch.com/pub/gluster/glusterfs/
 
saab seda aadressilt http://ftp.zresearch.com/pub/gluster/glusterfs/
  
tar -xf glusterfs-1.3.0.tar.gz
+
tar -xf glusterfs-1.3.0.tar.gz
./configure --prefix=/usr --disable-ibverbs
+
./configure --prefix=/usr --disable-ibverbs
make
+
make
make install
+
make install
 +
 
 +
Seejärel tuleb paigaldada serveritele fuse-libs ja fuse kerneli mooodul
 +
 
 +
Gentoos toimib see käsuga
 +
 
 +
emerge fuse
 +
 
 +
===Seadistamine===
 +
 
 +
Kummagile serverile paigutame näites nii glusterf serveri
 +
kui kliendi välja näeb pilt selline.
 +
 
 +
[[Pilt:Gfs.jpg]]
 +
 
 +
Glusterfs'is tegeleb server vaid etteantud kausta jagamisega.
 +
Peamise töö teeb ära klient. Antud näites kumbki
 +
klient haagib külge mõlema serveri jaotised korraga
 +
ning kirjutab neile paralleelselt.
 +
 
 +
Mõlemale serverile loome kaks faili '''/etc''' kausta.
 +
'''glusterfs.vol''' mis sisaldab serveri konfiguratsiooni
 +
 
 +
ja '''glusterfs_client.vol''' glusterfs kliendi seadistustega
 +
 
 +
Mõlemad failid on kummagil serveril täpselt sama sisuga.
 +
 
 +
Serveritele tuleb luua ka kaust '''/home/export''' kus hoitakse reaalselt faile
 +
ja '''/mnt/gluster''' kuhu fuse abil ühendatakse glusterfs
 +
 
 +
/etc/glusterfs.vol
 +
 
 +
### Export volume "brick" with the contents of "/home/export" directory.
 +
volume brick
 +
  type storage/posix                  # POSIX FS translator
 +
  option directory /home/export        # Export this directory
 +
end-volume
 +
 +
### Add network serving capability to above brick.
 +
volume server
 +
  type protocol/server
 +
  subvolumes brick brick-afr
 +
  option transport-type tcp/server    # For TCP/IP transport
 +
  option auth.ip.brick.allow *        # access to "brick" volume
 +
  option auth.ip.brick-afr.allow *    # access to "brick" volume
 +
end-volume
 +
 
 +
/etc/glusterfs_client.vol
 +
 
 +
### Add client feature and attach to remote subvolume of server1
 +
volume brick1
 +
  type protocol/client
 +
  option transport-type tcp/client    # for TCP/IP transport
 +
  option remote-host 192.168.1.10      # IP address of the remote brick
 +
  option remote-subvolume brick        # name of the remote volume
 +
end-volume
 +
 +
### Add client feature and attach to remote subvolume of brick2
 +
volume brick2
 +
  type protocol/client
 +
  option transport-type tcp/client    # for TCP/IP transport
 +
  option remote-host 192.168.1.11      # IP address of the remote brick
 +
  option remote-subvolume brick        # name of the remote volume
 +
end-volume
 +
 
 +
### Add AFR feature to brick1
 +
volume afr
 +
  type cluster/afr
 +
  subvolumes brick1 brick2
 +
end-volume
 +
 
 +
===Kiirendamine===
 +
 
 +
Et kirjutamine toimuks kiiremini võime kliendi faili lisada veel järgneva
 +
 
 +
Kirjutamine toimub tagaplaanil
 +
 
 +
volume writebehind
 +
    type performance/write-behind
 +
    option aggregate-size 1MB
 +
    subvolumes afr
 +
end-volume
 +
 
 +
IO'ga tegelemine on threaditud
 +
 +
  volume iothreads
 +
    type performance/io-threads
 +
    option thread-count 4  # deault is 1
 +
    option cache-size 32MB #64MB
 +
    subvolumes writebehind
 +
  end-volume
 +
 
 +
===Kasutamine===
 +
 
 +
Peale tarkvara installi, konfigureerimist anda käsud kummagis masinas
 +
 
 +
glusterfsd -f /etc/glusterfs.vol
 +
glusterfs -f /etc/glusterfs_client.vol -l /var/log/glusterfs.log  -L ERROR /mnt/gluster
 +
 
 +
Kontrollime kas klient ühendas failisüsteemi korrektselt
 +
 
 +
#df
 +
..
 +
glusterfs            10080488  1999892  7568528  21% /mnt/gluster
 +
 
 +
-L võtmega saab nii deemonile kui kliendile lisada logimise tüübi ja log faili. Näiteks
 +
kui glusterfs mingil põhjusel ei tööta on hea lisada -L DEBUG ,et saada rohkem infot
 +
 
 +
Peale seda peaks mõlemale serverile tekkima  '''/mnt/gluster'''
 +
harusse glusterfs failisüsteem. Failide loomised, kustutamised, muutmised seal kaustas
 +
mõjuvad mõlemasse masinasse hetkeliselt.
  
 +
Reaalselt kõik failid asuvad mõlemas masinas '''/home/export''' kaustas.
  
localhost gluster # cat /etc/glusterfs.vol
+
Selleks ,et teenuste startimine ja failisüsteemi mountimine toimuks automaatselt tuleb lisada ülal toodud read faili
### Export volume "brick" with the contents of "/home/export" directory.
 
volume brick
 
type storage/posix                  # POSIX FS translator
 
option directory /home/export        # Export this directory
 
end-volume
 
  
### Export volume "brick-afr" with the contents of "/home/afr-export" directory.
+
/etc/conf.d/local.start
volume brick-afr
 
type storage/posix                  # POSIX FS translator
 
option directory /home/afr-export    # Export this directory
 
end-volume
 
  
### Add network serving capability to above brick.
+
===Kiirus===
volume server
 
type protocol/server
 
subvolumes brick brick-afr
 
option transport-type tcp/server    # For TCP/IP transport
 
option auth.ip.brick.allow *        # access to "brick" volume
 
option auth.ip.brick-afr.allow *    # access to "brick" volume
 
end-volume
 
localhost gluster # cat /etc/glusterfs_client.vol
 
### Add client feature and attach to remote subvolume of server1
 
volume brick1
 
type protocol/client
 
option transport-type tcp/client    # for TCP/IP transport
 
option remote-host 192.168.1.10      # IP address of the remote brick
 
option remote-subvolume brick        # name of the remote volume
 
end-volume
 
  
### Add client feature and attach to remote subvolume of brick2
+
Kiirusetest 100mb võrgus
volume brick2
 
type protocol/client
 
option transport-type tcp/client    # for TCP/IP transport
 
option remote-host 192.168.1.11      # IP address of the remote brick
 
option remote-subvolume brick        # name of the remote volume
 
end-volume
 
  
 +
dd if=/dev/zero of=zero-file bs=1024 count=1048576
 +
1048576+0 records in
 +
1048576+0 records out
 +
1073741824 bytes (1.1 GB) copied, 552.576 s, 1.9 MB/s
  
### Add AFR feature to brick1
+
dd if=zero-file of=/dev/zero bs=1024 count=1048576
volume afr
+
  1048576+0 records in
  type cluster/afr
+
  1048576+0 records out
  subvolumes brick1 brick2
+
  1073741824 bytes (1.1 GB) copied, 2.73642 s, 392 MB/s
  #option replicate *.html:2,*.db:1,*:2     # Do not leave space before or after "," and ":"
 
option replicate *:2
 
end-volume
 
  
#volume ns
+
kirjutamine writebehind'i kasutades
# type storage/posix
 
# option directory /home/GlusterFS-NS
 
#end-volume
 
  
### Add unify feature to cluster the servers. Associate an
+
dd if=/dev/zero of=zero-file bs=1024 count=1048576
### appropriate scheduler that matches your I/O demand.
+
  1048576+0 records in
#volume bricks
+
  1048576+0 records out
#
+
  1073741824 bytes (1.1 GB) copied, 156.606 s, 6.9 MB/s
# option namespace ns
 
#
 
#  type cluster/unify
 
# subvolumes afr
 
# option scheduler rr
 
# option rr.limits.min-free-disk 5%
 
#end-volume
 
  
localhost gluster # cat /etc/conf.d/local.start
+
Võimalusi kiirendamiseks on veel. Neist pikemalt ametlikus wikis juttu.
#!/bin/bash
 
# /etc/conf.d/local.start
 
  
ifconfig eth0 192.168.1.11 netmask 255.255.255.0
+
===Viited===
route add default gw 192.168.1.1
 
  
glusterfsd -f /etc/glusterfs.vol
+
Siin toodud näide on väga primitiivne olemuselt. Pikemalt glusterfs võimalustest
glusterfs -f /etc/glusterfs_client.vol -l /var/log/glusterfs.log  -L ERROR /mnt/gluster
+
ja kasutamisest lingil http://www.gluster.org/docs/index.php/GlusterFS

Viimane redaktsioon: 27. juuni 2009, kell 16:19

probleem

1. On olemas veebiserver mis peaks olema töökorras 99% ajast. Et välistada erinevaid softi-raua vigu peaks hoidma üleval kahte ja nende sisu peab olema pidevalt sünkroonis.

2. Ühest veebiserverist jääb väheks klientide teenindamisel. Oleks vaja koormust jaotada. Samas veebiserveri sisu muutub pidevalt ja vaja on erinevate serverite infot hoida sünkroonis.

3. Kui üks server läheb maha siis peab teine töötama ilma mingite muutusteta edasi. Kui maasolnud server tuleb tagasi käiku peab ta suutma ise tuvastada ,et tema info on aegunud. Võtma kasutusele teise serveri failid ning oskama samas ise sünkroniseerida enda faile automaatselt.

Lahenduseks mis kõiki neid probleeme lahendab tundus peale pikemat netis kaevamist olevat glusterfs.

GlusterFS is a clustered file-system capable of scaling to several peta-bytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. Storage bricks can be made of any commodity hardware such as x86-64 server with SATA-II RAID and Infiniband HBA).

Install

On olemas kaks veebiserverit.

  • Esimese ip 192.168.1.10
  • Teise ip 192.168.1.11

Installime mõlemale serverile glusterfs'i. Nii Redhatile kui debianile on olemas installifailid. Ülejäänud linuxitele on olemas tar fail. Kuna kasutame näites gentood siis kompileerime ja installime glusterfs'i sourcest.

saab seda aadressilt http://ftp.zresearch.com/pub/gluster/glusterfs/

tar -xf glusterfs-1.3.0.tar.gz
./configure --prefix=/usr --disable-ibverbs
make
make install

Seejärel tuleb paigaldada serveritele fuse-libs ja fuse kerneli mooodul

Gentoos toimib see käsuga

emerge fuse

Seadistamine

Kummagile serverile paigutame näites nii glusterf serveri kui kliendi välja näeb pilt selline.

Gfs.jpg

Glusterfs'is tegeleb server vaid etteantud kausta jagamisega. Peamise töö teeb ära klient. Antud näites kumbki klient haagib külge mõlema serveri jaotised korraga ning kirjutab neile paralleelselt.

Mõlemale serverile loome kaks faili /etc kausta. glusterfs.vol mis sisaldab serveri konfiguratsiooni

ja glusterfs_client.vol glusterfs kliendi seadistustega

Mõlemad failid on kummagil serveril täpselt sama sisuga.

Serveritele tuleb luua ka kaust /home/export kus hoitakse reaalselt faile ja /mnt/gluster kuhu fuse abil ühendatakse glusterfs

/etc/glusterfs.vol
### Export volume "brick" with the contents of "/home/export" directory.
volume brick
 type storage/posix                   # POSIX FS translator
 option directory /home/export        # Export this directory
end-volume

### Add network serving capability to above brick.
volume server
 type protocol/server
 subvolumes brick brick-afr
 option transport-type tcp/server     # For TCP/IP transport
 option auth.ip.brick.allow *         # access to "brick" volume
 option auth.ip.brick-afr.allow *     # access to "brick" volume
end-volume
/etc/glusterfs_client.vol
### Add client feature and attach to remote subvolume of server1
volume brick1
 type protocol/client
 option transport-type tcp/client     # for TCP/IP transport
 option remote-host 192.168.1.10      # IP address of the remote brick
 option remote-subvolume brick        # name of the remote volume
end-volume

### Add client feature and attach to remote subvolume of brick2
volume brick2
 type protocol/client
 option transport-type tcp/client     # for TCP/IP transport
 option remote-host 192.168.1.11      # IP address of the remote brick
 option remote-subvolume brick        # name of the remote volume
end-volume
 
### Add AFR feature to brick1
volume afr
 type cluster/afr
 subvolumes brick1 brick2
end-volume

Kiirendamine

Et kirjutamine toimuks kiiremini võime kliendi faili lisada veel järgneva

Kirjutamine toimub tagaplaanil

volume writebehind
   type performance/write-behind
   option aggregate-size 1MB
   subvolumes afr
end-volume

IO'ga tegelemine on threaditud

 volume iothreads
   type performance/io-threads
   option thread-count 4  # deault is 1
   option cache-size 32MB #64MB
   subvolumes writebehind
 end-volume

Kasutamine

Peale tarkvara installi, konfigureerimist anda käsud kummagis masinas

glusterfsd -f /etc/glusterfs.vol
glusterfs -f /etc/glusterfs_client.vol -l /var/log/glusterfs.log  -L ERROR /mnt/gluster

Kontrollime kas klient ühendas failisüsteemi korrektselt

#df
..
glusterfs             10080488   1999892   7568528  21% /mnt/gluster

-L võtmega saab nii deemonile kui kliendile lisada logimise tüübi ja log faili. Näiteks kui glusterfs mingil põhjusel ei tööta on hea lisada -L DEBUG ,et saada rohkem infot

Peale seda peaks mõlemale serverile tekkima /mnt/gluster harusse glusterfs failisüsteem. Failide loomised, kustutamised, muutmised seal kaustas mõjuvad mõlemasse masinasse hetkeliselt.

Reaalselt kõik failid asuvad mõlemas masinas /home/export kaustas.

Selleks ,et teenuste startimine ja failisüsteemi mountimine toimuks automaatselt tuleb lisada ülal toodud read faili

/etc/conf.d/local.start

Kiirus

Kiirusetest 100mb võrgus

dd if=/dev/zero of=zero-file bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 552.576 s, 1.9 MB/s
dd if=zero-file of=/dev/zero bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 2.73642 s, 392 MB/s

kirjutamine writebehind'i kasutades

dd if=/dev/zero of=zero-file bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 156.606 s, 6.9 MB/s

Võimalusi kiirendamiseks on veel. Neist pikemalt ametlikus wikis juttu.

Viited

Siin toodud näide on väga primitiivne olemuselt. Pikemalt glusterfs võimalustest ja kasutamisest lingil http://www.gluster.org/docs/index.php/GlusterFS