Visoko dostopni skupni diski z uporabo Vultr Block Storage in GlusterFS

GlusterFS je omrežno pripet datotečni sistem, ki učinkovito omogoča skupno rabo dveh pogonov v več napravah v omrežju. Ta datotečni sistem je kot nalašč za Vultrovo ponudbo blokovnega pomnilnika, saj lahko disk delite po omrežju, kar ni mogoče takoj iz škatle.

V smislu funkcij, razširljivosti in zanesljivosti se je GlusterFS izkazal za enega najbolj izpopolnjenih in stabilnih datotečnih sistemov, ki so na voljo.

Ko so spremembe na pogonu na enem strežniku, se bodo samodejno replicirale na drugi strežnik v realnem času. Če želite to doseči in slediti tem navodilom, boste potrebovali:

  • Dva primerka oblaka Vultr, po možnosti z istim operacijskim sistemom.
  • Dva enotna pomnilniška pogona enake velikosti.

Po naročilu teh dveh blokovnih pomnilniških pogonov ju priključite na VM 1 in VM 2. Ker bomo uporabljali oba pogona za blokovno shranjevanje za isti datotečni sistem, boste z deljenjem skupne velikosti obeh pogonov z dva dobili uporabno količino od GB-jev. Na primer, če imate dva pogona po 100 GB, bo uporabnih 100 GB (100 * 2 / 2).

Poleg tega morata biti oba VM na isti lokaciji, da bosta v istem zasebnem omrežju. Povezovali se bomo s strežniki z uporabo njihovih notranjih naslovov IP. Upoštevajte, da bomo podatke na blokovnem pogonu za shranjevanje izbrisali. Prepričajte se, da so popolnoma novi in ​​neformatirani.

V tem priročniku bomo uporabljali storage1in storage2, oziroma z zasebnimi naslovi IP 10.0.99.10 in 10.0.99.11. Imena vaših strežnikov in naslovi IP se bodo najverjetneje razlikovali, zato jih spremenite v postopku nastavitve GlusterFS.

Ta priročnik je bil napisan z mislijo na CentOS / RHEL 7. Vendar je GlusterFS relativno navzkrižno združljiv z več distribucijami Linuxa.

Nastavitev GlusterFS

1. korak: spremenite /etc/hostsdatoteko

Da se lahko hitro povežemo z ustreznimi primerki, moramo hostsdatoteki dodati imena, ki si jih je enostavno zapomniti . Odprite /etc/hostsdatoteko in na dno dodajte naslednje vrstice:

10.0.99.10 storage1
10.0.99.11 storage2

2. korak: dodajte disk storage1

SSH v storage1in izvedite naslednje ukaze. Privzeto so priloženi pogoni za shranjevanje blokov nameščeni kot /dev/vdb. Če se to v vašem primeru iz kakršnega koli razloga razlikuje, ga spremenite v spodnjih ukazih.

Formatirajte disk:

fdisk /dev/vdb

Pritisnite "enter" za naslednja tri vprašanja (glede velikosti particije in podobno, želimo uporabiti ves razpoložljivi prostor na blokovnih pomnilniških pogonih) in napišite "w", da zapišete te spremembe na disk. Ko je to uspešno zaključeno, napišite:

/sbin/mkfs.ext4 /dev/vdb1

Zdaj smo ustvarili datotečni sistem, saj Vultr privzeto ne ustvari nobenega datotečnega sistema v blokovnem pomnilniku.

Nato bomo ustvarili mapo, v katero bomo shranili naše datoteke. To ime lahko spremenite, vendar ga ne boste videli veliko, zato vam zaradi odprave zapletenosti priporočam, da ga pustite pri miru.

mkdir /glusterfs1

Za samodejno namestitev pogona ob zagonu odprite /etc/fstabin dodajte naslednjo vrstico na dno datoteke:

/dev/vdb1 /glusterfs1      ext4    defaults        1 2

Na koncu namestite pogon:

mount -a

Montaža bo ostala vztrajna med ponovnimi zagoni, tako da bo ob ponovnem zagonu strežnika pogon samodejno znova nameščen.

3. korak: Dodajte disk storage2

