ZFS

ZFS DigitalOcean Hands On Tutorial

ZFS DigitalOcean Hands On Tutorial

OpenZFS: En praktisk guide med DigitalOcean

Du kanske har hört flera gånger att ZFS är ett filsystem för företagskvalitet som är avsett att hantera stora mängder data i komplicerade matriser. Naturligtvis skulle detta få alla som kommer att tänka att de inte borde (eller inte kunde) prata med sådan teknik.

Ingenting kan vara längre ifrån sanningen. ZFS är en av få programvara där ute som bara fungerar. Utanför lådan, utan finjustering, gör den alla saker som den annonserar - Från dataintegritetskontroller till RAIDZ-konfiguration. Ja, det finns finjusteringsalternativ tillgängliga, och man kan gräva i det om behovet uppstår. Men för nybörjare fungerar standarderna underbart bra.

En begränsning som du kan stöta på är hårdvarans. Att sätta flera skivor i olika konfigurationer innebär att du har många skivor att ligga med! Det är där DigitalOcean (DO) kommer till undsättning.

Obs: Om du är bekant med DO och hur du ställer in SSH-nycklar kan du hoppa direkt till ZFS-delen av diskussionen. Vad de två följande avsnitten visar är hur man ställer in en virtuell dator på DigitalOcean och kopplar blockenheter till den med

Introduktion till DigitalOcean

För att uttrycka det enkelt är DigitalOcean en molntjänstleverantör där du kan snurra upp virtuella maskiner för att dina appar ska kunna köras. Du får en vansinnig mängd bandbredd och all SSD-lagring för att köra dina appar på. Det är riktat mot utvecklarna och inte operatörerna, varför användargränssnittet är mycket enklare och lättare att förstå.

Dessutom debiteras de per timme, vilket innebär att du kan arbeta med olika ZFS-konfigurationer i några timmar, ta bort alla virtuella datorer och lagring när du är nöjd, och din faktura kommer inte att överstiga mer än några dollar.

Vi kommer att använda två av funktionerna på DigitalOcean för denna handledning:

  1. Droppar: En dropp är deras ord för en virtuell maskin som kör ett operativsystem med en statisk offentlig IP. Vårt val av operativsystem är Ubuntu 16.04 LTS.
  2. Blockera lagring: Blockeringslagring liknar en disk som är ansluten till din dator. Förutom här får du bestämma storleken och antalet diskar du önskar.

Registrera dig för DigitalOcean om du inte redan har gjort det.

För att logga in på din virtuella maskin finns det två sätt, det ena är att använda konsolen (för vilken lösenordet skickas till dig) eller så kan du använda SSH-nyckelalternativet.

Grundläggande SSH-inställning

MacOS och andra UNIX-användare som har en terminal på skrivbordet kan använda den för att SSH i sina droppar (SSH-klienten är installerad som standard på nästan alla enheter) och Windows-användare kanske vill ladda ner Git Bash.

När du är i din terminal anger du följande kommandon:

$ mkdir -p ~ /.ssh
$ cd ~ /.ssh
$ ssh-keygen -y -f YourKeyName

Detta genererar två filer i ~ /.ssh katalog, en som heter YourKeyName, som du behöver för att vara säker och privat hela tiden. Det är din privata nyckel. Det kommer att kryptera meddelanden innan du skickar dem till servern, och det kommer att dekryptera meddelanden som servern skickar tillbaka dig. Som namnet antyder är den privata nyckeln tänkt att hållas hemlig hela tiden.

En annan fil skapas med namnet YourKeyName.pub och det här är din offentliga nyckel som du kommer att tillhandahålla till DigitalOcean när du skapar Droplet. Den hanterar kryptering och dekryptering av meddelanden på servern, precis som den privata nyckeln gör på din lokala maskin.

Skapa din första droppe

Efter att du registrerat dig för DO är du redo att skapa din första Droplet.  Följ stegen nedan:

1. Klicka på skapa-knappen i det övre högra hörnet och välj Liten droppe alternativ.

2. Nästa sida låter dig bestämma specifikationerna för din Droplet. Vi kommer att använda Ubuntu.

3. Välj storlek, även alternativet $ 5 / månad fungerar för små experiment.

4. Välj det datacenter som är närmast dig för låga latenser. Du kan hoppa över resten av de ytterligare alternativen.

Obs! Lägg inte till några volymer nu. Vi kommer att lägga till dem senare för tydlighetens skull.

5. Klicka på Nya SSH-nycklar och kopiera allt innehåll i YourKeyName.pub in i det och ge det ett namn. Klicka bara på Skapa och din droppe är bra att gå.

6. Hämta IP-adressen till din Droplet från instrumentpanelen.

7. Nu kan du SSH, som rootanvändare, i din Droplet, från din terminal med kommandot:

$ ssh root @ 138.68.97.47 -i ~ /.ssh / YourKeyName

Kopiera inte ovanstående kommando eftersom din IP-adress kommer att vara annorlunda. Om allt fungerade korrekt kommer du att få ett välkomstmeddelande på din terminal och du kommer att loggas in på din fjärrserver.

Lägga till blocklagring

För att få en lista över blocklagringsenheter i din virtuella dator använder du kommandot i terminalen:

$ lsblk

Du ser bara en skiva partitionerad i tre blockenheter. Det här är OS-installationen och vi ska inte experimentera med dem. Vi behöver fler lagringsenheter för det.

För att gå till din DigitalOcean-instrumentpanel klickar du på Createra knappen som du gjorde i första steget och välj volymalternativ. Fäst den på din Droplet och ge den ett lämpligt namn. Lägg till tre sådana volymer genom att upprepa detta steg två gånger till.

