Permalänk
Medlem

ZFS i linux?

Nån som testat ZFS i linux? Hur bra är det jämfört med t.ex FreeBSD?

Visa signatur
Permalänk
Hedersmedlem

Matnyttiga länkar:
http://zfsonlinux.org/faq.html
http://linux.slashdot.org/story/12/06/01/2343219/making-zfs-a... - aktuell fråga om detsamma på Slashdot (länkas hit för kommentarernas skull, inte artikeln).

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem

tack!

Visa signatur
Permalänk
Medlem

Fungerar prima måste jag säga. kört det 2+ år.

Edit:

7x2TB

root@NASDISK:~# dd if=/dev/zero of=/nasdisk/zerofile.000 bs=1M count=10000
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB) copied, 36.046 s, 291 MB/s

root@NASDISK:~# dd if=/nasdisk/zerofile.000 of=/dev/null bs=1M
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB) copied, 32.6235 s, 321 MB/s

utan 4k alignment.

Visa signatur

"Datorn har ju fan mer dragningskraft än jorden. Skulle jag ramla skulle jag hamna i datorstolen & inte på golvet."

Permalänk

När jag byggde om min server för en månad sedan så tog jag också chansen att gå över till zfs och raidz. Funkat prima* den månad jag kört hittils och är väldigt nöjd med hastigheterna.

dd if=/dev/zero of=/storage/junk00 bs=1M count=10000 10000+0 records in 10000+0 records out 10485760000 bytes (10 GB) copied, 23.4815 s, 447 MB/s dd if=/storage/junk00 of=/dev/null bs=1M 10000+0 records in 10000+0 records out 10485760000 bytes (10 GB) copied, 21.6637 s, 484 MB/s

5x3Tb med 4k alignment

* Hade lite trassel ibörjan, servern frös när minnesanvändningen blev hög, spottade ur sig felmeddelande om zfs just före frysningarna. Givetvis började jag felsöka zfs, begränsa minnesanvändningen (zfs_arc_max) m.m. I slutändan visade det sig att ramminnena i burken var pajj (memtest lyste som santa claus efter några minuters körning). Nu med nya minnen i burken har den rullat 3v utan några som helst problem.

Permalänk
Avstängd

Annars finns ju Linux motsvarighet till ZFS som är Btrfs.
Men det är fortfarande under utveckling.

Permalänk
Medlem
Skrivet av rektor:

Annars finns ju Linux motsvarighet till ZFS som är Btrfs.
Men det är fortfarande under utveckling.

Oracle kör numera btrfs som default i sin dist så någorlunda "färdigt" är det nog allt.

Visa signatur

CCNP

Permalänk
Medlem

Anledningen till att jag frågade var för att jag stötte på lite problem med nyare FreeBSD på min sketna Intel Atom server. Det är nåt fusk-chip på moderkortet som kontrollerar två av diskarna och drivrutinen till det chippet är minst sagt bristfällig. Det funkar hyffsat i FreeBSD 8.2 (de två diskarna körs som IDE), men inte i 8.3 eller 9.0 (diskarna hittas inte alls).

Så jag tänkte om kanske linux skulle vara ett alternativ.

Men jag vågar inte än
Väldigt kinkig med min ZFS-pool, hela syftet med den var att den skulle vara så säker som möjligt trots budgethårdvara (intel Atom och 4x WD Green diskar i raid).

Kör vidare på FreeBSD 8.2 tills jag köper ny CPU + mobo. Tänker inte byta till BTRFS än på nåt år. Måste ge cred till FreeBSD och ZFS som har funkat ypperligt. Inte alltid det mest användarvänliga men när man väl fått saker att funka så tuffar den på stabilt utan jidder trots stundtals tung belastning.

Visa signatur
Permalänk
Avstängd
Skrivet av maniak:

Oracle kör numera btrfs som default i sin dist så någorlunda "färdigt" är det nog allt.

En kommentar från Slashdot angående btrfs.
http://linux.slashdot.org/comments.pl?sid=2995701&cid=4072668...

Skrivet av macemoneta @ Slashdot:

Btrfs is stable enough for real data, if you run current releases (latest 3.4 or 3.5 kernel and btrfs-progs-19 current). I use it in both single drive systems and raid1 configurations with Fedora 17. Prior to converting the systems, I ran extensive failure testing (e.g., pulling power / data connection during active writes, system crashes, using a failing drive with media errors as part of a raid1, etc.) for about a month. I never lost a single byte of data in any test, confirmed by checksum scans on all data (against a backup) after each test cycle.