Zdaj, ko imamo disk dodan in nameščen na storage1, moramo ustvariti tudi disk storage2. Ukazi se komajda razlikujejo. Za fdisk, sledite istim korakom kot zgoraj.

fdisk /dev/sdb
/sbin/mkfs.ext4 /dev/sdb1
mkdir /glusterfs2

Uredite /etc/fstabin dodajte naslednjo vrstico:

/dev/vdb1 /glusterfs2      ext4    defaults        1 2

Tako kot na storage1, bo pogon samodejno nameščen med ponovnimi zagoni.

Namestite pogon:

mount -a

Na koncu preverimo, ali lahko vidimo prikazano particijo:

df -h

Tukaj bi moral videti vaš pogon. Če ne, poskusite slediti zgornjim korakom.

4. korak: Namestitev GlusterFS na storage1instorage2

Nato moramo namestiti GlusterFS. Dodajte repozitorij in namestite 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

Obstaja možnost, da boste dobili napako, yumker podpis za skladišče ni pravilen. V tem primeru je varno prisiliti, da ne preverite podpisa GPG:

yum -y install glusterfs glusterfs-fuse glusterfs-server --nogpgcheck

Na obeh strežnikih izvedite naslednje ukaze, da takoj zaženete GlusterFS in ga samodejno zaženete po ponovnem zagonu:

systemctl enable glusterd.service
systemctl start glusterd.service

Če uporabljate starejšo različico CentOS-a, lahko uporabite ukaze servicein chkconfig:

chkconfig glusterd on
service glusterd start

5. korak: onemogočanje požarnega zidu storage1instorage2

Čeprav sama po sebi ni najboljša rešitev, je dobro izklopiti požarni zid, da preprečite morebitne konflikte z blokiranimi vrati. Če se vam to ne zdi udobno, lahko pravila spremenite po svojih željah, vendar zaradi narave GlusterFS toplo priporočam, da onemogočite požarni zid. Glede na to, da je zasebno omrežje v Vultru dejansko zasebno (in ni vam treba požarnega zidu izključiti drugih strank), lahko preprosto blokirate ves dohodni promet iz interneta in omejite dovoljene povezave z zasebnim omrežjem. Vendar pa bi zadostovalo tudi izklop požarnega zidu in nespreminjanje drugih sistemskih konfiguracij:

systemctl stop firewalld.service
systemctl disable firewalld.service

Če uporabljate starejšo različico CentOS, ki ne podpira systemctl, uporabite ukaze servicein chkconfig:

service firewalld stop
chkconfig firewalld off

V primeru, da ne uporabljate firewalld, poskusite onemogočiti iptables:

service iptables stop
chkconfig iptables off

6. korak: dodajte strežnike v pomnilniško področje

Ko izklopimo požarni zid, lahko dodamo oba strežnika v pomnilniško področje. To je bazen, sestavljen iz vseh razpoložljivih skladišč. Izvedite naslednji ukaz na storage1:

gluster peer probe storage2

Ta ukaz doda storage2v lastno pomnilniško področje. Če izvedete naslednji ukaz na storage2, bosta oba pogona sinhronizirana:

gluster peer probe storage1

Ko to izvedemo na obeh strežnikih, moramo preveriti stanje na obeh strežnikih:

gluster peer status

Oba strežnika morata prikazati stanje "Peers: 1". Pogosta napaka je, da ljudje pričakujejo, da bodo videli Peers: 2, a kot storage1bodo gledali s seboj storage2in obratno, ne gledajo sami s seboj. Zato Peers: 1je tisto, kar potrebujemo.

7. korak: ustvarjanje skupnega diska na storage1

Zdaj, ko se lahko oba strežnika povežeta med seboj prek GlusterFS, bomo ustvarili skupni disk.

Na storage1, izvedite:

gluster volume create mailrep-volume replica 2  storage1:/glusterfs1/files  storage2:/glusterfs2/files force

Zvezek je zdaj ustvarjen. V GlusterFS morate "zagnati" nosilec, da bo aktivno deljen v več napravah. Začnimo:

gluster volume start mailrep-volume

Nato izberite mapo, ki bi morala biti na nosilcu in podvojena na obeh strežnikih. V tej vadnici bomo uporabljali mapo /var/files. Seveda je to lahko karkoli želite. Ustvarite ga storage1 samo na :

