GNU/Linux >> Znalost Linux >  >> Debian

Úložiště s vysokou dostupností s GlusterFS 3.0.x na Debian Squeeze – Automatická replikace souborů přes dva úložné servery

Tento tutoriál ukazuje, jak nastavit úložiště s vysokou dostupností se dvěma úložnými servery (Debian Squeeze), které používají GlusterFS. Každý úložný server bude zrcadlem druhého úložného serveru a soubory budou automaticky replikovány přes oba úložné servery. Klientský systém (také Debian Squeeze) bude mít přístup k úložišti, jako by to byl místní souborový systém. GlusterFS je klastrovaný souborový systém schopný škálování na několik petabajtů. Sdružuje různé úložné bloky přes propojení Infiniband RDMA nebo TCP/IP do jednoho velkého paralelního síťového souborového systému. Úložné kostky mohou být vyrobeny z jakéhokoli běžného hardwaru, jako jsou servery x86_64 s SATA-II RAID a Infiniband HBA.

Neposkytuji žádnou záruku, že to pro vás bude fungovat!

1 předběžná poznámka

V tomto tutoriálu používám tři systémy, dva servery a klienta:

  • server1.example.com:IP adresa 192.168.0.100 (server)
  • server2.example.com:IP adresa 192.168.0.101 (server)
  • client1.example.com:IP adresa 192.168.0.102 (klient)

Všechny tři systémy by měly být schopny rozlišit názvy hostitelů ostatních systémů. Pokud to nelze provést prostřednictvím DNS, měli byste upravit soubor /etc/hosts tak, aby na všech třech systémech vypadal následovně:

vi /etc/hosts
127.0.0.1 localhost.localdomain localhost192.168.0.100 server1.example.com server1192.168.0.101 server2.example.com server2192.168.0.102 client1.example.com klient1# Následující řádky jsou vhodné pro hostitele s podporou IPv6::1 localhost ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff0 ::3 ip6-allhosts

(V následujícím nastavení je také možné použít IP adresy místo názvů hostitelů. Pokud dáváte přednost použití IP adres, nemusíte se starat o to, zda lze názvy hostitelů přeložit nebo ne.)

2 Nastavení serverů GlusterFS

server1.example.com/server2.example.com:

GlusterFS je k dispozici jako balíček pro Debian Squeeze, takže jej můžeme nainstalovat následovně:

apt-get install glusterfs-server

Příkaz

glusterfs --version

by nyní měla zobrazovat verzi GlusterFS, kterou jste právě nainstalovali (v tomto případě 3.0.5):

[e-mail protected]:~# glusterfs --version
glusterfs 3.0.5 vytvořeno 13. července 2010 16:44:21
Revize úložiště:v3.0.5
Autorská práva (c) 2006-2009 Gluster Inc.
GlusterFS se dodává NAPROSTO ŽÁDNÁ ZÁRUKA.
Můžete redistribuovat kopie GlusterFS za podmínek GNU General Public License.
[ e-mailem chráněno]:~#

Dále vytvoříme několik adresářů:

mkdir /data/
mkdir /data/export
mkdir /data/export-ns

Nyní vytvoříme konfigurační soubor serveru GlusterFS /etc/glusterfs/glusterfsd.vol (nejprve vytvoříme zálohu původního souboru /etc/glusterfs/glusterfsd.vol), který definuje, který adresář se bude exportovat (/data/export) a jaký klient se může připojit (192.168.0.102 =klient1.example.com):

cp /etc/glusterfs/glusterfsd.vol /etc/glusterfs/glusterfsd.vol_orig
cat /dev/null> /etc/glusterfs/glusterfsd.vol
vi /etc/glusterfs/glusterfsd.vol

volume posix typ storage/posix adresář možností /data/exportend-volumevolume locks type features/locks subvolumes posixend-volumevolume brick type performance/io-threads option thread-count 8 subvolumes locksend-volumevolume typ serveru protokol/server volba transport-type tcp option auth.addr.brick.allow 192.168.0.102 subvolumes brickend-volume

