Samba und ZFS vertragen sich nicht?

-Nuke-

Well-Known Member
Hiho.

Ich habe FreeBSD 7.1 installiert und darauf Samba 3.3.2. Als Datenlaufwerke habe ich 3 Festplatten mit RAID-Z mit ZFS zusammengefasst. Als Netzwerkkarte kommt eine Intel 1000 Pro PT zum Einsatz.

Kopiere ich jetzt Daten mit SCP auf diesen Server, habe ich Schreib- und Leseraten von ~60MB/s. In meinem PC steckt ebenfalls eine Intel Pro 1000 PT.

Mache ich das Ganze mit Samba, habe ich Schreibraten von ~60MB/s. AAABER, ich habe nur Leseraten von 10-12 MB/s :(

Ich habe dann noch mal eine Samba-Freigabe auf einer UFS-Partition einer anderen Festplatte im Server erstellt und dort habe ich jeweils Schreib- und Leseraten von 50MB/s (ist so ziemlich das Maximum der Platte) über Samba.

Also scheint es ja ein Problem zu geben im Zusammenhang Samba<->ZFS? Hat da jemand Erfahrungen mit und vllt. einen Tipp was man da machen kann?

Danke :)
 
Hi,
könntest Du mal Deine smb.conf posten? Habe nämlich ein ähnliches Problem: Wenn ich mit einem Windows XP-Client Dateien von meinem Server (ebenfalls ZFS-RaidZ) lese, komme ich auf angenehme Übertragungsraten (so um die 30 MB/s); wenn ich die gleichen Daten mit einem Linux-PC lese, komme ich auf ca. 1 MB/s Lesegeschwindigkeit ;-(
Ich habe mir damit geholfen, dass ich die Daten, die ich nur für meine Linux-Kiste brauche, über NFS freigegeben habe; damit sind die Übertragungsraten ähnlich brauchbar wie in der Kombination XP / Samba...
Ich meine mich zu erinnern, dass ich vor einigen Monaten mal was darüber gelesen habe, dass Samba und FreeBSD nicht die optimale Kombination sein sollen...
Gruß

Fiffi
 
Samba läuft auf FreeBSD 7 genauso gut wie auf auf Linux. Samba war eines der Programme, die früher ihre Probleme hatten, aber das ist längst gelöst. Für ZFS wäre es erst einmal interessant zu wissen, welche Version ihr einsetzt. Das ZFS in FreeBSD 7 ist die alte Version 6, sie ist nicht wirklich optimiert und hat die bekannten Macken. In -CURRENT ist ZFS 13, welches Sun auf ihren Storageserver produktiv einsetzt. Sie ist deutlich stabiler und schneller.

Langsame Übertragungsraten können grundsätzlich an vier Gründen liegen:

- Zu wenig Speicher, das System schafft ZFS und Samba nicht parallel im RAM zu halten. Gerade zu wenig Speicher für den ARC von ZFS kann schmerzhaft sein.

- Zu wenig Durchsatz, ZFS ist recht aggressiv in Sachen IO. Gerade ältere Hardware, wo noch viel am PCI hängt, kommt da schnell an ihre Grenzen. Auch die Geschwindigkeit der CPU spielt damit rein und der Durchsatz sowie die Qualität des Festplattencontrollers

- ZFS meint Fehler korrigieren zu müssen

- Fehlkonfiguration auf Server- oder Clientseite. Von diesem SMB/CIFS-Gefrickel gibt es inzwischen Unmengen Versionen, die sich teils doch stark unterscheiden. Wenn da was nicht zusammenpasst oder falsche Versionsinformationen mitgeschickt werden, gibt es ganz schnell Probleme. Dazu gibt es etliche Optionen, die alle ihren Einfluss haben.

Grundsätzlich, davon einmal abgesehen, ist aber zu sagen, dass Samba niemals die Geschwindigkeit einer sauberen NFS-Implementierung (wie die BSD-Familie oder Solaris sie haben) erreicht. 10 Megabyte die Sekunde sind dennoch zu wenig. Ich würde erst einmal messen, was dein RaidZ lokal an Durchsatz bringt. Dann kann man sehen, ob ZFS blockiert oder Samba.
 
Hi,
könntest Du mal Deine smb.conf posten?

Code:
        dos charset = CP1252                
        display charset = UTF-8             
        passdb backend = tdbsam             
        log file = /var/log/samba/log.%m    
        max log size = 50                   
        socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=65536 SO_RCVBUF=65536
        os level = 65                                                              
        preferred master = Yes                                                     
        domain master = Yes                                                        
        dns proxy = No                                                             
        hosts allow = 192.168.11., 127.                                            
        use sendfile = Yes                                                         
        strict locking = No

Die Socket Options bringen ca. 3MB/s mehr bei mir.

Ich habe mir damit geholfen, dass ich die Daten, die ich nur für meine Linux-Kiste brauche, über NFS freigegeben habe; damit sind die Übertragungsraten ähnlich brauchbar wie in der Kombination XP / Samba...

Leider ist die Performance unter Windows teils noch schlechter.

In -CURRENT ist ZFS 13, welches Sun auf ihren Storageserver produktiv einsetzt. Sie ist deutlich stabiler und schneller.

Das Problem ist, das ich kein System auf dem Server einsetzen möchte, welches noch unter heftiger Entwicklung ist.

- Zu wenig Speicher, das System schafft ZFS und Samba nicht parallel im RAM zu halten. Gerade zu wenig Speicher für den ARC von ZFS kann schmerzhaft sein.

8GB RAM. Aber wie gesagt, über SCP ist ja alles halbwegs in Ordnung...

- Zu wenig Durchsatz, ZFS ist recht aggressiv in Sachen IO. Gerade ältere Hardware, wo noch viel am PCI hängt, kommt da schnell an ihre Grenzen. Auch die Geschwindigkeit der CPU spielt damit rein und der Durchsatz sowie die Qualität des Festplattencontrollers

Alles PCIe und die Hardware ist brandneu. Intel QuadCore. Außerdem ist die Performance über SCP ja OK. Von daher ist Hardware an sich auszuschließen.

- Fehlkonfiguration auf Server- oder Clientseite. Von diesem SMB/CIFS-Gefrickel gibt es inzwischen Unmengen Versionen, die sich teils doch stark unterscheiden. Wenn da was nicht zusammenpasst oder falsche Versionsinformationen mitgeschickt werden, gibt es ganz schnell Probleme. Dazu gibt es etliche Optionen, die alle ihren Einfluss haben.

Darum frag ich hier ;)

