Tento tutoriál ukazuje, jak nastavit samostatný úložný server na Fedoře 12. Místo NFS zde použiji GlusterFS. Klientský systém 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 dva systémy, server a klienta:
- server1.example.com:IP adresa 192.168.0.100 (server)
- client1.example.com:IP adresa 192.168.0.101 (klient)
Oba systémy by měly být schopny přeložit název hostitele druhého systému. Pokud to nelze provést prostřednictvím DNS, měli byste upravit soubor /etc/hosts tak, aby na obou systémech obsahoval následující dva řádky:
vi /etc/hosts
[...]192.168.0.100 server1.example.com server1192.168.0.101 klient1.example.com klient1[...] |
(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í serveru GlusterFS
server1.example.com:
Server GlusterFS je dostupný jako balíček pro Fedoru 12, takže jej můžeme nainstalovat následovně:
yum nainstalovat glusterfs-server
Příkaz
glusterfs --version
by nyní měla zobrazovat verzi GlusterFS, kterou jste právě nainstalovali (v tomto případě 2.0.9):
[[email protected] ~]# glusterfs --version
glusterfs 2.0.9 postaveno 3. ledna 2010 00:12:49
Revize úložiště: v2.0.9
Autorská práva (c) 2006- 2009 Gluster Inc.
GlusterFS s ABSOLUTNĚ ŽÁDNÁ ZÁRUKA.
Můžete redistribuovat kopie GlusterFS za podmínek GNU General Public Lense.
[[email protected]ver1 ~]#
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.101 =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 úložiště/adresář voleb posix /data/exportend-volumevolume typ zámků funkce/volba zámků povinné-zámky na dílčích svazcích výkon typu cihla posixend-volumevolume /io-threads option thread-count 8 subvolumes locksend-volumevolume server type protocol/server option transport-type tcp option auth.addr.brick.allow 192.168.0.101 # Zde můžete upravit a přidat seznam povolených klientů oddělených IP adresami (jmény) 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.101, 192.168.0.102).
Poté vytvoříme odkazy pro spuštění systému pro server GlusterFS a spustíme jej:
chkconfig --levels 35 glusterfsd na
/etc/init.d/glusterfsd start
3 Nastavení klienta GlusterFS
client1.example.com:
Existuje rpm balíček klienta GlusterFS pro Fedoru 12, ale problém s ním je, že se zobrazí chyby jako df:`/mnt/glusterfs':Software způsobil přerušení připojení nebo df:`/mnt/glusterfs':Transportní koncový bod není připojen při pokusu o přístup ke sdílené složce GlusterFS. To je důvod, proč stavíme klienta GlusterFS ze zdrojů, abychom se vyhnuli těmto problémům.
Než sestavíme klienta GlusterFS, nainstalujeme jeho předpoklady:
yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'
yum install libibverbs-devel fuse-devel
Poté si stáhneme zdrojové kódy GlusterFS 2.0.9 (upozorňujeme, že se jedná o stejnou verzi, která je nainstalována na serveru!) a sestavíme GlusterFS následovně:
cd /tmp
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.9.tar.gz
tar xvfz glusterfs-2.0.9.tar .gz
cd glusterfs-2.0.9
./configure
Na konci příkazu ./configure byste měli vidět něco takového:
[...]
Přehled konfigurace GlusterFS
============================
Klient FUSE :yes
Infiniband slovesa : ano
epoll IO multiplex : yes
Berkeley-DB : ano
libglusterfsclient : ano
argp-samostatný : ne
[[email protected] glusterfs-2.0.9]#
make &&make install
ldconfig
Poté zkontrolujte verzi GlusterFS (měla by být 2.0.9):
glusterfs --version
[[email protected] glusterfs-2.0.9]# glusterfs --version
glusterfs 2.0.9 postaveno 19. února 2010 19:20:46
Revize úložiště: v2.0.9
Autorská práva ( c) 2006–2009 Gluster Inc.
GlusterFS s ABSOLUTNĚ ŽÁDNÁ ZÁRUKA.
Můžete redistribuovat kopie GlusterFS za podmínek Pubense.lic GNU Lic General
[[email protected] glusterfs-2.0.9]#
Poté vytvoříme následující dva adresáře:
mkdir /mnt/glusterfs
mkdir /etc/glusterfs
Dále vytvoříme soubor /etc/glusterfs/glusterfs.vol:
vi /etc/glusterfs/glusterfs.vol
volume remote type protocol/client option transport-type tcp option remote-host server1.example.com # může být IP nebo název hostitele volba remote-subvolume brickend -volumevolume writebehind type performance/write-behind option window-size 4 MB subvolumes remoteend-volumevolume cache type performance/io-cache option cache-size 512 MB subvolumes writebehindend-volume |
Ujistěte se, že používáte správný název hostitele serveru nebo IP adresu v řádku volby vzdáleného hostitele!
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] glusterfs-2.0.9]# mount
/dev/mapper/vg_server2-lv_root na / typ ext4 (rw)
proc na /proc typ proc (rw)
sysfs na /sys typu sysfs (rw)
devpts na /dev/pts typu devpts (rw,gid=5,mode=620)
tmpfs na /dev/shm typu tmpfs (rw)
/dev/sda1 na /boot typu ext4 (rw)
žádný na /proc/sys/fs/binfmt_misc typ binfmt_misc (rw)
sunrpc na /var/lib/nfs/rpc_pipefs typ rpc_pipefs (rw)
/etc/glusterfs/glusterfs.vol na /mnt/glusterfs typu fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
[[email protected] glusterfs-2.0.9]#
... a...
df -h
[[email protected] glusterfs-2.0.9]# df -h
Systém souborů Velikost Použito Využití % Připevněno na
/dev/mapper/vg_server2-lv_2-lv 2 G 2 G 2 G 2 G 2 G 2 G 2 G 2 G 2
tmpfs 185m 0 185m 0%/dev/shm
/dev/sda1 194m 23m 161m/boot
/etc/glusterfs/glusterfs.vol
29g 2,7g 25g 10 % /mnt/glusterfs
[[email protected] glusterfs-2.0.9]#
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 výchozí nastavení glusterfs 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
4 odkazy
- GlusterFS:http://www.gluster.org/
- Fedora:http://fedoraproject.org/