Was macht Btrfs besser als z.B. Ext4?





In letzter Zeit lese ich immer häufiger über das neue Dateisystem Btrfs. Was ist besser daran als bei Ext? Viele schreiben ja, dass es das Dateisystem der Zukunft sei.
Wenn man dateisysteme sich ansieht oder sich damit Befasst sollte man sich eher die Frage stellen : Was macht Btrfs besser als z.B. Ext3 ? 


Ext 3 ist heute immer noch das Maß aller Dinge und läst sich auch problemlos auf größeren Partitionen anwenden. Ext 3 ist nichts anderes als ein Ext 2 mit Journalfunktion. 
Wobei hier die Journalfunktion für die Dateioptimerung und auch für das Dateisystem (erhalt) herangezogen werden kann. Das Ext 4 wäre im Privatgebrauch oder Verwendung eher ungeeignet. Gerüchten zu Folge soll btrfs das Ext 3 oder Ext 4 baldigst ablösen ,aber dazu mehr aus der Wikipedia : 


Das btrfs (B-tree FS oder alternativ Butter FS) ist ein Copy-On-Write-Dateisystem, das von der Firma Oracle Corporation seit dem Jahr 2007 für das Betriebssystem Linux entwickelt wird. Möglicherweise soll es in Zukunft das bislang im Linux-Umfeld vorherrschende ext3-Dateisystem mit seinen Beschränkungen (Dateigröße und Gesamtdateisystemgröße) ersetzen. Da dessen direkter Nachfolger ext4 nur einen Teil der Beschränkungen von ext3 beheben kann, setzt Andrew Morton, einer der prominentesten Linux-Kernel-Entwickler, auf längere Sicht auf btrfs. Btrfs befindet sich noch in der Entwicklungsphase (Stand 7/2011: Version 2.6.39 vom Mai 2011, btrfs ist ab Linux Kernel 2.6.31-rc1 enthalten) und ist daher nicht für den Einsatz in Produktionsumgebungen gedacht. Für den experimentellen Betrieb wird das Dateisystem erstmals unter OpenSuse 11.3 unterstützt und es existieren Pakete für die Distributionen Gentoo, Debian und Ubuntu. Ebenfalls wurde Btrfs in die aktuelle Entwicklerversion von Fedora aufgenommen. Es wird als freie Software unter der GNU General Public License (GPL) entwickelt. Am 9. Januar 2009 wurde btrfs erstmals in den Linux Kernel 2.6.29 aufgenommen. Btrfs ist das Standard-Dateisystem von MeeGo, und soll ab der Version 17 auch in Fedora als Standard-Dateisystem verwendet werden.


Quelle: <http://de.wikipedia.org/wiki/Btrfs>


