SlideShare a Scribd company logo
1 of 32
Download to read offline
GlusterFS
czyli interesująca alternatywa dla NFS-a
  w środowiskach wysokodostępnych

                    Łukasz Jagiełło
          l.jagiello@gratka-technologie.pl
Po co nam storage?
Po co nam storage?
Co mamy do dyspozycji?
Co mamy do dyspozycji?
Co mamy do dyspozycji?
Co mamy do dyspozycji?
Dlaczego wielu ludzi kupuje macierze,
     chociaż ich nie potrzebuje?
No to może software?
Przegląd rynku:
●   DRBD
●   ZFS (w różnych wydaniach)
●   Hadoop
●   Ceph
●   GridFS
●   Lustre
●   GlusterFS
●   i wiele innych...
Co to jest Gluster
●   open source software (GPLv3)
●   clustered file system
●   scal-out (several petabytes)
●   working at user space
●   high-performance
●   Infiniband RDMA or TCP/IP
Liniowa Skalowalność?
    O czym musimy pamiętać:
●   HDD
●   system
●   CPU
●   filesystem
●   metadata
●   network
Jak to działa?
Jak to działa...


1. Eliminacja synchronizacji i aktualizacji
   metadanych
Jak to działa...


1. Eliminacja synchronizacji i aktualizacji
   metadanych

2. Efektywna dystrybucja danych w celu
   zapewnienia skalowalności i niezawodności
Jak to działa...


1. Eliminacja synchronizacji i aktualizacji
   metadanych

2. Efektywna dystrybucja danych w celu
   zapewnienia skalowalności i niezawodności

3. Stosowanie dostępu równoległego w celu
   zmaksymalizowania wydajności
Jak to brak metadanych?
●   Wszystkie dane na zwykłych systemach plików
    (np. Ext3/4, ReiserFS, ZFS, itd.)
Jak to brak metadanych?
●   Wszystkie dane na zwykłych systemach plików
    (np. Ext3/4, ReiserFS, ZFS, itd.)

●   Dzielenie plików z użyciem „split”
Jak to brak metadanych?
●   Wszystkie dane na zwykłych systemach plików
    (np. Ext3/4, ReiserFS, ZFS, itd.)

●   Dzielenie plików z użyciem „split”

●   Mirror w trybie „active-active”
Jak to brak metadanych?
●   Wszystkie dane na zwykłych systemach plików
    (np. Ext3/4, ReiserFS, ZFS, itd.)

●   Dzielenie plików z użyciem „split”

●   Mirror w trybie „active-active”

●   Lokalizowanie/rozrzucanie plików z użyciem
    podrasowanego algorytmu Daviesa-Meyera*
Dostęp do danych:

  ●   GlusterFS Native

  ●   NFS

  ●   CIFS

  ●   WebDAV

  ●   FTP
Schemat działania
Trochę praktyki...
Tryby działania:


  ●   Distributed

  ●   Distributed Replicated

  ●   Distributed Striped
Banalna instalacja

rpm -Uhv glusterfs-core-3.1.0-1 glusterfs-fuse-3.1.0-1

chkconfig glusterd on

service glusterd start




iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 24007 -j ACCEPT

iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 38465:38485 -j
ACCEPT

service iptables save

service iptables restart
Distributed Replicated
gluster> volume create test replica 2 transport tcp 172.17.100.1:/d0 172.17.100.2:/d0

Creation of volume test has been successful. Please start the volume to access data.

gluster> volume start test

Starting volume test has been successful

gluster> volume info



Volume Name: test

Type: Replicate

Status: Started

Number of Bricks: 2

Transport-type: tcp

Bricks:

Brick1: 172.17.100.1:/d0

Brick2: 172.17.100.2:/d0
Distributed Replicated (2)
[root@node1 ~]# df -h

System plików           rozm. użyte dost. %uż. zamont. na

/dev/mapper/VolGroup    6,5G   932M   5,3G   15% /

tmpfs                   247M     0    247M   0% /dev/shm

/dev/sda1               485M   27M    433M   6% /boot




[root@p0x ~]# mount -t glusterfs 172.17.100.1:/test /media/cos2/

[root@p0x ~]# df -h

System plików           rozm. użyte dost. %uż. zamont. na

