einen einfachen zfs-pool zum raid1 erweitern

Yoda

[Linux|FreeBSD] - User
Hallo Leute,

ich habe einen ZFS-Pool, der aus einer einzigen Platte besteht und möchte gerne daraus ein ZFS-RAID1 machen.

Ich habe so etwas in Erinnerung, dass ZFS das können soll... :confused:

Kann man dem Pool eine Platte hinzufühgen (und so zum RAID1 machen) ohne die Daten auf dem bestehenden ZFS-Pool zu verlieren, mal abgesehen von der obligatorischen Datensicherung vor dem Eingriff?

Ich hab ein paar Tests mit ZFS-Pool's auf Dateibasis gemacht, hab aber keine Lösung gefunden.
Vielleicht weiß von Euch einer wie das geht... :rolleyes:

Gruß
Yoda
 
ich glaub ich habs gefunden

Auf dieser Seite lag der Anstoß:
http://opensolaris.org/jive/thread.jspa?messageID=15219

Das hab ich dann gleich mit Dateien ausprobiert und es hat geklappt:

Code:
# dd if=/dev/zero of=/tmp/zfs1.img bs=10240 count=10240
# dd if=/dev/zero of=/tmp/zfs2.img bs=10240 count=10240

Code:
# zpool create TEST01 /tmp/zfs1.img

Code:
# zpool list
NAME     SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
TEST01  95.5M    84K  95.4M     0%  ONLINE  -

Code:
# zpool status
  pool: TEST01
 state: ONLINE
 scrub: none requested
config:

        NAME             STATE     READ WRITE CKSUM
        TEST01           ONLINE       0     0     0
          /tmp/zfs1.img  ONLINE       0     0     0

errors: No known data errors

Code:
# echo "Test 001" > /TEST01/test.txt
# cat /TEST01/test.txt
Test 001

Code:
# zpool attach TEST01 /tmp/zfs1.img /tmp/zfs2.img

Code:
# zpool status
  pool: TEST01
 state: ONLINE
 scrub: resilver completed after 0h0m with 0 errors on Wed Jan 19 00:49:32 2011
config:

        NAME               STATE     READ WRITE CKSUM
        TEST01             ONLINE       0     0     0
          mirror           ONLINE       0     0     0
            /tmp/zfs1.img  ONLINE       0     0     0
            /tmp/zfs2.img  ONLINE       0     0     0  96K resilvered

errors: No known data errors

Code:
# cat /TEST01/test.txt
Test 001

Echt Toll das ZFS! :D
 
Statt
Code:
# dd if=/dev/zero of=/tmp/zfs1.img bs=10240 count=10240
# dd if=/dev/zero of=/tmp/zfs2.img bs=10240 count=10240
könntest du auch
Code:
# truncate -s +100M /tmp/zfs2.img
nehmen. Ist wesentlich schneller und durch die Nutzung von Sparse-Files speicherplatzeffizienter. :)
 
Also, der fügt die Zweite einfach als spare hinzu wenn ich sie beim attachen dahinter angebe? Macht er das beim nächsten Mal auch automatisch? Also reicht dann ein
Code:
# zpool attach TEST01
?
 
Ich meinte mirror nicht spare, sorry. Von der man habe ich das aber trotzdem so verstanden…
 
WIchtig ist: Das man "add" nicht mit "attach" verwechselt !

Bei einem "add" bekommt man die platten nämlich nicht mehr auseinander.
 
WIchtig ist: Das man "add" nicht mit "attach" verwechselt !

Bei einem "add" bekommt man die platten nämlich nicht mehr auseinander.

Also nehmen wir an, man hat eine einzelne Platte1 im Pool und hat noch eine zweite, dann wird add aus beiden ein raid0 machen und attach ein raid1. Und in beiden Fällen, gehen die Daten auf Platte1 nicht verloren, richtig?
 
Block devices within a vdev may be configured in different ways, depending on needs and space available: non-redundantly (similar to RAID 0), as a mirror (RAID 1) of two or more devices, as a RAID-Z group of three or more devices (Similar to RAID-5), or as a RAID-Z2 group of four or more devices.

Also kein echtes RAID 0, sondern nur sowas ähnliches.
 
Jetzt muss das nur noch mit meinen "echten" Platten funktionieren... :D

Es scheint mit meinen "echten" Platten zu funktionieren, es dauert an USB 2.0 nur ewig:
Code:
  # zpool status BACKUP3TB
    pool: BACKUP3TB
   state: ONLINE
  status: One or more devices is currently being resilvered.  The pool will
          continue to function, possibly in a degraded state.
  action: Wait for the resilver to complete.
   scrub: resilver in progress for 23h6m, 71.52% done, 9h11m to go
  config:
  
          NAME        STATE     READ WRITE CKSUM
          BACKUP3TB   ONLINE       0     0     0
            mirror    ONLINE       0     0     0
              da1     ONLINE       0     0     0
              da0     ONLINE       0     0     0  1.19T resilvered
  
  errors: No known data errors

Cool ist die noch verbleibende Zeit: ... 71.52% done, 9h11m to go ...
 
Zurück
Oben