Solange es noch nicht Offizeill zu 100% ausgereift ist und auch zu 100% Fehlerfrei arbeitet ,sollte man Btrfs meiden. Jedenfalls nutze ich es nur äusserst Selten in Testservern im Raid Verbund ( 1,10,5 ,etc.) und dort arbeitet es noch nicht zu 100% Fehlerfrei. Ergo sollte man auf Ext 3 noch bleiben bis Btrfs Fehlerfrei arbeitet.
<p>es gibt tools für die verwendung von ext * unter windows ... aber ich würde ntfs empfehlen, da der * x-treiber heutzutage ziemlich stabil ist.</p> <p>exfat bringt das fat-dateisystem im grunde auf die nächste ebene und fügt eine große menge lang erwarteter funktionen hinzu, die dem fat32-system schmerzlich fehlten. eines der hauptmerkmale für videobearbeiter ist die unterstützung von&gt; 4gib-dateien und viel größeren partitionsgrößen als fat32, was die arbeit mit modernen multi-terabyte-laufwerken erheblich vereinfacht.</p><p>exfat ist für windows vista, 7 verfügbar, und ich glaube, ich habe sogar eine microsoft-version gesehen, mit der <a href="http://www.microsoft.com/downloads/en/details.aspx?familyid=1cbe3906-ddd1-4ca2-b727-c2dff5e30f61">xp mit exfat</a> zusammenarbeiten kann. es gibt einige leute, die an der unterstützung von linux exfat arbeiten, aber ich kann nicht sagen, wie weit sie sind, und wie immer besteht das risiko, dass <a href="https://superuser.com/questions/260752/linux-mint-10-seems-to-corrupt-ntfs-filesystem/260841#260841">ihre daten genau wie bei ntfs verfälscht werden</a> ...</p><p>aus <a href="http://en.wikipedia.org/wiki/exfat">wikipedia</a> <strong> (meine kommentare sind fett gedruckt) </strong>:</p><ul> <li>skalierbarkeit auf große festplattengrößen: 64 zib theoretisches maximum, 512 tib empfohlenes maximum, angehoben von der 16-tib-grenze von fat32-partitionen. beachten sie, dass das integrierte windows 2000/xp/vista/7 fat32-volumes mit mehr als 32 gb bereitstellen und unterstützen kann, jedoch kein fat32-volume mit mehr als 32 gb erstellen kann.</li> <li>clustergröße bis zu 32 mib<strong> (ermöglicht größere partitionen auf kosten von mehr datei-slack) </strong></li> <li>dateigrößenbeschränkung von 16 eib (begrenzt durch volumengröße), erhöht von nahe 4 gib in fat32<strong> (bessere unterstützung für videobearbeitung und große archive) </strong></li> <li>zuweisung von freiem speicherplatz und löschleistung verbessert aufgrund der einführung einer bitmap für freien speicherplatz<strong> (viel bessere leistung als fat32) </strong></li> <li>unterstützung für zugriffssteuerungslisten<strong> (sie können also den dateizugriff steuern, wenn sie möchten, aber ich vermute, dass die hauptverwendung usb-geräte sind, auf die nur benutzer zugreifen sollen, siehe abbildung ...) </strong></li> <li>bereitstellung oem-definierbarer parameter zum anpassen des dateisystems an bestimmte geräteeigenschaften<strong> (zur verwendung in eingebetteten geräten mit bestimmten anforderungen) </strong></li> </ul><p>grundsätzlich haben microsoft-entwickler das fat32-dateisystem auf exfat aktualisiert und von einer 32-bit-adressierung auf eine 64-bit-adressierung umgestellt, um eine schnellere alternative zu einer gleichzeitigen umstellung auf ntfs zu bieten, die das erstellen, speichern oder übertragen ermöglicht riesige dateien, dateien größer als 4 gb. theoretisch hat exfat nicht so viel betriebsaufwand wie ntfs, da viele funktionen fehlen, die die komplexität (und damit die verarbeitungszeit und die latenzzeit) der dateisysteme erhöhen.</p><p>einige der fehlenden (und effektiv nutzlosen oder verschwendung für wechselmedien) funktionen umfassen:</p><ul> <li> <a href="http://en.wikipedia.org/wiki/ntfs#alternate\_data\_streams\_.28ads.29">alternative datenströme</a> </li> <li> <a href="http://en.wikipedia.org/wiki/ntfs#file\_compression">dateikomprimierung</a> </li> <li> <a href="https://en.wikipedia.org/wiki/ntfs#journaling">journaling</a> </li> </ul><p>die einzigen nachteile von exfat sind, dass microsoft es nicht veröffentlicht hat und von unternehmen eine lizenz zur verwendung auf ihren geräten verlangt. dies ist wahrscheinlich eher für digitale videorecorder gedacht. privatanwender erhalten eine lizenz für die verwendung mit windows.</p><p>von <a href="http://www.tech-recipes.com/rx/2801/exfat\_versus\_fat32\_versus\_ntfs/">exfat gegen fat32 gegen ntfs</a> </p><blockquote> <p>auf systemen mit begrenzter rechenleistung und begrenztem speicher sollte exfat jedoch ein echter konkurrent von ntfs sein. ntfs im flash-speicher ist seit geraumer zeit als ineffizient bekannt. der geringere platzbedarf/overhead von exfat macht es ideal für diesen zweck. natürlich nur, wenn ihre definition von &quot;ideal&quot; es erlaubt, dass software proprietär ist und nicht open source.</p> </blockquote> 1. Tolles, hochwertiges Design und Marerialien  
2. Fortschrittliche, moderne Technik  
3. Extrem geniales System und intuitive Benutzeroberfläche   
4. Läuft einfach.


Ps: Ich will hier keine dummen Anti Apple Kommentare, ich hab die alte Diskussion satt. Eher Macbook Pro


1) Bessere Konnektivität (mehr USB, eingebauter Superdrive …)


2) Bessere Ausbaumöglichkeiten (RAM, Festplatte …); Insbesondere sind Grafikanwendungen Speicherfresser …


3) Robuster und stabiler … :-) <p>acoording to <a href="http://www.rfc-editor.org/rfc/rfc2046.txt">rfc 2046 (mehrzweck-internet-mail-erweiterungen)</a> :</p><blockquote> <p>die empfohlene aktion für eine implementierung, die eine<br> "application/octet-stream" -entität soll einfach anbieten, die daten in eine datei zu stellen</p> </blockquote><p>also würde ich mich für diesen entscheiden.</p> <p>ein freund von mir hat einmal darauf hingewiesen, dass lizenzen ihnen sagen, wovor die lizenzautoren angst hatten.</p><p>wenn sie angst haben, ihren namen durch den schlamm zu ziehen, scheint die bsd-lizenz besser zu sein. wenn sie angst haben, ihre software in eine proprietäre software zu integrieren, scheint die gpl besser zu sein. unabhängig von der lizenz wählt der autor sie, weil sie sie vor dem schützt, wovor sie angst haben.</p><p>unterschiedliche personen haben unterschiedliche bedenken und verwenden daher unterschiedliche lizenzen.</p> Ein reg-ex wird viel schneller sein als html agility pack. 

 Aber Sie sollten bedenken, dass HTML nicht immer gut geformt sein muss. Die Suche nach den richtigen Daten, die Sie nur mit reg-ex verwenden möchten, kann fehlschlagen. Browser sind sehr fehlerverzeihend. 

 Agility Pack ist ein großartiges Werkzeug. Es bietet eine Menge Funktionen für den Speicher, den es verbraucht. Ein Betriebssystem verwaltet das Zusammenspiel der [Hardware](https://it-service.network/it-lexikon/hardware)- und [Software](https://it-service.network/it-lexikon/software)-Komponenten eines Computers, sodass dieser mit einer benutzerfreundlichen Oberfläche verwendet werden kann. Als Kurzformen werden BS (Betriebssystem) und OS (Operating System) verwendet. Eine SSD brauch man nicht unbedingt man kann auch eine mechanische Festplatte benutzen wenn man den PC nur für Office Anwendungen nutzt oder auch zum spielen und mal paar Sekunden warten kann bis das System oben ist reicht diese aus. Von der Haltbarkeit (ca. 10 Jahre) unterscheiden sich diese nicht großartig.


Eine SSD ist trotzdem zu empfehlen da diese generell schneller lesen und schreiben kann. Zudem ist sie nicht so Erschütterungs anfällig wie eine mechanische Festplatte. <p>sie sollten sich mit ziemlicher sicherheit <a href="http://clojure.org/">clojure</a> ansehen - meiner meinung nach ist es die beste moderne sprache für multi-core-programmierung und äußerst produktiv.</p><p>hauptmerkmale:</p><ul> <li>es ist eine <strong> funktionale sprache </strong>, die sowohl für die parallelität als auch für ihre fähigkeit, sich mit höheren abstraktionen zu entwickeln, von vorteil ist. es verfügt über vollständig unveränderliche persistente datenstrukturen und verzögerte sequenzen, die jedem bekannt sind, der erfahrung mit funktionalen sprachen wie haskell hat.</li> <li>es verfügt über ein sehr neuartiges <strong> software-transaktionsspeichersystem </strong> für den gleichzeitigen sperrenfreien zugriff auf den veränderlichen zustand. das gleichzeitige sicherstellen von code ist oft so einfach wie das einschließen in einen (dosync ....) block.</li> <li>es ist ein <strong> [~ # ~] lisp [~ # ~] </strong> - was es extrem leistungsfähig für die makrobasierte metaprogrammierung und codegenerierung macht. dies kann signifikante <a href="http://www.paulgraham.com/avg.html">produktivitätsvorteile</a> bringen (aufsatz von paul graham - "beating the averages")</li> <li>es ist eine <strong> jvm-sprache </strong> - so erhalten sie nicht nur zugriff auf die große auswahl an bibliotheken und tools in java ökosystem profitieren sie auch von dem enormen technischen aufwand, der dazu beigetragen hat, die jvm zu einer effektiven plattform für gleichzeitige serverseitige anwendungen zu machen. aus praktischen gründen bietet dies einen großen vorteil gegenüber sprachen, die nicht über diese grundlage verfügen auf.</li> <li>es ist <strong> dynamisch </strong> - was zu sehr präzisem code und viel produktivität führt. beachten sie jedoch, dass sie bei bedarf optionale statische typhinweise für die leistung verwenden können.</li> <li>die sprache <strong> basiert auf abstraktionen </strong>, was etwas schwer zu erklären ist, aber der nettoeffekt besteht darin, dass sie eine reihe relativ orthogonaler merkmale erhalten, die sie kombinieren können, um sie zu lösen deine probleme. ein beispiel wäre die sequenzabstraktion, mit der sie code schreiben können, der sich mit jedem "sequentiellen" objekttyp befasst (der alles aus listen, zeichenfolgen, java arrays, unendlich faulen sequenzen, zeilen) enthält aus einer datei gelesen werden etc.)</li> <li>es gibt eine <strong> großartige community </strong> - hilfreich, aufschlussreich, aber vor allem sehr pragmatisch - der fokus in clojure liegt im allgemeinen auf "dinge erledigen".</li> </ul><p>einige mini-codebeispiele mit einer nebenläufigkeit:</p><pre><code>;; define and launch a future to execute do-something in another thread (def a (future (do-something))) ;; wait for the future to finish and print its return value (println @a) ;; call two functions protected in a single stm transaction (dosync (function-one) (function-two)) </code></pre><p>insbesondere lohnt es sich, eines oder mehrere dieser videos anzusehen:</p><ul> <li> <a href="http://www.infoq.com/presentations/value-identity-state-rich-hickey">http: //www.infoq.com/presentations/value-identity-state-rich-hickey</a> </li> <li> <a href="http://www.infoq.com/presentations/are-we-there-yet-rich-hickey">http: //www.infoq.com/presentations/are-we-there-yet-rich-hickey</a> </li> <li> <a href="http://www.infoq.com/presentations/clojure-the-art-of-abstraction">http: //www.infoq.com/presentations/clojure-the-art-of-abstraction</a> </li> </ul>