/dev/sda1               228G   106G   111G   49% /

tmpfs                   2,0G   15M    2,0G   1% /dev/shm

172.17.100.1:/test      6,5G   932M   5,3G   15% /media/cos2
Distributed Replicated (3)
gluster> volume info

Volume Name: test

Type: Replicate

Status: Started

Number of Bricks: 2

Transport-type: tcp

Bricks:

Brick1: 172.17.100.1:/d0

Brick2: 172.17.100.2:/d0



gluster> volume replace-brick test 172.17.100.1:/d0 172.17.100.3:/d0 start

replace-brick started successfully



gluster> volume replace-brick test 172.17.100.1:/d0 172.17.100.3:/d0 commit

replace-brick commit successful
Co jeszcze ?
volume info [all|<VOLNAME>] - list information of all volumes

volume create <NEW-VOLNAME> [stripe <COUNT>] [replica <COUNT>] [transport <tcp|rdma>] <NEW-
BRICK>

volume delete <VOLNAME>



volume start|stop <VOLNAME>



volume add-brick|remove-brick <VOLNAME> <NEW-BRICK>



volume rebalance <VOLNAME> start|stop|status



volume replace-brick <VOLNAME> (<BRICK> <NEW-BRICK>) start|pause|abort|status



volume set <VOLNAME> <KEY> <VALUE>



volume reset <VOLNAME>
Dlaczego GlusterFS?
- dowolny sprzęt kompatybilny z Fedora 11

- wygodne skalowanie

- elastyczne volumeny

- NFS, native client, CIFS, HTTP, FTP

- zawsze możliwy dostęp do danych

- brak centralnego serwera z metadanymi

- POSIX
Pytania?

More Related Content

What's hot

HTTP od zera do bohatera
HTTP od zera do bohateraHTTP od zera do bohatera
HTTP od zera do bohatera
HordeTechnology
 
Red Hat Linux 8. Biblia
Red Hat Linux 8. BibliaRed Hat Linux 8. Biblia
Red Hat Linux 8. Biblia
Wydawnictwo Helion
 
JDBC. Leksykon kieszonkowy
JDBC. Leksykon kieszonkowyJDBC. Leksykon kieszonkowy
JDBC. Leksykon kieszonkowy
Wydawnictwo Helion
 

What's hot (20)

Infrastructure As Code
Infrastructure As CodeInfrastructure As Code
Infrastructure As Code
 
PLNOG19 - Jakub Słociński - Wieloprocesorowa platforma x86 a wydajny routing ...
PLNOG19 - Jakub Słociński - Wieloprocesorowa platforma x86 a wydajny routing ...PLNOG19 - Jakub Słociński - Wieloprocesorowa platforma x86 a wydajny routing ...
PLNOG19 - Jakub Słociński - Wieloprocesorowa platforma x86 a wydajny routing ...
 
Serwer internetowy w systemie Linux
Serwer internetowy w systemie LinuxSerwer internetowy w systemie Linux
Serwer internetowy w systemie Linux
 
PHP@Docker - w produkcji
PHP@Docker - w produkcjiPHP@Docker - w produkcji
PHP@Docker - w produkcji
 
Jak działa CPython
Jak działa CPythonJak działa CPython
Jak działa CPython
 
Monitoring sieci
Monitoring sieciMonitoring sieci
Monitoring sieci
 
PHP-PM. Hit czy kit?
PHP-PM. Hit czy kit?PHP-PM. Hit czy kit?
PHP-PM. Hit czy kit?
 
Aplikacje internetowe real-time w oparciu o React/Redux
Aplikacje internetowe real-time w oparciu o React/ReduxAplikacje internetowe real-time w oparciu o React/Redux
Aplikacje internetowe real-time w oparciu o React/Redux
 
HTTP od zera do bohatera
HTTP od zera do bohateraHTTP od zera do bohatera
HTTP od zera do bohatera
 
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...
 
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHPXdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
 
LXC - kontener pingwinów
LXC - kontener pingwinówLXC - kontener pingwinów
LXC - kontener pingwinów
 
