„GlusterFS telepítés Debian környezetben” változatai közötti eltérés
Nincs szerkesztési összefoglaló |
|||
| (4 közbenső módosítás ugyanattól a szerkesztőtől nincs mutatva) | |||
| 1. sor: | 1. sor: | ||
==Összefoglalás== | ==Összefoglalás== | ||
A [https://docs.gluster.org/en/latest/ GlusterFS] egy szabad terjesztésű, nyílt forráskódú hálózati elosztott fájlrendszer. A GlusterFS szerver-kliens alapú, a kliens csatlakozik (mountolja) egy vagy több szerver megosztásait. Csak a megosztáson keresztüli fájlműveletek replikálódnak a szerverekre, (!) a szerverek megosztásokat tartalmazó mappáiban végzett módosítás nem. | A [https://docs.gluster.org/en/latest/ GlusterFS] egy szabad terjesztésű, nyílt forráskódú hálózati elosztott fájlrendszer. A GlusterFS szerver-kliens alapú, a kliens csatlakozik (mountolja) egy vagy több szerver megosztásait. Csak a megosztáson keresztüli fájlműveletek replikálódnak a szerverekre, (!) a szerverek megosztásokat tartalmazó mappáiban végzett módosítás nem. | ||
A parancsok root jogot feltételeznek. (állandó root jog: sudo -i) | A parancsok root jogot feltételeznek. (állandó root jog: sudo -i) | ||
| 9. sor: | 7. sor: | ||
==GlusterFS telepítése== | ==GlusterFS telepítése== | ||
Az összes node-on végezzük el a következőket | Az összes node-on végezzük el a következőket: | ||
===Előfeltételek=== | ===Előfeltételek=== | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
apt -y install gnupg | apt -y install gnupg | ||
</syntaxhighlight> | </syntaxhighlight>A példában a két node FQDN-je: | ||
A példában a két node FQDN-je: | |||
*node1.glusterfs.local | *node1.glusterfs.local | ||
*node2.glusterfs.local | *node2.glusterfs.local | ||
Célszerű az '''/etc/hosts''' fájban felvenni a domain neveket, akkor is, ha a környezeti DNS feloldja azokat, hogy boot alatt a névfeloldás előtt is használhatóak legyenek. Illetve lehetőség van IP címmel is kezelni a node-okat.<syntaxhighlight lang="ini"> | Célszerű statikus IP címeket adni a node-oknak, illetve az '''/etc/hosts''' fájban felvenni a domain neveket, akkor is, ha a környezeti DNS feloldja azokat, hogy boot alatt a névfeloldás előtt is használhatóak legyenek. Illetve lehetőség van IP címmel is kezelni a node-okat.<syntaxhighlight lang="ini"> | ||
127.0.0.1 localhost | 127.0.0.1 localhost | ||
127.0.1.1 <hostname> | 127.0.1.1 <hostname> | ||
| 34. sor: | 30. sor: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===GlusterFS tároló telepítése=== | ===GlusterFS tároló telepítése=== | ||
A megfelelő Gluster és Debian verzió behelyettesítésével telepíthető a tároló. | |||
* [https://docs.gluster.org/en/main/release-notes/ <gluster version>] | * [https://docs.gluster.org/en/main/release-notes/ <gluster version>] | ||
* [[wikipedia:Debian_version_history|<debian codename>]] | * [[wikipedia:Debian_version_history|<debian codename>]] | ||
| 46. sor: | 42. sor: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
apt -y install glusterfs-server | apt -y install glusterfs-server | ||
</syntaxhighlight> | </syntaxhighlight>GlusterFS szolgáltatás engedélyezése és indítása:<syntaxhighlight lang="bash"> | ||
systemctl enable glusterd.service | systemctl enable glusterd.service | ||
systemctl start glusterd.service | |||
service | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==GlusterFS szolgáltatás konfigurálása== | ==GlusterFS szolgáltatás konfigurálása== | ||
| 97. sor: | 58. sor: | ||
===Volume konfigurálása=== | ===Volume konfigurálása=== | ||
Meg kell határozni a fájlrendszerben egy pontot, ahol a GlusterFS fizikailag tárolja a | Meg kell határozni a fájlrendszerben egy pontot, ahol a GlusterFS fizikailag tárolja a volume-ok tartalmát. Alapesetben ez nem lehet csatolási pont (mount point) és nem lehet a root fájlrendszeren (force kapcsolóval elnyomható). Ennek nem kell minden node-on ugyanott lennie, de a példában mindkét node-on az /opt/glusterfs könyvtárat használjuk majd. | ||
Mindkét node-on hozzuk létre a kívánt könyvtára(ka)t. <syntaxhighlight lang="bash"> | A volume-ok lehetnek disperse (szétszórt), distributed (elosztott) és replica (másolat) típusúak, illetve ezek variációi. A replica lényegében tükrözést jelent, beállítható hány node-on legyen meg az adat (file). A distributed azt határozza meg, hány node-ra osztja szét a fileokat, ez esetben minden file csak egy node-on található meg. A disperse típusú volume hasolnó a distributed-hez, csak nem fileokat, hanem a fileok tartalmát osztja szét a node-ok közt, azaz minden file minden node-on megtalálható lesz, de nem teljes tartalommal, hanem az eredeti méret ahányad része, ahány node vesz részt a volume kiszolgálásában. Ez esetben beállítható redundancia, azaz hány node kiesését tűrje a volume. [https://docs.gluster.org/en/main/Quick-Start-Guide/Architecture/#types-of-volumes Bővebb információ.] | ||
A példában egy 2 node-os replica volume-t hozunk létre.Mindkét node-on hozzuk létre a kívánt könyvtára(ka)t. | |||
<syntaxhighlight lang="bash"> | |||
mkdir -p /opt/glusterfs/share1 | mkdir -p /opt/glusterfs/share1 | ||
</syntaxhighlight> | |||
</syntaxhighlight>Volume (megosztás) létrehozása. <syntaxhighlight lang="bash"> | Volume (megosztás) létrehozása. | ||
<syntaxhighlight lang="bash"> | |||
gluster volume create share1 replica 2 node1.glusterfs.local:/opt/glusterfs/share1 node2.glusterfs.local:/opt/glusterfs/share1 | gluster volume create share1 replica 2 node1.glusterfs.local:/opt/glusterfs/share1 node2.glusterfs.local:/opt/glusterfs/share1 | ||
</syntaxhighlight>Ha már használtuk a könyvtárat GlusterFS megosztásra és "already part of a volume" hibával találkozunk, akkor távolítsuk el a gfs extended attribútumokat.<syntaxhighlight lang="bash"> | </syntaxhighlight> | ||
Megjegyzés: Ha már használtuk a könyvtárat GlusterFS megosztásra és "already part of a volume" hibával találkozunk, akkor távolítsuk el a gfs extended attribútumokat. | |||
<syntaxhighlight lang="bash"> | |||
setfattr -x trusted.glusterfs.volume-id /opt/glusterfs/share1 | setfattr -x trusted.glusterfs.volume-id /opt/glusterfs/share1 | ||
setfattr -x trusted.gfid /opt/glusterfs/share1 | setfattr -x trusted.gfid /opt/glusterfs/share1 | ||
</syntaxhighlight> | |||
2 node esetén figyelmeztet, hogy ilyen esetben előfordul a [https://docs.gluster.org/en/latest/Troubleshooting/resolving-splitbrain/#types-of-split-brains split-brain] állapot. Ha 2 node-ot szeretnénk, fogadjuk el. (force kapcsolóval elnyomható) | |||
Volume elindítása: | |||
Volume elindítása:<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
gluster volume start share1 | gluster volume start share1 | ||
</syntaxhighlight>A biztonság növelése érdekében meghatározhatjuk, mely IP címek érhetik el a volume-ot.<syntaxhighlight lang="bash"> | </syntaxhighlight> | ||
A biztonság növelése érdekében meghatározhatjuk, mely IP címek érhetik el a volume-ot.<syntaxhighlight lang="bash"> | |||
gluster volume set share1 auth.allow 1.2.3.4,5.6.7.8 | gluster volume set share1 auth.allow 1.2.3.4,5.6.7.8 | ||
</syntaxhighlight>A [https://docs.gluster.org/en/latest/CLI-Reference/cli-main/ gluster parancs volume] ágával kezelhetjük továbbiakban a volume-okat. | </syntaxhighlight> | ||
A [https://docs.gluster.org/en/latest/CLI-Reference/cli-main/ gluster parancs volume] ágával kezelhetjük továbbiakban a volume-okat. | |||
==GlusterFS kliens konfigurálása== | ==GlusterFS kliens konfigurálása== | ||
| 122. sor: | 93. sor: | ||
</syntaxhighlight>Majd csatoljuk fel a megosztást:<syntaxhighlight lang="bash"> | </syntaxhighlight>Majd csatoljuk fel a megosztást:<syntaxhighlight lang="bash"> | ||
mount /mnt/glusterfs | mount /mnt/glusterfs | ||
</syntaxhighlight>< | </syntaxhighlight> | ||
== NFS-Ganesha konfigurálása GlusterFS-hez == | |||
Konfigurálhatunk NFS exportot is egy GlusterFS volumehez. Ehhez az NFS-Ganesha NFS szerver javasolt, melynek van GlusterFS backend-je. | |||
=== NFS-Ganesha telepítése === | |||
<syntaxhighlight lang="bash"> | |||
apt -y install glusterfs-ganesha nfs-ganesha nfs-ganesha-gluster | |||
</syntaxhighlight>Volume export konfiguráció készítése Ganesha-hoz:<syntaxhighlight lang="bash"> | |||
/usr/libexec/ganesha/create-export-ganesha.sh /etc/ganesha on share1 | |||
</syntaxhighlight>A fenti script az /etc/ganesha/export/ könyvtárba létrehozza a megfelelő konfigurációt és includolja azt az /etc/ganesha/ganesha.conf fő konfigurációs fileban. Az export neve alapértelmezetten a Volume neve. Az esetleges változtatásokat a létrehozott /etc/ganesha/export/export.share1.conf fileban lehet megtenni. | |||
Érdemes a hostnevet átírni a tárgyi host FQDN-jére, alapérelmezetten localhost-al hozza létre.<syntaxhighlight lang="ini"> | |||
# WARNING : Using Gluster CLI will overwrite manual | |||
# changes made to this file. To avoid it, edit the | |||
# file and run ganesha-ha.sh --refresh-config. | |||
EXPORT{ | |||
Export_Id = 2; | |||
Path = "/share1"; | |||
FSAL { | |||
name = GLUSTER; | |||
hostname="node1.glusterfs.local"; | |||
volume="share1"; | |||
} | |||
Access_type = RW; | |||
Disable_ACL = true; | |||
Squash="No_root_squash"; | |||
Pseudo="/share1"; | |||
Protocols = "3", "4" ; | |||
Transports = "UDP","TCP"; | |||
SecType = "sys"; | |||
Security_Label = False; | |||
} | |||
</syntaxhighlight>Ezután érvényesíteni kell a változásokat:<syntaxhighlight lang="bash"> | |||
systemctl restart nfs-ganesha | |||
</syntaxhighlight>A következő paranccsal ellenőrizhetjük az exportot:<syntaxhighlight lang="bash"> | |||
showmount -e localhost | |||
</syntaxhighlight>Ezután felcsatolhatjuk az NFS exportot más kliensen vagy magán a kiszolgálón is:<syntaxhighlight lang="bash"> | |||
mount node1.glusterfs.local:/share1 /mnt | |||
</syntaxhighlight> | |||
[[Kategória:Debian]] | [[Kategória:Debian]] | ||
[[Kategória:GlusterFS]] | [[Kategória:GlusterFS]] | ||
A lap jelenlegi, 2023. május 11., 15:31-kori változata
Összefoglalás
A GlusterFS egy szabad terjesztésű, nyílt forráskódú hálózati elosztott fájlrendszer. A GlusterFS szerver-kliens alapú, a kliens csatlakozik (mountolja) egy vagy több szerver megosztásait. Csak a megosztáson keresztüli fájlműveletek replikálódnak a szerverekre, (!) a szerverek megosztásokat tartalmazó mappáiban végzett módosítás nem.
A parancsok root jogot feltételeznek. (állandó root jog: sudo -i)
A GlusterFS csomagokat a GlusterFS tárolójából telepítjük
GlusterFS telepítése
Az összes node-on végezzük el a következőket:
Előfeltételek
apt -y install gnupg
A példában a két node FQDN-je:
- node1.glusterfs.local
- node2.glusterfs.local
Célszerű statikus IP címeket adni a node-oknak, illetve az /etc/hosts fájban felvenni a domain neveket, akkor is, ha a környezeti DNS feloldja azokat, hogy boot alatt a névfeloldás előtt is használhatóak legyenek. Illetve lehetőség van IP címmel is kezelni a node-okat.
127.0.0.1 localhost
127.0.1.1 <hostname>
<node 1 IP address> node1.glusterfs.local
<node 2 IP address> node2.glusterfs.local
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
GlusterFS tároló telepítése
A megfelelő Gluster és Debian verzió behelyettesítésével telepíthető a tároló.
wget -O - https://download.gluster.org/pub/gluster/glusterfs/<gluster version>/rsa.pub | apt-key add -
echo deb [arch=amd64] https://download.gluster.org/pub/gluster/glusterfs/<gluster version>/LATEST/Debian/<debian codename>/amd64/apt <debian codename> main > /etc/apt/sources.list.d/gluster.list
apt update
GlusterFS szerver telepítése
apt -y install glusterfs-server
GlusterFS szolgáltatás engedélyezése és indítása:
systemctl enable glusterd.service
systemctl start glusterd.service
GlusterFS szolgáltatás konfigurálása
Pool konfigurálása
A GlusterFS pool a GlusterFS szerver node-ok csoportja.
Node2 felvitele a node1 -en:
gluster peer probe node2.glusterfs.local
Ezzel a két node egy GlusterFS pool-ban van.
Továbbiakban a gluster parancs peer ágával kezelhetjük a node-okat.
Volume konfigurálása
Meg kell határozni a fájlrendszerben egy pontot, ahol a GlusterFS fizikailag tárolja a volume-ok tartalmát. Alapesetben ez nem lehet csatolási pont (mount point) és nem lehet a root fájlrendszeren (force kapcsolóval elnyomható). Ennek nem kell minden node-on ugyanott lennie, de a példában mindkét node-on az /opt/glusterfs könyvtárat használjuk majd.
A volume-ok lehetnek disperse (szétszórt), distributed (elosztott) és replica (másolat) típusúak, illetve ezek variációi. A replica lényegében tükrözést jelent, beállítható hány node-on legyen meg az adat (file). A distributed azt határozza meg, hány node-ra osztja szét a fileokat, ez esetben minden file csak egy node-on található meg. A disperse típusú volume hasolnó a distributed-hez, csak nem fileokat, hanem a fileok tartalmát osztja szét a node-ok közt, azaz minden file minden node-on megtalálható lesz, de nem teljes tartalommal, hanem az eredeti méret ahányad része, ahány node vesz részt a volume kiszolgálásában. Ez esetben beállítható redundancia, azaz hány node kiesését tűrje a volume. Bővebb információ.
A példában egy 2 node-os replica volume-t hozunk létre.Mindkét node-on hozzuk létre a kívánt könyvtára(ka)t.
mkdir -p /opt/glusterfs/share1
Volume (megosztás) létrehozása.
gluster volume create share1 replica 2 node1.glusterfs.local:/opt/glusterfs/share1 node2.glusterfs.local:/opt/glusterfs/share1
Megjegyzés: Ha már használtuk a könyvtárat GlusterFS megosztásra és "already part of a volume" hibával találkozunk, akkor távolítsuk el a gfs extended attribútumokat.
setfattr -x trusted.glusterfs.volume-id /opt/glusterfs/share1
setfattr -x trusted.gfid /opt/glusterfs/share1
2 node esetén figyelmeztet, hogy ilyen esetben előfordul a split-brain állapot. Ha 2 node-ot szeretnénk, fogadjuk el. (force kapcsolóval elnyomható)
Volume elindítása:
gluster volume start share1
A biztonság növelése érdekében meghatározhatjuk, mely IP címek érhetik el a volume-ot.
gluster volume set share1 auth.allow 1.2.3.4,5.6.7.8
A gluster parancs volume ágával kezelhetjük továbbiakban a volume-okat.
GlusterFS kliens konfigurálása
Meg kell határozni, hogy hová csatoljuk fel a GlusterFS megosztást. A példában az /mnt/glusterfs könyvtárat használjuk, melyet előtte létrehozunk:
mkdir -p /mnt/glusterfs
Az /etc/fstab fájlban hozzuk létre a következő bejegyzést:
localhost:/share1 /mnt/glusterfs glusterfs _netdev 0 0
Majd csatoljuk fel a megosztást:
mount /mnt/glusterfs
NFS-Ganesha konfigurálása GlusterFS-hez
Konfigurálhatunk NFS exportot is egy GlusterFS volumehez. Ehhez az NFS-Ganesha NFS szerver javasolt, melynek van GlusterFS backend-je.
NFS-Ganesha telepítése
apt -y install glusterfs-ganesha nfs-ganesha nfs-ganesha-gluster
Volume export konfiguráció készítése Ganesha-hoz:
/usr/libexec/ganesha/create-export-ganesha.sh /etc/ganesha on share1
A fenti script az /etc/ganesha/export/ könyvtárba létrehozza a megfelelő konfigurációt és includolja azt az /etc/ganesha/ganesha.conf fő konfigurációs fileban. Az export neve alapértelmezetten a Volume neve. Az esetleges változtatásokat a létrehozott /etc/ganesha/export/export.share1.conf fileban lehet megtenni. Érdemes a hostnevet átírni a tárgyi host FQDN-jére, alapérelmezetten localhost-al hozza létre.
# WARNING : Using Gluster CLI will overwrite manual
# changes made to this file. To avoid it, edit the
# file and run ganesha-ha.sh --refresh-config.
EXPORT{
Export_Id = 2;
Path = "/share1";
FSAL {
name = GLUSTER;
hostname="node1.glusterfs.local";
volume="share1";
}
Access_type = RW;
Disable_ACL = true;
Squash="No_root_squash";
Pseudo="/share1";
Protocols = "3", "4" ;
Transports = "UDP","TCP";
SecType = "sys";
Security_Label = False;
}
Ezután érvényesíteni kell a változásokat:
systemctl restart nfs-ganesha
A következő paranccsal ellenőrizhetjük az exportot:
showmount -e localhost
Ezután felcsatolhatjuk az NFS exportot más kliensen vagy magán a kiszolgálón is:
mount node1.glusterfs.local:/share1 /mnt