Delade enheter med hög tillgänglighet som använder Vultr Block Storage och GlusterFS

GlusterFS är ett nätverksanslutet filsystem som effektivt låter dig dela två enheter över flera enheter i nätverket. Det här filsystemet passar perfekt för Vultrs blocklagringserbjudande, eftersom du kan dela en enhet över nätverket vilket inte är möjligt direkt.

När det gäller funktioner, utbyggbarhet och tillförlitlighet har GlusterFS visat sig vara ett av de mest sofistikerade och stabila filsystemen som finns.

När ändringar görs på enheten på en server, kommer de automatiskt att replikeras till den andra servern i realtid. För att uppnå detta och följa den här guiden behöver du:

  • Två Vultr-molninstanser, helst med samma operativsystem.
  • Två blocklagringsenheter av samma storlek.

Efter att ha beställt dessa två blocklagringsenheter, bör du koppla dem till VM 1 och VM 2. Eftersom vi kommer att använda båda blocklagringsenheterna för samma filsystem, kommer att dividera den totala storleken på båda enheterna med två att ge dig den användbara mängden av GB. Till exempel, om du har två 100 GB-enheter, kommer 100 GB att vara användbara (100 * 2 / 2).

Dessutom måste båda virtuella datorerna vara på samma plats för att de ska vara på samma privata nätverk. Vi kommer att ansluta till servrarna med deras interna IP-adresser. Observera att vi kommer att radera data på blocklagringsenheten. Se till att de är helt nya och oformaterade.

I den här guiden kommer vi att använda storage1och storage2, respektive med privata IP-adresser 10.0.99.10 och 10.0.99.11. Dina servernamn och IP-adresser kommer med största sannolikhet att skilja sig åt, så se till att ändra dem när du ställer in GlusterFS.

Den här guiden skrevs med CentOS / RHEL 7 i åtanke. GlusterFS är dock relativt korskompatibel över flera Linux-distributioner.

Konfigurera GlusterFS

Steg 1: Ändra /etc/hostsfilen

För att vi snabbt ska kunna ansluta till respektive instans bör vi lägga till namn som är lätta att komma ihåg i hostsfilen. Öppna /etc/hostsfilen och lägg till följande rader längst ner i den:

10.0.99.10 storage1
10.0.99.11 storage2

Steg 2: Lägg till disken storage1

SSH till storage1och kör följande kommandon. Som standard är anslutna blocklagringsenheter monterade som /dev/vdb. Om detta av någon anledning skiljer sig i ditt fall bör du ändra det i kommandona nedan.

Formatera disken:

fdisk /dev/vdb

Tryck på "enter" för följande tre frågor (angående partitionsstorlek och liknande, vi vill använda allt tillgängligt utrymme på blocklagringsenheterna) och skriv "w" för att skriva dessa ändringar till disken. När detta har slutförts, skriv:

/sbin/mkfs.ext4 /dev/vdb1

Vi har gått vidare och skapat ett filsystem nu eftersom Vultr inte skapar några filsystem på blocklagring som standard.

Därefter kommer vi att skapa mappen där vi kommer att lagra våra filer. Du kan ändra detta namn men du kommer inte att se det förekomma så mycket, så för att eliminera komplexiteten rekommenderar jag att du låter det vara ifred.

mkdir /glusterfs1

För att automatiskt montera enheten vid uppstart, öppna /etc/fstaboch lägg till följande rad längst ner i filen:

/dev/vdb1 /glusterfs1      ext4    defaults        1 2

Montera slutligen enheten:

mount -a

Monteringen kommer att förbli beständig under omstarter, så när du startar om din server kommer enheten automatiskt att monteras igen.

Steg 3: Lägg till disken storage2

Nu när vi har lagt till disken och monterad på storage1måste vi skapa disken på storage2också. Kommandona skiljer sig knappt åt. För fdisk, följ samma steg som ovan.

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

Redigera /etc/fstaboch lägg till följande rad:

/dev/vdb1 /glusterfs2      ext4    defaults        1 2

Precis som på storage1, kommer enheten automatiskt att monteras vid omstarter.

Montera enheten:

mount -a

Slutligen, låt oss kontrollera om vi kan se partitionen dyka upp:

df -h

Du bör se din enhet dyka upp här. Om det inte gör det, försök att följa stegen ovan.

Steg 4: Installera GlusterFS på storage1ochstorage2