Allegro Tech Talks Poznań #4: Jak przyspieszyć SOLRa w kilku prostych krokach.
Allegro Tech Talks Poznań #4: Jak przyspieszyć SOLRa w kilku prostych krokach. Allegro Tech Talks Poznań #4: Jak przyspieszyć SOLRa w kilku prostych krokach.
Allegro Tech Talks Poznań #4: Jak przyspieszyć SOLRa w kilku prostych krokach.
 
100Mpps czyli jak radzić sobie z atakami DDoS?
100Mpps czyli jak radzić sobie z atakami DDoS?100Mpps czyli jak radzić sobie z atakami DDoS?
100Mpps czyli jak radzić sobie z atakami DDoS?
 
100 M pakietów na sekundę dla każdego.
100 M pakietów na sekundę dla każdego. 100 M pakietów na sekundę dla każdego.
100 M pakietów na sekundę dla każdego.
 
Ansible - Automatyzacja zadań IT
Ansible - Automatyzacja zadań ITAnsible - Automatyzacja zadań IT
Ansible - Automatyzacja zadań IT
 
Red Hat Linux 8. Biblia
Red Hat Linux 8. BibliaRed Hat Linux 8. Biblia
Red Hat Linux 8. Biblia
 
JDBC. Leksykon kieszonkowy
JDBC. Leksykon kieszonkowyJDBC. Leksykon kieszonkowy
JDBC. Leksykon kieszonkowy
 
Debugowanie skryptow php za pomoca xdebug
Debugowanie skryptow php za pomoca xdebugDebugowanie skryptow php za pomoca xdebug
Debugowanie skryptow php za pomoca xdebug
 
Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...
Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...
Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...
 

Similar to GlusterFS

The story of GOG.com Cache - PHPers 2014 ( PL )
 The story of GOG.com Cache - PHPers 2014 ( PL ) The story of GOG.com Cache - PHPers 2014 ( PL )
The story of GOG.com Cache - PHPers 2014 ( PL )
GOG.com dev team
 
Info meet pomiary wydajności
Info meet pomiary wydajnościInfo meet pomiary wydajności
Info meet pomiary wydajności
magda3695
 

Similar to GlusterFS (20)

DTrace
DTraceDTrace
DTrace
 
Shall we play a game? PL version
Shall we play a game? PL versionShall we play a game? PL version
Shall we play a game? PL version
 
Krytyczne błędy konfiguracji
Krytyczne błędy konfiguracjiKrytyczne błędy konfiguracji
Krytyczne błędy konfiguracji
 
Prezentacja Jabber
Prezentacja JabberPrezentacja Jabber
Prezentacja Jabber
 
OpenEmbedded
OpenEmbeddedOpenEmbedded
OpenEmbedded
 
Skalowanie PostgreSQL @ DBConf.PL 2014
Skalowanie PostgreSQL @ DBConf.PL 2014Skalowanie PostgreSQL @ DBConf.PL 2014
Skalowanie PostgreSQL @ DBConf.PL 2014
 
PLONG 21: Marcel Guzenda - Chmura_prywatna_w_wydaniu_Hiperkonwergentnym
PLONG 21: Marcel Guzenda - Chmura_prywatna_w_wydaniu_HiperkonwergentnymPLONG 21: Marcel Guzenda - Chmura_prywatna_w_wydaniu_Hiperkonwergentnym
PLONG 21: Marcel Guzenda - Chmura_prywatna_w_wydaniu_Hiperkonwergentnym
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
 
Złam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDKZłam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDK
 
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
 
Stosy sieciowe w przestrzeni użytkownika.
Stosy sieciowe w przestrzeni użytkownika.Stosy sieciowe w przestrzeni użytkownika.
Stosy sieciowe w przestrzeni użytkownika.
 
PLNOG 13: Piotr Okupski: Implementation of Wanguard software as a protection ...
PLNOG 13: Piotr Okupski: Implementation of Wanguard software as a protection ...PLNOG 13: Piotr Okupski: Implementation of Wanguard software as a protection ...
PLNOG 13: Piotr Okupski: Implementation of Wanguard software as a protection ...
 
PLNOG 8: Łukasz Bromirski - IP Anycast - Ochrona i skalowanie usług sieciowych
PLNOG 8: Łukasz Bromirski - IP Anycast - Ochrona i skalowanie usług sieciowych PLNOG 8: Łukasz Bromirski - IP Anycast - Ochrona i skalowanie usług sieciowych
PLNOG 8: Łukasz Bromirski - IP Anycast - Ochrona i skalowanie usług sieciowych
 
