GNU/Linux >> Znalost Linux >  >> Linux

Začněte s GlusterFS – úvahy a instalace

Tento článek je aktualizován, aby zahrnoval instalaci GlusterFS® 7 na CentOS® 7 a Ubuntu® 18.04. Veškerá původní práce v tomto dokumentu je stejná, kromě kroku, kdy vytvoříte svazek pomocí repliky klíčové slovo.

Než začnete používat GlusterFS, musíte se rozhodnout, jaký typ svazku potřebujete pro své prostředí. K dosažení různých výsledků se nejčastěji používají následující metody.

Replikovaný svazek

Tento typ svazku poskytuje replikaci souborů přes více bloků. Je to nejlepší volba pro prostředí vyžadující vysokou dostupnost, vysokou spolehlivost a škálovatelné úložiště. Tento typ svazku funguje dobře, pokud plánujete samostatně připojit svazek GlusterFS, například jako kořen dokumentu webového serveru (/var/www ) nebo podobně, kde všechny soubory musí být umístěny v tomto uzlu. Hodnota předaná do repliky je stejný počet uzlů ve svazku.

Soubory jsou zkopírovány do každé cihly ve svazku, podobně jako u redundantního pole nezávislých disků (RAID-1). Můžete však mít tři nebo více cihel nebo lichý počet cihel. Užitný prostor má velikost jedné cihly a všechny soubory zapsané do jedné cihly se replikují do všech ostatních. Svazky tohoto typu také nabízejí zlepšený výkon při čtení ve většině prostředí a jsou nejběžnějším typem svazků používaných, když jsou klienti mimo samotné uzly GlusterFS.

Distribuovaný-replikovaný svazek

Podobně jako u RAID-10 musí být použit sudý počet kostek. Užitná plocha je velikost kombinovaných cihel předaných do repliky hodnota. Pokud například existují čtyři kostky po 20 gigabajtech (GB) a projdete replikou 2 k vytvoření jsou vaše soubory distribuovány do dvou uzlů (40 GB) a replikovány do dvou uzlů. S šesti kostkami po 20 GB a replika 3 , vaše soubory jsou distribuovány do tří uzlů (60 GB) a replikovány do tří uzlů. Pokud jste použili repliku 2, jsou poté distribuovány do dvou uzlů (40 GB) a replikovány do čtyř uzlů v párech. Tato distribuce a replikace se používají, když jsou vaši klienti externí vůči klastru, nikoli místní samopřipojení.

Předpoklady

  • Dva nebo více serverů s odděleným úložištěm. Příklady v tomto článku jsou založeny na serverech CentOS 7 a Ubuntu 18.04.
  • Soukromá síť mezi servery. Příklady v tomto článku používají 192.168.0.0/24 .

Nastavení sestavení

Sestavení popsané v tomto dokumentu používá následující nastavení:

  • Čtyři obrazy serveru Rackspace Cloud s /dev/xvde příčka připravená k použití pro každou cihlu
  • Jedna cloudová soukromá síť na 192.168.0.0/24 pro komunikaci GlusterFS
  • GlusterFS 7.1 nainstalovaný z úložiště balíčků dodavatele

Příprava serverů

Chcete-li připravit servery, proveďte následující konfiguraci a instalace:

  1. Nakonfigurujte /etc/hosts .
  2. Nainstalujte aktualizace operačního systému (OS).
  3. Nainstalujte software GlusterFS.
  4. Nakonfigurujte přístup k síti.
  5. Připojte uzly GlusterFS.

Nakonfigurujte /etc/hosts pro komunikaci uvnitř uzlu

Místo použití DNS připravte /etc/hosts na každém serveru a zajistit, aby servery mohly mezi sebou komunikovat. Všechny servery mají název glusterN jako název hostitele použijte glusN pro privátní komunikační vrstvu mezi servery.

