Configuració de GlusterFS
Nota important sobre el muntatge
Nota important sobre les còpies de seguretat
PMF
GlusterFS és un sistema de fitxers connectat a la xarxa que us permet compartir de manera efectiva dues unitats a través de diversos dispositius de la xarxa. Aquest sistema de fitxers s'adapta perfectament a l'oferta d'emmagatzematge de blocs de Vultr, ja que podeu compartir una unitat a la xarxa, cosa que no és possible des de la caixa.
Pel que fa a característiques, extensibilitat i fiabilitat, GlusterFS ha demostrat ser un dels sistemes de fitxers més sofisticats i estables disponibles.
Quan es fan canvis a la unitat d'un servidor, es replicaran automàticament a l'altre servidor en temps real. Per aconseguir-ho i seguir aquesta guia, necessitareu:
- Dues instàncies del núvol Vultr, preferiblement executant el mateix sistema operatiu.
- Dues unitats d'emmagatzematge en bloc de la mateixa mida.
Després d'haver ordenat aquestes dues unitats d'emmagatzematge en bloc, hauríeu de connectar-les a la VM 1 i la VM 2. Com que utilitzarem les dues unitats d'emmagatzematge en bloc per al mateix sistema de fitxers, dividint la mida total d'ambdues unitats per dos us donarà la quantitat útil. de GB. Per exemple, si teniu dues unitats de 100 GB, es podran utilitzar 100 GB (100 * 2 / 2).
A més, les dues màquines virtuals hauran d'estar a la mateixa ubicació per tal que estiguin a la mateixa xarxa privada. Ens connectarem als servidors mitjançant les seves adreces IP internes. Tingueu en compte que esborrarem les dades de la unitat d'emmagatzematge de blocs. Assegureu-vos que siguin nous i sense format.
En aquesta guia, utilitzarem storage1i storage2, respectivament amb adreces IP privades 10.0.99.10 i 10.0.99.11. És molt probable que els noms i les adreces IP dels vostres servidors siguin diferents, així que assegureu-vos de canviar-los durant el procés de configuració de GlusterFS.
Aquesta guia s'ha escrit tenint en compte CentOS / RHEL 7. Tanmateix, GlusterFS és relativament compatible amb diverses distribucions de Linux.
Configuració de GlusterFS
Pas 1: modifiqueu el /etc/hostsfitxer
Perquè puguem connectar-nos ràpidament a les instàncies respectives, hauríem d'afegir noms fàcils de recordar al hostsfitxer. Obriu el /etc/hostsfitxer i afegiu-hi les línies següents a la part inferior:
10.0.99.10 storage1
10.0.99.11 storage2
Pas 2: afegiu el disc storage1
SSH storage1i executeu les ordres següents. De manera predeterminada, les unitats d'emmagatzematge de blocs connectades es munten com a /dev/vdb. Si això difereix en el vostre cas per qualsevol motiu, hauríeu de canviar-ho a les ordres següents.
Formateu el disc:
fdisk /dev/vdb
Premeu "Enter" per a les tres preguntes següents (respecte a la mida de la partició i similars, volem utilitzar tot l'espai disponible a les unitats d'emmagatzematge de blocs) i escriviu "w" per escriure aquests canvis al disc. Un cop s'hagi completat amb èxit, escriviu:
/sbin/mkfs.ext4 /dev/vdb1
Hem avançat i hem creat un sistema de fitxers ara, ja que Vultr no crea cap sistema de fitxers a l'emmagatzematge de blocs per defecte.
A continuació, crearem la carpeta on emmagatzemarem els nostres fitxers. Podeu canviar aquest nom però no veureu que apareix gaire, així que per eliminar la complexitat, us recomano deixar-lo sol.
mkdir /glusterfs1
Per muntar automàticament la unitat a l'arrencada, obriu /etc/fstabi afegiu la línia següent a la part inferior del fitxer:
/dev/vdb1 /glusterfs1 ext4 defaults 1 2
Finalment, munta la unitat:
mount -a
El muntatge es mantindrà constant durant els reinicis, de manera que quan reinicieu el servidor, la unitat es tornarà a muntar automàticament.
Pas 3: afegiu el disc storage2
Ara que tenim el disc afegit i muntat a storage1, també hem de crear el disc storage2. Les ordres amb prou feines difereixen. Per a fdisk, seguiu els mateixos passos que l'anterior.
fdisk /dev/sdb
/sbin/mkfs.ext4 /dev/sdb1
mkdir /glusterfs2
Editeu /etc/fstabi afegiu la línia següent:
/dev/vdb1 /glusterfs2 ext4 defaults 1 2
Igual que a storage1, la unitat es muntarà automàticament durant els reinicis.
Muntar la unitat:
mount -a
Finalment, comprovem si podem veure com apareix la partició:
df -h
Hauríeu de veure la vostra unitat aquí. Si no és així, intenteu seguir els passos anteriors.
Pas 4: instal·lació de GlusterFS a storage1istorage2
A continuació, hem d'instal·lar GlusterFS. Afegiu el repositori i instal·leu GlusterFS:
rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/3.7/3.7.5/CentOS/glusterfs-epel.repo
yum -y install glusterfs glusterfs-fuse glusterfs-server
Hi ha la possibilitat que rebeu un error yumperquè la signatura del dipòsit no és correcta. En aquest cas, és segur forçar no comprovar la signatura GPG:
yum -y install glusterfs glusterfs-fuse glusterfs-server --nogpgcheck
Als dos servidors, executeu les ordres següents per iniciar GlusterFS ara mateix i iniciar-lo automàticament després d'un reinici:
systemctl enable glusterd.service
systemctl start glusterd.service
Si utilitzeu una versió anterior de CentOS, podeu utilitzar les ordres servicei chkconfig:
chkconfig glusterd on
service glusterd start
Pas 5: desactivació del tallafoc a storage1istorage2
Tot i que no és la millor solució per se, és una bona idea desactivar el tallafoc per tal d'eliminar possibles conflictes amb ports bloquejats. Si no us sentiu còmode fent això, no dubteu a modificar les regles al vostre gust, però a causa de la naturalesa de GlusterFS, us recomano que desactiveu el tallafoc. Tenint en compte que una xarxa privada és realment privada a Vultr (i no cal que feu un tallafoc a altres clients), simplement podeu bloquejar tot el trànsit entrant d'Internet i restringir les connexions permeses a la xarxa privada. Tanmateix, desactivar el tallafoc i no alterar cap altra configuració del sistema també n'hi hauria prou:
systemctl stop firewalld.service
systemctl disable firewalld.service
En cas que utilitzeu una versió antiga de CentOS que no admet systemctl, utilitzeu les ordres servicei chkconfig:
service firewalld stop
chkconfig firewalld off
En cas que no utilitzeu firewalld, proveu de desactivar iptables:
service iptables stop
chkconfig iptables off
Pas 6: afegiu servidors a l'agrupació d'emmagatzematge
Després d'apagar el tallafoc, podem afegir els dos servidors a l'agrupació d'emmagatzematge. Aquesta és una piscina que consta de tot l'emmagatzematge disponible. Executeu l'ordre següent a storage1:
gluster peer probe storage2
El que fa aquesta ordre és afegir storage2a la seva pròpia agrupació d'emmagatzematge. En executar l'ordre següent a storage2, ambdues unitats estaran sincronitzades:
gluster peer probe storage1
Després d'executar-ho als dos servidors, hauríem de comprovar l'estat dels dos servidors:
gluster peer status
Els dos servidors haurien de mostrar l'estat "Peers: 1". Un error comú és que la gent espera veure Peers: 2, però com storage1serà mirant amb storage2i viceversa, no s'observa amb ells mateixos. Per tant, Peers: 1és el que necessitem.
Pas 7: Creació d'una unitat compartida storage1
Ara que tots dos servidors poden connectar-se entre ells mitjançant GlusterFS, crearem una unitat compartida.
En storage1, executeu:
gluster volume create mailrep-volume replica 2 storage1:/glusterfs1/files storage2:/glusterfs2/files force
El volum ja s'ha creat. A GlusterFS, heu d'"iniciar" un volum perquè es comparteixi activament entre diversos dispositius. Comencem-ho:
gluster volume start mailrep-volume
A continuació, trieu una carpeta que hauria d'estar al volum i replicada als dos servidors. En aquest tutorial farem servir la carpeta /var/files. Naturalment, això pot ser qualsevol cosa que us agradi. Creeu-lo storage1 només a :
mkdir /var/files
A continuació, munteu-lo:
mount.glusterfs storage1:/mailrep-volume /var/files/
Actualitzeu /etc/fstabperquè la unitat es munti automàticament a l'arrencada. Afegiu el següent:
storage1:/mailrep-volume /var/files glusterfs defaults,_netdev 0 0
Torneu a muntar la unitat:
mount -a
Pas 8: Creació d'una unitat compartida storage2
Ara que hem creat una unitat compartida a storage1, també n'hem de crear una storage2. Creeu una carpeta amb la mateixa ubicació/camí i nom:
mkdir /var/files
mount.glusterfs storage2:/mailrep-volume /var/files/
Igual que a storage1, afegiu la línia següent a /etc/fstab:
storage2:/mailrep-volume /var/files glusterfs defaults,_netdev 0 0
Torneu a muntar la unitat:
mount -a
Pas 9: prova l'emmagatzematge compartit
Navegueu a la /var/filescarpeta activada storage1i creeu un fitxer:
cd /var/files
touch created_on_storage1
A continuació, aneu al storage2servidor. Executeu ls -lai hauríeu de veure que created_on_storage1apareix el fitxer .
A storage2, navegueu a la /var/filescarpeta i creeu un fitxer:
cd /var/files
touch created_on_storage2
Torna a storage1i executa ls -la /var/files. Hauríeu de veure que el fitxer created_on_storage2apareix aquí.
Pas 10: reinicieu tots els servidors (opcional)
Per comprovar si la vostra configuració es mantindrà persistent durant els reinicis, com a pràctica recomanada, hauríeu de reiniciar tots els servidors. Com s'ha esmentat, hauríeu d'esperar que un servidor estigui en funcionament i després reinicieu l'altre perquè la unitat compartida es munti automàticament.
Reinicieu storage1primer, espereu que estigui activat i després reinicieu storage2. Ara inicieu sessió i executeu-los als dos servidors:
cd /var/files
ls -la
Ara hauríeu de veure com apareixen els dos fitxers. Assegureu-vos de començar sense cap fitxer al volum, així que elimineu els fitxers de prova que hem creat. Podeu fer-ho a storage1, storage2o tots dos. Els canvis es replicaran a l'instant:
cd /var/files
rm created_on_storage1
rm created_on_storage2
Hauríeu de tenir un volum compartit idèntic entre tots dos servidors, independentment de les accions dels dos volums.
Ara heu configurat una configuració completa de GlusterFS amb 100 GB (o més) d'espai utilitzable. En cas que necessiteu més en el futur, la configuració és fàcilment escalable per afegir més capacitat i/o més servidors si la vostra càrrega de treball ho requereix.
Gràcies per llegir!
Nota important sobre el muntatge
GlusterFS permet mantenir les vostres dades actualitzades en dues unitats. Tanmateix, heu de tenir en compte que quan els dos servidors es reinicien al mateix temps , haureu de forçar el muntatge de les unitats als dos servidors. Heu de forçar el muntatge manualment executant l'ordre següent:
gluster volume start mailrep-volume force
Això és perquè un dels servidors actua com a servidor i l'altre com a client. Tot i que la diferència no es nota molt fàcilment a la pràctica, això vol dir que quan necessiteu reiniciar els dos servidors, hauríeu de reiniciar un, esperar fins que s'acabi i després arrencar l'altre.
Nota important sobre les còpies de seguretat
Tot i que les vostres dades es replicaran en dues unitats, hauríeu de replicar les vostres dades almenys tres vegades. Tot i que les vostres dades estan millor protegides contra la corrupció de dades i similars, heu de tenir en compte que els canvis són instantanis i de cap manera estareu protegits contra errors humans. Quan elimineu tots els fitxers d'una unitat, aquests canvis es replicaran immediatament a l'altra unitat, el que significa que les vostres dades s'esborraran en ambdues instàncies.
Afortunadament, hi ha múltiples enfocaments per evitar-ho. En primer lloc, us recomano que habiliteu les còpies de seguretat a la vostra instància de núvol. Tot i que aquestes còpies de seguretat no inclouen dades de l'emmagatzematge de blocs, protegiran les dades de la pròpia instància.
Quan es tracta de fer una còpia de seguretat de les dades al mateix emmagatzematge de blocs, us recomano fer girar una instància independent (per exemple, un pla SATA) perquè pugueu executar una còpia de seguretat d'un dels dos servidors connectats cada nit, per exemple. D'aquesta manera, les vostres dades estaran segures en un altre dispositiu independent.
PMF
Puc augmentar l'emmagatzematge del meu disc?
Podeu augmentar la mida d'emmagatzematge del bloc des del tauler de control de Vultr. Després hauríeu de canviar la mida del disc dins del sistema operatiu, però això està fora de l'abast d'aquest article.
Puc connectar l'emmagatzematge de blocs a més de dos servidors?
Tot i que aquesta guia s'ha escrit per a dos servidors (per tant, dues unitats d'emmagatzematge en bloc connectades als dos servidors), però és possible prendre aquesta guia i utilitzar-la també per a més de dos servidors. Una configuració amb més de dos servidors/unitats podria semblar així per a 6 servidors, per exemple:
VM: storage1
VM: storage2
VM: storage3
VM: storage4
Block Storage: attached to storage1
Block Storage: attached to storage2
Block Storage: attached to storage3
Block Storage: attached to storage4
Tenint en compte que totes les unitats d'emmagatzematge de blocs tenen una capacitat de, per exemple, 200 GB, obtindreu 200 * 4 / 4. En altres paraules, l'espai utilitzable sempre és la capacitat d'una unitat d'emmagatzematge de blocs. Això es deu al fet que un servidor amb emmagatzematge de blocs connectat és tractat com a "mestre" per GlusterFS i es replica als altres servidors. Tanmateix, la configuració està dissenyada per poder sobreviure sense un servidor mestre, cosa que la converteix en una solució tan redundant, fiable i estable.