GNU/Linux >> Znalost Linux >  >> Ubuntu

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

Tento tutoriál ukazuje, jak nastavit úložiště s vysokou dostupností se dvěma úložnými servery (Ubuntu 12.10), 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é Ubuntu 12.10) 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)
  • klient1.example.com:IP adresa 192.168.0.102 (klient)

Protože všechny kroky z tohoto tutoriálu spustíme s právy root, můžeme buď před všechny příkazy v tomto tutoriálu přidat řetězec sudo, nebo se staneme rootem hned teď zadáním

sudo su

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 Ubuntu 12.10, takže jej můžeme nainstalovat následovně:

apt-get install glusterfs-server

Příkaz

glusterfsd --version

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

[e-mail chráněno]:~# glusterfsd --version
glusterfs 3.2.5 vytvořeno 31. ledna 2012 07:39:58
Revize úložiště:git://git.gluster.com/glusterfs .git
Copyright (c) 2006-2011 Gluster Inc.
GlusterFS se nevztahuje ABSOLUTNĚ ŽÁDNÁ ZÁRUKA.
Kopie GlusterFS můžete redistribuovat pod podmínky GNU General Public License.
[chráněno e-mailem]:~#

Pokud používáte firewall, ujistěte se, že jsou na server1.example.com a server2.example.com otevřené porty TCP 111, 24007, 24008, 24009-(24009 + počet bloků na všech svazcích).

Dále musíme přidat server2.example.com do důvěryhodného úložiště (upozorňujeme, že všechny konfigurační příkazy GlusterFS spouštím ze serveru server1.example.com, ale můžete je spouštět také ze serveru server2.example.com, protože konfigurace je replikovány mezi uzly GlusterFS – jen se ujistěte, že používáte správné názvy hostitelů nebo IP adresy):

server1.example.com:

Na server1.example.com spusťte

gluster peer probe server2.example.com
[e-mail chráněno]:~# gluster peer probe server2.example.com
Test úspěšný
[email protected]:~#

Stav fondu důvěryhodného úložiště by nyní měl být podobný tomuto:

stav sdruženého partnera
[e-mail chráněn]:~# stav skupiny rovnocenných uživatelů
Počet uživatelů:1
Název hostitele:server2.example.com
Uuid:7cd93007-fccb-4fcb-8063-133e6ba81cd9
Stav:Partner v clusteru (připojeno)
[chráněno e-mailem]:~#

Dále vytvoříme sdílení s názvem testvol se dvěma replikami (upozorňujeme, že počet replik se v tomto případě rovná počtu serverů, protože chceme nastavit zrcadlení) na server1.example.com a server2.example.com v /data adresář (bude vytvořen, pokud neexistuje):

svazek clusteru vytvořit testvol repliku 2 transport tcp server1.example.com:/data server2.example.com:/data
[e-mail chráněno]:~# svazek clusteru vytvořit repliku testvol 2 transport tcp server1.example.com:/data server2.example.com:/data
Vytvoření svazku testvol bylo úspěšné. Pro přístup k datům spusťte svazek.
[e-mail chráněn]:~#

Spusťte hlasitost:

gluster volume start testvol

Je možné, že výše uvedený příkaz vám říká, že akce nebyla úspěšná:

[email protected]:~# gluster volume start testvol
Start volume testvol byl neúspěšný
[email protected]:~#

V tomto případě byste měli zkontrolovat výstup...

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

netstat -tap | grep glusterfsd

na obou serverech.

Pokud získáte výstup takto...

[e-mail chráněn]:~# netstat -tap | GREP GLUSTERFSD 
TCP 0 0*:24009*:*Poslouchejte 1548 /glusterfsd
tcp 0 0 localhost.localdom:1019 localhost.localdo:24007 zavedeno 1548 /glusterfsd
[e -mail chráněno]:~ ~ ~ ~ ~ ~ ~ ~ ~ #

... vše je v pořádku, ale pokud nedostanete žádný výstup...

[e-mail chráněn]:~# netstat -tap | grep glusterfsd
[chráněno e-mailem]:~#

... restartujte démona GlusterFS na odpovídajícím serveru (v tomto případě server2.example.com):

server2.example.com:

/etc/init.d/glusterfs-server restart

Poté zkontrolujte výstup...

netstat -tap | grep glusterfsd

... znovu na tom serveru - nyní by to mělo vypadat takto:

[e-mail chráněn]:~# netstat -tap | GREP GLUSTERFSD 
TCP 0 0*:24010*:*Poslouchejte 1458 /glusterfsd
tcp 0 0 localhost.localdom:1021 localhost.localdo:24007 zavedeno 1458 /glusterfsd
[e -mail chráněno]:~ ~ ~ ~ ~ ~ ~ ~ ~ #

Nyní zpět na server1.example.com:

server1.example.com:

Stav svazku můžete zkontrolovat pomocí příkazu

Informace o objemu clusteru
[e-mail chráněno]:~# info o objemu clusteru
Název svazku:testvol
Typ:Replikovat
Stav:Spuštěno
Počet cihel:2
Typ dopravy:tcp
Cihly:
Brick1 :server1.example.com:/data
Brick2:server2.example.com:/data
[chráněno e-mailem]:~#

Ve výchozím nastavení se ke svazku mohou připojit všichni klienti. Pokud chcete udělit přístup pouze k client1.example.com (=192.168.0.102), spusťte:

nastavení hlasitosti clusteru testvol auth.allow 192.168.0.102

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).