mkdir /var/files

Nato ga namestite:

mount.glusterfs storage1:/mailrep-volume /var/files/

Posodobite, /etc/fstabtako da bo pogon samodejno nameščen ob zagonu. Dodajte naslednje:

storage1:/mailrep-volume /var/files glusterfs defaults,_netdev 0 0

Ponovno namestite pogon:

mount -a

8. korak: ustvarjanje skupnega diska na storage2

Zdaj, ko smo ustvarili disk v skupni rabi na storage1, ga moramo ustvariti storage2tudi na. Ustvarite mapo z isto lokacijo/potjo in imenom:

mkdir /var/files
mount.glusterfs storage2:/mailrep-volume /var/files/

Tako kot na storage1, dodajte naslednjo vrstico v /etc/fstab:

storage2:/mailrep-volume /var/files glusterfs defaults,_netdev 0 0

Ponovno namestite pogon:

mount -a

9. korak: preizkusite skupni prostor za shranjevanje

Pomaknite se do /var/filesmape storage1in ustvarite datoteko:

cd /var/files
touch created_on_storage1

Nato pojdite na storage2strežnik. Izvedite ls -lain videli bi, da se datoteka created_on_storage1prikaže.

Na storage2, se pomaknite do /var/filesmape in ustvarite datoteko:

cd /var/files
touch created_on_storage2

Vrnite se na storage1in izvedite ls -la /var/files. Tukaj bi morali videti, da se datoteka created_on_storage2prikaže.

10. korak: Znova zaženite vse strežnike (izbirno)

Če želite dvakrat preveriti, ali bo vaša nastavitev ostala obstojna med ponovnimi zagoni, je najbolje, da znova zaženete vse strežnike. Kot že omenjeno, morate počakati, da se en strežnik vklopi, in nato znova zagnati drugega, da se skupni disk samodejno namesti.

storage1Najprej znova zaženite , počakajte, da se vklopi, nato znova zaženite storage2. Zdaj se prijavite in izvedite na obeh strežnikih:

cd /var/files
ls -la

Zdaj bi morali videti obe datoteki. Začnite brez datotek na nosilcu, zato odstranite testne datoteke, ki smo jih ustvarili. To lahko storite na storage1, storage2ali oboje. Spremembe se bodo takoj ponovile:

cd /var/files
rm created_on_storage1
rm created_on_storage2

V obeh strežnikih bi morali imeti enak nosilec v skupni rabi, ne glede na dejanja na obeh nosilcih.

Zdaj ste nastavili popolno nastavitev GlusterFS s 100 GB (ali več) uporabnega prostora. Če boste v prihodnosti potrebovali več, je nastavitev enostavno razširljiva, da dodate več zmogljivosti in/ali več strežnikov, če vaša delovna obremenitev to zahteva.

Hvala za branje!


Pomembna opomba glede ponovne montaže

GlusterFS omogoča posodabljanje vaših podatkov na dveh pogonih. Vendar morate upoštevati, da boste morali ob ponovnem zagonu obeh strežnikov hkrati prisiliti pogone na oba strežnika. Pritrditev morate prisiliti ročno tako, da izvedete naslednji ukaz:

gluster volume start mailrep-volume force

To je zato, ker eden od strežnikov deluje kot strežnik, drugi pa kot odjemalec. Čeprav razlika v praksi ni zelo opazna, to pomeni, da ko morate znova zagnati oba strežnika, morate znova zagnati enega, počakati, da se vklopi, nato zagnati drugega.

Pomembna opomba glede varnostnih kopij

Čeprav bodo vaši podatki replicirani na dva pogona, bi morali imeti svoje podatke replicirati vsaj trikrat. Čeprav so vaši podatki bolje zaščiteni pred poškodbami podatkov in podobnim, morate upoštevati, da so spremembe takojšnje in nikakor ne boste zaščiteni pred človeško napako. Ko odstranite vse datoteke na enem pogonu, bodo te spremembe takoj podvojene na drugi pogon, kar pomeni, da bodo vaši podatki izbrisani v obeh primerih.