Upozorňujeme, že pro adresy IP je možné použít zástupné znaky (např. 192.168.*) a že můžete zadat více adres IP oddělených čárkou (např. 192.168.0.102, 192.168.0.103).

Poté spustíme server GlusterFS:

/etc/init.d/glusterfs-server start

3 Nastavení klienta GlusterFS

client1.example.com:

Na klienta můžeme nainstalovat klienta GlusterFS následovně:

apt-get install glusterfs-client

Poté vytvoříme následující adresář:

mkdir /mnt/glusterfs

Dále vytvoříme soubor /etc/glusterfs/glusterfs.vol (nejprve vytvoříme zálohu původního souboru /etc/glusterfs/glusterfs.vol):

cp /etc/glusterfs/glusterfs.vol /etc/glusterfs/glusterfs.vol_orig
cat /dev/null> /etc/glusterfs/glusterfs.vol
vi /etc/glusterfs/glusterfs.vol

volume remote1 type protocol/client option transport-type tcp option remote-host server1.example.com option remote-subvolume brickend-volumevolume remote2 type protocol/ volba klienta typ přenosu tcp volba vzdálený-hostitel server2.example.com volba vzdálený-dílčí svazek brickend-volumevolume typ replikace cluster/replikovat podsvazky remote1 remote2end-volumevolume typ zapisování výkon/zápis-zapis volba velikost okna 1MB dílčí svazky typ mezipaměti replikovatend-volumevolume výkon/možnost io-cache velikost mezipaměti 512 MB subvolumes writebehindend-volume

Ujistěte se, že používáte správné názvy serverů nebo IP adresy ve volbě vzdálené hostitelské řádky!

A je to! Nyní můžeme připojit souborový systém GlusterFS do /mnt/glusterfs jedním z následujících dvou příkazů:

glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs

nebo

mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs

Nyní byste měli vidět nový podíl ve výstupech...

mount

[email protected]:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc na /proc typu proc (rw,noexec,nosuid,nodev)
sysfs na /sys typu sysfs (rw,noexec,nosuid,nodev)
udev na /dev typu tmpfs (rw,mode=0755)
tmpfs na /dev/shm typ tmpfs (rw,nosuid,nodev)
devpts na /dev/pts typ devpts (rw,noexec,nosuid,gid=5,mode =620)
fusectl na /sys/fs/fuse/connections type fusectl (rw)
/etc/glusterfs/glusterfs.vol na /mnt/glusterfs type fuse.glusterfs (rw,allow_other,default_permissions, max_read=131072)
[e-mail chráněný]:~#

... a...

df -h

[chráněno e-mailem]:~#df -h
Velikost souborového systému Používá se k dispozici /rw
udev 244m 100k 244m 1%/dev
tmpfs 249m 0 249m 0%/dev/shm
/etc/glusterfs/glusterfs.vol
18G 848M 16G 5%/ mnt/glusterfs
[e-mail chráněn]:~#

(server1.example.com a server2.example.com mají každý 18 GB prostoru pro souborový systém GlusterFS, ale protože jsou data zrcadlena, klient nevidí 36 GB (2 x 18 GB), ale pouze 18 GB.)

Místo ručního připojování sdílené složky GlusterFS na klienta můžete upravit /etc/fstab tak, aby se sdílená složka připojila automaticky, když se klient zavede.

Otevřete /etc/fstab a připojte následující řádek:

vi /etc/fstab 
[...]/etc/glusterfs/glusterfs.vol /mnt/glusterfs glusterfs defaults,_netdev 0 0

Chcete-li otestovat, zda váš upravený /etc/fstab funguje, restartujte klienta:

restartovat 

Po restartu byste měli najít podíl ve výstupech...

df -h 

... a...

mount

Pokud úprava /etc/fstab nepomůže, zrušte změnu v /etc/fstab a přidejte tento řádek do /etc/rc.local (před řádek ukončení 0):

vi /etc/rc.local
[...]/bin/mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs[...] 

Tím zajistíte, že se sdílená složka připojí po připojení sítě.

4 testování

Nyní vytvoříme nějaké testovací soubory na sdílené složce GlusterFS:

client1.example.com:

touch /mnt/glusterfs/test1
touch /mnt/glusterfs/test2

