Synology как повысить производительность SMB

Всем привет!!!

Давайте покажу несколько настроек SMB, которые сделают Synology NAS немного, а в некоторых случаях и значительнее производительнее, чем настройки по умолчанию.

Server Message Block (SMB) – это коммуникационный протокол, первоначально разработанный в 1983 году Барри А. Фейгенбаум в IBM и предназначен для обеспечения общего доступа к файлам и принтерам между узлами в сети систем под управлением IBM OS/2. Он также предоставляет аутентифицированный механизм межпроцессной связи (IPC). В 1987 году Microsoft и 3Com внедрили SMB в LAN Manager для OS/2, когда SMB использовала службу NetBIOS поверх протокола NetBIOS Frames в качестве базового транспорта. Позже Microsoft внедрила SMB в Windows NT 3.1 и с тех пор обновляет его, адаптируя его для работы с новыми базовыми транспортами: TCP/IP и NetBT.

В 1992 году появилась Samba — свободная реализация протокола SMB для UNIX-подобных операционных систем (изначально для SunOS). Поскольку Microsoft не опубликовала документацию значительной части своих дополнений к SMB, разработчикам Samba пришлось провести обратную разработку протокола.

https://ru.wikipedia.org/wiki/Server_Message_Block

На данный момент SMB поддерживают все самые популярные ОС от Microsoft до Apple и Linux. Причем Apple по началу разрабатывала свой собственный протокол AFP, но в последнее время SMB в устройствах Apple имеют приоритетное применение и сама Apple рекомендует использовать именно SMB, а не ее собственный AFP.

Хочу сразу отметить, что данный протокол лучше не использовать через интернет, так как это не безопасно. Самое лучшее применение SMB внутри локальной сети, где этот протокол практически всегда и используется.

Рекомендации по настройкам SMB для максимальной производительности Synology NAS:

Проводное соединение

Самое лучше, что может повысить производительность это использовать проводное гигабитное соединение, а не WIFI. Какой бы WIFI не был быстрым, он на данным момент не сравнится по скорости и задержкам с проводным гигабитным соединением. А если сделать 10 гигабитную сеть, то производительность будет поражать.

Минимальный SMB 2

Microsoft объяснила, что проблемы с производительностью возникают в первую очередь потому, что SMB 1.0 – это протокол уровня блока, а не потоковой передачи, который первоначально был разработан для небольших локальных сетей. Он имеет размер блока, ограниченный 64K, подписание SMB создает дополнительные накладные расходы, а размер окна TCP не оптимизирован. Решения этой проблемы включают обновленный протокол SMB 2.0.

То есть вам нужно ограничить минимальным SMB 2

SMB2 и Large MTU. Этот параметр аналогичен SMB2.1. Максимальным размером передаваемых данных (MTU) называется самый крупный блок данных, который можно передать по протоколу связи. Для использования преимуществ более быстрых сетевых интерфейсов, например 1- или 10-гигабитного Ethernet, Large MTU увеличивает максимальный размер передаваемых данных до 1 мегабайта (МБ). Включение Large MTU повышает скорость и эффективность передачи больших файлов, сокращая количество обрабатываемых пакетов.

Отключить шифрование и подпись сервера

Когда, включено шифрование и подпись сервера, то каждый пакет шифруется и если вы передаёте тонну мелких файлов, то это очень сильно замедляет процесс. Эта настройка особенно полезна на скоростях от 1Гбита\с и выше.

Естественно, что если вы используете SMB через интернет, то лучше включить эти параметры. Внутри локальной же сети это не обязательно, так как если атакующий попадет в вашу локальную сеть, то шифрование вас не спасет. И такие серьезные атаки делаются только на серьезные сети, простым людям и небольшим компаниям не стоит беспокоиться.

Включить асинхронное чтение

Включение этого параметра повышает производительность чтения файлов в сетевых средах с произвольным чтением блоками по 4 КБ и 10 Гбит\с, но может использовать больше ресурсов ЦП.

Не резервировать место на диске при создании файлов

Включение данного параметра позволяет не резервировать дисковое пространство при создании файлов на Synology NAS. Делать это если много обращений к мелким файлам. Таким образом система не будет задерживаться на выделении места, а сразу начнет записывать файл, что очень сильно скажется на производительности.

Отключить журнал передачи

Что бы система не тратила ресурсы на запись журнала при каждой операции с файлами, можно отключить журнал передачи и тем самым повысить производительность.

Включить быстрое клонирование файлов

Не понимаю, почему компания Synology не включила этот параметр по умолчанию. Это просто киллерная фича Synology NAS на файловой системе BTRFS. То есть при включении этого параметра и копировании, например большого файла любого размера, процесс займет мгновение, так как по сути файл не будет скопирован, а просто файловая система отметит, что он еще есть в другой паке. За счет этого не только мгновенно с копируется файл, но еще и место на NAS не займет за счет дедупликации. А вот если этот новый или старый файл изменить, то они снова будут занимать каждый свой объем на томе.

Тут нужно отметить, что быстрое клонирование работает в самом Synology NAS, например через File Station и в Windows через протокол SMB. А вот на MacOS это не работает к сожалению. Решение есть, но я его применять не стал, так как не понятно почему Synology его не реализовало и не реализовали это по умолчанию сами разработчики SMB. Видимо есть нюансы, о которых я не знаю.

Но я выложу ссылки для самостоятельного изучения этого вопроса:

https://wiki.samba.org/index.php/Server-Side_Copy
https://www.samba.org/samba/docs/current/man-html/vfs_fruit.8.html
https://tech.setepontos.com/2019/02/04/fixing-slow-macos-finder-smb-browsing-on-synology-file-shares-using-samba-vfs_fruit/

Видео ролик

Synology как повысить производительность SMB

Всем пока и желаю удачи!!!

У этой записи 4 комментариев

  1. Приветствую,
    сделал, как Вы сказали.
    Ситуация: у меня к НАСу подключено 3 внешних диска.
    Так вот, после манипуляций, моя дюна видит и НАС и подключённые к нему внешние диски.
    Но! если НАС видит, и видит папки с фильмами и проигрывает их,
    внешние диски тоже видит, но они перестали открываться – почему-то папки стали пустыми
    Не подскажете, как справить?

    1. Я забыл сказать на видео, что некоторые настройки в некоторых случаях могут сделать хуже, так как вариантов настроек очень много. Пробуйте устанавливать по очереди настройки, которые вы сделали и так узнаете, что влияет у вас. А так вообще первое, что я подумал проблема на клиенте, а не на сервере.

  2. добрый . видимо нужно указать что эти настройки касаются системы DSM 7 так как некоторые функции не доступны в DSM 6.2 например ” быстрое клонирование файлов ” и “асинхронное чтение” . или они по другому называются .

    1. Спасибо за информацию. У меня нет всех версий DSM что бы проверять каждую опцию. Буду иметь ввиду в следующий раз.

Добавить комментарий

19 − 8 =