Vi måste installera GlusterFS härnäst. Lägg till förvaret och installera 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

Det finns en chans att du får ett felmeddelande yumeftersom signaturen för förvaret inte stämmer. I så fall är det säkert att tvinga fram att inte leta efter GPG-signaturen:

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

På båda servrarna, kör följande kommandon för att starta GlusterFS just nu och starta det automatiskt efter en omstart:

systemctl enable glusterd.service
systemctl start glusterd.service

Om du använder en äldre version av CentOS, kan du använda serviceoch chkconfigkommandon:

chkconfig glusterd on
service glusterd start

Steg 5: Inaktivera brandväggen på storage1ochstorage2

Även om det inte är den bästa lösningen i sig, är det en bra idé att stänga av brandväggen för att eliminera eventuella konflikter med blockerade portar. Om du inte känner dig bekväm med att göra detta, ändra gärna reglerna efter eget tycke, men på grund av GlusterFS natur rekommenderar jag starkt att du inaktiverar brandväggen. Med tanke på att ett privat nätverk faktiskt är privat på Vultr (och du behöver inte brandvägga andra kunder) kan du helt enkelt blockera all inkommande trafik från internet och begränsa tillåtna anslutningar till det privata nätverket. Det räcker dock att stänga av brandväggen och inte ändra några andra systemkonfigurationer:

systemctl stop firewalld.service
systemctl disable firewalld.service

Om du använder en äldre CentOS version som inte stöder systemctl, använder serviceoch chkconfigkommandon:

service firewalld stop
chkconfig firewalld off

Om du inte använder firewalld, försök att inaktivera iptables:

service iptables stop
chkconfig iptables off

Steg 6: Lägg till servrar till lagringspoolen

Efter att ha stängt av brandväggen kan vi lägga till båda servrarna i lagringspoolen. Detta är en pool som består av all tillgänglig förvaring. Kör följande kommando på storage1:

gluster peer probe storage2

Vad det här kommandot gör är att lägga storage2till sin egen lagringspool. Genom att utföra följande kommando på storage2kommer båda enheterna att synka:

gluster peer probe storage1

Efter att ha utfört detta på båda servrarna bör vi kontrollera statusen på båda servrarna:

gluster peer status

Båda servrarna bör visa statusen "Peers: 1". Ett vanligt misstag är att människor förväntar sig att se Peers: 2, men som storage1kommer att kikna med storage2och vice versa, kikar de inte med sig själva. Därför Peers: 1är vad vi behöver.

Steg 7: Skapa en delad enhet på storage1

Nu när båda servrarna kan ansluta med varandra via GlusterFS, kommer vi att skapa en delad enhet.

storage1, kör:

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

Volymen har nu skapats. I GlusterFS måste du "starta" en volym så att den aktivt delas över flera enheter. Låt oss börja det:

gluster volume start mailrep-volume

Välj sedan en mapp som ska finnas på volymen och replikeras över båda servrarna. I den här handledningen kommer vi att använda mappen /var/files. Naturligtvis kan detta vara vad du vill. Skapa den storage1 endast på :

mkdir /var/files

Montera den sedan:

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

Uppdatera /etc/fstabså att enheten automatiskt monteras vid uppstart. Lägg till följande:

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

Montera tillbaka enheten:

mount -a

Steg 8: Skapa en delad enhet på storage2

Nu när vi har skapat en delad enhet på storage1måste vi skapa en på storage2också. Skapa en mapp med samma plats/sökväg och namn:

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

Precis som på storage1, lägg till följande rad till /etc/fstab:

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

Montera tillbaka enheten:

mount -a

Steg 9: Testa den delade lagringen

Navigera till /var/filesmappen på storage1och skapa en fil:

cd /var/files
touch created_on_storage1

Gå sedan över till storage2servern. Kör ls -laoch du bör se filen created_on_storage1dyka upp.

storage2, navigera till /var/filesmappen och skapa en fil:

cd /var/files
touch created_on_storage2

Gå tillbaka till storage1och kör ls -la /var/files. Du bör se filen created_on_storage2visas här.

Steg 10: Starta om alla servrar (valfritt)

För att dubbelkolla om din installation kommer att förbli beständig vid omstarter, som en bästa praxis, bör du starta om alla servrar. Som nämnts bör du vänta tills en server är uppe och sedan starta om den andra för att den delade enheten automatiskt ska monteras.