I actually trust btrfs now more than ext4 due to the ability to scrub the data and confirm integrity, which I do daily or weekly depending on the system.

Permalänk
Hedersmedlem
Skrivet av rektor:

Såg rubriken i trådlistan igen och tänkte citera precis samma kommentar från Slashdot .

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem

Leker lite med "ZFS on Linux" version 0.6.0_rc10 på min Arch Linux skrivbordsinstallation och måste säga att det verkar fungera bra än så länge (fast har precis börjat leka).

Först fick jag installera spl samt zfs med sina beroenden från AUR. Detta innebar kompilering men det gick smidigt och enkelt som vanligt när man installerar från AUR. Bara att kolla lite i dessa guider i wikin:
https://wiki.archlinux.org/index.php/Installing_Arch_Linux_on...
https://wiki.archlinux.org/index.php/ZFS

Nu kör jag inte boot eller rootfilsystem på ZFS (även om det är möjligt att göra) men jag lade ändå in zfs till HOOKS i mkinitcpio.conf samt till daemons-listan i rc.conf och genererade en ny ramdsisk image så att zfs-modulen laddas in vid boot. Nackdelen är väl att jag får kompilera om zfs-modulen när kärnan uppdateras misstänker jag (kanske går att lösa autoatiskt med DKMS eller vad det heter).

Jag gjorde en fuling med några slaskdiskar.
1 st 500 GB SAMSUNG HD501LJ
1 st 320 GB WDC WD3200AAKS
1 st 200 GB SAMSUNG SP2014N

Med hjälp av LVM skapade jag en logisk 500GB volym utifrån 320 GB plus 200 GB diskarna (för att slippa slösa på diskutrymme) och speglade sedan denna logiska volym med den fysiska 500 GB disken för att ge redundans. Minst en av hårddiskarna kan gå sönder utan att någon data förloras.

Visserligen har jag ännu inga "Advanced Format" diskar eller SSD i poolen men jag förberedde ändå poolen för diskar upp till 8K stora sektorer (som vissa SSD-diskar påstås ha) med hjälp av "ashift=13". För endast mekaniska diskar räcker det väl med "ashift=12" men strunt samma, läste någonstans att man kan få aningen bättre prestanda med "ashift=13".

sudo zpool create -f -m /mnt/zfs -o ashift=13 zfs mirror ata-SAMSUNG_HD501LJ_S0MUJ2MP817527 dm-name-volymgrupp-lvol500g

Resultat:

[ronny@r1arch ~]$ sudo zpool status pool: zfs state: ONLINE scan: scrub repaired 0 in 0h0m with 0 errors on Fri Sep 7 22:23:16 2012 config: NAME STATE READ WRITE CKSUM zfs ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 ata-SAMSUNG_HD501LJ_S0MUJ2MP817527 ONLINE 0 0 0 dm-name-volymgrupp-lvol500g ONLINE 0 0 0 errors: No known data errors

Ställde in atime=off som standard i poolen (jag kallar min pool för zfs, kan ju kanske göra det lite förvirrat, men strunt samma):

sudo zfs set atime=off zfs

Däremot bryr jag mig inte om kompression eller något annat "fancy"...
Nu får alla nya filsystem skapade i poolen zfs "atime=off" som default.

Så jag skapar mig ett filsystem jag kallar video:

sudo zfs create zfs/video

Kopierade över sisådär 115 GB filmer (och foton) jag tagit med systemkameran.
Resultat:

[ronny@r1arch ~]$ sudo zfs list [sudo] password for ronny: NAME USED AVAIL REFER MOUNTPOINT zfs 115G 342G 288K /mnt/zfs zfs/video 115G 342G 115G /mnt/zfs/video

och

[ronny@r1arch ~]$ sudo zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT zfs 464G 115G 349G 24% 1.00x ONLINE -

Testade köra scrub på altihopa och hastigheten på scrub blev ungefär 72 MB/s vilket är ungefär vad man kan vänta sig.