Na srečo obstaja več načinov, kako se temu izogniti. Najprej priporočam, da omogočite varnostne kopije na samem primerku v oblaku. Čeprav te varnostne kopije ne vključujejo podatkov o blokovnem pomnilniku, bodo zaščitile podatke na samem primerku.

Ko gre za varnostno kopiranje podatkov v samem blokovnem pomnilniku, priporočam, da zaženete ločen primerek (na primer načrt SATA), da lahko na primer vsako noč izvajate varnostno kopijo iz enega od dveh priključenih strežnikov. Tako bodo vaši podatki varni na drugi ločeni napravi.

Pogosta vprašanja

Ali lahko povečam prostor za shranjevanje na disku?

Velikost pomnilnika blokov lahko povečate z nadzorne plošče Vultr. Po tem bi morali spremeniti velikost diska znotraj operacijskega sistema, vendar to ni v okviru tega članka.

Ali lahko blokovni pomnilnik priključim na več kot dva strežnika?

Čeprav je bil ta priročnik napisan za dva strežnika (torej dva blokovna pomnilniška pogona, priključena na oba strežnika), je mogoče ta priročnik vzeti in uporabiti tudi za več kot dva strežnika. Nastavitev z več kot dvema strežnikoma / pogonoma bi lahko izgledala takole za 6 strežnikov, na primer:

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

Glede na to, da imajo vsi blokovni pomnilniški pogoni kapaciteto npr. 200 GB, bi dobili 200 * 4 / 4. Z drugimi besedami, uporabni prostor je vedno zmogljivost enega blokovnega pomnilniškega pogona. To je zato, ker GlusterFS en strežnik s priloženim blokovnim pomnilnikom obravnava kot "glavni" in se podvaja na druge strežnike. Vendar je nastavitev zgrajena tako, da lahko preživi brez glavnega strežnika, zaradi česar je tako odveč in zanesljiva, stabilna rešitev.


Namestite Plesk na CentOS 7

Namestite Plesk na CentOS 7

Uporaba drugega sistema? Plesk je lastniška nadzorna plošča spletnega gostitelja, ki uporabnikom omogoča upravljanje svojih osebnih in/ali strank spletnih mest, baz podatkov

Kako namestiti Squid Proxy na CentOS

Kako namestiti Squid Proxy na CentOS

Squid je priljubljen brezplačen program za Linux, ki vam omogoča ustvarjanje spletnega proxyja za posredovanje. V tem priročniku boste videli, kako namestiti Squid na CentOS, da vas obrne

Kako namestiti Lighttpd (LLMP Stack) na CentOS 6

Kako namestiti Lighttpd (LLMP Stack) na CentOS 6

Uvod Lighttpd je razdelek Apache, katerega namen je biti veliko manj intenziven vir. Je lahek, od tod tudi njegovo ime, in je precej preprost za uporabo. Namestite

Konfiguriranje statičnega omrežja in IPv6 na CentOS 7

Konfiguriranje statičnega omrežja in IPv6 na CentOS 7

VULTR je pred kratkim naredil spremembe na svoji strani in zdaj bi moralo vse delovati v redu iz škatle z omogočenim NetworkManagerjem. Če želite onemogočiti

Spreminjanje Icinga2 za uporabo modela Master/Client na CentOS 6 ali CentOS 7

Spreminjanje Icinga2 za uporabo modela Master/Client na CentOS 6 ali CentOS 7

Icinga2 je zmogljiv sistem za spremljanje in če se uporablja v modelu glavni-odjemalec, lahko nadomesti potrebo po nadzornih pregledih, ki temeljijo na NRPE. Glavni naročnik

Kako namestiti Apache Cassandra 3.11.x na CentOS 7

Kako namestiti Apache Cassandra 3.11.x na CentOS 7

Uporaba drugega sistema? Apache Cassandra je brezplačen in odprtokodni sistem za upravljanje baz podatkov NoSQL, ki je zasnovan tako, da zagotavlja razširljivost, visoko

Kako namestiti Microweber na CentOS 7

Kako namestiti Microweber na CentOS 7

Uporaba drugega sistema? Microweber je odprtokodna povleci in spusti CMS in spletna trgovina. Izvorna koda Microweber gostuje na GitHubu. Ta vodnik vam bo pokazal

