Smb или ftp что лучше
Есть ли разница в скорости передачи файлов по FTP и Samba?
У меня есть настройка домашней сети с настольным ПК, двумя ноутбуками и рабочим столом сервера Ubuntu, подключенных к маршрутизатору (DD-WRT). Я хочу настроить сервер Ubuntu на отдельном поддомене (по соображениям безопасности: у меня есть веб-сайты, входящие на сервер), но я также хочу иметь доступ к резервным дискам, которые я установил на сервере. Я знаю, что могу настроить FTP-сервер в Ubuntu, но мне интересно, не потеряю ли я скорость при передаче таким способом. Кто-нибудь знает решение, которое я могу использовать?
2 ответа 2
FTP должен быть быстрее, чем SMB/CIFS (протокол, который реализует Samba), если вы просто передаете полные файлы. SMB/CIFS реализует полную файловую систему, и это всегда будет иметь больше издержек, чем просто отправка пакета байтов на другую сторону.
По моему опыту, это действительно зависит от сборки и конфигурации сервера Linux.
Я видел реализации / сборки Samba, которые имеют ужасную производительность, и другие сборки, где он работает быстрее, чем Windows для Windows.
FTP, вероятно, является наиболее простым решением для установки, однако Samba гораздо более функциональна.
Что касается других моментов, маршрутизатор не имеет значения, я не совсем уверен, что это как-то связано с этой настройкой, и нет необходимости в других поддоменах, так как вы всегда можете использовать IP или другие параметры безопасности.
Это было немного сложно, если я что-то пропустил или вы хотите, чтобы я уточнить какие-либо вопросы, пожалуйста, скажите!
Домашний сервер. Часть 2. FTP, Samba и rTorrent
Пришло время организовывать файловое хранилище, как внутри сети так и снаружи. Данная статья является продолжением первой части, посвященной настройки WiFi роутера на Вашем домашнем сервере. Все жесткие диски с Вашего домашнего компьютера(кроме системного) можно перенести на сервер, поскольку скорость передачи данный колеблется в районе 10-20 мегабайт в секунду [данный параметр еще и очень сильно зависит от модели Вашего жесткого диска], да и кстати, давно уже пора для системного диска покупать SSD накопители.
FTP Server.
Существует множество ftp серверов для linux, много хороших, много плохих, но есть лучший [естественно, что это субъективное мнение, и лучший он для меня] и это vsftpd. Его мы и будем рассматривать.
Скачать его можно из стандартных репозитариев OpenSUSE, выполнив в терминале команду:
Теперь перейдем к описанию. Это консольный ftp server, у него нет GUI [графическая оболочка], поэтому вся настройка происходит в одном единственном конфиге, по адресу /etc/vsftpd.conf.
Вот пример рабочего конфига:
В приведенном выше конфиге нет заморочек для распределения прав доступа отдельным пользователям, отдельных папок. Всё довольно просто и лаконично, настроил один раз и пользуешься [пользуются]. Vsftpd был выбран, потому что у него лучшая система настройки прав доступа, которая подразделяется на два вида: внутренняя, системная аутентификация и внешняя, с отдельным конфигурационным файлом для распределения прав доступа, но при этом, пользователи всё также берутся из системы.
В данном примере и пользователи, и распределение прав доступа этих самых пользователей берется из системы, дополнительный конфиг-файл не используется.
Рисунок 1. Выставление прав
На этом собственно всё.
Samba.
Хотите всегда иметь под рукой файловое хранилище всех коллекций и всего прочего с ноутбука, с домашнего компьютера, с телефона, с планшета? Поехали.
Изначально, при стандартной установке системы OpenSUSE всё что нужно для установки и настройки samba на сервере уже предустановлено. Поэтому перейдем непосредственно к настройке. Поскольку доступ из под ОС Windows в качестве «Подключения сетевого диска» будет доступен только внутри Вашей локальной сети [для интернета есть ftp сервер, да и к тому же, вывешивать самбу в интернет крайне не безопасно, а мы же, — «ЗА СЕКЬЮРНОСТЬ. УРА!»] поэтому настройки будут крайне банальны и просты в понимании. Есть два [известных мне и адекватных на мой взгляд] настройки самбы, это через, всё тот самый, конфигурационный файл и при помощи утилиты — WebMin. Это дико-крутая штука, особенно для тех, кто не любит ковырять конфиги [но и здесь есть свои ньюансы]. В данной статье не будем останавливаться на средствах «для ленивых«, поэтому продолжаем. Мы будем рассматривать рабочий конфиг файл. Находится он по адресу: /etc/samba/smb.conf. Вот он:
Также, дополнительную настройку можно выполнить через встроенный в YaST GUI samba.
Того пользователя, что мы указали в самом начале конфига, в данном примере это пользователь nobody, необходимо создать непосредственно в системе. Задать ему необходимые права (дома, имеет смысл поставить полные права, на создание, удаление, редактирование всех файлов и папок (т.е. права 777). Также, если Вы столкнетесь с ситуацией, когда по какой-то причине станет невозможным удаление/создание файлов в какой-либо из папок на сервере, то выполните команду:
Разберем её, на всякий случай:
chmod — команда установки прав.
777 — собственно права, в буквенном обозначении означают rwx, rwx, rwx — права чтение, запись, выполнение для владельца, группы(где состоит владелец), всех.
-R — ключ рекурсии, для того чтобы команда выполнилась не только для той папки(и файлов, находящихся в ней), которую Вы указали в /path, но и для всех под-папок и файлов в них тоже.
/path — путь до папки, на которую необходимо установить права. Аналогичная команда соответствует FTP серверу, если возникли похожие проблемы. Да, и надо оговориться, что если возникают подобные проблемы, то скорей всего проблема кроется в пользователях созданных в системе, а точнее в правах, выданных на использование их домашних директорий.
rTorrent.
Полу-автоматизированный торрент клиент.
На самом деле, это обычный торрент клиент, но, возможности настройки которого, очень богаты разнообразием. Сейчас мы с Вами разберём одну очень полезную функцию данного клиента. Представьте, Вы уже настроили самбу на Вашем домашнем сервере, файловое хранилище, находящееся на сервере подключена к Вашему компьютеру как Сетевой Диск, Вы открываете Ваш сетевой диск, открываете папку torrents, там открываете папку music и перемещаете туда все торрент файлы с музыкой, которые Вы хотите скачать и… всё, ложитесь спать. На утро уже будут скачены и проверены хеши всех торрентов, что Вы туда положили (тут конечно всё зависит от того сколько торрентов Вы хотите скачать, какой у них вес и какова ширина Вашего интернет канала). Нравится? Вот и я балдею уже как пол года, от этой функции.
Давайте разбираться.
Вам надо установить rtorrent, выполняем следующую команду в терминале:
Рисунок 2. Главное окно программы rTorrent
Собственно и все. Далее хитрый приём, — открываем консоль и пишем(можно и по ssh зайти на сервер):
screen rtorrent
Далее, в терминале откроется торрент-клиент, там же Вы его можете настроить и отладить дополнительно. Теперь нажимаем волшебные комбинации клавиш Ctrl+A затем Ctrl+D и консоль радостно Вас оповестит, что:
[detached]
Рисунок 3. «Заскринивание» процесса программы rTorrent.
Это говорит о том, что процесс Вашего торрент-клиента «закринин», то есть выполняется, но его при этом не видно. Для тех, адептов, кому всегда, всё интересно, может прочесть вот здесь про данную утилиту обременять голову такими вещами (хотя, они очень интересные и познавательные, и применяются часто) принудительно я не хочу.
Если Вам понадобилось заного открыть клиент, пишем:
На этой «важной» ноте, я хочу закончить данную статью. Спасибо за внимание, и да, пользуйтесь поисковиком Google, он молодец!
Если ошибся топиком, подскажите куда перенести.
ftp или smb что лучше
SMB (сокр. от англ. Server Message Block) — сетевой протокол прикладного уровня для удалённого доступа к файлам, принтерам и другим сетевым ресурсам, а также для межпроцессного взаимодействия.
FTP (англ. File Transfer Protocol — протокол передачи файлов) — стандартный протокол, предназначенный для передачи файлов по TCP-сетям
сервер подключен к роутеру, комп тоже
Русскоязычное Linux-сообщество
smb.conf:
«# Most people will find that this option gives better performance.
# See smb.conf(5) and /usr/share/doc/samba-doc/htmldocs/Samba3-H OWTO/speed.html
# for details
# You may want to add the following on a Linux system:
# SO_RCVBUF=8192 SO_SNDBUF=8192
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192″
http — в один поток тянется? или несколько?
какое время прохождения пакета? ping.
такие опции уже есть. пробовал также поднимать буферы до 65536. то же самое.
http в один поток.
пинг:
12 packets transmitted, 12 received, 0% packet loss, time 11011ms
rtt min/avg/max/mdev = 0.193/0.421/0.663/0.158 ms
может быть дело в использовании/неиспользовании sendfile()?
какой ftp-сервер использовался?
тогда странно, судя по документации должен pure-ftpd уметь sendfile(). может быть собран без поддержки?
а клиенты какие использовались для http/ftp?
а в общем для больших файлов скорость http и ftp должна быть одинаковой.
round-trip как раз можэт уменьшать скорость во сколько угодно раз.
Например: window size 8k (не обязательно tcp, здесь я говорю про любое окно у протокола, передающего последовательный поток), ACK посылается после каждой передачи полного окна, при скорости в 3Mb/s — получаем 300 ACK/s, или максимальный round-trip 30ms. Ну, или, соответственно, наоборот — при round-trip 30ms такой протокол не превысит 3Mb/s. Независимо от пропускной способности среды.
А в ftp скорее всего сервер такой тормозной. 50Mb/s — не такая маленькая скорость, чтобы каждый встречный её выдержывал.
Какой сетевой протокол обмена файлами имеет лучшую производительность и надежность? [закрыто]
У нас есть настройка с несколькими веб-серверами с балансировкой нагрузки. Мы хотим иметь какое-то сетевое общее хранилище, к которому могут обращаться все веб-серверы. Он будет использоваться как место для хранения файлов, загруженных пользователями. Все работает под управлением Linux.
Должны ли мы использовать NFS, CIFS, SMB, fuse + sftp, fuse + ftp? Есть так много вариантов для сетевых протоколов обмена файлами, что очень трудно выбрать один. Мы просто хотим постоянно смонтировать этот общий ресурс на нескольких машинах. Функции безопасности не так важны, потому что сеть не будет доступна из других источников, кроме серверов, на которых она установлена. Мы просто хотим, чтобы он работал надежно и быстро.
Какой из них мы должны использовать?
В NFSv4.1 добавлена возможность Parallel NFS pNFS, которая делает возможным параллельный доступ к данным. Мне интересно, какие клиенты используют хранилище, если только в стиле Unix, тогда я бы остановился на NFS, основываясь на показателях производительности.
Редхат хорошо справляется со списком плюсов и минусов кластера FS против NFS. В основном, если вы хотите масштабировать пространство, GFS, вероятно, стоит усилий. Кроме того, в примере GFS в качестве примера используется сеть Fibre Channel SAN, но это также может быть RAID, DAS или iSCSI SAN.
Наконец, обязательно изучите Jumbo Frames, и если целостность данных имеет решающее значение, используйте контрольную сумму CRC32, если вы используете iSCSI с Jumbo Frames.
У нас есть веб-кластер, ограничивающий нагрузку на 2 сервера. Мы попробовали следующие методы для синхронизации контента между серверами:
Самым быстродействующим общим диском был кластерный диск OCFS2 вплоть до тех пор, пока он не сошел с ума и не сломал кластер. Мы не смогли поддерживать стабильность с OCFS2. Как только несколько серверов получают доступ к одним и тем же файлам, нагрузка поднимается через крышу и серверы начинают перезагружаться. Это может быть провал тренировки с нашей стороны.
У SMB (CIFS) были некоторые проблемы с блокировкой. В частности, изменения в файлах на сервере SMB не были замечены веб-серверами. SMB также склонен зависать при сбое на SMB-сервере.
Мы пришли к выводу, что OCFS2 обладает наибольшим потенциалом, но требует много анализа, прежде чем использовать его в производстве. Если вы хотите что-то простое и надежное, я бы порекомендовал кластер NFS-сервера с Heartbeat для отработки отказа.
Smb или ftp что лучше
Чтобы правильно оптимизировать систему, хотелось бы понимать что и для чего делаешь. Сейчас у меня цель добиться максимальной скорости чтения больших файлов с сервера.
Если с FTP все более-менее прозрачно (файл передается по TCP, FTP сервер ждет от FTP клиента только подтверждение о приеме всего файла, подтверждения приема пакетов лежит целиком на TCP, латентность практически не влияет на скрость при достаточно большом TCP окне), то про SMB я ничего не нашел. С точки зрения API программа на клиенте запрашивает только очередной блок, в принципе, произвольного размера, обычно равного размеру внутреннего буфера программы. Асинхрнное чтение если и поддерживается SMB, то явно его большинство программ не использует (никто не просит следующий блок до того, как получил полностью предыдущий). То есть получается, что скорость чтения файла по SMB, в отличии от FTP, очень сильно зависит от латентности сети. В итоге оптимизация для FTP и SMB должна выполнятся совершенно по разному. Например, значения interrupt moderation, настройки поллинга и т.п. должны быть совершенно разными. Или я не прав?
Кто-то вообще этот вопрос анализировал? Или все действуют только по принципу научного тыка?
1. «SMB протокол vs FTP» | |
Сообщение от idle (ok) on 29-Июн-07, 11:02 | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
2. «SMB протокол vs FTP» | |
Сообщение от ptr (??) on 29-Июн-07, 12:47 | |
Есть много существенных ограничений, не позволяющих использовать ftp. По всем критериям, кроме скорости, Samba для меня оптимальна на конкретном сервере и для конкретного применения.
|