[ronny@r1arch ~]$ sudo zpool status pool: zfs state: ONLINE scan: scrub in progress since Fri Sep 7 23:34:28 2012 113G scanned out of 115G at 72,1M/s, 0h0m to go 0 repaired, 97,89% done config: NAME STATE READ WRITE CKSUM zfs ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 ata-SAMSUNG_HD501LJ_S0MUJ2MP817527 ONLINE 0 0 0 dm-name-volymgrupp-lvol500g ONLINE 0 0 0 errors: No known data errors

Efter 27 minuter hade allt skrubbats utan att några fel hittats.
Klassiska dd-testet:

dd if=/dev/zero of=/mnt/zfs/video/junk00 bs=1M count=10000 10000+0 poster in 10000+0 poster ut 10485760000 byte (10 GB) kopierade, 139,421 s, 75,2 MB/s

och

dd if=/mnt/zfs/video/junk00 of=/dev/null bs=1M 10000+0 poster in 10000+0 poster ut 10485760000 byte (10 GB) kopierade, 76,7789 s, 137 MB/s

Så får man alltså dubbla läsprestandan när man kör mirror?
Eller är det kanske lagrat i RAM-cahche?
Ska boota om och testa igen, återkommer...

Jodå:

[ronny@r1arch ~]$ dd if=/mnt/zfs/video/junk00 of=/dev/null bs=1M 10000+0 poster in 10000+0 poster ut 10485760000 byte (10 GB) kopierade, 78,6306 s, 133 MB/s

Men det kan vara så att den läser från snabbaste disken i spegeln och 320GB-disken kan vara ungefär så pass snabb.

sudo dd if=/dev/sdf of=/dev/null bs=1M count=10000 [sudo] password for ronny: 10000+0 poster in 10000+0 poster ut 10485760000 byte (10 GB) kopierade, 92,4977 s, 113 MB/s

Nej inte riktigt så snabb. Nähä, men 500GB disken då?

dd if=/dev/sdg of=/dev/null bs=1M count=10000 10000+0 poster in 10000+0 poster ut 10485760000 byte (10 GB) kopierade, 122,908 s, 85,3 MB/s

Ännu slöare. Ja men då är det väl så att en ZFS mirror är snabbare i läsning än en singeldisk (har hört att det ska ge uppåt dubbla läsprestandan).

För säkerhets skull kollade jag även den logiska LVM-volymen:

dd if=/dev/disk/by-id/dm-name-volymgrupp-lvol500g of=/dev/null bs=1M count=10000 10000+0 poster in 10000+0 poster ut 10485760000 byte (10 GB) kopierade, 92,4759 s, 113 MB/s

Ger samma hastighet som 320GB-disken som ligger först i LVM-gruppen.

Permalänk
Hedersmedlem
Skrivet av ronnylov:

Leker lite med "ZFS on Linux" version 0.6.0_rc10 på min Arch Linux skrivbordsinstallation och måste säga att det verkar fungera bra än så länge (fast har precis börjat leka).

Först fick jag installera spl samt zfs med sina beroenden från AUR. Detta innebar kompilering men det gick smidigt och enkelt som vanligt när man installerar från AUR. Bara att kolla lite i dessa guider i wikin:
https://wiki.archlinux.org/index.php/Installing_Arch_Linux_on...
https://wiki.archlinux.org/index.php/ZFS

Nu kör jag inte boot eller rootfilsystem på ZFS (även om det är möjligt att göra) men jag lade ändå in zfs till HOOKS i mkinitcpio.conf samt till daemons-listan i rc.conf och genererade en ny ramdsisk image så att zfs-modulen laddas in vid boot. Nackdelen är väl att jag får kompilera om zfs-modulen när kärnan uppdateras misstänker jag (kanske går att lösa autoatiskt med DKMS eller vad det heter).

Jag gjorde en fuling med några slaskdiskar.
1 st 500 GB SAMSUNG HD501LJ
1 st 320 GB WDC WD3200AAKS
1 st 200 GB SAMSUNG SP2014N

Med hjälp av LVM skapade jag en logisk 500GB volym utifrån 320 GB plus 200 GB diskarna (för att slippa slösa på diskutrymme) och speglade sedan denna logiska volym med den fysiska 500 GB disken för att ge redundans. Minst en av hårddiskarna kan gå sönder utan att någon data förloras.

