ZFS Mirror zu Raidz migration

minimike

Berufsrevolutionär
Hi

Wenn ich FreeBSD auf einen ZFS Pool Mirror mit 2 Platten betreibe, kann ich dann später dann noch 2 Platten einfügen und das dann als Raid10 verwenden? Alle Platten sind baugleich
 
Ich mag Datensicherheit und Speed darum wollte ich lieber Raid10.
Mein Windows raucht gerade ab. Ich ziehe die geplante FreeBSD Installation nun vor.
Ich habe Daten auf 2 Platten, 2 weiter Platten sind für FreeBSD nun frei geschaufelt.
Nach der Install will ich die Daten dann auf FreeBSD ziehen, die Platten plätten und in den ZFS integrieren so das ich dann mit 4 Platten da stehe ;)
 
Jein. Es geht...aber nicht ganz wie du dir das vorstellst. Du erstellst einen normalen Pool (aus deinen ersten 2 Platten; ein Raid 1)...und kannst später jederzeit zu deinem vorhandenen Pool eine weitere Anzahl an Festplatten als beliebig neuen Raidverbund hinzufügen (also nochmal ein Raid 1 oder auch ein Raid 10 oder ein Raid 5 usw. (natürlich nur wenn ausreichend Platten vorhanden sind)).

Du kannst NICHT ein bestehendes Raid in einem Pool neu "Ordnen"...also aus einem Raid 1 ein Raid 10 machen geht nicht.

Du kannst den Pool aber erweitern mit weiteren "Raidgruppen". In deinem Fall also dann:

Raid 1 (alt) + Raid 1 (neu) = Gesamtkapazität des neuen Pools aus 2x Raid 1

Die Daten von Raid 1 (alt) bleiben dabei erhalten, deine Poolkapazität erweitert sich um die neuen Platten im Raid 1 Verbund.
 
ZFS organisiert Speicher in Pools. Pools bestehen aus VDEVs. VDEVs sind RAID-Z{1-3}, Mirrors oder einzelne Platten (genauer GEOM Providern). RAID-Z{1-3} und Mirrors bestehen aus Platten (genauer GEOM Providern). Es ist möglich einem Pool im laufenden Betrieb neue VDEVs hinzuzufügen. Es ist nicht möglich sie zu entfernen mit Ausnahme von Cache- und Hotsparedevices (sowie Log hinreichen aktuellen Versionen). VDEVs lassen sich in ihrer Speicherkapazität nicht mehr ändern. Du kannst nur weitere VDEVs hinzufügen. Viele neue Nutzer erwarten die von ihren "normalen" RAID Implementierungen lieb gewonne Fähigkeit RAIDs zu vergrößern in dem man ihnen neue Platten hinzufügt. Bei Mirrors ist das auch mit ZFS möglich bringt nur keinen Kapzitätsgewinn. Bei RAID-Z VDEVs ist es nicht implementiert, weil dies kompiliziert und fehleranfällig wäre. Ich bin mal über Blogeinträge von ZFS Entwicklern zu dem Thema gestolpert iirc müsste dazu "Livedata" verändert werden. Genau das unterlässt ZFS bis jetzt aus Gründen der Zuverlässigkeit (bis auf beim Überblock).

Angeblich sollen sich die ZFS Entwickler gedacht haben, dass man in ihren Servern eh besser ganze VDEVs hinzufügt. Bei 48 3,5" SAS Slots pro Server mag das so sein. Bei mir leider nicht. 2TB Platten werden jederzeit gerne genommen ;-).
 
ZFS organisiert Speicher in Pools. Pools bestehen aus VDEVs. VDEVs sind RAID-Z{1-3}, Mirrors oder einzelne Platten (genauer GEOM Providern). RAID-Z{1-3} und Mirrors bestehen aus Platten (genauer GEOM Providern). Es ist möglich einem Pool im laufenden Betrieb neue VDEVs hinzuzufügen. Es ist nicht möglich sie zu entfernen mit Ausnahme von Cache- und Hotsparedevices (sowie Log hinreichen aktuellen Versionen). VDEVs lassen sich in ihrer Speicherkapazität nicht mehr ändern.
...

Das ist so nicht ganz richtig!

Ich habe schon ein ZRAID von 4 * 1 TB auf 4 * 2TB vergrößert, automatisch, ohne in den ZPOOL "einzugreifen"

- 1. Platte aus dem POOL entfernen (remove)
- entfernte 1TB gegen 2TB tauschen (replace)
- scrub
- 2. Platte ...

und das für alle Platten - nach der 4. Platte war der Pool automatisch auf die neue Zielkapazität angewachsen!

Dauert nur relativ lange, durch das 4 malige scrub'en


regards,
lead
 
Das ist so nicht ganz richtig!
Ich habe schon ein ZRAID von 4 * 1 TB auf 4 * 2TB vergrößert, automatisch, ohne in den ZPOOL "einzugreifen"

