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 --------------------------------------------------------------------------------------------------