ZFS auf Linux einsetzen: Unterschied zwischen den Versionen
imported>Meap Keine Bearbeitungszusammenfassung |
imported>Dr.carvus |
||
Zeile 46: | Zeile 46: | ||
Es stellt sich hierbei die Frage, welche Device-Bezeichnung man verwenden sollte. Meiner Meinung nach ist es nicht so geschickt, ''/dev/sda, /dev/sdb'' zu verwenden, da diese ggf. auch das Root-FS beinhalten könnten und ggf. Festplatten andere Bezeichnungen bekommen können ''(z.B. beim Umstecken der SATA-Ports)'' | Es stellt sich hierbei die Frage, welche Device-Bezeichnung man verwenden sollte. Meiner Meinung nach ist es nicht so geschickt, ''/dev/sda, /dev/sdb'' zu verwenden, da diese ggf. auch das Root-FS beinhalten könnten und ggf. Festplatten andere Bezeichnungen bekommen können ''(z.B. beim Umstecken der SATA-Ports)'' | ||
Ich favorisiere die Namen unter ''/dev/disk/ | Ich favorisiere die Namen unter ''/dev/disk/by-id/ata...'', da diese die Festplatte eindeutig kennzeichnen. Der Nachteil ist sicherlich, die etwas lange Schreibform. | ||
'''Beispiel:''' | '''Beispiel:''' |
Version vom 11. Oktober 2012, 06:44 Uhr
ZFS steht unter der freien Sun-eigenen CDDL Lizenz, die sich leider nicht für Distibutoren mit der GPL vereinbaren läßt.
Diese Dilemma kann man als Linux-Nutzer umgehen, indem man die zfs-Pakete selber baut _(auch als DEB/RPM Pakete)_
Es ist noch anzumerken, dass die ZFS-Versionen mit der Übernahme von SUN durch Oracle ggf. auseinander laufen werden _(sprich unter Linux eine kleinere ZFS-Version existiert, wie unter Solaris oder Nexenta/SmartOS/...)_
Links
Homepage......................:}} http://zfsonlinux.org/ Dokumentation.................:}} http://zfsonlinux.org/docs.html [Wikipedia|http://de.wikipedia.org/wiki/ZFS_(Dateisystem)]
ZFS auf Linux bauen
(hier am Beispiel von Debian - es wird aber auch für RPM-Pakete beschrieben)
# Vorbereitung des Systems aptitude install build-essential gawk alien fakeroot linux-headers-$(uname -r) aptitude install uuid-dev # erleichterungen fuer neue Versionen version=0.6.0-rc10 basedir=/root/zfs debdir=$basedir/deb-${version} # herunterladen der aktuellen pakete mkdir -pv $debdir cd $basedir wget -p http://github.com/downloads/zfsonlinux/spl/spl-${version}.tar.gz wget -p http://github.com/downloads/zfsonlinux/zfs/zfs-${version}.tar.gz ln -s github.com/downloads/zfsonlinux/*/*${version}.tar.gz . # auspacken cd $basedir && tar -xzf spl-${version}.tar.gz && tar -xzf zfs-${version}.tar.gz # bauen & installieren der deb-Pakete cd $basedir/spl-${version} && ./configure && make deb && mv *.deb $debdir && dpkg -i $debdir/spl*deb cd $basedir/zfs-${version} && ./configure && make deb && mv *.deb $debdir && dpkg -i $debdir/zfs*deb rm -rf $basedir/spl-${version} $basedir/zfs-${version}
ZPool erstellen
Dies bedarf des Studiums der Manpage von [1] (wobei die Linux-Version ggf. einen älteren Version hat) Es stellt sich hierbei die Frage, welche Device-Bezeichnung man verwenden sollte. Meiner Meinung nach ist es nicht so geschickt, /dev/sda, /dev/sdb zu verwenden, da diese ggf. auch das Root-FS beinhalten könnten und ggf. Festplatten andere Bezeichnungen bekommen können (z.B. beim Umstecken der SATA-Ports)
Ich favorisiere die Namen unter /dev/disk/by-id/ata..., da diese die Festplatte eindeutig kennzeichnen. Der Nachteil ist sicherlich, die etwas lange Schreibform.
Beispiel: Nehmen wir nun mal an, wir haben folgende Inhalt in /dev/disk/by-id/
/dev/disk/by-id/ata-HDS725050KLA360_KRVN65ZAHMMZBF -> ../../sda # Root Filesystem /dev/disk/by-id/ata-HL-DT-ST_DVDRAM_GSA-H10N_K1B66FL2131 -> ../../sr0 # CDRom /dev/disk/by-id/ata-ST3000DM001-1CH166_Z1F0ZPTW -> ../../sdd # fuer ZFS /dev/disk/by-id/ata-ST3000DM001-1CH166_Z1F0ZTQC -> ../../sdj # fuer ZFS /dev/disk/by-id/ata-ST3000DM001-1CH166_Z1F1076E -> ../../sdc # fuer ZFS /dev/disk/by-id/ata-ST3000DM001-9YN166_W1F0NA2S -> ../../sdg # fuer ZFS /dev/disk/by-id/ata-ST3000DM001-9YN166_W1F0TZ5T -> ../../sdh # fuer ZFS /dev/disk/by-id/ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ0966140 -> ../../sdi # fuer ZFS /dev/disk/by-id/ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ0987954 -> ../../sdb # fuer ZFS
Nun erstellen wir ein Raid-Z (entspricht einem Raid-5) mit Namen 'hd' wie folgt:
i=/dev/disk/by-id zpool create hd raidz \ $i/ata-ST3000DM001-1CH166_Z1F0ZPTW \ $i/ata-ST3000DM001-1CH166_Z1F0ZTQC \ $i/ata-ST3000DM001-1CH166_Z1F1076E \ $i/ata-ST3000DM001-9YN166_W1F0NA2S \ $i/ata-ST3000DM001-9YN166_W1F0TZ5T \ $i/ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ0966140 \ $i/ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ0987954 \
Dies wird nun durch den ZFS-Treiber direkt gemountet nach /hd. Den Zustand des ZFS-Pools können wir uns nun anzeigen lassen mittels:
zpool status -v hd pool: hd state: ONLINE scan: not scanned config: NAME STATE READ WRITE CKSUM hd-0 ONLINE 0 0 0 ata-ST3000DM001-1CH166_Z1F0ZTQC ONLINE 0 0 0 ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ0987954 ONLINE 0 0 0 ata-ST3000DM001-1CH166_Z1F1076E ONLINE 0 0 0 ata-ST3000DM001-1CH166_Z1F0ZPTW ONLINE 0 0 0 ata-ST3000DM001-9YN166_W1F0TZ5T ONLINE 0 0 0 ata-ST3000DM001-9YN166_W1F0NA2S ONLINE 0 0 0 ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ0966140 ONLINE 0 0 0 errors: No known data errors