infraxstructure: Robert Mroczkowski "Maszyny się uczą - admińskie rozmówki p...
infraxstructure: Robert Mroczkowski  "Maszyny się uczą - admińskie rozmówki p...infraxstructure: Robert Mroczkowski  "Maszyny się uczą - admińskie rozmówki p...
infraxstructure: Robert Mroczkowski "Maszyny się uczą - admińskie rozmówki p...
 
SELinux, czyli zero-zero-day exploits - DWO 2013
SELinux, czyli zero-zero-day exploits - DWO 2013SELinux, czyli zero-zero-day exploits - DWO 2013
SELinux, czyli zero-zero-day exploits - DWO 2013
 
Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.
 
Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.
 
The story of GOG.com Cache - PHPers 2014 ( PL )
 The story of GOG.com Cache - PHPers 2014 ( PL ) The story of GOG.com Cache - PHPers 2014 ( PL )
The story of GOG.com Cache - PHPers 2014 ( PL )
 
Info meet pomiary wydajności
Info meet pomiary wydajnościInfo meet pomiary wydajności
Info meet pomiary wydajności
 
The story of GOG.com Cache - 4developers 2014 ( PL )
The story of GOG.com Cache - 4developers 2014 ( PL )The story of GOG.com Cache - 4developers 2014 ( PL )
The story of GOG.com Cache - 4developers 2014 ( PL )
 

More from Łukasz Jagiełło (6)

Łukasz Jagiełło - Fast Inverse Square Root - Papers We Love SF 2017
Łukasz Jagiełło - Fast Inverse Square Root - Papers We Love SF 2017Łukasz Jagiełło - Fast Inverse Square Root - Papers We Love SF 2017
Łukasz Jagiełło - Fast Inverse Square Root - Papers We Love SF 2017
 
pASSWORD tYPOS and How to Correct Them Securely
pASSWORD tYPOS and How to Correct Them SecurelypASSWORD tYPOS and How to Correct Them Securely
pASSWORD tYPOS and How to Correct Them Securely
 
Atmosphere 2013
Atmosphere 2013Atmosphere 2013
Atmosphere 2013
 
Puppet
PuppetPuppet
Puppet
 
Mongo db dla administratora
Mongo db dla administratoraMongo db dla administratora
Mongo db dla administratora
 
Haproxy - zastosowania
Haproxy - zastosowaniaHaproxy - zastosowania
Haproxy - zastosowania
 

