Użyjemy Gluster’a jak systemu do rozproszonego przechowywania plików. W tym celu uruchomimy 4 serwery, następnie podepniemy do tego systemu jednego klienta.
server1.example.com: IP address 192.168.0.100 (server)server2.example.com: IP address 192.168.0.101 (server)server3.example.com: IP address 192.168.0.102 (server)server4.example.com: IP address 192.168.0.103 (server)client1.example.com: IP address 192.168.0.104 (client)
Dodatkowo musimy skonfigurować wszystkie hosty w taki sposób, aby mogły rozwiązywać na wzajem swoje nazwy (muszą się „widzieć” w sieci).
Na każdym edytujemy:
nano /etc/hosts
do niego na każdym hoście dodajemy:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.0.100 server1.example.com server1
192.168.0.101 server2.example.com server2
192.168.0.102 server3.example.com server3
192.168.0.103 server4.example.com server4
192.168.0.104 client1.example.com client1
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY*
rpm –import https://fedoraproject.org/static/0608B895.txt
cd /tmp
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum install yum-priorities
Edytujemy:
nano /etc/yum.repos.d/epel.repo
dodajemy w sekcji [epel] pod enabled=1:
priority=10
2) Konfiguracja GlusterFS:
yum install glusterfs-server
Utworzymy powiązanie dla uruchomienia GlusterFS’a:
chkconfig –levels 235 glusterd on
/etc/init.d/glusterd start
glusterfsd –version
glusterfs 3.2.7 built on Jan 27 2013 13:22:28Repository revision: git://git.gluster.com/glusterfs.gitCopyright (c) 2006-2011 Gluster Inc.
GlusterFS comes with ABSOLUTELY NO WARRANTY.You may redistribute copies of GlusterFS under the terms of the GNU General Public License.
gluster peer probe server2.example.comgluster peer probe server3.example.com
gluster peer probe server4.example.com
gluster peer status
w odpowiedzi powinniśmy otrzymać:
Number of Peers: 3
Hostname: server2.example.com
Uuid: 600ff607-f7fd-43f6-af8d-419df703376d
State: Peer in Cluster (Connected)
Hostname: server3.example.com
Uuid: 1d6a5f3f-c2dd-4727-a050-0431772cc381
State: Peer in Cluster (Connected)
Hostname: server4.example.com
Uuid: 0bd9d445-0b5b-4a91-be6f-02b13c41d5d6
State: Peer in Cluster (Connected)
gluster volume create testvol stripe 4 transport tcp server1.example.com:/data server2.example.com:/data server3.example.com:/data server4.example.com:/data
powinniśmy otrzymać:
Creation of volume testvol has been successful. Please start the volume to access data.
gluster volume start testvol
Może się okazać że z wystartowaniem Gluster’a będzie problem.
Server(1-4):
Na każdej maszynie prócz Client1 uruchomiamy:
netstat -tap | grep glusterfsd
Jeżeli otrzymamy odpowiedź w mniej więcej takim kształcie wszystko jest ok:
tcp 0 0 *:24009 *:* LISTEN 1365/glusterfsd
tcp 0 0 localhost:1023 localhost:24007 ESTABLISHED 1365/glusterfsd
tcp 0 0 server1.example.com:24009 server1.example.com:1023 ESTABLISHED 1365/glusterfsd
/etc/init.d/glusterfsd restart
netstat -tap | grep glusterfsd
gluster volume info
Volume Name: testvol
Type: Stripe
Status: Started
Number of Bricks: 4
Transport-type: tcp
Bricks:
Brick1: server1.example.com:/data
Brick2: server2.example.com:/data
Brick3: server3.example.com:/data
Brick4: server4.example.com:/data
gluster volume set testvol auth.allow 192.168.0.104
Dostęp możemy rozszerzyć na kilka adresów lub całych podsieci.
gluster volume info
Volume Name: testvol
Type: Stripe
Status: Started
Number of Bricks: 4
Transport-type: tcp
Bricks:
Brick1: server1.example.com:/data
Brick2: server2.example.com:/data
Brick3: server3.example.com:/data
Brick4: server4.example.com:/data
Options Reconfigured:auth.allow: 192.168.0.104
3) Konfiguracja Client1:
yum install glusterfs-client
mkdir /mnt/glusterfs
Montujemy glusterfs:
mount.glusterfs server1.example.com:/testvol /mnt/glusterfs
Sprawdzamy czy udało się poprawnie zamontować nowy udział:
mount
/dev/mapper/vg_client1-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
server1.example.com:/testvol on /mnt/glusterfs type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
df -h
Filesystem Size Used Avail Use% Mounted on/dev/mapper/vg_client1-LogVol00 9.7G 1.7G 7.5G 19% /tmpfs 499M 0 499M 0% /dev/shm/dev/sda1 504M 39M 440M 9% /bootserver1.example.com:/testvol 116G 4.2G 106G 4% /mnt/glusterfs
Jeżeli chcemy zrobić auto-mont glusterfs’a po starcie klienta:
nano /etc/fstab
dodajemy do niego wiersz:
server1.example.com:/testvol /mnt/glusterfs glusterfs defaults,_netdev 0 0
4)Test GlusterFS’a:
dd if=/dev/zero of=/mnt/glusterfs/test.img bs=1024k count=1000
Sprawdzamy jego rozmiar:
ls -l /mnt/glusterfs
total 1024032
Teraz sprawdźmy czy utworzony plik jest dostępny na Server(1-4):
ls -l /data
total 256008-rw-r–r– 1 root root 1046478848 2013-01-27 17:27 test.img
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).
Jak w Gluster ustalić redundancje danych? Jak ustawić odpowiednik RAIDu?
Przesłałem na maila kilka stron konfiguracji, mam nadzieję że wystarczy.