Informace o svazku by nyní měly zobrazovat aktualizovaný stav:

Informace o objemu clusteru
[e-mail chráněno]:~# info o objemu clusteru
Název svazku:testvol
Typ:Replikovat
Stav:Spuštěno
Počet cihel:2
Typ dopravy:tcp
Cihly:
Brick1 :server1.example.com:/data
Brick2:server2.example.com:/data
Možnosti překonfigurovány:
auth.allow:192.168.0.102
[chráněno e-mailem]:~#

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

A je to! Nyní můžeme připojit souborový systém GlusterFS do /mnt/glusterfs pomocí následujícího příkazu:

mount.glusterfs server1.example.com:/testvol /mnt/glusterfs

(Místo server1.example.com můžete také použít server2.example.com ve výše uvedeném příkazu!)

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

mount
[e-mail chráněno]:~# mount
/dev/mapper/server3-root na / typ ext4 (rw,errors=remount-ro)
proc na /proc typ proc (rw,noexec ,nosuid,nodev)
sysfs na /sys typu sysfs (rw,noexec,nosuid,nodev)
fusectl na /sys/fs/fuse/connections typu fusectl (rw)
žádné na / sys/kernel/debug typ debugfs (rw)
žádné na /sys/kernel/security typ securityfs (rw)
udev na /dev typ devtmpfs (rw,mode=0755)
devpts zapnuté /dev/pts typ devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs na /spuštění typu tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
žádné na /run/lock typu tmpfs (rw,noexec,nosuid,nodev,size=5242880)
žádné na /run/shm typu tmpfs (rw,nosuid,nodev)
/dev/sda1 na /boot typ ext2 (rw)
server1.example.com:/testvol na /mnt/glusterfs typ fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
[e-mail chráněný]:~#

... a...

df -h
[e-mail chráněno]:~# df -h
Systém souborů            Velikost  Použitá Dostupnost % Připojeno na
/dev/mapper/server3-root
                                                /> udev 238m 4,0k 238m 1%/dev
tmpfs 99m 212k 99m 1%/běh
Žádné 5,0 m 0 5,0 m 0%/zámek
Žádné 247M 0 247M 0%/ run/shm
/dev/sda1              228 M   24 M  193 M  11 % /boot
server1.example.com:/testvol
  /            / pošta                         G                            2 G chráněno]:~#

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
[...]server1.example.com:/testvol /mnt/glusterfs výchozí nastavení glusterfs,_netdev 0 0

(Opět, místo server1.example.com můžete také použít server2.example.com!)

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

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 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
[e-mail chráněný]:~# ls -l /data
celkem 8
-rw-r--r-- 1 kořenový adresář 0 2012-12-17 11:17 test1
-rw-r--r-- 1 root root 0 2012-12-17 11:17 test2
[email protected]:~#

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 na server2.example.com:

server2.example.com:

ls -l /data
[e-mail chráněný]:~# ls -l /data
celkem 8
-rw-r--r-- 1 kořenový adresář 0 2012-12-17 11:17 test1
-rw-r--r-- 1 kořenový kořen 0 2012-12-17 11:38 test3
-rw-r--r-- 1 kořenový kořen 0 2012-12-17 11:38 test4
[e-mail chráněn]:~#

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

server1.example.com:

ls -l /data
[e-mail chráněný]:~# ls -l /data
celkem 8
-rw-r--r-- 1 kořenový adresář 0 2012-12-17 11:17 test1
-rw-r--r-- 1 root root 0 2012-12-17 11:17 test2
[email protected]:~#

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/
[e-mail chráněný]:~# ls -l /mnt/glusterfs/
celkem 8
-rw-r--r-- 1 kořenový kořen 0 2012-12-17 11:17 test1
-rw-r--r-- 1 kořenový kořen 0 2012-12-17 11:38 test3
-rw-r--r-- 1 kořenový kořen 0 2012-12-17 11:38 test4
[e-mail chráněn]:~#

Nyní se znovu podívejte na adresář /data 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
[e-mail chráněný]:~# ls -l /data
celkem 4
-rw-r--r-- 1 kořenový adresář 0 2012-12-17 11:17 test1
-rw-r--r-- 1 kořenový kořen 0 2012-12-17 11:38 test3
-rw-r--r-- 1 kořenový kořen 0 2012-12-17 11:38 test4
[e-mail chráněn]:~#

  • GlusterFS:http://www.gluster.org/
  • Dokumentace GlusterFS 3.2:http://download.gluster.com/pub/gluster/glusterfs/3.2/Documentation/AG/html/index.html
  • Ubuntu:http://www.ubuntu.com/

Ubuntu
  1. Distribuované úložiště mezi čtyřmi uzly úložiště s GlusterFS 3.2.x na Ubuntu 12.10

  2. Distribuované replikované úložiště mezi čtyři uzly úložiště s GlusterFS 3.2.x na Ubuntu 12.10

  3. Pruhování přes čtyři uzly úložiště s GlusterFS 3.2.x na Ubuntu 12.10

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

  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

  1. Pruhování přes čtyři uzly úložiště s GlusterFS na CentOS 5.4

  2. Úložiště s vysokou dostupností s GlusterFS 3.2.x na CentOS 6.3 – Automatická replikace souborů (zrcadlení) přes dva úložné servery

  3. Pruhování přes čtyři uzly úložiště s GlusterFS 3.2.x na CentOS 6.3