# vi /etc/hosts
192.168.0.1  glus-01
192.168.0.2  glus-02
192.168.0.3  glus-03
192.168.0.4  glus-04

# ping -c2 glus-01; ping -c2 glus-02;  ping -c2 glus-03;  ping -c2 glus-04

Instalovat balíčky

Spuštěním příkazů v této části proveďte následující kroky:

  1. Nainstalujte aktualizace operačního systému.
  2. Nainstalujte úložiště GlusterFS a balíčky GlusterFS.

CentOS

yum update -y
yum install -y centos-release-gluster7
yum install -y glusterfs-server

Operační systém Ubuntu

Výchozí úložiště Ubuntu má nainstalovaný GlusterFS 3.13.2. K instalaci 7.1 použijte následující příkazy:

apt update
apt upgrade -y
add-apt-repository -y ppa:gluster/glusterfs-7
apt install -y glusterfs-server

Konfigurace přístupu k síti

CentOS

Pomocí následujících příkazů povolíte provoz Glusteru mezi vašimi uzly a povolíte připojení klientů:

firewall-cmd --add-service=glusterfs
firewall-cmd --add-service=glusterfs --permanent

Operační systém Ubuntu

Pomocí následujících příkazů povolíte veškerý provoz přes segment vaší privátní sítě, abyste usnadnili komunikaci Gluster:

ufw enable
ufw allow from 192.168.0.0/24

Připravte si kostky

Spuštěním příkazů v této části proveďte následující kroky:

  1. Zařízení s blokováním oddílů.
  2. Vytvořte základ správce logických svazků (LVM).
  3. Připravte objemové kostky.

Podkladové cihly jsou standardní souborový systém a přípojný bod. Připevněte každou cihlu takovým způsobem, abyste odradili každého uživatele od přechodu do adresáře a zápisu do samotných podložek.

Upozornění: Psaní přímo do cihly svazek poškozuje.

Cihly musí být jedinečné pro každý uzel a v bodě připojení by měl být adresář, který se použije při vytváření svazku. Pokus o vytvoření replikovaného svazku pomocí nejvyšší úrovně přípojných bodů vede k chybě s pokyny k použití podadresáře.

Všechny uzly

parted -s -- /dev/xvde mktable gpt
parted -s -- /dev/xvde mkpart primary 2048s 100%
parted -s -- /dev/xvde set 1 lvm on
pvcreate /dev/xvde1
vgcreate vgglus-01 /dev/xvde1
lvcreate -l 100%VG -n gbrick1 vgglus-01
mkfs.xfs /dev/vgglus-01/gbrick1
echo '/dev/vgglus-01/gbrick1 /var/lib/gvol0 xfs defaults 0 0' >> /etc/fstab
mkdir /var/lib/gvol0
mount /var/lib/gvol0
  • glus-01

     mkdir /var/lib/gvol0/brick1
    
  • glus-02

     mkdir /var/lib/gvol0/brick2
    
  • glus-03

     mkdir /var/lib/gvol0/brick3
    
  • glus-04

     mkdir /var/lib/gvol0/brick4
    

Nastavte GlusterFS

Pomocí níže uvedených kroků spusťte nastavení GlusterFS.

Spustit démona glusterfsd

Démona můžete restartovat za běhu pomocí následujících příkazů:

systemctl enable glusterd
systemctl start glusterd

Vytvoření partnerské skupiny

Skupina vrstevníků je známá jako důvěryhodný fond úložiště v GlusterFS.

  • glus-01

    gluster peer probe glus-02
    gluster peer probe glus-03
    gluster peer probe glus-04
    gluster peer status
    
  • glus-02

    gluster peer status
    
  • glus-03

    gluster peer status
    
  • glus-04

    gluster peer status
    

Nyní můžete ověřit stav svého uzlu a fondu clusterových serverů:

