Tento článek popisuje, jak přidat a odebrat servery GlusterFS z pole serverů.
Vytvořte nový server
Použijte nova boot
příkaz z předchozího článku k vytvoření serveru s názvem web3:
nova boot --image bb02b1a3-bc77-4d17-ab5b-421d89850fca --flavor performance1-4 web3
K vytvoření nového serveru můžete také použít ovládací panel Rackspace Cloud Control Panel.
Přidat server do vlastní sítě Rackspace
V předchozím článku jste přidali vlastní síť Rackspace.
-
Získejte univerzální jedinečný identifikátor (UUID) sítě pomocí následujícího
nova
příkaz:nova network-list
-
Až budete mít UUID, přiřaďte k němu nového hostitele.
Nahraďte
UUID
v následujícím příkazu se skutečným UUID (například5492de89-1497-4aa0-96eb-bcdd55e1195c1
).web03
je název hostitele serveru, který chcete přidat.nova network-associate-host UUID web03
Ke spojení serveru s vaší stávající sítí můžete také použít ovládací panel Rackspace Cloud Control.
Až budete hotovi, nový server by měl mít IP adresu 192.168.0.3 na rozhraní /dev/eth3
. To je adresa, kterou GlusterFS používá ke komunikaci s druhým serverem.
Naformátujte oddíl a nainstalujte GlusterFS
Pomocí následujících kroků naformátujte serverový oddíl a nainstalujte GlusterFS:
-
Pro přihlášení k serveru použijte Secure Shell (SSH).
-
Pomocí pokynů z předchozího článku nainstalujte GlusterFS a naformátujte
bricks
oddíl takto:apt-get update apt-get install -y glusterfs-server glusterfs-client apt-get install -y xfsprogs mkfs.xfs /dev/xvde1 mkdir /srv/.bricks echo /dev/xvde1 /srv/.bricks xfs rw 0 1 >> /etc/fstab mount /srv/.bricks ufw allow in on eth2
Začlenit novou cihlu do svazku Gluster
-
Použijte SSH pro přihlášení do
web01
neboweb02
. -
Následující příkaz dává svazku GlusterFS pokyn, aby důvěřoval novému serveru:
root@web02 :~# gluster peer probe 192.168.0.3 peer probe: success
-
Přidejte cihlu do svazku pomocí následujících příkazů:
root@web02 :~# gluster volume add-brick www replica 3 192.168.0.3:/srv/.bricks/www volume add-brick: success
Příkaz obsahuje následující části:
gluster
- Příkaz je pro GlusterFS.volume
- Příkaz souvisí se svazkem.add-brick
- Přidáváte cihlu do objemu.www
- Toto je název svazku.replica 3
– Po přidání této kostky si svazek uchová alespoň tři kopie každého souboru, jednu kopii na kostku a v tomto případě jednu kopii na server (protože na každém serveru je pouze jedna kostka).192.168.0.3:/srv/.bricks/www
- Tato část příkazu je IP adresa serveru Gluster následovaná absolutní cestou k uložení dat cihly.
Strategie ukládání svazku
GlusterFS nabízí následující typy strategií úložiště svazků:
- Distribuováno - Jeden soubor je na jedné kostce a další soubor je na další kostce. Tato strategie vám poskytuje více prostoru, protože váš objem je součtem všech cihel.
- Replikováno (Doporučeno ) - Každý soubor je zkopírován na každý server.
- Pruhované - Soubory jsou rozřezány na kusy a jeden blok je zapsán do první cihly, jeden blok je zapsán do druhé cihly a tak dále.
Můžete také kombinovat strategie, například replikované a distribuované, jak ukazuje následující příklad:
gluster volume create www replica 2 transport tcp
192.168.0.1:/srv/.bricks/www 192.168.0.2:/srv/.bricks/www
192.168.0.3:/srv/.bricks/www 192.168.0.4:/srv/.bricks/www
Číslo repliky je počet kostek, které tvoří sadu replik, to znamená, že obsahují úplnou kopii souborů. V předchozím příkladu 192.168.0.1
a 192.168.0.2
uchovávat úplnou kopii souborů, stejně jako 192.168.0.3
a 192.168.0.4
. Významné je pořadí cihel. Pokud byste si to objednali 1,3,2,4, pak 1 a 3 a 2 a 4 by obsahovaly celé soubory. Pokud by 1 a 2 klesly, ztratili byste polovinu souborů a měli byste dvě kopie druhé poloviny.
Kombinace replikovaného a distribuovaného svazku vám poskytuje trochu extra rychlost a více prostoru výměnou za bezpečnost dat.
Kombinace prokládaných a replikovaných svazků se doporučuje pouze v případě, že máte soubory větší než cihla nebo mnoho velkých souborů, které procházejí mnoha IO operacemi.
Zobrazit stav serverů
Následující příkazy vám pomohou zjistit více o tom, co se děje ve vašem clusteru. Tyto příkazy použijete v pozdějších článcích GlusterFS.
stav partnera
Pokud následující příkaz spustíte z libovolného serveru, zobrazí se všechny rovnocenné servery, o kterých ví:
root@web01:~# gluster peer status
Number of Peers: 2
Hostname: 192.168.0.3
Uuid: ba502dc2-447f-466a-a732-df989e71b551
State: Peer in Cluster (Connected)
Hostname: 192.168.0.2
Uuid: 56e02356-d2c3-4787-ae25-6b46e867751a
State: Peer in Cluster (Connected)
stav svazku
Následující příkaz je užitečný příkaz pro odstraňování problémů. Poskytuje informace o všech svazcích a úlohách GlusterFS ve frontě a probíhajících.
root@web03:~# gluster volume status
Status of volume: www
Gluster process Port Online Pid
------------------------------------------------------------------------------
Brick 192.168.0.2:/srv/.bricks/www 49152 Y 13673
Brick 192.168.0.1:/srv/.bricks/www 49152 Y 10249
Brick 192.168.0.3:/srv/.bricks/www 49153 Y 13783
NFS Server on localhost 2049 Y 13793
Self-heal Daemon on localhost N/A Y 13800
NFS Server on 192.168.0.2 2049 Y 13900
Self-heal Daemon on 192.168.0.2 N/A Y 13907
NFS Server on 192.168.0.1 2049 Y 10286
Self-heal Daemon on 192.168.0.1 N/A Y 10293
There are no active volume tasks
Odstranění kostky
Pokud je cluster online a dostupný, můžete svazky podle potřeby zmenšit. K odstranění cihly použijte následující příkaz:
# gluster volume remove-brick <volName> <brickName> start
Spuštění remove-brick
pomocí start
volba automaticky spustí operaci opětovného vyrovnání k migraci dat z odstraněných bloků do zbytku svazku.
Následující příklad odstraní cihlu 2:
root@web01:~# gluster volume remove-brick www replica 2 192.168.0.2:/srv/.bricks/www start
Removing brick(s) can result in data loss. Do you want to Continue? (y/n) y
volume remove-brick commit force: success
Tento příkaz říká GlusterFS, že www
svazek nyní uchová pouze 2 kopie každého souboru. Varuje vás, že byste mohli ztratit data, a vyzve vás, abyste pokračovali.
Pokud chcete odstranit cihlu na distribuovaném svazku, měli byste místo toho spustit následující příkaz:
root@web01:~# gluster volume remove-brick www 192.168.0.2:/srv/.bricks/www start
Můžete zobrazit stav remove-brick
operaci pomocí následujícího příkazu:
root@web01:~# watch gluster volume remove-brick www replica 2 192.168.0.2:/srv/.bricks/www status
Znovu přidat kostku
Tato část vysvětluje, jak znovu přidat kostku.
Zkuste přidat web02 zpět do svazku následovně:
root@web02:~# gluster volume add-brick www replica 3 192.168.0.2:/srv/.bricks/www
volume add-brick: failed:
Nepodařilo se to. Podívejte se na protokoly na web02, abyste zjistili, proč příkaz selhal:
root@web02:/srv/.bricks# tail /var/log/glusterfs/*log -f | grep E
[2014-05-25 00:19:04.954410] I [input.c:36:cli_batch] 0-: Exiting with: 0
[2014-05-25 00:19:12.958620] I [input.c:36:cli_batch] 0-: Exiting with: 0
[2014-05-25 00:40:46.923747] E [glusterd-utils.c:5377:glusterd_is_path_in_use] 0-management: /srv/.bricks/www or a prefix of it is already part of a volume
[2014-05-25 00:40:46.923789] E [glusterd-op-sm.c:3719:glusterd_op_ac_stage_op] 0-management: Stage failed on operation 'Volume Add brick', Status : -1
Problém je v tom, že /srv/.bricks/www
stále obsahuje data z doby, kdy byl web02 členem svazku.
Pro uložení dat potřebujete čisté místo. Nejjednodušší způsob, jak vyčistit, je jednoduše odstranit všechna data pomocí následujícího příkazu:
root@web02:~# rm -rf /srv/.bricks/www
Upozornění :Buďte opatrní, abyste tuto akci provedli na správném hostiteli (web02, který je momentálně mimo svazek). Pokud uděláte chybu, další článek vám ukáže, jak se zotavit. Alternativní akce jsou přesunutí www
adresář z cesty, nebo přidat cihlu pomocí jiného adresáře, jako je www2
.
Nyní, když máte čisté místo pro uložení kostky, přidání kostky je úspěšné:
root@web01:/srv# gluster volume add-brick www replica 3 192.168.0.2:/srv/.bricks/www
volume add-brick: success
Další kroky
- Jak obnovit z neúspěšného serveru v poli GlusterFS