- 1. Platte aus dem POOL entfernen (remove)
- entfernte 1TB gegen 2TB tauschen (replace)
- scrub
- 2. Platte ...

und das für alle Platten - nach der 4. Platte war der Pool automatisch auf die neue Zielkapazität angewachsen!

ACK.
Ich glaube Crest bezieht sich da auf veraltete Informationen. Afaik hat ZFS diese Methode nämlich auch erst irgendwann "dazugelernt"
 
ACK.
Ich glaube Crest bezieht sich da auf veraltete Informationen. Afaik hat ZFS diese Methode nämlich auch erst irgendwann "dazugelernt"

Die Funktionalität war schon sehr früh in ZFS enthalten. Vielleicht sogar schon von Anfang an.

Das Verändern der Plattenanzahl in einem RAIDZ ist allerdings nicht möglich (meines Wissens nach sogar in keiner RAID-5-Implementierung). Man kann aber immer ein zweites RAIDZ mit neuen Platten erzeugen und dem Pool hinzufügen.
 
Hi

Wenn ich FreeBSD auf einen ZFS Pool Mirror mit 2 Platten betreibe, kann ich dann später dann noch 2 Platten einfügen und das dann als Raid10 verwenden? Alle Platten sind baugleich

Ich habe so ein Szenario mal getestet (mit vier Ramdisks), woraus hervorging, dass es möglich ist. Ok, ich hab nicht davon gebootet - wäre noch zu prüfen.

Die Idee kam von hier:
http://opensolaris.org/jive/message.jspa?messageID=66065

Code:
22:45:28 root ~ # mdconfig -a -t malloc -s 512m
md1
22:46:22 root ~ # mdconfig -a -t malloc -s 512m
md2
22:46:58 root ~ # mdconfig -a -t malloc -s 512m
md3
22:46:59 root ~ # mdconfig -a -t malloc -s 512m
md4


22:48:27 root ~ # zpool create storage mirror md1 md2

22:49:37 root ~ # zpool status
  pool: storage
 state: ONLINE
 scrub: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	storage     ONLINE       0     0     0
	  mirror    ONLINE       0     0     0
	    md1     ONLINE       0     0     0
	    md2     ONLINE       0     0     0

errors: No known data errors

22:50:39 root ~ # dd if=/dev/random of=/storage/testfile bs=1m count=100
100+0 records in
100+0 records out
104857600 bytes transferred in 1.526350 secs (68698266 bytes/sec)


22:51:32 root ~ # cd /storage

22:51:32 root /storage # md5 -r testfile > testfile.md5

22:51:49 root /storage # ll
total 102480
-rw-r--r--  1 root  wheel  104857600 27 Sep 22:51 testfile
-rw-r--r--  1 root  wheel         42 27 Sep 22:51 testfile.md5

22:52:22 root /storage # cat testfile.md5 
94f1b7575b37f83928e4a412d68b67a5 testfile


22:53:17 root /storage # zpool add storage mirror md3 md4


22:53:34 root /storage # zpool status
  pool: storage
 state: ONLINE
 scrub: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	storage     ONLINE       0     0     0
	  mirror    ONLINE       0     0     0
	    md1     ONLINE       0     0     0
	    md2     ONLINE       0     0     0
	  mirror    ONLINE       0     0     0
	    md3     ONLINE       0     0     0
	    md4     ONLINE       0     0     0

errors: No known data errors


22:54:56 root /storage # md5 -r /storage/testfile
94f1b7575b37f83928e4a412d68b67a5 /storage/testfile

22:55:40 root /storage # mdconfig -d -u 2 
mdconfig: ioctl(/dev/mdctl): Device busy
22:56:27 root /storage # mdconfig -d -u 2 -o force
22:56:55 root /storage # mdconfig -d -u 4 -o force


22:57:17 root /storage # zpool status
  pool: storage
 state: DEGRADED
status: One or more devices has experienced an unrecoverable error.  An
	attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
	using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://www.sun.com/msg/ZFS-8000-9P
 scrub: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	storage     DEGRADED     0     0     0
	  mirror    DEGRADED     0     0     0
	    md1     ONLINE       0     0     0
	    md2     REMOVED      0    33     0
	  mirror    DEGRADED     0     0     0
	    md3     ONLINE       0     0     0
	    md4     REMOVED      0     0     0

errors: No known data errors


22:58:23 root /storage # md5 -r /storage/testfile
94f1b7575b37f83928e4a412d68b67a5 /storage/testfile

22:58:40 root /storage # df -h
Filesystem                       Size    Used   Avail Capacity  Mounted on
storage                          976M    100M    876M    10%    /storage


23:15:04 root /storage # dd if=/dev/random of=/storage/testfile2 bs=1m count=700
700+0 records in
700+0 records out
734003200 bytes transferred in 10.495828 secs (69932854 bytes/sec)

Immer wieder beeindruckend das ZFS.
 
Zurück
Oben