Zoals we vorige week al opmerkten, is Ubuntu 19.10 officieel gearriveerd en het brengt een aantal echt opwindende features met zich mee. Hoewel de meerderheid van deze nieuwe opties gericht zijn op desktop gebruikers, is er een bijzonder spannende functie die zowel desktop- als servergebruikers ten goede zal komen. Die feature is ZFS support.
Voor het eerst ontwikkeld door Sun Microsystems voor zijn Solaris Unix distro, ZFS is een combinatie van 128-bit bestandssysteem en logische volume manager die de volgende features biedt:
- Is schaalbaar.
- Biedt ondersteuning voor hoge opslag capaciteit en efficiëntere data compressie.
- Bevat snapshots en rollbacks.
- Ondersteunt copy-on-write clones.
- Doet continue integriteitscontrole en automatische reparatie.
- 128-bit adressering
- En nog veel meer.
Vraag elke admin en ze zullen het ermee eens zijn dat de toevoeging van ZFS een big deal is voor Ubuntu. Waarom? De snapshots en rollback functies alleen al zijn de instapprijs waard (die, tussen haakjes, gratis is). Met deze functie, kunnen beheerders hun systemen terugdraaien naar een werkende staat (of een staat die per ongeluk verwijderde gegevens bevatte). Dat is nogal wat.
Natuurlijk zijn snapshots en rollbacks niet nieuw. In feite hebben veel platforms deze tool al jaren. Dus misschien is Ubuntu een beetje achter op de curve op dit punt. Maar voor iedereen die Ubuntu gebruikt is dit een geval van “beter laat dan nooit.”
Maar hoe werkt ZFS op Ubuntu? Ik ben blij dat je het vraagt. Ik zal het je laten zien.
Een waarschuwing
Voordat je hier in duikt, weet dat ZFS ondersteuning in Ubuntu 19.10 experimenteel is. Hoewel ik heb gemerkt dat het ongelooflijk stabiel is, zou u twee keer kunnen nadenken over het gebruik ervan in een productieomgeving (totdat het niet langer wordt vermeld als “experimenteel”).
Ook, merk op dat ZFS-ondersteuning momenteel alleen wordt aangeboden tijdens de installatie van de desktopversie. Dat betekent niet dat je geen ondersteuning voor het bestandssysteem op de server versie kunt toevoegen, maar het is niet zo eenvoudig. Daarom zal ik een demonstratie geven op de desktop versie van Ubuntu 19.10.
Installatie
De eerste stap is om ZFS in te schakelen tijdens de installatie van Ubuntu 19.10. Tijdens de installatie vindt u een nieuwe optie in de installatietype fase (Figuur 1).
Figuur 1: Het selecteren van de ZFS optie tijdens de installatie.
Als de installatie is voltooid, herstart u en meldt u zich aan.
Als u de server versie van Ubuntu 19.10, kunt u altijd ZFS ondersteuning installeren met het commando:
1
|
sudo apt-get install zfsutils-linux
|
Als u die route volgt, moet u natuurlijk wel een paar extra stappen nemen (zoals het aanmaken van datasets). Met de desktop installatie, zult u merken dat uw hele directory hiërarchie bestaat uit ZFS datasets, dus er is veel minder werk te doen.
Eerste stappen met ZFS
Zodra u bent ingelogd op de desktop, zult u een terminal venster willen openen en een lijst van uw datasets opvragen. Met Ubuntu installaties die geen ZFS gebruiken, zou u typisch werken met directory paden zoals /home/jack of /usr/local/. Dat is niet het geval met systemen die ZFS ondersteunen. In plaats daarvan werken ze met datasets. Een dataset is een type bestandssysteem dat een opslagpool deelt (de meest elementaire bouwsteen van ZFS).
Om uw datasets te vinden, voert u het volgende commando uit:
1
|
zfs list
|
Zoals u kunt zien (in Figuur 2), is elke directory ofwel te vinden in de bpool (boot) of rpool (root) pool.
Figuur 2: Onze lijst met datasets.
Laten we eens werken met de homedirectory van een gebruiker. In dit geval, de dataset rpool/USERDATA/jack_bwcn4u.
Een snapshot maken
Het eerste wat we gaan doen is een nieuw snapshot maken van de /home/jack directory (die, onthoud, de rpool/USERDATA/jack_bwcn4u dataset is). Laat ons zeggen dat we een snapshot willen maken met de datum van vandaag. Het commando hiervoor zou zijn:
1
|
sudo zfs snapshot rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Of je zou het datumcommando als volgt kunnen opnemen:
1
|
sudo zfs rollback rpool/USERDATA/jack_bwcn4u@`date +%F`
|
Om te controleren of je snapshot is gemaakt, voer je het commando uit:
1
|
zfs list -t snapshot
|
U zou alle huidige snapshots in een lijst moeten zien (Figuur 3).
Figuur 3: Onze nieuwe momentopname is gemaakt.
Een momentopname terughalen
Stel dat, om wat voor reden dan ook, per ongeluk een map uit die thuismap is verwijderd. Wat doet u dan? Gelukkig hebt u een momentopname gemaakt en kunt u die momentopname terugdraaien, zodat de verwijderde directory terugkomt.
Eerst, laten we de ~/Documenten directory verwijderen met het commando:
1
|
rm -rf /home/jack/Documents
|
Start het ls commando en je ziet dat de Documents directory weg is (Figuur 4).
Onze map Documenten is verwijderd.
Nu gaan we de momentopname van vrijdag terugdraaien om die map te herstellen. Om dit te doen, voer het commando uit:
1
|
sudo zfs rollback rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Nadat de opdracht is voltooid, voert u opnieuw ls uit om te zien of de documenten zijn teruggekeerd (afbeelding 5).
Figuur 5: Documenten is terug.
Vernietigen van momentopnamen
Stel dat u een aantal momentopnamen hebt gemaakt, of dat een bepaalde momentopname corrupte of ontbrekende gegevens bevat. U zou dat snapshot misschien willen verwijderen. Laten we zeggen dat we het snapshot rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19 willen verwijderen. Om dat te doen, zou het commando zijn:
1
|
sudo zfs destroy rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Als je eenmaal een snapshot hebt vernietigd, kan het niet meer worden teruggehaald, dus gebruik dat commando met zorg. Indien je toevallig een bijzonder belangrijk snapshot hebt dat je niet vernietigd wil zien, kan je er een hold op plaatsen. Om een hold te plaatsen op ons rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19 snapshot, zou u het volgende commando geven:
1
|
sudo zfs hold keep rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Als je nu probeert om die snapshot te vernietigen, krijgt u een foutmelding te zien (Figuur 6).
Figuur 6: Kan deze momentopname niet vernietigen.
Om een vastgehouden momentopname te vernietigen, moet u de optie -d toevoegen, zoals hieronder:
1
|
<i>sudo zfs destroy -d rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19</i>
|
Dat is het, de vastgehouden momentopname is verdwenen.
En dat is de basis van het maken en vernietigen van snapshots met de nieuw toegevoegde ZFS functie in Ubuntu 19.10. Probeer dit eens op een testomgeving en kijk hoe goed het werkt. Tot nu toe heb ik slechts één probleem ontdekt: wanneer ik een snapshot probeerde terug te draaien, moest ik de machine herstarten voordat het rollback commando succesvol werd uitgevoerd. Buiten dat ene probleem, is het probleemloos verlopen met ZFS en Ubuntu 19.10.