Dies ist eine alte Version des Dokuments!


ZFS Mirror Pool einrichten

Im Gegensatz zu einem ZFS Simple Pool bietet ein »ZFS Mirror Pool« durch die Spiegelung Redundanz und somit Ausfallsicherheit. In einem klassischen Setup ist dieses Konzept mit einem »RAID-1« vergleichbar. Ein ZFS Mirror Pool ist im Prinzip genau so einfach zu erstellen, wie ein ZFS Simple Pool, jedoch sind dafür logischerweise mindestens zwei Platten erforderlich, es können aber auch drei oder mehr Platten sein. Die Entwickler von ZFS gehen sogar soweit, dass sie sagen, dass es sinnvoll ist die beiden Platten an jeweils einen Controller zu betreiben. Das hat den Hintergedanken, dass auch ein Ausfall eines Controllers den Betrieb der anderen Platte am anderen Controller und somit des ganzen Systems sicherstellt.

Um einen Mirror Pool zu erstellen gehen Sie wie folgt vor:

# zpool create -f tank mirror /dev/sdb /dev/sdc

Danach steht Ihnen bereits ein einsatzbereiter Mirror Pool namens »tank« zur Verfügung:

# zpool status tank
 pool: tank
 state: ONLINE
 scan: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	tank        ONLINE       0     0     0
	  mirror-0  ONLINE       0     0     0
	    sdb     ONLINE       0     0     0
	    sdc     ONLINE       0     0     0

errors: No known data errors

Note: Bei der Auswahl der Platten ist zu beachten, dass idealerweise gleich große und gleich schnelle Platten verwendet werden. Dabei ist zu berücksichtigen, dass zB eine 500GB Platte eines Herstellers von der Größe her nicht zwingend mit einer 500GB Platte eines anderen Herstellers übereinstimmt. Ein fehlendes MB kann beim Auswechseln einer defekten Platte das Vorhaben zum Scheitern verurteilen.

Erstellen wir uns für die weiteren Schritte mal eine 512MiB große Testdatei:

# dd if=/dev/zero of=/tank/big_test_file.img bs=1M count=512
512+0 Datensätze ein
512+0 Datensätze aus
536870912 Bytes (537 MB) kopiert, 5,16102 s, 104 MB/s

# ls -l /tank
insgesamt 524365
-rw-r--r-- 1 root root 536870912 14. Okt 08:28 big_test_file.img

# zfs list
NAME   USED  AVAIL  REFER  MOUNTPOINT
tank   513M   463M   512M  /tank

# zpool list
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
tank  1008M   513M   495M    50%  1.00x  ONLINE  -

Wir können eine Platte aus dem Mirror Pool entnehmen:

# zpool detach tank /dev/sdc

Und unser Mirror Pool hat sich selbst zu einem Simple Pool degradiert:

# zpool status tank
  pool: tank
 state: ONLINE
 scan: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	tank        ONLINE       0     0     0
	  sdb       ONLINE       0     0     0

errors: No known data errors

Aber unsere Daten sind nach wie vor vorhanden:

# ls -l /tank
insgesamt 524366
-rw-r--r-- 1 root root 536870912 14. Okt 09:24 big_test_file.img

tux/zfs_mirror.1350313296.txt.gz (27698 views) · Zuletzt geändert: 2012/10/15 17:01 von wikisysop
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0