Geschwindigkeit bei Zugriff von Mac OS X auf Samba Share
Ich nutze meinen Cubietruck als Samba Server. Irgendwann fiel mir auf, dass die Geschwindigkeit beim Kopieren von meinem Mac mit OS X El Capitan nur knapp über 10 MB/s lag. Da der Cubietruck eine Gigabit-Netzwerkkarte hat, sollte das um einiges schneller gehen. Außerdem war ich der Meinung früher schon Werte um die 30 MB/s gesehen zu haben. Der Gigabit-Anschluss wäre damit zwar auch noch nicht ausgelastet, aber immerhin.
Nach etwas Recherche im Internet habe ich eine Einstellung (Heise Artikel) gefunden mit der die Geschwindigkeit wieder auf bis zu 30 MB/s steigt. OS X verwendet wohl seit Version 10.11.5 standardmäßig SMB Signing. Das Tool smbutil zeigt die Samba Version und Optionen für aktuell verbundene Freigaben an:
Mini:~ johannes$ smbutil statshares -a
==================================================================================================
SHARE ATTRIBUTE TYPE VALUE
==================================================================================================
media
SERVER_NAME cubie
USER_ID 502
SMB_NEGOTIATE AUTO_NEGOTIATE
SMB_VERSION SMB_3.0
SMB_SHARE_TYPE DISK
SIGNING_SUPPORTED TRUE
EXTENDED_SECURITY_SUPPORTED TRUE
LARGE_FILE_SUPPORTED TRUE
CLIENT_REQUIRES_SIGNING TRUE
FILE_IDS_SUPPORTED TRUE
DFS_SUPPORTED TRUE
MULTI_CREDIT_SUPPORTED TRUE
ENCRYPTION_SUPPORTED TRUE
SIGNING_ON TRUE
--------------------------------------------------------------------------------------------------
Die Zeile “SIGNING_ON TRUE” zeigt, dass SMB Signing aktiviert ist. Diese Konfiguration kann in der Datei ~/Library/Preferences/nsmb.conf geändert werden:
Mini:~ johannes$ echo "[default]" >> ~/Library/Preferences/nsmb.conf; echo "signing_required=no" >> ~/Library/Preferences/nsmb.conf Mini:~ johannes$ cat ~/Library/Preferences/nsmb.conf [default] signing_required=no
Nach einem Neustart oder dem Trennen aller Verbindungen zum Samba Server und erneuten Verbinden sollte SMB Signing deaktiviert sein (SIGNING_ON wird nicht aufgeführt):
Mini:~ johannes$ smbutil statshares -a
==================================================================================================
SHARE ATTRIBUTE TYPE VALUE
==================================================================================================
media
SERVER_NAME cubie
USER_ID 502
SMB_NEGOTIATE AUTO_NEGOTIATE
SMB_VERSION SMB_3.0
SMB_SHARE_TYPE DISK
SIGNING_SUPPORTED TRUE
EXTENDED_SECURITY_SUPPORTED TRUE
LARGE_FILE_SUPPORTED TRUE
FILE_IDS_SUPPORTED TRUE
DFS_SUPPORTED TRUE
MULTI_CREDIT_SUPPORTED TRUE
ENCRYPTION_SUPPORTED TRUE
--------------------------------------------------------------------------------------------------
Um wieder auf den Standard zurück zu wechseln reicht es die Datei ~/Library/Preferences/nsmb.conf zu löschen.
Um SMB Signing über ~/Library/Preferences/nsmb.conf nicht global zu deaktivieren, kann der Share auch mit cifs://Hostname statt mit smb://Hostname verbunden werden. Dadurch wird automatisch Samba Version 1 ohne SMB Signing verwendet:
Mini:~ johannes$ smbutil statshares -a
==================================================================================================
SHARE ATTRIBUTE TYPE VALUE
==================================================================================================
pyload
SERVER_NAME cubie
USER_ID 502
SMB_NEGOTIATE SMBV_NEG_SMB1_ONLY
SMB_VERSION SMB_1
SMB_SHARE_TYPE UNKNOWN
EXTENDED_SECURITY_SUPPORTED TRUE
UNIX_SUPPORT TRUE
LARGE_FILE_SUPPORTED TRUE
CLIENT_REQUIRES_SIGNING TRUE
--------------------------------------------------------------------------------------------------
