To raid or not to raid?

Tags: FOSS
Categories: tools selfhosting

“To raid or not to raid”, det er spørgsmålet. Spøg til side, så havde jeg for nyelig nogen overvejelser hvad angik, mit eget hjemme-setup.

Jeg har i alt 3 maskiner som ser regulær brug.

  • Bærbar
  • Stationær
  • Raspberry pi

Ud af disse er det kun Stationæren, hvor der er plads (og det giver mening) at have flere diske. Jeg har tidligere kørt den med 3 harddrives sat op i LVM (logical volume management) For linux-nødder, kan man hurtigt gætte opstillingen som var brugt, men for dem som har mindre erfaring med LVM, vil jeg hurtigt nævne hvordan det fungere og hvordan det var sat op.

I LVM er der 3 slags volumes. Physical Volumnes (PV), Volume Group (VG) og Logical Volumes (LV).

Da jeg i dette tilfælde, bare brugte det som bulk storage, oprettede jeg bare en PV på hver disk, og smækkede dem i en fælles VG, hvor på jeg i dette tilfælde bare oprettede en fælles LV. Denne LV blev så bare mounted på en fast lokation, man kunne eksempelvis gøre det i /home/user/storage eller /storage.

Problemet er dog at der ingen parity er i dette setup, hvis en af hardiskene dør, risikere man fuld dataloss.

Raid er ikke en backup

Hvis man ikke ved hvad RAID er så kommer en forklaring her:

  • Redundant array of inexpensive disks
  • Redundant array of independent disks

Raid er ikke en erstatning for ordentlige backup-principper som eksempelvis 3-2-1. Det som raid, dog kan garantere er uptime og redudancy. Fremfor at al din data på din server/maskine ryger i tilfælde af harddrive failure, og at du skal til at skifte hardrives og overføre al din data fra en backup tilbage på din server/maskine, så kan man raid, være sikkert mod downtime fra harddrive-failure, og slippe for at skulle transfere data, og bare nøjes med at “resilver”?/genbygge array’en efter at man har skiftet det døde drive ud.

Filsystemer

Filsystemer Oprindelig udgivelse Feature set Downsides
ext4 1990’s default
xfs
zfs snapshots, subvolumes, pools? Unfree license, Oracle
btrfs COW (copy-on-write), snapshots, subvolumes
bcachefs COW, snapshots, subvolumes stadig alpha-stage software

Raid med mdadm

For at lave en raid med mdadm er syntax følgende:

mdadm --create /dev/md/name /dev/sda1 /dev/sdb1 /dev/sdc1 --level=5 --raid-devices=3 --bitmap=internal

mdadm [Command] [md-location] [partitions on physical drives] [type of raid by number] [number of devices in the raid] [sort of bitmap to use]