Visserligen har jag ännu inga "Advanced Format" diskar eller SSD i poolen men jag förberedde ändå poolen för diskar upp till 8K stora sektorer (som vissa SSD-diskar påstås ha) med hjälp av "ashift=13". För endast mekaniska diskar räcker det väl med "ashift=12" men strunt samma, läste någonstans att man kan få aningen bättre prestanda med "ashift=13".

sudo zpool create -f -m /mnt/zfs -o ashift=13 zfs mirror ata-SAMSUNG_HD501LJ_S0MUJ2MP817527 dm-name-volymgrupp-lvol500g

Resultat:

[ronny@r1arch ~]$ sudo zpool status pool: zfs state: ONLINE scan: scrub repaired 0 in 0h0m with 0 errors on Fri Sep 7 22:23:16 2012 config: NAME STATE READ WRITE CKSUM zfs ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 ata-SAMSUNG_HD501LJ_S0MUJ2MP817527 ONLINE 0 0 0 dm-name-volymgrupp-lvol500g ONLINE 0 0 0 errors: No known data errors

Ställde in atime=off som standard i poolen (jag kallar min pool för zfs, kan ju kanske göra det lite förvirrat, men strunt samma):

sudo zfs set atime=off zfs

Däremot bryr jag mig inte om kompression eller något annat "fancy"...
Nu får alla nya filsystem skapade i poolen zfs "atime=off" som default.

Så jag skapar mig ett filsystem jag kallar video:

sudo zfs create zfs/video

Kopierade över sisådär 115 GB filmer (och foton) jag tagit med systemkameran.
Resultat:

[ronny@r1arch ~]$ sudo zfs list [sudo] password for ronny: NAME USED AVAIL REFER MOUNTPOINT zfs 115G 342G 288K /mnt/zfs zfs/video 115G 342G 115G /mnt/zfs/video

och

[ronny@r1arch ~]$ sudo zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT zfs 464G 115G 349G 24% 1.00x ONLINE -

Testade köra scrub på altihopa och hastigheten på scrub blev ungefär 72 MB/s vilket är ungefär vad man kan vänta sig.

[ronny@r1arch ~]$ sudo zpool status pool: zfs state: ONLINE scan: scrub in progress since Fri Sep 7 23:34:28 2012 113G scanned out of 115G at 72,1M/s, 0h0m to go 0 repaired, 97,89% done config: NAME STATE READ WRITE CKSUM zfs ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 ata-SAMSUNG_HD501LJ_S0MUJ2MP817527 ONLINE 0 0 0 dm-name-volymgrupp-lvol500g ONLINE 0 0 0 errors: No known data errors

Efter 27 minuter hade allt skrubbats utan att några fel hittats.
Klassiska dd-testet:

dd if=/dev/zero of=/mnt/zfs/video/junk00 bs=1M count=10000 10000+0 poster in 10000+0 poster ut 10485760000 byte (10 GB) kopierade, 139,421 s, 75,2 MB/s

och

dd if=/mnt/zfs/video/junk00 of=/dev/null bs=1M 10000+0 poster in 10000+0 poster ut 10485760000 byte (10 GB) kopierade, 76,7789 s, 137 MB/s

Så får man alltså dubbla läsprestandan när man kör mirror?
Eller är det kanske lagrat i RAM-cahche?
Ska boota om och testa igen, återkommer...

Jodå:

[ronny@r1arch ~]$ dd if=/mnt/zfs/video/junk00 of=/dev/null bs=1M 10000+0 poster in 10000+0 poster ut 10485760000 byte (10 GB) kopierade, 78,6306 s, 133 MB/s

Men det kan vara så att den läser från snabbaste disken i spegeln och 320GB-disken kan vara ungefär så pass snabb.

sudo dd if=/dev/sdf of=/dev/null bs=1M count=10000 [sudo] password for ronny: 10000+0 poster in 10000+0 poster ut 10485760000 byte (10 GB) kopierade, 92,4977 s, 113 MB/s

Nej inte riktigt så snabb. Nähä, men 500GB disken då?

dd if=/dev/sdg of=/dev/null bs=1M count=10000 10000+0 poster in 10000+0 poster ut 10485760000 byte (10 GB) kopierade, 122,908 s, 85,3 MB/s

Ännu slöare. Ja men då är det väl så att en ZFS mirror är snabbare i läsning än en singeldisk (har hört att det ska ge uppåt dubbla läsprestandan).

För säkerhets skull kollade jag även den logiska LVM-volymen:

