Назад | Перейти на главную страницу

Собственный SMB / CIFS через ZFS или Samba вместо этого

Я совершенно не знал собственный SMB / CIFS на ZFS. В этом вики-документе не упоминаются различия в производительности. Какие различия в производительности существуют между ними?

По моему опыту, сервер режима ядра выполнял самбу с моими клиентами. Если производительность - ваша проблема номер один, пропустите самбу. Тем не менее, для сервера SMB / CIFS в режиме ядра Solaris существует ряд ограничений, в первую очередь:

  • Работает только в глобальной зоне. Samba может работать одновременно в нескольких изолированных зонах и / или в глобальной зоне.
  • Совместное использование происходит на уровне файловой системы, а не на уровне каталогов. Итак, для новых акций zfs create pool/fs новую файловую систему zfs, скопируйте данные и поделитесь ими (вместо совместного использования существующего каталога)
  • В общих папках нет следующих символических ссылок, если они не находятся в одной файловой системе.
  • Никаких детских креплений. Если вы разделяете файловую систему, подсистемы не используются совместно. (например, две файловые системы, пул / fs и пул / fs / subfs. Если вы используете общий пул / fs, вы не сможете получить доступ к содержимому pool / fs / subfs, не разделяя его отдельно. Он будет отображаться как каталог через SMB, но будет недоступен.
  • Нет контроллера домена / AD Master, WINS Server и прочих тонкостей Samba

Конечно, не выполняет межпротокольную блокировку (файл, заблокированный через SMB, также блокируется через NFS, когда nbmand=on устанавливается на сервере в ядре) и не выполняет интеграцию с VSS, поэтому моментальные снимки отображаются на вкладке Windows «Предыдущие версии» в окне свойств.

Если вы можете жить с ограничениями сервера режима ядра и вам не нужна изоляция на уровне зоны, я думаю, что это правильный путь. Если вы сейчас интенсивно пользуетесь Linux / Samba и вам нравятся некоторые из его уникальных функций, не стесняйтесь придерживаться этого. Также следует отметить, что если вы используете SmartOS, выбор был сделан за вас, они делают практически невозможным запуск чего-либо в глобальной зоне (по уважительной причине), поэтому вам придется использовать OmniOS, OpenIndiana или Oracle Solaris, если вы ненавижу Самбу.

Еще одна проблема с собственным SMB-сервером: он не будет использовать удаленные файловые системы, смонтированные через NFS. В лучшие времена это может показаться плохой идеей, но для нас это был простой способ, например, сделать некоторые области веб-разработки доступными для людей. Мы не беспокоились о проблемах с блокировкой файлов, потому что веб-разработчики (а) в основном использовали Dreamweaver, который использует свои собственные методы регистрации / возврата на основе файлов; (б) довольно небольшая сплоченная группа; и (c) в целом отвечает за области без значительного дублирования. Я не могу припомнить больше нескольких случаев, когда разработчики перезаписывали файлы друг друга (и вообще блокировка файлов не помогла бы).

Итак, обнаружение того, что новый блестящий сервер не будет с радостью делиться этими файлами, было немного неожиданностью, особенно потому, что этот момент, казалось, не особо подчеркивался на различных сайтах, обсуждающих новый сервер SMB. Ах, ну, если что-то я и узнал о Solaris, так это то, что «все меняется». :)

И я согласен с тем, что, если эти потребности не критичны для вашего магазина, лучше всего подойдет собственный SMB-сервер. Ему не хватает гибкости Samba, но он, кажется, "просто работает" после настройки, и у него действительно хорошая производительность.

У меня нет точных цифр, но я могу сказать, что собственный smb работает в пространстве ядра. Samba работает в пользовательском пространстве. Хотя запуск в пространстве ядра не гарантирует, что он будет быстрее, при прочих равных условиях код пространства ядра будет быстрее.

Я знаю, что конфигурирование и управление smb в ядре намного проще, чем samba. Каков размер вашей пользовательской базы?