GlusterFS

  • 1. GlusterFS czyli interesująca alternatywa dla NFS-a w środowiskach wysokodostępnych Łukasz Jagiełło l.jagiello@gratka-technologie.pl
  • 2. Po co nam storage?
  • 3. Po co nam storage?
  • 4. Co mamy do dyspozycji?
  • 5. Co mamy do dyspozycji?
  • 6. Co mamy do dyspozycji?
  • 7. Co mamy do dyspozycji?
  • 8. Dlaczego wielu ludzi kupuje macierze, chociaż ich nie potrzebuje?
  • 9.
  • 10. No to może software?
  • 11. Przegląd rynku: ● DRBD ● ZFS (w różnych wydaniach) ● Hadoop ● Ceph ● GridFS ● Lustre ● GlusterFS ● i wiele innych...
  • 12. Co to jest Gluster ● open source software (GPLv3) ● clustered file system ● scal-out (several petabytes) ● working at user space ● high-performance ● Infiniband RDMA or TCP/IP
  • 13. Liniowa Skalowalność? O czym musimy pamiętać: ● HDD ● system ● CPU ● filesystem ● metadata ● network
  • 15. Jak to działa... 1. Eliminacja synchronizacji i aktualizacji metadanych
  • 16. Jak to działa... 1. Eliminacja synchronizacji i aktualizacji metadanych 2. Efektywna dystrybucja danych w celu zapewnienia skalowalności i niezawodności
  • 17. Jak to działa... 1. Eliminacja synchronizacji i aktualizacji metadanych 2. Efektywna dystrybucja danych w celu zapewnienia skalowalności i niezawodności 3. Stosowanie dostępu równoległego w celu zmaksymalizowania wydajności
  • 18. Jak to brak metadanych? ● Wszystkie dane na zwykłych systemach plików (np. Ext3/4, ReiserFS, ZFS, itd.)
  • 19. Jak to brak metadanych? ● Wszystkie dane na zwykłych systemach plików (np. Ext3/4, ReiserFS, ZFS, itd.) ● Dzielenie plików z użyciem „split”
  • 20. Jak to brak metadanych? ● Wszystkie dane na zwykłych systemach plików (np. Ext3/4, ReiserFS, ZFS, itd.) ● Dzielenie plików z użyciem „split” ● Mirror w trybie „active-active”
  • 21. Jak to brak metadanych? ● Wszystkie dane na zwykłych systemach plików (np. Ext3/4, ReiserFS, ZFS, itd.) ● Dzielenie plików z użyciem „split” ● Mirror w trybie „active-active” ● Lokalizowanie/rozrzucanie plików z użyciem podrasowanego algorytmu Daviesa-Meyera*
  • 22. Dostęp do danych: ● GlusterFS Native ● NFS ● CIFS ● WebDAV ● FTP
  • 25. Tryby działania: ● Distributed ● Distributed Replicated ● Distributed Striped
  • 26. Banalna instalacja rpm -Uhv glusterfs-core-3.1.0-1 glusterfs-fuse-3.1.0-1 chkconfig glusterd on service glusterd start iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 24007 -j ACCEPT iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 38465:38485 -j ACCEPT service iptables save service iptables restart
  • 27. Distributed Replicated gluster> volume create test replica 2 transport tcp 172.17.100.1:/d0 172.17.100.2:/d0 Creation of volume test has been successful. Please start the volume to access data. gluster> volume start test Starting volume test has been successful gluster> volume info Volume Name: test Type: Replicate Status: Started Number of Bricks: 2 Transport-type: tcp Bricks: Brick1: 172.17.100.1:/d0 Brick2: 172.17.100.2:/d0
  • 28. Distributed Replicated (2) [root@node1 ~]# df -h System plików rozm. użyte dost. %uż. zamont. na /dev/mapper/VolGroup 6,5G 932M 5,3G 15% / tmpfs 247M 0 247M 0% /dev/shm /dev/sda1 485M 27M 433M 6% /boot [root@p0x ~]# mount -t glusterfs 172.17.100.1:/test /media/cos2/ [root@p0x ~]# df -h System plików rozm. użyte dost. %uż. zamont. na /dev/sda1 228G 106G 111G 49% / tmpfs 2,0G 15M 2,0G 1% /dev/shm 172.17.100.1:/test 6,5G 932M 5,3G 15% /media/cos2
  • 29. Distributed Replicated (3) gluster> volume info Volume Name: test Type: Replicate Status: Started Number of Bricks: 2 Transport-type: tcp Bricks: Brick1: 172.17.100.1:/d0 Brick2: 172.17.100.2:/d0 gluster> volume replace-brick test 172.17.100.1:/d0 172.17.100.3:/d0 start replace-brick started successfully gluster> volume replace-brick test 172.17.100.1:/d0 172.17.100.3:/d0 commit replace-brick commit successful
  • 30. Co jeszcze ? volume info [all|<VOLNAME>] - list information of all volumes volume create <NEW-VOLNAME> [stripe <COUNT>] [replica <COUNT>] [transport <tcp|rdma>] <NEW- BRICK> volume delete <VOLNAME> volume start|stop <VOLNAME> volume add-brick|remove-brick <VOLNAME> <NEW-BRICK> volume rebalance <VOLNAME> start|stop|status volume replace-brick <VOLNAME> (<BRICK> <NEW-BRICK>) start|pause|abort|status volume set <VOLNAME> <KEY> <VALUE> volume reset <VOLNAME>
  • 31. Dlaczego GlusterFS? - dowolny sprzęt kompatybilny z Fedora 11 - wygodne skalowanie - elastyczne volumeny - NFS, native client, CIFS, HTTP, FTP - zawsze możliwy dostęp do danych - brak centralnego serwera z metadanymi - POSIX