Grundsätzlich, davon einmal abgesehen, ist aber zu sagen, dass Samba niemals die Geschwindigkeit einer sauberen NFS-Implementierung (wie die BSD-Familie oder Solaris sie haben) erreicht. 10 Megabyte die Sekunde sind dennoch zu wenig.

Mangels NFS für Windows...

Ich würde erst einmal messen, was dein RaidZ lokal an Durchsatz bringt. Dann kann man sehen, ob ZFS blockiert oder Samba.

Wenn ich den selben Test (eine 1GB Datei umherkopieren) lokal mache, hab ich 100-200MB/s.
 
Last edited:
samba tut mir derzeit weh, weshalb ich für diesen Beitrag auch dankbar bin.
Ich habe nur einen M$ PC und der ist nicht nach meinem Gut-Dünken hergerichtet, es ist FirmenSW drauf, die ich nicht ändern will.
So kann ich den smb nur mit Mac-OS-X und mit meinen FreeBSD testen (bisher). Wenn ich den M$ dran hänge, verzweifele ich fast, vermutlich habe ich was nicht richtig verstanden, denn so kann doch niemand Netzwerk wollen? Es ist fast kein Browsing möglich, dauernd sehe ich Sanduhren!
Zwischen den FreeBSD und zu Mac habe ich, in ähnlicher Konfiguration, also ZFS auf fünf SATA2 Platten, amd64 4GB Ram, als absolut schnellsten Service ftp festgestellt. Dabei nutze ich nicht pureftpd, wie bei mir üblich, sondern den FreeBSD eingebauten Service.
Mein File-Server hat GB LAN, fast alle Clienten nur 100MB.
Sowohl Samba, als auch Appletalk (als Server auf dem FreeBSD), leisten weniger und pausieren gelegentlich.
Problemlos funktioniert wohl NFS zu FreeBSD und Linux und mit geringen Schwächen auch zu Mac, wobei hier Netzwerk-Qualität Ursache sein dürfte.

