Ve světě technologií je vždy klíčové udržovat data vysoce dostupná, aby byla zajištěna dostupnost pro aplikaci/uživatele. Vysoké dostupnosti je zde dosaženo distribucí dat mezi více svazků/uzlů.
Klientské počítače/uživatelé mohou přistupovat k úložišti jako k místnímu úložišti. Kdykoli uživatel vytvoří data v úložišti Gluster, data budou zrcadlena/distribuována do jiných uzlů úložiště.
Co je GlusterFS?
GlusterFS je open-source, škálovatelný síťový souborový systém vhodný pro datově náročné úlohy, jako je streamování médií, cloudové úložiště a CDN (Content Delivery Network). GlusterFS byl původně vyvinut společností Gluster Inc a poté Redhat v důsledku akvizice.
Terminologie:
Níže jsou uvedeny důležité terminologie, které v tomto článku používáme.
Cihla – je základní úložiště (adresář) na serveru ve fondu důvěryhodného úložiště.
Hlasitost – je logická sbírka cihel.
Shluk – je skupina propojených počítačů, které spolupracují jako jeden počítač.
Systém distribuovaných souborů – Souborový systém, ve kterém jsou data rozložena mezi více storage nody a umožňuje klientům k nim přistupovat přes síť.
Klient – je stroj, který připojuje svazek.
Server – je počítač, kde je hostován skutečný souborový systém, ve kterém budou data uložena.
Replikovat – Vytváření více kopií dat pro dosažení vysoké redundance.
Pojistka – je načítatelný modul jádra, který umožňuje neprivilegovaným uživatelům vytvářet vlastní systémy souborů bez úpravy kódu jádra.
shluk – je démon, který běží na všech serverech v důvěryhodném fondu úložiště.
RAID – Redundant Array of Inexpensive Disks (RAID) je technologie, která poskytuje zvýšenou spolehlivost úložiště prostřednictvím redundance.
Svazky:
Jak již bylo řečeno dříve, svazek je sbírka cihel a většina operací shluku, jako je čtení a psaní, probíhá na svazku. GlusterFS podporuje různé typy svazků na základě požadavků; vhodné pro škálování velikosti úložiště nebo zlepšení výkonu nebo pro obojí.
V tomto článku nakonfigurujeme replikovaný svazek GlusterFS na Ubuntu 16.04 / Debian 8. Tato příručka by měla fungovat i na předchozích verzích Ubuntu, jako je Ubuntu 14.04 / Ubuntu 12.04.
Replikovaný svazek Glusterfs je jako RAID 1 a Volume uchovává přesné kopie dat na všech cihlách. Při vytváření svazku můžete rozhodnout o počtu replik, takže budete potřebovat alespoň dvě cihly, abyste vytvořili svazek se dvěma replikami, nebo tři cihly, abyste vytvořili objem 3 replik.
Tento objem poskytuje lepší spolehlivost dat a redundanci dat.Proč si nepřečíst o zbývajících typech svazků GlusterFS.
Požadavky:
Zde nakonfigurujeme svazek GlusterFS se dvěma replikami. Ujistěte se, že máte dva 64bitové systémy (buď virtuální nebo fyzické) s 1 GB paměti a jedním náhradním pevným diskem na každém systému.
Název hostitele | IP adresa | OS | Paměť | Disk | Účel |
---|---|---|---|---|---|
gluster1.itzgeek.local | 192.168.12.16 | Ubuntu 16.04 LTS | 1 GB | /dev/sdb (5 GB) | Uzel úložiště 1 |
gluster2.itzgeek.local | 192.168.12.17 | Debian 8 | 1 GB | /dev/sdb (5 GB) | Uzel úložiště 2 |
client.itzgeek.local | 192.168.12.8 | CentOS 7 / Debian | NE | NE | Klientský stroj |
Konfigurace DNS:
Komponenty GlusterFS používají DNS pro překlad názvů, takže nakonfigurujte buď DNS, nebo nastavte položku hosts. Pokud ve svém prostředí nemáte DNS, upravte soubor /etc/hosts a podle toho jej aktualizujte.
sudo vi /etc/hosts192.168.12.16 gluster1.itzgeek.local gluster1192.168.12.17 gluster2.itzgeek.local gluster2192.168.12.20 client.itzgeek.local client
Přidat úložiště GlusterFS:
Než přistoupíme k instalaci, musíme nakonfigurovat úložiště GlusterFS na obou storage nodech. Postupujte podle pokynů pro přidání úložiště do systému.
Debian:
Nainstalujte balíček podpory pro transakce https.
sudo apt-get install -y lsb-releasesudo apt-get install -y apt-transport-https
Přidejte veřejný klíč pro úložiště GlusterFS.
wget -O - http://download.gluster.org/pub/gluster/glusterfs/LATEST/rsa.pub | sudo apt-key add -echo deb https://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/$(lsb_release -sc)/apt $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/gluster.list
Ubuntu 16.04 / 14.04:
sudo apt-get install -y software-properties-commonsudo add-apt-repository ppa:gluster/glusterfs-3.8
Instalovat GlusterFS:
Jakmile do svých systémů přidáte úložiště, můžeme začít s instalací GlusterFS.
Aktualizujte mezipaměť úložiště.
aktualizace sudo apt-get
Nainstalujte balíček GlusterFS pomocí následujícího příkazu.
sudo apt-get install -y glusterfs-server
Spusťte službu glusterfs-server na všech uzlech glusteru.
spuštění služby sudo glusterfs-server
Ověřte, že služba glusterfs běží správně.
raj@gluster1:~$ služba sudo stav serveru glusterfs● glusterfs-server.service - LSB:Server GlusterFS Načteno:načteno (/etc/init.d/glusterfs-server; špatné; přednastaveno dodavatele:povoleno) Aktivní:aktivní (běží) od So 2016-09-24 21:47:20 IST; Před 1min 6s Dokumenty:man:systemd-sysv-generator(8) Proces:1570 ExecStop=/etc/init.d/glusterfs-server stop (code=exited, status=0/USCCESS) Proces:1664 ExecStart=/etc/ start init.d/glusterfs-server (kód=ukončeno, stav=0/ÚSPĚCH) Úkoly:7 (limit:512) Paměť:25,5M CPU:3,552s CGroup:/system.slice/glusterfs-server.service └─1673 /usr/sbin/glusterd -p /var/run/glusterd.pidSep 24 21:47:16 gluster1.itzgeek.local systemd[1]:Spouštění serveru LSB:GlusterFS...24. září 21:47:16 gluster1.itzgeek .local glusterfs-server[1664]:* Spouštění služby glusterd glusterdSep 24 21:47:20 gluster1.itzgeek.local glusterfs-server[1664]:...hotovo.Sep 24 21:47:20 gluster1.systemdgeek.gluster1.itzgeek.local glusterfs-server[1664]:... [1]:Spuštěn LSB:GlusterFS server.
Konfigurace brány firewall:
Budete muset buď deaktivovat bránu firewall, nebo ji nakonfigurovat tak, aby povolovala všechna připojení v rámci clusteru.
sudo iptables -I INPUT -p all -s-j ACCEPT
Přidat úložiště:
Za předpokladu, že máte na počítači jeden náhradní pevný disk, /dev/sdb je ten, který zde použiji na cihlu. Vytvořte jeden oddíl na náhradním pevném disku, jak je znázorněno níže.
Níže uvedené kroky byste museli provést na obou uzlech.
sudo fdisk /dev/sdb
Naformátujte vytvořený oddíl na souborový systém podle vašeho výběru.
sudo mkfs.ext4 /dev/sdb1
Připojte disk do adresáře s názvem /data/gluster .
sudo mkdir -p /data/glustersudo mount /dev/sdb1 /data/gluster
Přidejte záznam do /etc/fstab pro zachování trvalého připojení po restartu.
echo "/dev/sdb1 /data/gluster ext4 výchozí 0 0" | sudo tee --append /etc/fstab
Nakonfigurujte GlusterFS na Ubuntu 16.04:
Před vytvořením svazku musíme vytvořit důvěryhodný fond úložiště přidáním gluster2.itzgeek.local . Konfigurační příkazy GlusterFS můžete spouštět na libovolném serveru v clusteru, který provede stejný příkaz na všech ostatních serverech.
Zde spustím všechny příkazy GlusterFS v gluster1.itzgeek.local uzel.
raj@gluster1:~$ sudo gluster peer probe gluster2.itzgeek.localpeer probe:úspěch.
Ověřte stav důvěryhodného fondu úložiště.
raj@gluster1:~$ sudo gluster stav peeru Počet vrstevníků:1Název hostitele:gluster2.itzgeek.localUuid:51470928-dfa8-42e1-a221-d7bbcb8c13bdState:Peer in Cluster (Připojeno)
Uveďte seznam úložiště.
raj@gluster1:~$ sudo gluster pool listUUID Hostname State51470928-dfa8-42e1-a221-d7bbcb8c13bd gluster2.itzgeek.local Connecteddc7c1639-d21c-4adf-b282f-515 local08pre>9ehosted localNastavení svazku GlusterFS:
Vytvořte cihlu (adresář) s názvem „gvol0 ” v připojeném systému souborů na obou uzlech.
sudo mkdir -p /data/gluster/gvol0Protože budeme používat replikovaný svazek, vytvořte svazek s názvem „gvol0 ” se dvěma replikami.
raj@gluster1:~$ sudo gluster volume create gvol0 replika 2 gluster1.itzgeek.local:/data/gluster/gvol0 gluster2.itzgeek.local:/data/gluster/gvol0volume create:gvol0:success:prosím spusťte svazek pro přístup k datůmSpusťte hlasitost.
raj@gluster1:~$ sudo gluster volume start gvol0volume start:gvol0:successZkontrolujte stav vytvořeného svazku.
raj@gluster1:~$ info o objemu sudo gluster gvol0Název svazku:gvol0Typ:ReplicateVolume ID:ca102e4b-6cd1-4d9d-9c5a-03b882c76da0Stav:Zahájeno Počet snímků:0Počet x2Brick-Brick:1 typ cihel:T. gluster1.itzgeek.local:/data/gluster/gvol0Brick2:gluster2.itzgeek.local:/data/gluster/gvol0Options Překonfigurováno:transport.address-family:inetperformance.readdir-ahead:onnfs.disable:onNastavení klienta GlusterFS:
Nainstalujte glusterfs-client balíček pro podporu připojení souborových systémů GlusterFS. Spouštějte všechny příkazy jako root uživatel.
$ su -### CentOS / RHEL ###yum install -y glusterfs-client### Ubuntu / Debian ###apt-get install -y glusterfs-clientVytvořte adresář pro připojení souborového systému GlusterFS.
mkdir -p /mnt/glusterfsNyní připojte souborový systém GlusterFS k /mnt/glusterfs pomocí následujícího příkazu.
mount -t glusterfs gluster1.itzgeek.local:/gvol0 /mnt/glusterfsMůžete také použít gluster2.itzgeek.local místo gluster1.itzgeek.com ve výše uvedeném příkazu.
Ověřte připojený souborový systém GlusterFS.
[root@client ~]# df -hP /mnt/glusterfs Použitá velikost systému souborů Dostupnost Použití % Namontované ongluster1.itzgeek.local:/gvol0 4,8G 11M 4,6G 1% /mnt/glusterfsMůžete také použít níže uvedený příkaz k ověření souborového systému GlusterFS.
[root@client ~]# cat /proc/mountsrootfs / rootfs rw 0 0sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0proc /proc proc rw,nosuid,nodev,noexec,relatime rw /dev devtmpfs rw,seclabel,nosuid,size=490448k,nr_inodes=122612,mode=755 0 0securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatimeshshm/relatimesshwdetm0 /stmpfsm,stmpfs 0 ,nodev 0 0devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0tmpfs /run tmpfs rw,seclabel,nosuid=705t50 /fs/cgroup tmpfs ro,seclabel,nosuid,nodev,noexec,mode=755 0 0cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/ systemd-cgroups-agent,name=systemd 0 0pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0cgroup /sys/fs/cgroup/cpuset cg roup rw,nosuid,nodev,noexec,relatime,cpuset 0 0cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev ,noexec,relatime,freezer 0 0cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu 0 0cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexe ,relatime,blkio 0 0cgroup /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0cgroup /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,slatime,net_0 /sys/kernel/config configfs rw,relatime 0 0/dev/mapper/centos-root / xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0selinuxfs /sys/fs/selinux selinuxfs rw,relatime-0 proc/sys/fs/binfmt_misc autofs rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0hugetlbfs /dev/hugepages hugetlbfs rw,seclabel,relatime 0 kernel/debug debugfs rw,relatime 0 0mqueue /dev/mqueue mqueue rw,seclabel,relatime 0 0/dev/mapper/centos-ho já /home xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0/dev/sda1 /boot xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0tmpfs /run/user/0 tmpfecsbel, rw nodev,relatime,size=100136k,mode=700 0 0gluster1.itzgeek.local:/gvol0 /mnt/glusterfs fuse.glusterfs rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=allow_other,max_read 0 0 fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0Přidejte níže uvedený záznam do /etc/fstab pro automatické připojení během spouštění systému.
gluster1.itzgeek.local:/gvol0 /mnt/glusterfs výchozí nastavení glusterfs,_netdev 0 0Test replikace GlusterFS a vysoké dostupnosti:
Strana serveru GlusterFS:
Chcete-li zkontrolovat replikaci, připojte vytvořený svazek GlusterFS na stejný uzel úložiště.
raj@gluster1:~$ sudo mount -t glusterfs gluster1.itzgeek.local:/gvol0 /mntraj@gluster2:~$ sudo mount -t glusterfs gluster2.itzgeek.local:/gvol0 /mntData uvnitř /mnt adresář obou uzlů bude vždy stejný (replikace).
Strana klienta GlusterFS:
Pojďme vytvořit nějaké soubory na připojeném souborovém systému na client.itzgeek.local.
touch /mnt/glusterfs/file1touch /mnt/glusterfs/file2Ověřte vytvořené soubory.
[root@client ~]# ll /mnt/glusterfs/celkem 0-rw-r--r--. 1 kořenový kořen 0 26. září 11:22 soubor1-rw-r--r--. 1 kořenový kořen 0 26. září 11:22 soubor2Otestujte oba uzly GlusterFS, zda mají uvnitř /mnt stejná data .
raj@gluster1:~$ ll /mnt/celkem 12drwxr-xr-x 4 kořenový kořen 4096 26. září 20:52 ./drwxr-xr-x 24 kořenový kořenový adresář 4096 25. září 21:57 ../-rw- r--r-- 1 kořenový kořen 0 26. září 20:52 file1-rw-r--r-- 1 kořenový adresář 0 26. září 20:52 file2raj@gluster2:~$ ls -al /mnt/total 12drwxr-xr -x 4 kořenový kořenový adresář 4096 26. září 06:30 .drwxr-xr-x 23 kořenový adresář 4096 24. září 08:39 ..-rw-r--r-- 1 kořenový adresář 0 26. září 2016 soubor1-rw-r- -r-- 1 kořenový kořen 0 26. září 2016 soubor2Jak víte, připojili jsme svazek GlusterFS z gluster1.itzgeek.local na client.itzgeek.local , nyní je čas otestovat vysokou dostupnost svazku vypnutím uzlu.
raj@gluster1:~$ sudo poweroffNyní otestujte dostupnost souborů, uvidíte soubory, které jsme vytvořili nedávno, i když je uzel mimo provoz.
[root@client ~]# ll /mnt/glusterfs/celkem 0-rw-r--r--. 1 kořenový kořen 0 26. září 11:22 soubor1-rw-r--r--. 1 kořenový kořen 0 26. září 11:22 soubor2Můžete zaznamenat pomalost při provádění příkazů na připojeném souborovém systému GlusterFS je způsobena přechodem GlusterFS na gluster2.itzgeek.local když client.itzgeek.local nelze dosáhnout gluster1.itzgeek.local .Vytvořte nějaké další soubory na souborovém systému GlusterFS, abyste zkontrolovali replikaci.
touch /mnt/glusterfs/file3touch /mnt/glusterfs/file4Ověřte počet souborů.
[root@client ~]# ll /mnt/glusterfs/celkem 0-rw-r--r--. 1 kořenový kořen 0 26. září 11:22 soubor1-rw-r--r--. 1 kořenový kořen 0 26. září 11:22 soubor2-rw-r--r--. 1 kořenový kořen 0 26. září 11:26 soubor3-rw-r--r--. 1 kořenový kořen 0 26. září 11:26 soubor4Od gluster1 je mimo provoz, všechna vaše data jsou nyní zapsána nagluster2.itzgeek.local kvůli vysoké dostupnosti. Nyní zapněte uzel1 (gluster1.itzgeek.local ).
Zkontrolujte /mnt z gluster1.itzgeekk.local; měli byste vidět všechny čtyři soubory v adresáři, což potvrzuje, že replikace funguje podle očekávání.
raj@gluster1:~$ sudo mount -t glusterfs gluster1.itzgeek.local:/gvol0 /mnt[sudo] heslo pro raj:raj@gluster1:~$ ll /mnt/total 12drwxr-xr-x 4 root root 4096 26. září 20:59 ./drwxr-xr-x 24 kořenový adresář 4096 25. září 21:57 ../-rw-r--r-- 1 kořenový adresář 0 26. září 20:52 file1-rw-r-- r-- 1 kořenový kořen 0 26. září 20:52 file2-rw-r--r-- 1 kořenový kořen 0 26. září 20:56 file3-rw-r--r-- 1 kořenový adresář 0 26. září 20:56 soubor4To je vše.
Nainstalujte ownCloud 10 na Ubuntu 16.04 / 14.04 / Debian 9 / 8 Jak nainstalovat Apache Cassandra na Ubuntu 18.04 / Ubuntu 16.04 a Debian 9Debian