Som vi bemærkede i sidste uge, er Ubuntu 19.10 officielt ankommet, og det bringer en række virkelig spændende funktioner med sig. Selv om størstedelen af disse nye muligheder er målrettet desktop-brugere, er der en særlig spændende funktion, som vil gavne både desktop- og serverbrugere. Denne funktion er ZFS-understøttelse.
ZFS blev først udviklet af Sun Microsystems til deres Solaris Unix-distro og er en kombination af 128-bit filsystem og logisk volumemanager, der tilbyder følgende funktioner:
- Er skalerbar.
- Giver støtte til høj lagerkapacitet og mere effektiv datakomprimering.
- Inkluderer snapshots og rollbacks.
- Understøtter copy-on-write-kloner.
- Gør løbende integritetskontrol og automatisk reparation.
- 128-bit adressering
- Og meget mere.
Spørg enhver administrator, og de vil være enige om, at tilføjelsen af ZFS er en stor ting for Ubuntu. Hvorfor? Alene snapshots- og rollback-funktionerne er adgangsprisen værd (som i øvrigt er gratis). Med denne funktion kan administratorer rulle deres systemer tilbage til en fungerende tilstand (eller en tilstand, der indeholdt data, der ved et uheld blev slettet). Det er noget af en stor ting.
Naturligvis er snapshots og rollbacks ikke noget nyt. Faktisk har mange platforme inkluderet dette værktøj i årevis. Så måske er Ubuntu en smule bagud på dette område. Men for alle, der bruger Ubuntu, er dette et tilfælde af “bedre sent end aldrig.”
Men hvordan fungerer ZFS på Ubuntu? Jeg er glad for, at du spørger. Lad mig vise dig det.
En advarsel
Hvor du dykker ned i dette, skal du vide, at ZFS-understøttelse i Ubuntu 19.10 er eksperimentel. Selv om jeg har fundet det utroligt stabilt, bør du måske tænke dig om to gange, før du bruger det i et produktionsmiljø (indtil det ikke længere er opført som “eksperimentelt”).
Og bemærk også, at ZFS-understøttelse i øjeblikket kun tilbydes under installationen af desktop-versionen. Det betyder ikke, at du ikke kan tilføje understøttelse af filsystemet på serverversionen, men det er ikke helt så enkelt. På grund af dette vil jeg demonstrere på desktop-versionen af Ubuntu 19.10.
Installation
Det første skridt er at aktivere ZFS på installationstidspunktet af Ubuntu 19.10. Under installationen finder du en ny indstilling i fasen Installationstype (figur 1).
Figur 1: Valg af ZFS-indstillingen under installationen.
Når installationen er afsluttet, skal du genstarte og logge ind.
Hvis du bruger serverversionen af Ubuntu 19.10, kan du altid installere ZFS-understøttelse med kommandoen:
1
|
sudo apt-get install zfsutils-linux
|
Skal du gå den vej, skal du selvfølgelig tage et par ekstra skridt (f.eks. oprette datasæt). Med skrivebordsinstallationen vil du opdage, at hele dit mappehierarki består af ZFS-datasæt, så der er meget mindre arbejde at gøre.
Første skridt med ZFS
Når du er logget ind på skrivebordet, vil du åbne et terminalvindue og få en liste over dine datasæt. Med Ubuntu-installationer, der ikke bruger ZFS, vil du typisk arbejde med mappestier som /home/jack eller /usr/local/. Det er ikke tilfældet med ZFS-aktiverede systemer. I stedet arbejder de med datasæt. Et datasæt er en type filsystem, der deler en lagringspool (den mest grundlæggende byggesten i ZFS).
For at finde dine datasæt skal du sende følgende kommando:
1
|
zfs list
|
Som du kan se (i figur 2), findes alle mapper enten i bpool (boot) eller rpool (root) pool.
Figur 2: Vores oversigt over datasæt.
Lad os arbejde med en brugers hjemmemappe. I dette tilfælde datasættet rpool/USERDATA/jack_bwcn4u.
Skabelse af et snapshot
Den første ting, vi vil gøre, er at oprette et nyt snapshot af mappen /home/jack (som, husk det, er datasættet rpool/USERDATA/jack_bwcn4u). Lad os sige, at vi ønsker at oprette et snapshot tagget med dagens dato. Kommandoen til dette ville være:
1
|
sudo zfs snapshot rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Og du kunne inkludere dato-kommandoen på følgende måde:
1
|
sudo zfs rollback rpool/USERDATA/jack_bwwcn4u@`date +%F`
|
For at bekræfte, at dit snapshot blev taget, skal du sende følgende kommando:
1
|
zfs list -t snapshot
|
Du bør se alle aktuelle snapshots på listen (Figur 3).
Figur 3: Vores nye snapshot er blevet oprettet.
Rulle et snapshot tilbage
Lad os sige, at en mappe af en eller anden grund ved et uheld blev slettet ud af denne hjemmemappe. Hvad gør du så? Heldigvis har du taget et snapshot og kan rulle dette snapshot tilbage, således at den slettede mappe kommer tilbage.
Først sletter vi mappen ~/Documents med kommandoen:
1
|
rm -rf /home/jack/Documents
|
Iværksæt kommandoen ls, og du kan se, at mappen Documents er væk (figur 4).
Vores Documents-mappe er blevet slettet.
Nu skal vi rulle fredagens øjebliksbillede tilbage for at gendanne den mappe. For at gøre dette skal du sende følgende kommando:
1
|
sudo zfs rollback rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Når kommandoen er færdig, udfør ls igen for at se, at Documents er vendt tilbage (Figur 5).
Figur 5: Documents er tilbage.
Destruktion af snapshots
Lad os sige, at du har oprettet et antal snapshots, eller at et bestemt snapshot har enten korrupte eller manglende data. Du ønsker måske at slette det pågældende snapshot. Lad os sige, at vi ønsker at slette snapshotet rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19. For at gøre det ville kommandoen være følgende:
1
|
sudo zfs destroy rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19-19
|
Når du har ødelagt et snapshot, kan det ikke hentes tilbage, så brug denne kommando med omhu. Hvis du tilfældigvis har et særligt vigtigt snapshot, som du ikke ønsker at få ødelagt, kan du placere et hold på det. For at placere et hold på vores snapshot rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19 skal du sende følgende kommando
1
|
sudo zfs hold keep rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19-19
|
Nu, hvis du forsøger at ødelægge dette snapshot, vil du se en fejl (figur 6).
Figur 6: Kan ikke ødelægge dette snapshot.
For at ødelægge et fastholdt snapshot skal du tilføje -d-indstillingen på følgende måde:
1
|
<i>sudo zfs destroy -d rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19</i>
|
Det var det, det tilbageholdte snapshot er væk.
Og det er det grundlæggende i at oprette og ødelægge snapshots med den nyligt tilføjede ZFS-funktion i Ubuntu 19.10. Prøv dette på et testmiljø, og se, hvor godt det fungerer. Indtil videre har jeg kun opdaget et enkelt problem, nemlig at jeg, når jeg forsøgte at rulle et snapshot tilbage, skulle genstarte maskinen, før kommandoen rollback kunne køre med succes. Udover dette ene problem har det været glat sejlads med ZFS og Ubuntu 19.10.