Die Performance des PC ist sicher ausreichend, ZFS funktioniert auf 64Bit deutlich zufriedener, als auf 32Bit. Ich Nutze auch die Version 6, noch zum Test und liebäugele mit der 13er.
Ich will mir das aber bequem machen (wie gesagt, noch teste ich mehr, als ich nutze, es läuft noch ein weiterer Server als Backup) und weil ich da auch eine VLC-Session starte, die mir Filme ins Netz streamt (über http-Interface auf meine Linux-Sat-Boxen), brauche ich etwas mehr, als nur das Basis-System.
Mal sehen.
Das mit VLC erwähne ich, weil der wandelt Divx und Xvid für die Boxen in passendes Format und dazu braucht er gelegentlich schon mal 45% Systemlast. Das hat keinen Einfluß auf die Netzwerk-Performance mit NFS und ftp und es verbessert natürlich nicht die schwächeren Samba und netatalk.

Die Installation ist eine recht frische (ca ein Woche) mit update zu 7.1-RELEASE-p4 und alle zusätzlichen Pakete, rsync, eject, vlc, sind nur mittels pkg_add aufgespielt, also auch samba3 und das apple-Zeugs.
 
Guten Morgen,
ich nutze auch ZFS Version 6 - läuft grundsätzlich auch, aber wie ich hier lesen konnte, scheint Version 13 "besser" zu sein. Daher folgende Frage: Wie kann ich auf Version 13 updaten, ohne mein System neu zu installieren?
Fiffi
 
Ich teste am WE mal ein Update auf CURRENT... mal schauen. Weil mit einer Samba-Freigabe eines UFS-Dateisystems ist die Performance super... da limitiert eher die Festplatte... -_-

Wenn das alles nicht klappt, muss ich wohl ZFS kicken...
 
Last edited:
Guten Morgen,
ich nutze auch ZFS Version 6 - läuft grundsätzlich auch, aber wie ich hier lesen konnte, scheint Version 13 "besser" zu sein. Daher folgende Frage: Wie kann ich auf Version 13 updaten, ohne mein System neu zu installieren?
Fiffi

Wahrscheinlich gar nicht.
Grundsätzlich scheint ZFS im Kernel als Modul realisiert zu sein. Solche Module kann man bauen, indem man die Quellen in die entsprechenden kernel-Source Dateien packt und dort den Bau startet. Ich hatte sowas schon mal mit einem Modul für Wlan Karten gemacht, es war nicht sonderlich kompliziert, doch ich würde es heute nicht mehr hinbekommen. Das muß man wohl zu selten machen, als daß sich der Vorgang festigt. Allerdings bin ich sicher, daß sich dazu Informationen finden lassen.
Im Grunde könnte es so schon gehen, wenn du nur ein entsprechendes Modul aus einer 8er nimmst und deines ersetzt. Allerdings sollen genau solche Attacken nicht erlaubt sein und es wird wohl in 8er Versionen auch eine Kontrolle geben, die falsche Module nicht zulassen wird.
Allerdings ist ZFS wohl doch mehr, als nur ein Kernel-Modul. Es gibt ja zahlreiche Kommandos rund um ZFS und die müssen ja im Basis-System zueinander passen und ich kann mir nicht vorstellen, daß du ein Modul für ZFS13 mit den Kommandos von ZFS6 sauber nutzen kannst.
Einen Test wäre es vielleicht wert, ich würde das lassen.
Wenn du dann aber das komplette Basis-System umbaust, passen deine Anwendungen aber nicht mehr. Im allgemeinen gelingt es ja oft, die Anwendungen innerhalb eines FreeBSD-Zweiges frei zu nutzen. Also, so lange da ein 6 davor steht gehen die oder innerhalb von 7 kann getauscht werden und nun steht eben eine 8 davor und da wirst du nicht die Pakete und Anwendungen aus 7 darauf verwenden können.

Ich bin da sehr unbedarft, doch weil ich es mir so zusammenreime, glaube ich eben, daß du nicht um den kompletten Neubeu eines Systemes herum kommst, wenn du ZFS13 haben willst.

Nebenbei: ZFS bleibt bei mir.
Obwohl ja auch der neue gvinum angekündigt ist, ZFS ist so, wie ich es mir vorgestellt hatte, daß SW-Raid sein soll.
Das will ich nicht mehr tauschen. Ich liebäugele auch mit dem 8er oder eben mit OpenSolaris, wobei ich noch gar nicht weiß, ob in der Open auch ZFS13 drinnen ist.
zwischen smb und ftp sehe ich kaum einen Unterschied im Gebrauch.
NFS Freigaben kann ich mounten und dann Dateien direkt abspielen. SMB und ftp transferieren die erst und fangen dann an, zu spielen.
 