Nu om du går tillbaka till din terminal och skriver in lsblk, du kommer att se nya poster i den här listan. I skärmdumpen nedan finns det tre nya diskar som vi ska använda för att testa ZFS.

Som ett sista steg, innan du går in i ZFS, bör du först märka dina diskar enligt GPT-schemat. ZFS fungerar bäst med GPT-schema, men blocklagringen som läggs till dina droppar har en MBR-etikett. Följande kommando åtgärdar problemet genom att lägga till en GPT-etikett till dina nyligen anslutna blockenheter.

$ sudo parted / dev / sda mklabel gpt

Obs: Den partitionerar inte blockenheten, den använder bara "parted" -verktyget för att ge ett globalt unikt ID (GUID) till blockenheten. GPT står för GUID Partition Table och det håller reda på varje disk eller partition med en GPT-etikett på.

Upprepa samma för sdb och sdc.

Nu är vi redo att komma igång med att använda OpenZFS med tillräckligt många enheter för att experimentera med olika arrangemang.

Zpools och VDEVs

För att komma igång med att skapa din första Zpool. Du måste förstå vad en virtuell enhet är och vad dess syfte är.

En virtuell enhet (eller en Vdev) kan vara en enda skiva eller en grupp av skivor som exponeras som en enda enhet för zpoolen. Till exempel de tre 100 GB-enheterna som skapats ovan sda, sdb och sdc alla kan vara en egen vdev och du kan skapa en zpool med namnet tank, av den som kommer att ha lagringskapacitet för de tre skivorna tillsammans som är 300 GB
Installera först ZFS för Ubuntu 16.04:

$ apt installera zfs
$ zpool skapa tank SDA SDB SDC
$ zpool status tank

Dina data sprids jämnt över de tre skivorna, och om någon av skivorna misslyckas går all din data förlorad. Som du kan se ovan är skivorna själva vdevs.

Men du kan också skapa en zpool där de tre diskarna replikerar varandra, så kallad spegling.

Förstör först poolen som skapats tidigare:

$ zpool förstör tanken

För att skapa en speglad vdev använder vi nyckelordet spegel:

$ zpool skapa tank spegel sda sdb sdc

Nu är den totala mängden tillgängligt lagringsutrymme bara 100 GB (använd zpool-lista för att se det) men nu kan vi klara upp till två felstationer i vdev spegel-0.

När du tar slut på utrymme och vill lägga till mer lagringsutrymme i din pool måste du skapa ytterligare tre volymer i DigitalOcean och upprepa stegen i Lägga till blocklagring gör det med ytterligare 3 blockenheter som kommer att visas som vdev spegel 1. Du kan hoppa över det här steget för nu, bara vet att det kan göras.

$ zpool lägg till tank spegel sde sdf sdg

Slutligen finns det raidz1-konfiguration som kan användas för att gruppera tre eller fler skivor i varje vdev och kan överleva felet på 1 disk per vdev och ge en totalt tillgänglig lagringsutrymme på 200 GB.

$ zpool förstör tanken
$ zpool skapa tank raidz1 sda sdb sdc

Medan zpool-listan visar den råa lagringens nettokapacitet, zfs lista och df -h kommandon visar den faktiska tillgängliga lagringen av zpool. Så det är alltid en bra idé att kontrollera tillgängligt lagringsutrymme med zfs lista kommando.

Vi kommer att använda detta för att skapa datamängder.

Datamängder och återställning

Traditionellt brukade vi montera filsystem som / home, / usr och / temp i olika partitioner och när vi fick slut på utrymme var man tvungen att lägga till symlänkar till extra lagringsenheter som lagts till i systemet.

Med zpool lägg till du kan lägga till diskar i samma pool och den fortsätter att växa enligt dina behov. Du kan sedan skapa datamängder, vilket är zfs-termen för ett filsystem, som / usr / home och många andra som sedan bor på zpoolen och delar all lagring som görs tillgänglig för dem.

Skapa en zfs-dataset i poolen tank använd kommandot:

$ zfs skapa tank / dataset1
$ zfs lista

Som tidigare nämnts kan en raidz1-pool tåla fel på upp till en disk. Så låt oss testa det.

$ zpool offline tank sda

Nu är poolen offline, men inte allt går förlorat. Vi kan lägga till ytterligare en volym, sdd, använder DigitalOcean och ger det en gpt-etikett som tidigare.

Vidare läsning

Vi uppmuntrar dig att prova ZFS och dess olika funktioner så mycket du vill på din fritid. Se till att ta bort alla volymer och droppar när du är klar för att undvika oväntade faktureringar i slutet av månaden.

Du kan lära dig mer om ZFS-terminologi här.

Mus Mellan musknappen fungerar inte i Windows 10
Mellan musknappen fungerar inte i Windows 10
De mittknappen hjälper dig att bläddra igenom långa webbsidor och skärmar med mycket data. Om det slutar, kommer du sluta använda tangentbordet för at...
Mus Hur man ändrar vänster och höger musknapp på Windows 10 PC
Hur man ändrar vänster och höger musknapp på Windows 10 PC
Det är en hel norm att alla datormusenheter är ergonomiskt utformade för högerhänta användare. Men det finns musenheter tillgängliga som är speciellt ...
Mus Emulera musklick genom att sväva med Clickless Mouse i Windows 10
Emulera musklick genom att sväva med Clickless Mouse i Windows 10
Att använda en mus eller tangentbord i fel hållning av överdriven användning kan resultera i många hälsoproblem, inklusive stam, karpaltunnelsyndrom o...