Um Musik im Haus zu verteilen, benötigt man eine nicht sehr leistungsfähige, aber immer zur Verfügung stehende Windows Dateifreigabe. Diese Anforderungen erfüllt mein Cubietruck auf jeden Fall. Als erstes wird „Samba“ benötigt.
apt-get install samba
Wenn die Installation durchgelaufen ist, gehts an die Konfiguration. Für die Konfiguration ist die Datei „/etc/samba/smb.conf“ zuständig. Bevor die Konfiguration angepasst wir, muss noch ein Verzeichnis erstellt werden auf das die Dateifreigabe verweist.
mkdir /mnt/daten/Musik
Nun müssen noch die Rechte richtig vergeben werden.
chown -R nobody:nogroup /mnt/daten/Musik
Da die default- smb.conf sehr unübersichtlich ist, ich sie aber behalten möchte, verschiebe ich sie.
mv /etc/samba/smb.conf /etc/samba/smb.org
Nun kann eine neu erstellt werden.
[global] workgroup = zuHause public = yes guest ok = yes map to guest = bad user guest account = nobody wins support = yes [Musik] path = /mnt/daten/Musik guest ok = yes writeable = yes browseable = yes public = yes
Zu guter Letzt müssen die Samba Dienste neu gestartet werden.
service samba restart
Zum Testen kann man nun im Explorer folgendes eingeben
\\ns\Musik
Ist es nun möglich eine Datei zu erstellen oder zu kopieren, so sind alle Einstellungen im der „smb.conf“ korrekt.
Globale Optionen
workgroup= | Windows Arbeitsgruppe |
guest ok = | Gäste sind erlaubt |
map to guest = bad user | Benutzer die nicht in Samba-Datenbank eingetragen sind gelten als „bad user“. Diese werden automatisch zu Gästen. |
guest account = nobody | Gäste nutzen den User „nobody“ |
wins support = yes | WINS ist eingeschalten. |
Optionen der Freigabe
[Musik] | Freigabe Name |
path = /mnt/daten/Musik | Pfad im Dateisystem für die Freigabe |
guest ok = yes | Gäste dürfen die Freigabe nutzen |
writeable = yes | Freigabe ist beschreibbar |
browseable = yes | Freigabe ist im Explorer sichtbar |
public = yes | Freigabe ist öffentlich |
Performance Test
Zum Testen der Performance habe ich einfach eine ca. 1 GB Große Datei auf die Dateifreigabe kopiert. Die Schreibrate liegt mit ca. 31 MB/s doch höher als erwartet.
Allerdings übertrifft die Leserate meine kühnsten Erwartungen.
Tweaks
- Druckerfreigaben abschalten:
printing = bsd printcap name = /dev/null
- Sendfile System-Call nutzen (effizentere Methode für Dateizugriff):
use sendfile = true
- Asyncrone Lese- und Schreibzugriffe nutzen (ab einer Dateigröße von 16 KB):
aio read size = 16384 aio write size = 16384
- Socket Optionen für geringen TCP-Delay und größere Sende- und Empfangspuffer setzten:
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072