GlusterFS telepítés Debian környezetben

Innen: IT documentation
A lap korábbi változatát látod, amilyen Moszat (vitalap | szerkesztései) 2023. május 9., 13:48-kor történt szerkesztése után volt. (→‎Előfeltételek)

Ö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 példában 2 szerver node lesz telepítve. Mindkét node egyben kliens is lesz és a saját megosztását használja. Így egy redundáns fájlrendszer jön létre, amit használhatnak a node-ok egyéb szolgáltatásai. Tipikusan fájlszervereknél, webszervereknél használható terhelés elosztott klaszterek létrehozására.

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

Tároló tallózása

GlusterFS szerver telepítése

apt -y install glusterfs-server

GlusterFS szerver konfigurálása

Ha ugyanazon a hoston van a szerver és a kliens, akkor az első node indulásakor a glusterd szolgáltatás indulása és a volume-ok rendelkezésre állása közt van pár másodperc különbség. A tárolóból telepített verzió erre az esetre nincs felkészítve, és az fstab-ban meghatározott GlusterFS volume-okat nem csatolja fel a boot folyamat alatt.

Ezért a systemd konfigurációt módosítani kell, hogy a GlusterFS szolgáltatás indulása után pár másodpercet várakozzon. A /lib/systemd/system/glusterd.service fájt módosítani kell, be kell szúrni a ExecStartPost=/bin/sleep 5 beállítást a következőképpen:

[Unit]
Description=GlusterFS, a clustered file-system server
Documentation=man:glusterd(8)
StartLimitBurst=6
StartLimitIntervalSec=3600
Requires=
After=network.target rpcbind.service
Before=network-online.target

[Service]
Type=forking
PIDFile=/var/run/glusterd.pid
LimitNOFILE=65536
Environment="LOG_LEVEL=INFO"
EnvironmentFile=-/etc/sysconfig/glusterd
ExecStart=/usr/sbin/glusterd -p /var/run/glusterd.pid  --log-level $LOG_LEVEL $GLUSTERD_OPTIONS
ExecStartPost=/bin/sleep 5
KillMode=process
SuccessExitStatus=15
Restart=on-abnormal
RestartSec=60
StartLimitBurst=6
StartLimitInterval=3600

[Install]
WantedBy=multi-user.target

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 megosztások 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.

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