{"id":119,"date":"2009-04-29T00:13:41","date_gmt":"2009-04-28T23:13:41","guid":{"rendered":"http:\/\/www.instruyete.org\/?p=119"},"modified":"2009-04-29T00:13:41","modified_gmt":"2009-04-28T23:13:41","slug":"zfs-auf-externer-festplatte","status":"publish","type":"post","link":"https:\/\/www.instruyete.org\/?p=119","title":{"rendered":"ZFS auf externer Festplatte"},"content":{"rendered":"<p>Lange ist es her als Apple ank\u00fcndigte, dass <a href=\"http:\/\/www.instruyete.org\/?p=9\" title=\"ZFS in Mac OS X\">ZFS in Mac OS X<\/a> Einzug halten sollten.\u00a0 Leider ist die Einbindung immer noch recht rudiment\u00e4r. Nicht besser, eher schlechter, sieht es unter Linux aus. Da die von Sun f\u00fcr ZFS gew\u00e4hlte <em>CDDL Lizenz<\/em>, nicht kompatibel zur <em>GPL<\/em> ist, gibt es keine Kernelunterst\u00fctzung f\u00fcr ZFS in Linux (im Gegensatz zu BSD). Daf\u00fcr ist das Filesystem im Userland mittels <em>FUSE<\/em> jetzt angesiedelt.<\/p>\n<p>Auch wenn die Unterst\u00fctzung noch zu w\u00fcnschen \u00fcbrig l\u00e4sst, sind dennoch die bestehenden Implementierungen stabil genug um einen ernsthaften Test zu wagen, der auch &#8211; ums vorweg zu nehmen &#8211; erfolgreich war.<\/p>\n<p>Hintergrund ist, dass man unterhalb der verschiedenen UNIX Systeme immer noch kein gemeinsames Filesystem hat mit dem man portable Datentr\u00e4ger versehen k\u00f6nnte. <strong>FAT32<\/strong> ist denkbar ungeignet, da es<\/p>\n<ul>\n<li>das <em>POSIX<\/em> Rechtesystem nicht kennt<\/li>\n<li>weder <em>softlinks<\/em> beherscht, noch <em>case-sensitiv<\/em> ist<\/li>\n<li>\u00e4ussert unperformant ist<\/li>\n<\/ul>\n<p>Somit kann bspw. <em>rsync<\/em> Operationen auf solchen Datentr\u00e4gern vergessen.<\/p>\n<p>ZFS bringt sehr viele neue Ans\u00e4tze mit, bestechend ist aber dass sich verschiedene ZFS Filesysteme &#8211;\u00a0 sog. <strong>data sets<\/strong> &#8211; auf <strong>pools<\/strong> arbeiten die online jederzeit neue Datentr\u00e4ger aufnehmen k\u00f6nnen. Alle Grenzen sind online beliebig verschiebbar, die klassische Trennung <em>Filesystem-Volume-Datentr\u00e4ger<\/em> wird also aufgehoben.<\/p>\n<p>Nach diesen warmen einleitenden Worten nun die Vorgehensweise beim erzeugen eines ZFS sets auf einem externen Datentr\u00e4ger &#8211; dazu m\u00fcssen auf Linux die Pakete <strong>fuse<\/strong> und\u00a0 <strong>zfs-fuse<\/strong> installiert sein.<\/p>\n<p>1. Nach dem Anschlie\u00dfen der Festplatte, meldet sich diese als \/dev\/sde<\/p>\n<p>2. mit <strong>fdisk<\/strong> eine Partitionstabelle\u00a0 auf \/dev\/sde erstellen<\/p>\n<pre>3. zpool create -o version=8 testpool \/dev\/sde<\/pre>\n<p>Hintergrund:\u00a0 Die Spezifikation der ZFS pools wird laufend weiterentwickelt. Dabei wird die Versionsnummer der ZFS pool Beschreibung hochgez\u00e4hlt. Unter Linux werden mit <strong>zfs-fuse 0.5<\/strong> Pools bis zur <strong>Version 13<\/strong> unterst\u00fctzt. Die letzte ZFS Implementierung unter<strong> Mac OS X<\/strong> kann aber nur <strong>Version 8<\/strong>. Auf einem solchem System k\u00f6nnte auf kein ZFS pool &gt; Version 8 zugegriffen werden, daher wird unter Linux der Pool explizit mit Version 8 erstellt.<\/p>\n<p>Die unterst\u00fctzten Versionen k\u00f6nnen jederzeit mit<\/p>\n<pre>zpool upgrade -v<\/pre>\n<p>angezeigt werden.<\/p>\n<p>4. Nach der Erstellung des Pools &#8222;<em>testpool<\/em>&#8220; ist dieser sofort als data-set benutzbar, was ok ist &#8211; man braucht bei einer externen FP nicht unbedingt ein zweites Dataset (welches mit<\/p>\n<pre>zfs create \/testpool\/subdirectory<\/pre>\n<p>angelegt werden k\u00f6nnte).<\/p>\n<p>Der Mountpoint wird ebenfalls sofort ungefragt auf <strong>\/testpool<\/strong> gelegt, man kann ihn \u00e4ndern mit<\/p>\n<pre>zfs set mountpoint=\/mnt\/externalZFSdisk testpool<\/pre>\n<p>5. Nach solch einer Operation muss man ihn einmal wieder mounten<\/p>\n<pre>zfs mount testpool<\/pre>\n<p>6. Ein ZFS data set auf einer externen Festplatte wird normalerweise nicht ge- und unmounted sondern<strong> im- und exportiert<\/strong>.<\/p>\n<pre>zpool export testpool<\/pre>\n<p>damit wird implizit auf ungemounted.<\/p>\n<p>7.\u00a0 Auf einem anderem Rechner wird nun die FP angeschlossen:<\/p>\n<pre>zpool import<\/pre>\n<p>zeigt einem die verf\u00fcgbaren Pools sofort an (in dem Fall <em>testpool<\/em>, inkl. den Informationen welcher Datentr\u00e4ger sich dahinter verbirgt)<\/p>\n<pre>zpool import testpool<\/pre>\n<p>macht ihn dem System zug\u00e4nglich, indem er das dazugeh\u00f6rige dataset mounted (Unter Mac OS X wird es standardm\u00e4ssig dann unter<\/p>\n<p><strong>\/Volumes\/testpool<\/strong><\/p>\n<p>eingeh\u00e4ngt.<\/p>\n<p>Danach kann man problemlos darauf zugreifen. Normalerweise sollte nach der Session ein<\/p>\n<pre>zpool export testpool<\/pre>\n<p>ausreichen &#8211; unter Mac OS X &#8211; muss man aber trotzdem dass Volume mit den bekannten Methoden vorher auswerfen.<\/p>\n<p><em>Der Datenaustausch mit allen oben erw\u00e4hnten Annehmlichkeiten unter den UNIX Systemen steht nichts mehr im Wege.<\/em><\/p>\n<p>Noch ein paar Hinweise..<\/p>\n<pre>zpool list<\/pre>\n<p>listet alle verf\u00fcgbaren Pools auf, w\u00e4hrend<\/p>\n<pre>zpool status testpool<\/pre>\n<p>deren Status (v.a. im Fehlerfall hilfreich) anzeigt.<\/p>\n<pre>zpool iostat -v testpool<\/pre>\n<p>zeigt die I\/O Transaktionen an<\/p>\n<pre>zpool add testpool \/dev\/sdf<\/pre>\n<p>w\u00fcrde dem Pool noch einen weiteren Datentr\u00e4ger zuweisen, was in diesem Bsp. keinen Sinn machen w\u00fcrde.<\/p>\n<p>Unter Mac OS X wird mit dem <strong>ls<\/strong> Befehl schon angedeutet, dass die POSIX Rechte durch ACL&#8217;s erweitert sind. Tats\u00e4chlich unterst\u00fctzt ZFS die neuen <strong>NFSv4 ACL&#8217;s<\/strong> die unter UNIX defacto ACL Standard darstellen und ziemlich an die Windows NT ACL&#8217;s angelehnt sind. Unter Linux werden diese leider noch nicht angezeigt. Sun&#8217;s eigene <strong>Solaris<\/strong> Umgebung verh\u00e4lt sich hier nat\u00fcrlich vorbildlich.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lange ist es her als Apple ank\u00fcndigte, dass ZFS in Mac OS X Einzug halten sollten.\u00a0 Leider ist die Einbindung immer noch recht rudiment\u00e4r. Nicht besser, eher schlechter, sieht es unter Linux aus. Da die von Sun f\u00fcr ZFS gew\u00e4hlte CDDL Lizenz, nicht kompatibel zur GPL ist, gibt es keine Kernelunterst\u00fctzung f\u00fcr ZFS in Linux &hellip; <a href=\"https:\/\/www.instruyete.org\/?p=119\" class=\"more-link\"><span class=\"screen-reader-text\">ZFS auf externer Festplatte<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,10,11,7],"tags":[],"class_list":["post-119","post","type-post","status-publish","format-standard","hentry","category-linux","category-macos","category-solaris","category-unix"],"_links":{"self":[{"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/posts\/119","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=119"}],"version-history":[{"count":0,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/posts\/119\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.instruyete.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=119"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}