Ik ben bezig een nieuwe NAS server te bouwen en als onderdeel daarvan wil ik BTRFS gaan gebruiken. Helaas krijg ik het onder Debian (mijn voorkeurs-OS) nog niet goed voor elkaar zonder de LVM te gebruiken (en GRUB kan volgens mij ook niet zomaar naar BTRFS booten) dus ik heb een test-vm gebouwd met Ubuntu 11.10 erin, om wat dingen uit te proberen.
De VM bevat 4x8gb disken, de eerste (sda) heeft een standaard Ubuntu (Ext2/boot - Ext4/root - swap) indeling. Vanuit Ubuntu heb ik vanaf de command line via mkfs.btrfs een Raid 1 disk aangemaakt, bestaande uit 2 van die virtuele 8gb disks: sdb en sdc. Je krijgt dan vanwege een nog aanwezige bug wel 2 btrfs disken die je apart kunt mounten, maar als je /dev/sdb gewoon mount naar in mijn geval /mnt/btrfs1 dan krijg je netjes een 8gb grote map waar je bestanden in kunt schrijven. So far, so good dus.
Nu heb ik in de NAS die ik ga bouwen sowieso de beschikking over een 500gb en een 320gb SATA disk. Ik hoop er eind van deze week nog 2 grofweg identieke (in ieder geval merk + grootte) 320gb SATA schijven bij te hebben.
Mijn voorlopige plan is dus om de 500gb schijf als OS schijf te gebruiken via een normale 'tried and true' ext4 partitie als root, zodat ik vanaf daar met de 3 extra disken kan experimenteren. Ik wil graag een BTRFS span over 3 disken (alleen ondersteunt het op dit moment helaas alleen nog maar Raid 1, 0 en 10) met als eisen dat ik
- een schijf mag verliezen (fysiek wegvallen dus)
- bij stroomuitval geen corrupte on-disk data heb (dat ik de inhoud van de cache dan kwijtraak is van secundair belang)
- snapshots kan gaan gebruiken
De data in kwestie zal divers zijn, maar wel plat: video's, foto's, documenten, iso's, etc. Er word niet actief naar gekoppeld behalve via Samba om de data te lezen of dumpen bij wijze van backup vanaf mijn windows clients.
Uiteindelijk zal de data periodiek vanaf deze server naar een secundaire locatie (usb schijf, dvd) worden weggeschreven als permanente backup, maar just-in-case (het is en blijft een thuissituatie met een niet-redundant uitgevoerde server) wil ik weten of ik de data die in die BTRFS setup aanwezig is, kan uitlezen vanaf een andere machine. Dat wil zeggen: als de server fysiek niet meer kan booten (omdat bv het moederbord is overleden) wil ik de schijven die het BTRFS bestandssysteem bevatten in een nieuwe/andere server kunnen steken en uitlezen.
Als je dit met hardware raid had willen doen, moet je identieke raid controllers hebben, firmware versies, etc etc. Software raid is een stuk makkelijker mee te nemen, maar dit is volgens mij niet hetzelfde, in feite is BTRFS een filesysteem met een eigen ingebouwde software raid die niet op de traditionele manier via het OS word aangestuurd.
Iemand die ik gesproken heb die ZFS in productie heeft draaien, wist mij te vertellen dat hij sowieso de ZFS-config in een XML document heeft staan (buiten het ZFS systeem) en dat hij die sowieso nodig zou hebben om zijn ZFS diskpool op een fysiek andere machine over te nemen, maar hij kent BTRFS niet en weet niet of het daar ook zo is. De besturingssystemen die ik gebruik (voornamelijk Debian of -afgeleiden) hebben allemaal BTRFS-support in de kernel ingebouwd.
Zijn er mensen die hier ervaring mee hebben, die hier op kunnen aanvullen/verbeteren?
De VM bevat 4x8gb disken, de eerste (sda) heeft een standaard Ubuntu (Ext2/boot - Ext4/root - swap) indeling. Vanuit Ubuntu heb ik vanaf de command line via mkfs.btrfs een Raid 1 disk aangemaakt, bestaande uit 2 van die virtuele 8gb disks: sdb en sdc. Je krijgt dan vanwege een nog aanwezige bug wel 2 btrfs disken die je apart kunt mounten, maar als je /dev/sdb gewoon mount naar in mijn geval /mnt/btrfs1 dan krijg je netjes een 8gb grote map waar je bestanden in kunt schrijven. So far, so good dus.
Nu heb ik in de NAS die ik ga bouwen sowieso de beschikking over een 500gb en een 320gb SATA disk. Ik hoop er eind van deze week nog 2 grofweg identieke (in ieder geval merk + grootte) 320gb SATA schijven bij te hebben.
Mijn voorlopige plan is dus om de 500gb schijf als OS schijf te gebruiken via een normale 'tried and true' ext4 partitie als root, zodat ik vanaf daar met de 3 extra disken kan experimenteren. Ik wil graag een BTRFS span over 3 disken (alleen ondersteunt het op dit moment helaas alleen nog maar Raid 1, 0 en 10) met als eisen dat ik
- een schijf mag verliezen (fysiek wegvallen dus)
- bij stroomuitval geen corrupte on-disk data heb (dat ik de inhoud van de cache dan kwijtraak is van secundair belang)
- snapshots kan gaan gebruiken
De data in kwestie zal divers zijn, maar wel plat: video's, foto's, documenten, iso's, etc. Er word niet actief naar gekoppeld behalve via Samba om de data te lezen of dumpen bij wijze van backup vanaf mijn windows clients.
Uiteindelijk zal de data periodiek vanaf deze server naar een secundaire locatie (usb schijf, dvd) worden weggeschreven als permanente backup, maar just-in-case (het is en blijft een thuissituatie met een niet-redundant uitgevoerde server) wil ik weten of ik de data die in die BTRFS setup aanwezig is, kan uitlezen vanaf een andere machine. Dat wil zeggen: als de server fysiek niet meer kan booten (omdat bv het moederbord is overleden) wil ik de schijven die het BTRFS bestandssysteem bevatten in een nieuwe/andere server kunnen steken en uitlezen.
Als je dit met hardware raid had willen doen, moet je identieke raid controllers hebben, firmware versies, etc etc. Software raid is een stuk makkelijker mee te nemen, maar dit is volgens mij niet hetzelfde, in feite is BTRFS een filesysteem met een eigen ingebouwde software raid die niet op de traditionele manier via het OS word aangestuurd.
Iemand die ik gesproken heb die ZFS in productie heeft draaien, wist mij te vertellen dat hij sowieso de ZFS-config in een XML document heeft staan (buiten het ZFS systeem) en dat hij die sowieso nodig zou hebben om zijn ZFS diskpool op een fysiek andere machine over te nemen, maar hij kent BTRFS niet en weet niet of het daar ook zo is. De besturingssystemen die ik gebruik (voornamelijk Debian of -afgeleiden) hebben allemaal BTRFS-support in de kernel ingebouwd.
Zijn er mensen die hier ervaring mee hebben, die hier op kunnen aanvullen/verbeteren?