Kako namestiti Mattermost 4.1 na CentOS 7

Kako namestiti Mattermost 4.1 na CentOS 7

Uporaba drugega sistema? Mattermost je odprtokodna alternativa sporočilni storitvi Slack SAAS, ki jo gosti sami. Z drugimi besedami, z Mattermostom si pribl

Ustvarjanje omrežja strežnikov Minecraft z BungeeCord na Debian 8, Debian 9 ali CentOS 7

Ustvarjanje omrežja strežnikov Minecraft z BungeeCord na Debian 8, Debian 9 ali CentOS 7

Kaj potrebujete Vultr VPS z vsaj 1 GB RAM-a. SSH dostop (z root/administrativnimi pravicami). 1. korak: Namestitev BungeeCord Najprej najprej

Omogočamo šifriranje na Plesku

Omogočamo šifriranje na Plesku

Nadzorna plošča Plesk ima zelo lepo integracijo za Lets Encrypt. Lets Encrypt je eden edinih ponudnikov SSL, ki izdaja potrdila v celoti

Namestite MariaDB 10 na CentOS 6

Namestite MariaDB 10 na CentOS 6

V času pisanja je MariaDB 10.1 razvojna različica MariaDB. Temelji na MariaDB 5.5 in vključuje funkcije, prenesene nazaj iz MySQL 5.6. Ther

Omogoča šifriranje na cPanelu

Omogoča šifriranje na cPanelu

Lets Encrypt je certifikacijski organ, ki je namenjen brezplačnemu zagotavljanju certifikatov SSL. cPanel je zgradil lepo integracijo za vas in vašo stranko

Kako namestiti Concrete5 na CentOS 7

Kako namestiti Concrete5 na CentOS 7

Uporaba drugega sistema? Concrete5 je odprtokodni CMS, ki ponuja številne značilne in uporabne funkcije za pomoč urednikom pri preprosti izdelavi vsebine.

Kako namestiti pregledno ploščo na CentOS 7

Kako namestiti pregledno ploščo na CentOS 7

Uporaba drugega sistema? Review Board je brezplačno in odprtokodno orodje za pregledovanje izvorne kode, dokumentacije, slik in še veliko več. Gre za spletno programsko opremo

Nastavite preverjanje pristnosti HTTP z Nginxom na CentOS 7

Nastavite preverjanje pristnosti HTTP z Nginxom na CentOS 7

V tem priročniku se boste naučili, kako nastaviti preverjanje pristnosti HTTP za spletni strežnik Nginx, ki deluje na CentOS 7. Zahteve Za začetek boste potrebovali

Kako namestiti YOURLS na CentOS 7

Kako namestiti YOURLS na CentOS 7

YOURLS (Your Own URL Shortener) je odprtokodna aplikacija za krajšanje URL-jev in analitiko podatkov. V tem članku bomo obravnavali postopek namestitve

Kako namestiti in konfigurirati ArangoDB na CentOS 7

Kako namestiti in konfigurirati ArangoDB na CentOS 7

Uporaba drugega sistema? Uvod ArangoDB je odprtokodna baza podatkov NoSQL s prilagodljivim podatkovnim modelom za dokumente, grafe in ključe-vrednosti. je

Uporaba Etckeeperja za nadzor različic /etc

Uporaba Etckeeperja za nadzor različic /etc

Uvod Imenik /etc/ igra ključno vlogo pri delovanju sistema Linux. Razlog za to je skoraj vsaka sistemska konfiguracija

Zakaj bi morali uporabljati SSHFS? Kako namestiti oddaljeni datotečni sistem s SSHFS na CentOS 6

Zakaj bi morali uporabljati SSHFS? Kako namestiti oddaljeni datotečni sistem s SSHFS na CentOS 6

Številni sistemski skrbniki upravljajo velike količine strežnikov. Ko je treba do datotek dostopati prek različnih strežnikov, se prijavite v vsakega posebej ca

Nastavitev strežnika Half Life 2 na CentOS 6

Nastavitev strežnika Half Life 2 na CentOS 6

Ta vadnica bo obravnavala postopek namestitve igralnega strežnika Half Life 2 na sistem CentOS 6. 1. korak: Namestitev predpogojev Za nastavitev ou

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več