[root@gluster1 ~]# gluster pool list
UUID	                				Hostname	State
734aea4c-fc4f-4971-ba3d-37bd5d9c35b8	glus-04   	Connected
d5c9e064-c06f-44d9-bf60-bae5fc881e16	glus-03   	Connected
57027f23-bdf2-4a95-8eb6-ff9f936dc31e	glus-02   	Connected
e64c5148-8942-4065-9654-169e20ed6f20	localhost	Connected

Vytvořte svazek

Ve výchozím nastavení glusterd NFS umožňuje globální čtení/zápis během vytváření svazku, takže byste měli nastavit základní omezení autorizace pouze na soukromou podsíť. glusterd automaticky spustí NFSd na každém serveru a exportuje přes něj svazek z každého z uzlů. Důvodem tohoto chování je to, že pro použití nativního klienta Filesystem in Userspace (FUSE) pro připojení svazku na klienty musí klienti spouštět přesně stejnou verzi balíčků GlusterFS. Pokud se verze liší, mohou existovat rozdíly v hašovacích algoritmech používaných servery a klienty a klienti se nebudou moci připojit.

Replikovaný svazek

Následující příklad vytvoří replikaci do všech čtyř uzlů. Každý uzel obsahuje kopii všech dat a velikost svazku je velikost jedné cihly. Všimněte si, že výstup zobrazuje 1 x 4 = 4 .

Pouze jeden uzel :

 gluster volume create gvol0 replica 4 transport tcp \
 glus-01:/var/lib/gvol0/brick1 \
 glus-02:/var/lib/gvol0/brick2 \
 glus-03:/var/lib/gvol0/brick3 \
 glus-04:/var/lib/gvol0/brick4
 gluster volume start gvol0

[root@gluster1 ~]# gluster volume info gvol0

Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

Distribuovaný-replikovaný svazek

Tento příklad vytvoří distribuovanou replikaci do uzlů 2x2. Každý pár uzlů obsahuje data a velikost svazku je velikost dvou cihel. Všimněte si, že výstup zobrazuje 2 x 2 = 4 .

Pouze jeden uzel :

gluster volume create gvol0 replica 2 transport tcp \
glus-01:/var/lib/gvol0/brick1 \
glus-02:/var/lib/gvol0/brick2 \
glus-03:/var/lib/gvol0/brick3 \
glus-04:/var/lib/gvol0/brick4
gluster volume start gvol0

[root@gluster1 ~]# gluster volume info gvol0

Volume Name: gvol0
Type: Distributed-Replicate
Volume ID: b2ddd34b-ffb4-4fd8-ae60-b90adbd4c2ab
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

Smazat svazek

Poté, co se ujistíte, že žádní klienti (ať už místní nebo vzdálení) nepřipojují svazek, můžete svazek zastavit a odstranit pomocí následujících příkazů:

gluster volume stop gvol0
gluster volume delete gvol0

Vyčištění cihel

Pokud jsou ve svazku použity cihly a je třeba je odstranit, můžete použít jednu z následujících metod:

GlusterFS nastavuje atribut na podadresáře cihly. Pokud tento atribut vymažete, kostky lze znovu použít.

  • glus-01:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick1/setfattr -x trusted.gfid /var/lib/gvol0/brick1rm -rf /var/lib/gvol0/brick1/.glusterfs

  • glus-02:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick2/setfattr -x trusted.gfid /var/lib/gvol0/brick2rm -rf /var/lib/gvol0/brick2/.glusterfs

  • glus-03:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick3/setfattr -x trusted.gfid /var/lib/gvol0/brick3rm -rf /var/lib/gvol0/brick3/.glusterfs

  • glus-04:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick4/setfattr -x trusted.gfid /var/lib/gvol0/brick4rm -rf /var/lib/gvol0/brick4/.glusterfs