Starta om storage1först, vänta tills den är uppe och starta sedan om storage2. Logga nu in på och kör på båda servrarna:

cd /var/files
ls -la

Du bör nu se att båda filerna visas. Se till att börja utan några filer på volymen, så ta bort testfilerna vi har skapat. Du kan göra detta på storage1, storage2eller båda. Ändringar kommer att replikeras omedelbart:

cd /var/files
rm created_on_storage1
rm created_on_storage2

Du bör ha en identisk delad volym över båda servrarna, oavsett åtgärderna på båda volymerna.

Du har nu ställt in en fullfjädrad GlusterFS-installation med 100 GB (eller mer) användbart utrymme. Om du behöver mer i framtiden är installationen lätt skalbar för att lägga till mer kapacitet och/eller fler servrar om din arbetsbelastning skulle kräva detta.

Tack för att du läste!


Viktig anmärkning angående ommontering

GlusterFS gör det möjligt att hålla dina data uppdaterade på två enheter. Du bör dock notera att när båda servrarna startas om samtidigt måste du tvinga enheterna på båda servrarna. Du måste tvinga monteringen manuellt genom att utföra följande kommando:

gluster volume start mailrep-volume force

Det beror på att en av servrarna fungerar som en server och den andra fungerar som en klient. Även om skillnaden inte märks särskilt lätt i praktiken betyder det att när du behöver starta om båda servrarna bör du starta om den ena, vänta tills den är uppe och sedan starta om den andra.

Viktig anmärkning angående säkerhetskopiering

Även om din data kommer att replikeras över två enheter, bör du ha din data replikerad minst tre gånger. Även om din data är bättre skyddad mot datakorruption och liknande, bör du notera att ändringar är omedelbara och du kommer inte på något sätt att vara skyddad mot mänskliga misstag. När du tar bort alla filer på en enhet, kommer dessa ändringar omedelbart att replikeras till den andra enheten, vilket innebär att dina data skulle raderas på båda instanserna.

Lyckligtvis finns det flera sätt att undvika detta. Först och främst rekommenderar jag att du aktiverar säkerhetskopior på själva molninstansen. Även om dessa säkerhetskopior inte inkluderar data på blocklagringen kommer det att skydda data på själva instansen.

När det kommer till att säkerhetskopiera data på själva blocklagringen rekommenderar jag att du snurrar upp en separat instans (till exempel en SATA-plan) så att du till exempel kan köra en backup från en av de två anslutna servrarna varje natt. På så sätt kommer dina data att vara säkra på en annan separat enhet.

FAQ

Kan jag utöka min disklagring?

Du kan öka blocklagringsstorleken från Vultr-kontrollpanelen. Du bör ändra storlek på disken inuti operativsystemet efter, men det faller utanför ramen för den här artikeln.

Kan jag ansluta blocklagringen till över två servrar?

Även om den här guiden har skrivits för två servrar (därmed två blocklagringsenheter kopplade till båda servrarna) men det är möjligt att ta den här guiden och använda den för över två servrar också. En installation med över två servrar/enheter kan se ut så här för 6 servrar, till exempel:

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

Med tanke på att alla blocklagringsenheter har en kapacitet på t.ex. 200 GB, skulle du få 200 * 4 / 4. Med andra ord är det användbara utrymmet alltid kapaciteten för en enda blocklagringsenhet. Det beror på att en server med blocklagring ansluten behandlas som "master" av GlusterFS och den replikeras över de andra servrarna. Installationen är dock byggd för att kunna överleva utan en masterserver, vilket gör det till en så redundant och pålitlig, stabil lösning.


Installera Plesk på CentOS 7

Installera Plesk på CentOS 7

Använder du ett annat system? Plesk är en egen kontrollpanel för webbhotell som tillåter användare att administrera sina personliga och/eller klienters webbplatser, databaser

Hur man installerar Squid Proxy på CentOS

Hur man installerar Squid Proxy på CentOS

Squid är ett populärt, gratis Linux-program som låter dig skapa en webbproxy för vidarebefordran. I den här guiden ser du hur du installerar Squid på CentOS för att förvandla dig

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Inledning Lighttpd är en apachegaffel som syftar till att vara mycket mindre resurskrävande. Den är lätt, därav namnet, och är ganska enkel att använda. Installera

Konfigurera statiskt nätverk och IPv6 på CentOS 7