dd if=/dev/disk/by-id/dm-name-volymgrupp-lvol500g of=/dev/null bs=1M count=10000 10000+0 poster in 10000+0 poster ut 10485760000 byte (10 GB) kopierade, 92,4759 s, 113 MB/s

Ger samma hastighet som 320GB-disken som ligger först i LVM-gruppen.

Dold text

Högintressant läsning. En dag kommer jag säkerligen också pilla med detta, bra med en utförlig referens.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem

Kör man ubuntu är det enklare att komma igång, typ lägga till ett PPA och installera ett paket.
http://zfsonlinux.org/faq.html#HowDoIInstallIt

$ sudo add-apt-repository ppa:zfs-native/stable $ sudo apt-get update $ sudo apt-get install ubuntu-zfs

Tydligen ska det uppdatera zfs-modulen auotmatiskt i ubuntu när man installerar ny kärna.

Finns det några tweaks man bör göra? Har inte upplevt några stabilitetsproblem ännu men det hackade litegrann när jag spelade upp film från zfs-poolen. Kanske ställa ner zfs_arc_max något? Någon annan I/O scheduler man bör prova? ZFS är nog optimerat mer för servrar så det förvånar mig inte om det går att tweaka lite för bättre upplevelse på desktop.

Permalänk
Medlem
Skrivet av ronnylov:

...Har inte upplevt några stabilitetsproblem ännu men det hackade litegrann när jag spelade upp film från zfs-poolen. Kanske ställa ner zfs_arc_max något? Någon annan I/O scheduler man bör prova? ZFS är nog optimerat mer för servrar så det förvånar mig inte om det går att tweaka lite för bättre upplevelse på desktop.

Har upplevt samma när jag kollar på film men kommit fram till att Samba funderar kasst på min 12.04 -.-
går från 120MB/s ner till 1-5MB/s intermittent, trodde det hade att göra med ZFS, men när jag la upp en share på min systemdisk så visade det sig att den beter sig likadant... vet inte om det bara är min installation som fuckat ur eller om det är något generellt fel.
Kommer göra om installationen ändå när 12.10 kommer. (aldrig haft något problem med hastigheten innan jag smällde in 12.04)

Edit: streamar alltså från min NAS för att förtydliga.

Visa signatur

"Datorn har ju fan mer dragningskraft än jorden. Skulle jag ramla skulle jag hamna i datorstolen & inte på golvet."

Permalänk
Medlem
Skrivet av JZ0NiC:

Har upplevt samma när jag kollar på film men kommit fram till att Samba funderar kasst på min 12.04 -.-
går från 120MB/s ner till 1-5MB/s intermittent, trodde det hade att göra med ZFS, men när jag la upp en share på min systemdisk så visade det sig att den beter sig likadant... vet inte om det bara är min installation som fuckat ur eller om det är något generellt fel.
Kommer göra om installationen ändå när 12.10 kommer. (aldrig haft något problem med hastigheten innan jag smällde in 12.04)

Edit: streamar alltså från min NAS för att förtydliga.

Jag har nu löst problemet med uppspelning av video i mplayer genom att justera inställningen för cache i ~/.mplayer/config

# cache settings # # Use 8MB input cache by default. cache = 8192

Och jag fick göra samma sak i SMPlayer där jag ökade inställningen "Cache for local files" från 0 till 8192 kB. Jag hade ju problemet när jag spelade filer lokalt på samma dator som ZFS-poolen. ZFS har ofta lite "hackig" prestanda (buffrar som fylls och töms om vartannat så data pumpas ut stötvis) så det gör susen att ha lite buffring i mediaspelaren. VLC hackade inget vilket fick mig att misstänka det var en inställning i själva mediaspelarprogrammet och så var det ju. Jag använder oftast SMPlayer eller Mplayer. Mplayer har bättre prestanda men SMPlayer har roligare gränssnitt.

Jag har inte upplevt några sådana problem som du har i samba, fast å andra sidan kör jag samba endast från filservern som kör FreeBSD. Eller vid närmare eftertanke så hade jag ett liknande problem för några år sedan när jag körde OpenSolaris på filservern, och då var det moderkortets inbyggda Realtek nätverkskort som hade kassa drivrutiner. Sedan bytte jag det till ett nätverkskort från intel och sedan var det aldrig några problem.