Případně můžete odstranit podadresáře a poté je znovu vytvořit.

  • glus-01

    rm -rf /var/lib/gvol0/brick1mkdir /var/lib/gvol0/brick1

  • glus-02:

    rm -rf /var/lib/gvol0/brick2mkdir /var/lib/gvol0/brick2

  • glus-03:

    rm -rf /var/lib/gvol0/brick3mkdir /var/lib/gvol0/brick3

  • glus-04:

    rm -rf /var/lib/gvol0/brick4mkdir /var/lib/gvol0/brick4

Přidat kostky

Do běžícího objemu můžete přidat další cihly. Přidejte další cihlu do našeho příkladu replikovaného svazku výše pomocí následujícího příkazu:

gluster volume add-brick gvol0 replica 5 gluster5:/var/lib/gvol0/brick5

Můžete použít add-brick Chcete-li změnit rozložení svazku, například změnit dvouuzlový distribuovaný svazek na čtyřuzlový distribuovaný replikovaný svazek. Po takové operaci musíte znovu vyvážit svůj objem. Na nových uzlech se automaticky vytvoří nové soubory, ale ty staré se nepřesouvají.

gluster volume add-brick gvol0 replica 2 \
gluster5:/var/lib/gvol0/brick5 ;
gluster6:/var/lib/gvol0/brick6
gluster volume rebalance gvol0 start
gluster volume rebalance gvol0 status

## If needed (something didn't work right)
gluster volume rebalance gvol0 stop

Možnosti hlasitosti

Chcete-li zobrazit možnosti nakonfigurovaného svazku, spusťte následující příkaz:

gluster volume info gvol0

Následuje příklad výstupu:

Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

Chcete-li nastavit možnost pro hlasitost, použijte nastavit klíčové slovo takto:

gluster volume set gvol0 performance.write-behind off
volume set: success

Chcete-li obnovit výchozí nastavení hlasitosti, použijte resetovat klíčové slovo takto:

gluster volume reset gvol0 performance.read-ahead
volume reset: success: reset volume successful

Připojení klienta

Upřednostňovanou metodou pro klienta k připojení svazku GlusterFS je použití nativního klienta FUSE. Připojení NFS je možné, když je GlusterFS nasazen v tandemu s NFS-Ganesha®.

Klient FUSE

Klient FUSE umožňuje připojení pomocí připojení ve stylu „round robin“ GlusterFS. V /etc/fstab , používá se název jednoho uzlu. Interní mechanismy však umožňují, aby tento uzel selhal a klienti se přesunuli na jiné připojené uzly v důvěryhodném fondu úložiště.

CentOS :

yum install -y centos-release-gluster7
yum install -y glusterfs-fuse

Ubuntu :

add-apt-repository -y ppa:gluster/glusterfs-7
apt install glusterfs-client

Běžné :

vi /etc/hosts
192.168.0.2  glus-01
192.168.0.4  glus-02
192.168.0.1  glus-03
192.168.0.3  glus-04

`modprobe fuse
 echo 'glus-01:/gvol0 /mnt/gluster/gvol0 glusterfs _netdev 0 0' >> /etc/fstab
 mkdir -p /mnt/gluster/gvol0
 mount /mnt/gluster/gvol0`

Odkazy

  • https://www.gluster.org/announcing-gluster-7-0/
  • https://docs.gluster.org/en/latest/
  • https://wiki.centos.org/HowTos/GlusterFSonCentOS
  • https://kifarunix.com/install-and-setup-glusterfs-on-ubuntu-18-04/
  • https://launchpad.net/~gluster

Další článek

GlusterFS Troubleshooting


Linux
  1. Začněte s NetworkManagerem v systému Linux

  2. Jak jste začali s Linuxem?

  3. Začněte s cloudovými servery

  1. Jak začít s cloudovým serverem FreeBSD

  2. Začněte s Magento na Debianu 10

  3. Začněte s Tasksel v Debianu

  1. Začněte s Luminou pro váš počítač se systémem Linux

  2. 10 způsobů, jak začít s Linuxem

  3. Začněte s Latexem na Linuxu