RAID, ZFS en Backups
In deze handleiding ga ik uitleggen hoe u uw data kan beschermen tegen harde schijf crashen.
Wij gaan een RAID array aanmaken met het ZFS bestandssysteem. En backups maken met Rsync.
RAID
In het artikel 'Ubuntu Server' heb ik het al gehad over RAID.
Ik zal het nog even herhalen hier:
RAID staat voor Redunant Array of Independent Disks, met een RAID opstelling kunt u meerdere harde/SSD schijven als 1 harde schijf gebruiken.
- RAID 0
Met RAID 0 (Striping) maakt u van alle harde schijven 1, ook krijgt u snelle prestaties (soms wel het dubbele).
U heeft bijvoorbeeld 4x 2TB schijven dan krijgt deze "array" een totaal van 8TB.
Alle data word dus verspreid, het nadeel hiervan is dat als 1 harde schijf kapot gaat, al uw data verloren is, mits u een backup heeft op een extern medium.
- RAID 1
RAID 1 (Mirroring) word vaak gebruikt voor data opslag, met 2 schijven. Alle data word gedupliceerd op een harde schijf, dus als 1 harde schijf kapot gaat heeft u al uw data nog op de andere harde schijf. Als er een harde schijf kapot is kunt u er een nieuwe in doen en alle data word weer gedupliceerd. Het nadeel er van is als u 2x 2TB aan harde schijven heeft is dat op alle harde schijf een kloon komt, zo is het slechts mogelijk 50% van de opslagruimte te gebruiken.
- RAID 5
RAID 5 (Redundant Mirroring) word het meeste gebruikt voor data opslag met meer dan 3 harde schijven, omdat het een stuk efficiƫnter is dan RAID 1. Als u 5x 2TB gebruikt, kunt u 8TB gebruiken, als 1 schijf kapot gaat is uw data nog veilig.
ZFS
ZFS is een bestandssysteem zoals EXT4 dat standaard word gebruikt door Ubuntu dat ook is.
Nu bied EXT4 een goed bestandssysteem voor een normaal systeem, maar voor een server
en data opslag is het misschien niet het allerbeste.
ZFS heeft namelijk veel meer mooie extras, ZFS staat voor Zettabyte Filesystem
dat betekend dus dat u een enorm grote array aan kunt maken.
De keuze voor ZFS komen voornamelijk door de prestaties, gemak en helemaal omdat ZFS
zogenaamde 'snapshots' kent.
Bijvoorbeeld kunt u nu een snapshot maken, u verwijderd of wijzigt per ongelijk een bestand
dan is er weinig aan de hand want u kunt de array weer herstellen naar de datum van het herstelpunt.
ZFS is gemaakt door Sun en eigenlijk gemaakt voor Solaris, maar nu word het al een tijd gebruikt door
FreeBSD en ook is er een stabiele PPA voor Ubuntu.
ZFS Installeren
ZFS staat nog niet officieel in de pakketbronnen daarom moeten we helaas een PPA toevoegen.
Eerst installeren we python-software-properties om een ppa te kunnen toevoegen:
sudo apt-get install python-software-properties
Nu kunnen we de ppa toevoegen met dit commando:
sudo apt-add-repository ppa:zfs-native/stable
Nu zal u uw softwarecatalogus moeten verversen met:
sudo apt-get update
Eerst alle benodigde updates en upgrades installeren voor ZFS met behulp van dit commando:
sudo apt-get dist-upgrade
Nu kunt u eindelijk ZFS installeren met dit commando:
sudo apt-get install ubuntu-zfs
(Dit kan even duren)
Een pool aanmaken
Ik had het eerst over arrays, maar in ZFS word dit een pool genoemd.
Eerst moet u root zijn voor alles wat wij nu gaan doen, daarom typt u en voert uw wachtwoord in:
sudo -i
Nu gaan we eerst een bekijken hoe de harde schijven heten waarvan wij een pool gaan maken met:
lshw -short -C disk
Nu kunnen we een pool aanmaken. Hier een voorbeeld:
zpool create -f data mirror sdb sdc
Het rode gedeelte data is de naam van onze pool.
Het groene gedeelte mirror is het raid niveau:
mirror is vrij gelijk aan RAID1, het dupliceert de bestanden naar een andere harde schijf.
raidz is vrij gelijk aan RAID5 het verspreid de data naar minimaal 3 hardeschijven.
raidz2 is vrij gelijk aan RAID6 het verspreid de data naar minimaal 5 hardeschijven.
Het blauwe gedeelte sdb sdc staat voor welke harde schijven in uw pool worden gebruikt.
Als u de pool heeft gemaakt kunt u de status zien van uw pool met:
zpool status
U kunt ook onder andere de capiciteit zien met dit commando:
zpool list data
Als het goed is ziet u een net overzicht van de pool.
Klaar? Nee bijna, want ik wil dat een normale gebruiker de pool kunnen benaderen.
Nu kan alleen de root gebruiker dat. Om de rechten aan iedereen te geven:
chown -R fabian:fabian /data
Rsync
RAID is helaas geen backup, er zou altijd nog iets fout kunnen gaan.
Daarom maken wij een backup met rsync. Ik heb al een scriptje gemaakt die het makkelijker maakt voor ons.
Maak een nieuw bestand met:
nano backupscript.sh
Nu kunt u dit in het bestand plakken:
#!/bin/bash
#
# Simpelbuntu Backupscript
# Backupmap en Bestemming
BACKUPMAP=/home/simpelbuntu/Afbeeldingen/
BESTEMMING=/media/LaCie/Afbeeldingen
echo "De backup is gestart";
rsync --stats --progress --verbose --times --perms --delete --recursive $BACKUPMAP $BESTEMMING;
echo "De backup is voltooid";
exit
U hoeft alleen de BACKUPMAP en BESTEMMING te wijzigen.
Let op! Zet achter de backuplocatie een / om alles in de map te backuppen.
Anders word er nieuwe map gecreerd genaamd Afbeeldingen op de bestemming.
Sla het bestand op middels Ctrl+O
Vervolgens typt u dit commando om het script te kunnen uitvoeren:
chmod +x backupscript.sh
Om het script uit te voeren type:
./backupscript.sh
Geplande Backups
Nu is het al heel makkelijk een backup te maken, maar het kan nog makkelijker.
U kunt namelijk de backup op bepaalde tijden uitvoeren.
Dit kunt u doen met het ingebouwde programma Cron.
Open het cron bestand via:
sudo nano /etc/crontab
Onderaan in het bestand voegt u dit toe:
# Automatische Backup
* * * * * fabian ./backupscript.sh
Toelichting:
De nummers staan voor:
Minuut, uur, dag, week en jaar
De asterisk (*) staat voor elke. Dit betekend dus:
Elk jaar elke week, elke dag, elk uur en elke minuut.
Laten we zeggen dat we elke week backuppen op zaterdag om 12.00 dan word het:
0 12 6 * *
Wijzig uw gebruikersnaam en sla het bestand op met Ctrl+O en vervolgens Enter.
U kunt het bestand nu sluiten met Ctrl+X.