Danke für die Infos - hatte etwas ähnliches schon vermutet... Wenn ich aber die Infos hier im Forum aud auf freebsd.org richtig deute, kommt Anfang Mai Version 7.2 raus - da ich sowieso leichte Probleme mit meiner verwendeten Hardware habe werde ich dann wohl auf neue Hardware umsteigen und damit neu installieren müssen...
 
heute haben wir den 11.04. und seit gestern ist bei mir die 7.2BETA-1 im Einsatz und ich glaube nicht, daß es die schon sehr viel länger gibt, denn ich halte die Seite des update.org immer offen ( http://update1.freebsd.org/ ) und da erscheinen Updates immer sehr rasch, nachdem sie allgemein verfügbar sind. Updates gelingen mir nämlich, seit ich GENERIC nutze, mittels freebsd-update spielend leicht und nebenbei, ohne daß ich da meine Aufmerksamkeit sammeln müßte.
Jedenfalls, Mitte April BETA-1, da sehe ich Anfang Mai nicht als realistisch für die finale Version an. Was aber auch kein Problem ist, nicht, daß mich einer falsch versteht: ich bin gang und gar gegen den Druck, der da immer erzeugt wird. Es braucht eben so lange, bis es fertig ist und wenn es länger dauert, ist das eben so.

Die 7.2BETA-1 hatte eine ganze Reihe Neuerungen gebracht, die mir natürlich nur beim Installieren aufgefallen sind. Ich kann das nicht beurteilen, was im einzelnen nun anders geht, ich kann aber sagen, daß auf Anhieb mein System damit wieder läuft und zwar vollkommen ohne Probleme.
 
Also ich habe jetzt ein Upgrade auf CURRENT gemacht und ZFS 13.

Im Windows-Benchmark ist die Performance nun von 40MB/s auf 60MB/s und in speziellen Tests von 1MB/s auf 12MB/s. Unter Linux ist die Performance aber teilweise unverändert, habe jetzt aber keine Lust ausführlich zu testen.

Nach Ostern ist wieder Regelbetrieb hier und dann kann ich echte Aussagen treffen.
 
Also ich habe jetzt ein Upgrade auf CURRENT gemacht und ZFS 13.

Im Windows-Benchmark ist die Performance nun von 40MB/s auf 60MB/s und in speziellen Tests von 1MB/s auf 12MB/s. Unter Linux ist die Performance aber teilweise unverändert, habe jetzt aber keine Lust ausführlich zu testen.

Nach Ostern ist wieder Regelbetrieb hier und dann kann ich echte Aussagen treffen.
Aber, das liest sich doch mal gut.
Du sagst: Update gemacht.
Ich will dich nun nicht mit den Problemen zusülzen, die aus meiner Unzulänglichkeit entstehen, aber das ist außerhalt von freebsd-update bei mir nur einmal gelungen und ich weiß nicht mehr, welchen Anleitungen ich da folgte. Es ist im Handbuch einiges beschrieben, wobei dann csup oder cvsup genutzt wird. Ich scheitere schon bei der Eingabe des Ziels, also des Servers.
Wo finde ich denn die CURRENT Sachen?
Kann mir einer vielleicht einen Tip geben, der hoffentlich dann die Initialzündung ist?
Bisher sehe ich nur die snapshots, würde mir also davon einen laden wollen und installieren und dann da heraus die Updates machen, in der Hoffnung, daß da Default die Variablen schon passend gesetzt sind. Allerdings erkannte das letzte snapshot meinen Stick gar nicht als Installationsmedium, so wäre mir ein Update aus dem laufenden System schon lieber.

Wenn ich das recht sehe, hast du auch deinen Zpool von ZFS_6 problemlos in ZFS_13 übernommen? Das wäre mir wichtig und ich gehe auch davon aus, daß es so sein wird.
Dieses ZFS ist echt gut gemacht. Mir gefällt es jedenfalls sehr sehr gut.
Meinen ZFS_6 Pool konnte ich problemlos in unterschiedlichen Systemen importieren und schwubs, schon war er da! Da ich ihn ansonsten wie ein Speichermedium behandele und auch mit einem Eintrag in fstab mounte, mit Einträgen in /etc/exports dann exportiere, war das ein super Erlebnis: den Stick, der das System hält, innerhalb einer Stunde neu aufgespielt und mit den gesicherten Konfigurationen versehen, neu gestartet, Zpool importiert und alles lief wieder.
So stelle ich mir das auch mit dem ZFS_13 vor, nur, ich hadere noch ein wenig.
Vielleicht hast du oder jemand anders einen Tip, der mich weiter ermuntert, das 8.0er CURRENT mal zu probieren.
 
Back
Top