Nyní se podívejme na adresář /data/export na server1.example.com a server2.example.com. Soubory test1 a test2 by měly být přítomny na každém uzlu:

server1.example.com/server2.example.com:

ls -l /data/export 

[email protected]:~# ls -l /data/export
celkem 0
-rw-r--r-- 1 root root 0 2012-03-29 14:51 test1
-rw-r--r-- 1 root root 0 2012-03-29 14:51 test2
[e-mail chráněný]:~#

Nyní vypneme server1.example.com a přidáme/smažeme některé soubory ve sdílené složce GlusterFS na webu client1.example.com.

server1.example.com:

vypnout -h nyní

client1.example.com:

touch /mnt/glusterfs/test3
touch /mnt/glusterfs/test4
rm -f /mnt/glusterfs/test2

Změny by měly být viditelné v adresáři /data/export na server2.example.com:

server2.example.com:

ls -l /data/export

[email protected]:~# ls -l /data/export
celkem 0
-rw-r--r-- 1 root root 0 2012-03-29 14:51 test1
-rw-r--r-- 1 kořenový kořen 0 2012-03-29 14:52 test3
-rw-r--r-- 1 kořenový kořen 0 2012-03-29 14:52 test4
[e-mail chráněn]:~#

Spusťte znovu server1.example.com a podívejte se do adresáře /data/export:

server1.example.com:

ls -l /data/export

[email protected]:~# ls -l /data/export
celkem 0
-rw-r--r-- 1 root root 0 2012-03-29 14:51 test1
-rw-r--r-- 1 root root 0 2012-03-29 14:51 test2
[e-mail chráněný]:~#

Jak vidíte, server1.example.com si nevšiml změn, ke kterým došlo, když byl mimo provoz. To je snadné opravit, vše, co musíme udělat, je vyvolat příkaz čtení na sdílené složce GlusterFS na klient1.example.com, např.:

client1.example.com:

ls -l /mnt/glusterfs/

[email protected]:~# ls -l /mnt/glusterfs/
celkem 8
-rw-r--r-- 1 kořenový kořen 0 2012-03-29 14:51 test1
-rw-r--r-- 1 kořenový kořen 0 2012-03-29 14:52 test3
-rw-r--r-- 1 kořenový kořen 0 2012-03-29 14:52 test4
[e-mail chráněn]:~#

Nyní se znovu podívejte na adresář /data/export na server1.example.com a měli byste vidět, že změny byly replikovány do tohoto uzlu:

server1.example.com:

ls -l /data/export 

[email protected]:~# ls -l /data/export
celkem 8
-rw-r--r-- 1 root root 0 2012-03-29 14:51 test1
-rw-r--r-- 1 kořenový kořen 0 2012-03-29 14:52 test3
-rw-r--r-- 1 kořenový kořen 0 2012-03-29 14:52 test4
[e-mail chráněn]:~#

  • GlusterFS:http://www.gluster.org/
  • Debian:http://www.debian.org/

Debian
  1. Automatická replikace souborů (zrcadlení) přes dva úložné servery s GlusterFS 3.2.x na Ubuntu 12.10

  2. Úložiště s vysokou dostupností s GlusterFS na Debianu Lenny – Automatická replikace souborů přes dva úložné servery

  3. Distribuované úložiště napříč čtyřmi uzly úložiště s GlusterFS na Debianu Lenny

  1. Distribuované replikované úložiště mezi čtyři uzly úložiště s GlusterFS na Debianu Lenny

  2. Pruhování přes čtyři úložné uzly s GlusterFS na Debianu Lenny

  3. Vytvoření samostatného úložného serveru podobného NFS s GlusterFS na Debianu Lenny

  1. Vytvoření samostatného úložného serveru podobného NFS pomocí GlusterFS 3.0.x na Debian Squeeze

  2. Úložiště s vysokou dostupností s GlusterFS na CentOS 5.4 – Automatická replikace souborů (zrcadlení) mezi dvěma úložnými servery

  3. Distribuované úložiště mezi čtyřmi uzly úložiště s GlusterFS na CentOS 5.4