Konfigurera statiskt nätverk och IPv6 på CentOS 7

VULTR har nyligen gjort ändringar på deras sida, och allt borde nu fungera bra direkt när NetworkManager är aktiverat. Om du vill inaktivera

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 är ett kraftfullt övervakningssystem, och när det används i en master-klient-modell kan det ersätta behovet av NRPE-baserade övervakningskontroller. Master-klienten

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar Microweber på CentOS 7

Hur man installerar Microweber på CentOS 7

Använder du ett annat system? Microweber är en öppen källkod för dra och släpp CMS och onlinebutik. Microweber källkod finns på GitHub. Denna guide kommer att visa dig

Hur man installerar Vanilla Forum på CentOS 7

Hur man installerar Vanilla Forum på CentOS 7

Använder du ett annat system? Vanilla forum är en open source forumapplikation skriven i PHP. Det är en helt anpassningsbar, enkel att använda och stöder externa

Hur man installerar Mattermost 4.1 på CentOS 7

Hur man installerar Mattermost 4.1 på CentOS 7

Använder du ett annat system? Mattermost är ett alternativ med öppen källkod, självvärd till meddelandetjänsten Slack SAAS. Med andra ord, med Mattermost, du ca

Skapa ett nätverk av Minecraft-servrar med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Skapa ett nätverk av Minecraft-servrar med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Vad du behöver En Vultr VPS med minst 1 GB RAM. SSH-åtkomst (med root-/administrativa privilegier). Steg 1: Installera BungeeCord Först till kvarn

Låt oss kryptera på Plesk

Låt oss kryptera på Plesk

Plesks kontrollpanel har en mycket trevlig integration för Lets Encrypt. Lets Encrypt är en av de enda SSL-leverantörerna som ger ut certifikat fullständigt

Låter kryptera på cPanel

Låter kryptera på cPanel

Lets Encrypt är en certifikatmyndighet dedikerad till att tillhandahålla SSL-certifikat gratis. cPanel har byggt en snygg integration så att du och din klient

Hur man installerar Concrete5 på CentOS 7

Hur man installerar Concrete5 på CentOS 7

Använder du ett annat system? Concrete5 är ett CMS med öppen källkod som erbjuder många distinkta och användbara funktioner för att hjälpa redaktörer att producera innehåll enkelt och

Hur man installerar Review Board på CentOS 7

Hur man installerar Review Board på CentOS 7

Använder du ett annat system? Review Board är ett gratis och öppen källkodsverktyg för att granska källkod, dokumentation, bilder och många fler. Det är webbaserad mjukvara

Ställ in HTTP-autentisering med Nginx på CentOS 7

Ställ in HTTP-autentisering med Nginx på CentOS 7

I den här guiden lär du dig hur du ställer in HTTP-autentisering för en Nginx-webbserver som körs på CentOS 7. Krav För att komma igång behöver du

Hur man installerar YOURLS på CentOS 7

Hur man installerar YOURLS på CentOS 7

YOURLS (Your Own URL Shortener) är ett webbadressförkortnings- och dataanalysprogram med öppen källkod. I den här artikeln kommer vi att täcka installationsprocessen

Hur man installerar och konfigurerar ArangoDB på CentOS 7

Hur man installerar och konfigurerar ArangoDB på CentOS 7

Använder du ett annat system? Inledning ArangoDB är en NoSQL-databas med öppen källkod med en flexibel datamodell för dokument, grafer och nyckel-värden. Det är

Använda Etckeeper för versionskontroll av /etc

Använda Etckeeper för versionskontroll av /etc

Inledning Katalogen /etc/ spelar en avgörande roll för hur ett Linux-system fungerar. Anledningen till detta är att nästan varje systemkonfiguration

Varför ska du använda SSHFS? Hur man monterar ett fjärrfilsystem med SSHFS på CentOS 6

Varför ska du använda SSHFS? Hur man monterar ett fjärrfilsystem med SSHFS på CentOS 6

Många systemadministratörer hanterar stora mängder servrar. När filer behöver nås över olika servrar, logga in på var och en individuellt ca

Konfigurera en Half Life 2-server på CentOS 6

Konfigurera en Half Life 2-server på CentOS 6

Denna handledning kommer att täcka processen att installera en Half Life 2-spelserver på CentOS 6 System. Steg 1: Installera förutsättningarna För att ställa in ou

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer