Speicherplatz mit ZFS raidz1

KaeTuuN

Rear Admiral Pro
Registriert
Okt. 2002
Beiträge
5.314
Hallo zusammen,

ich nutze in meinem Ubuntu Privatserver derzeit 3 x 6 TB HDDs und habe diese in einem RAID-Z1 laufen.
Bisher dachte ich, dass RAID-Z1 gleich RAID 5 ist. Das würde bedeuten ich hätte 12 TB Speicher zur Verfügung. Mit "zpool list" bekomme ich aber die Aussage, dass ich die vollen 18 TB belegen könne.
Code:
NAME    SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
daten  16,3T  8,06T  8,25T         -     1%    49%  1.00x  ONLINE  -

Habe ich hier einen Denkfehler, oder zfs falsch eingerichtet?

Mfg Kae

EDIT: Raid Bezeichnungen verbessert, Sorry dafür!
 
Zuletzt bearbeitet:
eigentlich hättest du bei einem raid1 nur 6TB, da die platten gespiegelt werden. klar insgesamt sinds 18TB, effektiv benutzen kannst du aber nur 6TB.
 
https://de.wikipedia.org/wiki/RAID

Danke , wieder etwas gelernt RAID-Z1 ließt sich auch leichter als raidz1 (<- da denkt man irgentwie an ein schreibfehler).
Groß /- kleinschreibung + Zusatzzeichen sind sehr praktikabel!
 
Zuletzt bearbeitet:
@yaegi und @Tada100 : Es schreibt Raidz1 und nicht Raid1:

RAID-Z1 (1 Parity-Bit, ~RAID 5)

Das ist ein Spezialmodus von ZFS.
Was die nutzbare Größe angeht, ich hätte auch auf 12TB getippt, ich kenne mich aber mit ZFS nicht weiter aus.
 
@Vorposter, nicht RAID mit RAID-Z verwechseln. Da bedeuten die RAID Level was anderes.

@KaeTuuN du liegst richtig, RAID-Z1 sollte sich ähnlich wie ein RAID5 verhalten und nur 12TB Nutzkapazität haben. Da scheint etwas nicht zu stimmen.
 
ja ich habs grade gelesen.
 
Was sagt denn
Code:
zpool status
bei dir?

Bei mir (freenas) sieht das so aus:

Code:
root@freenas02:~ # zpool status
  pool: VOLZ2
state: ONLINE
  scan: scrub repaired 0 in 0 days 00:00:10 with 0 errors on Sun Mar 10 00:00:11                                           2019
config:

        NAME                                            STATE     READ WRITE CKS                                          UM
        VOLZ2                                           ONLINE       0     0                                               0
          raidz2-0                                      ONLINE       0     0                                               0
            gptid/01c0ddf0-9f0c-11e8-ab14-ac1f6b6c29cc  ONLINE       0     0                                               0
            gptid/024db1cc-9f0c-11e8-ab14-ac1f6b6c29cc  ONLINE       0     0                                               0
            gptid/02d7aac8-9f0c-11e8-ab14-ac1f6b6c29cc  ONLINE       0     0                                               0
            gptid/036f4aee-9f0c-11e8-ab14-ac1f6b6c29cc  ONLINE       0     0                                               0
            gptid/03f522e9-9f0c-11e8-ab14-ac1f6b6c29cc  ONLINE       0     0                                               0
            gptid/047b96b2-9f0c-11e8-ab14-ac1f6b6c29cc  ONLINE       0     0                                               0
            gptid/0504bef2-9f0c-11e8-ab14-ac1f6b6c29cc  ONLINE       0     0                                               0
            gptid/0590e9d1-9f0c-11e8-ab14-ac1f6b6c29cc  ONLINE       0     0                                               0
        cache
          gptid/7dac8c3b-9fa5-11e8-ab14-ac1f6b6c29cc    ONLINE       0     0                                               0

errors: No known data errors

  pool: freenas-boot
state: ONLINE
  scan: scrub repaired 0 in 0 days 00:00:05 with 0 errors on Sat Mar 16 03:45:05                                           2019
config:

        NAME        STATE     READ WRITE CKSUM
        freenas-boot  ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            ada0p2  ONLINE       0     0     0
            ada1p2  ONLINE       0     0     0

errors: No known data errors

Da kannst du in Zeile 9 bzw. 30 erkennen, wie die Aufteilung ist.
RaidZ1 sollte etwa 12 TB ergeben.

Edit: habe jetzt mal
Code:
zpool list
bei mir gemacht:

Code:
NAME           SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
VOLZ2           58T  2.27G  58.0T        -         -     0%     0%  1.00x  ONLINE  /mnt
freenas-boot  59.5G  1.59G  57.9G        -         -      -     2%  1.00x  ONLINE  -

Sind 8 x 8 TB Platten, also brutto 64TB. Scheint also normal zu sein.

Alternativ:
Code:
root@freenas02:~ # zfs list
NAME                                                     USED  AVAIL  REFER  MOUNTPOINT
VOLZ2                                                   1.61G  39.9T   188K  /mnt/VOLZ2
...
freenas-boot                                            1.59G  56.0G    64K  none
...

Hier z.B. steht auch, dass bei "zpool list" immer der physikalische Speicherplatz angezeigt wird (zpool manpage)
 
Zuletzt bearbeitet:
Output "zpool status":
Code:
pool: daten
state: ONLINE
  scan: scrub repaired 0B in 2h17m with 0 errors on Sun Mar 10 02:41:31 2019
config:

    NAME                                        STATE     READ WRITE CKSUM
    daten                                       ONLINE       0     0     0
      ata-ST6000VX001-2BD186_WCT0SB30           ONLINE       0     0     0
      ata-ST6000VX001-2BD186_WCT0SJ7K           ONLINE       0     0     0
      ata-WDC_WD60EZRX-00MVLB1_WD-WXL1H846WMJ4  ONLINE       0     0     0

errors: No known data errors

System: Ubuntu 18.04.1 LTS
ZFS Version: 0.7.5-1ubuntu16.4

ZFS wurde wie folgt installiert:
  1. apt install software-properties-common linux-headers dkms
  2. apt install zfsutils-linux
  3. zpool create daten raidz1 /dev/disk/by-id/1 /dev/disk/by-id/2 /dev/disk/by-id/3
Mfg Kae
 
Hm, da fehlt im Vergleich zu meinem Output der vdev level (raidz2-0).
Entweder fehlt der Output bei dir oder er striped direkt über die Devices (daher 18TB).
Kannst du mal „zfs list“ ausführen? Da steht unter „AVAIL“ die nutzbare Kapazität.

Code:
zpool create daten raidz1 /dev/disk/by-id/1 /dev/disk/by-id/2 /dev/disk/by-id/3
Mfg Kae
Bist du dir mit der Option „raidz1“ sicher? Ich habe nur Beispiele gefunden, wo der Pool mit „raidz“ erstellt wird (ohne die 1).
Das würde erklären, dass die Option ignoriert wurde und einfach gestriped wird.
 
Zuletzt bearbeitet:
Laut den docs ( https://docs.oracle.com/cd/E19253-01/819-5461/gcvjg/index.html ) gibt es keine raidz1 option, wie Tolotos gesagt hat.

Ich fürchte damit hast du dir einen gestripten (äquivalent zu raid0) zpool erstellt (= 1 Platte tot -> alle Daten futsch)

Ich würde dir also empfehlen ein Backup deiner Daten zu erstellen und den zpool nochmal neu zu erstellen.

Persönlich würde ich aber sowieso mirrored vdevs anstatt raidzX empfehlen, siehe: https://jrs-s.net/2015/02/06/zfs-you-should-use-mirror-vdevs-not-raidz/
 
Creating a single-parity RAID-Z pool is identical to creating a mirrored pool, except that the raidz or raidz1 keyword is used instead of mirror.
Quelle: https://docs.oracle.com/cd/E19253-01/819-5461/gcvjg/

Von daher war ich der Meinung, dass das so richtig sein sollte ( @Ebrithil Ich sehe gerade, dass das der gleiche Link wie deiner ist. 🤔)

Ebrithil schrieb:
Persönlich würde ich aber sowieso mirrored vdevs anstatt raidzX empfehlen, siehe: https://jrs-s.net/2015/02/06/zfs-you-should-use-mirror-vdevs-not-raidz/
Vielen Dank dafür! Das ist ein sehr interessanter und guter Artikel! Allerdings geht es in meinem Fall nicht um Geschwindigkeit, sondern um einen Kompromiss aus Speicherplatz, Verfügbarkeit und Kosten, weswegen ich mich bewusst für RAID-Z1 entschieden habe. Alle wirklich wichtigen Daten sind zusätzlich auf einem zweiten Server gepeichert.

Ich habe mir jetzt mal eine VM erstellt und baue da den Server (in kleinerem Maßstab) einmal nach und gucke, ob das RAID-Z1 da korrekt angelegt wird. Mit dem Ergebnis werde ich mich dann wahrscheinlich morgen melden.

Mfg Kae


Fast vergessen:
@Tolotos der Output von zfs list:
Code:
NAME    USED  AVAIL  REFER  MOUNTPOINT
daten  8,06T  7,74T  8,06T  /daten
 
KaeTuuN schrieb:
Quelle: https://docs.oracle.com/cd/E19253-01/819-5461/gcvjg/

Von daher war ich der Meinung, dass das so richtig sein sollte ( @Ebrithil Ich sehe gerade, dass das der gleiche Link wie deiner ist. 🤔)
Hast du völlig recht, den Satz hab ich wohl überlesen. Ich bleibe trotzdem bei meiner Diagnose, dass da wohl kein raidz läuft, da die Ausgabe bei zpool status fehlt.
Ich hatte selber vor einiger Zeit mal ein raidz1 laufen und meine mich zu erinnern, dass das da angezeigt wurde.
 
Bei der Diagnose gebe ich dir recht, ich versuche jetzt allerdings den Grund zu finden. Denn laut der Doku habe ich dann mit meinem Befehl ja alles richtig gemacht...

Mfg Kae

EDIT: Ok, also entweder hatte die bei der Installation des Systems eingesetzte Version von ZFS-on-Linux einen Bug, oder ich habe beim anlegen des Pools das Wort "raidz1" vergessen. Gerade das ganze in einer VM getestet und den Befehl aus #9 verwendet und alles sieht genauso aus, wie es soll... Tja... Da werde ich den ganzen Mist wohl noch einmal anlegen dürfen... :headshot:
765396


765394


Vielen Dank für eure Hilfe & gute Nacht!
 
Zuletzt bearbeitet:
KaeTuuN schrieb:
@Tolotos der Output von zfs list:
Code:
NAME    USED  AVAIL  REFER  MOUNTPOINT
daten  8,06T  7,74T  8,06T  /daten

Knapp 16TB nutzbare Kapazität, also stripe.

Gut zu wissen, dass raidz1 auch geht (ist auch logischer als raidz).
Hoffe, du hast genug Speicher frei für's umkopieren ;).


@Ebrithil
Ebrithil schrieb:
Persönlich würde ich aber sowieso mirrored vdevs anstatt raidzX empfehlen, siehe: https://jrs-s.net/2015/02/06/zfs-you-should-use-mirror-vdevs-not-raidz/
Sehe ich auch so, allerdings pauschal erst ab ca. 6 devs. Bei 3 devs ist da allerdings ein Flaschenhals ;). Mein RaidZ2 Pool ist als Backup-Target konzipiert (für replication von freenas01). Überlege allerdings auch noch, ob ich das noch ändern soll (da noch nicht produktiv).
 
@Tolotos
Ja, ich finde raidz1 logischer als raidz. Vor allem, da die anderen Modi raidz2 und raidz3 heißen. Da wäre es fast schon logisch, wenn raidz auch mirrored bedeuten würde! :freak:
Und nein, ich habe nicht genug Speicherplatz, daher gerade mal in der HDD Kaufberatung gefragt, welche weitere 6 TB Platte ich mir am besten zulege. :freaky:

Mfg Kae
 
KaeTuuN schrieb:
Und nein, ich habe nicht genug Speicherplatz, daher gerade mal in der HDD Kaufberatung gefragt, welche weitere 6 TB Platte ich mir am besten zulege. :freaky:
:)

Ich würde da (weil dafür ausgelegt) zu den speziellen NAS Platten WD-Red oder Seagate IronWolf greifen, die spielen in einer ähnlichen Liga. Kannst aber wohl mit allen Platten Glück oder Pech haben ...

Wenn du dann dein Raid neu aufbaust, kannst du ja mit der 4. Platte auch wieder über einen Pool aus mirrors nachdenken :D. Ist später einfacher zu erweitern ...
 
Tolotos schrieb:
Wenn du dann dein Raid neu aufbaust, kannst du ja mit der 4. Platte auch wieder über einen Pool aus mirrors nachdenken :D. Ist später einfacher zu erweitern ...
Und genau darüber Grübel ich jetzt gerade nach. :D

Aktuell habe ich zwei Seagate Skyhawk und eine WD Red. Die beiden Skyhawk laufen schon seit ein paar Jahren sehr gut in dem System und die SMART Werte sind eine Augenweide. :D
Hier mal der Link zu meinen Überlegungen: KLICK MICH

Mfg Kae
 
Ja, habe ich bereits gesehen :D

Das Wichtigste ist wohl die Zuverlässigkeit, da schaue ich gerne mal bei Backblaze nach. Die veröffentlichen ihre Ausfallstatistiken ...
Allerdings habe ich die IronWolf dort jetzt nicht gefunden. Allgemein scheinen die Seagate aber etwas unempfindlicher zu sein. Ist aber alles nur Statiskik, die Wahrscheinlichkeit einer einzelnen Platte auszufallen liegt immer unter 35% pro Jahr ...
 
Danke für den Link zu Blackblaze! Ich hatte noch im Kopf, dass ein großes Unternehmen gibt, dass solche Statistiken veröffentlicht, wusste aber nicht mehr! :D

Ok, da schneiden die Seagate Platten in der Tat recht gut ab. Werde dann wohl zur Seagate Skyhawk greifen.

Mfg Kae
 
Zurück
Oben