Настройка Samba или гигабит в домашних условиях

28/04/2010 18:25:03

Умный Дом в современном представлении - это, конечно, не только управление инженерными системами (отоплением, вентиляцией, светом, охранной сигнализацией), это еще и некая база мультимедийного контента. Прежде всего, речь идет о фильмах в различных форматах и контейнерах (DivX, DVD, HDTV), домашнем видео, музыкальных файлах (MP3, WMF), семейных и не только фотографиях, медиа-данных с мобильных телефонов и гаджетов. Все это удобно держать в одном месте, к которому всегда можно обратиться через Интернет (посредством FTP, Web с авторизацией или даже через VPN), через локальную сеть Ethernet, через точки доступа Wi-Fi. Медиа-плееры, подключенные к телевизорам, уже давно имеют поддержку всех необходимых сетевых стандартов. Да и сами телевизоры вот-вот самостоятельно полезут в сеть. О компьютерах в локальной сети и говорить нечего.

Централизованный медиа-сервер удобен по нескольким причинам. Как уже сказано, будучи включенным постоянно, такой сервер всегда обеспечивает общий доступ к нужным ресурсам. Также на сервере возможно разграничение прав доступа (в том числе по времени, для детей). Правильная логическая организация информации, ее индексирование, создание плей-листов для конкретных пользователей или на определенные случае (пьянка, романтический вечер) позволяют быстро найти и воспользоваться нужной мультимедийной информацией. Простейшими 6-и или 8-и канальными звуковыми контроллерами можно воспользоваться, чтобы развести сигнал по разным комнатам и переключать с сервера, не говоря уже о сетевых протоколах. Кроме того, не стоит скрывать, что на практике именно такой сервер, который подключен к сети Интернет, является основным источником поступления контента (торрент-клиент). На сервере может быть установлен также TV-тюнер с программой записи нужных программ или DVB-карта для декодирования каналов со спутника с дальнейшим распределением сигнала по сетевым протоколам.

Но основа всего этого все-таки файловый сервер. Так как в моем случае использовался сервер по управлением Linux (Debian lenny), то удобнее всего при наличии в сети Windows-компьютеров было бы использовать стандартный протокол SMB и программу Samba.

Настройка Samba не вызывает каких-либо сложностей, но, прежде всего, нужно определиться с идеологией доступа к сетевым ресурсам. В Samba реализовано три различных метода доступа (user, domain, server, share).
По умолчанию в smb.conf прописано:
security = user
Это означает, что авторизация пользователей происходит проверкой логина и пароля. Пользователи должны быть заведены в системе с помощью smbpasswd. Это наиболее правильный метод доступа, но не совсем удобный в том случае, если мы хотим дать доступ к определенным файлам всем пользователям сети в режиме Read Only. Для этого нам пришлось бы прописывать в систему всех пользователей, а пользователям пришлось бы вводить пароль для доступа к ресурсу. Так как речь все-таки идет о домашней локальной сети удобнее использовать
security = share
В этом случае Samba проверяет только пароль к ресурсу. Паролей может быть несколько (один для чтения и другой для записи). А совместно с опцией "guest ok = yes", которая указывается для конкретного ресурса, все пользователи (гости) сети смогут открывать сетевой ресурс.
Значения server и domain опции security нужны для того, чтобы осуществлять проверку на указанном сервере или Windows домене соответственно и в домашних условиях применяется редко.

Я решил, что администрировать (записывать данные) на сетевой ресурс буду я, а любые остальные пользователи сети только читать. Конфигурация получалась такая:

[global]
security = user

[media]
comment = Media Server
path = /mnt/media/Media
guest ok = yes
writable = yes

В качестве владельца каталога Media я указал себя

chown admin:admin /mnt/media/Media

Для того, чтобы работала автоматическая авторизация на уровне share необходимо на клиентском компьютере (Windows) завести пользователя admin с паролем, совпадающим с паролем пользователя admin на сервере Linux. Тогда доступ для пользователя admin к ресурсу откроется автоматически. Так удобнее, хотя можно не заводить в Windows пользователей, а пароль вводить каждый раз вручную.  Таким образом все пользователи сети могут читать файлы из media, но только пользователь admin сможет записать туда данные. В этой схеме есть один недостаток. Если вдруг у другого пользователя будет установлен такой же пароль как у admin, у него также появится возможность записывать данные. Но поскольку речь идет о доме и о членах семьи, то вряд ли это существенная проблема.

Гигабить или не гигабить - вот в чем вопрос.

Несмотря на то, что большинство работающих в сети компьютеров имели встроенные гигабитные сетевые контроллеры, сеть работала на скорости 100Мбит/с при поддержке 8-портового старого и дешевого коммутатора Compex PS2208B. Передача файлов по сети происходила на скорости 10-12Мбайт/с (что является пределом для 100Мбит/с) и особых нареканий к этому коммутатору у меня не было, за исключением того, что он часто (но не всегда) зависал при переходе на бесперебойник MGE Nova 1100 AVR. И в связи с резким ростом объема качественного медиа-контента (HDTV, Blue Ray), а также значительным снижением цен на Гигабитные коммутаторы, я решил в деле попробовать 1000Мбит/с.

Гигабитный коммутатор Telsey GS108На момент написания статьи самым доступным коммутатором на 8 портов был D-Link DGS 1008D стоимостью 1650 руб. И я почти уже решил взять именно его, но, зайдя в один из местных компьютерных магазинов, обнаружил такую штуку как Telsey GS108 стоимостью в 1050 руб. Существенная разница! О марке Telsey до сих пор я ничего не слышал, поэтому попробовал найти информацию в Интернете. Однако кроме агрессивной, невежливой и неприятной рекламной кампании московского представительства (а точнее одного из менеджеров) ничего не нашел. В англоязычном сегменте Интернета также было достаточно мало информации об этой якобы итальянской компании, за исключением некоторых продуктов для VoIP. Тем интереснее было попробовать именно этот продукт, тем более, что белый цвет D-Link'а мне как-то не очень понравился. ;) А характеристики у этих двух коммутаторов были абсолютно идентичными.

Стоит сказать, что высокая производительность в гигабитной сети зависит не только от коммутатора, но также от самих компьютеров (процессор, шина, дисковая подсистема), используемого сетевого адаптера, а также кабелей (Cat 5, Cat 5e, Cat 6). Например, нет смысла ждать высокой производительности в сети при чтении файла с IDE-диска.

Итак, в моей локальной сети кроме коммутатора Telsey GS108 было 3 компьютера со встроенными гигабитными сетевыми адаптерами. Указываю основные параметры компьютеров.
1. Системная плата ASUS P4P800. Встроенный адаптер 3COM 3C940 (Marvell). HDD Seagate ST31000528AS. Кабель VCOM Cat 5e. OS Linux Debian Lenny (kernel 2.6.26, Samba 3.2.5)
2. Системная плата Gigabyte GA-965P-S3. Встроенный адаптер Marvell Yukon 88E8056. HDD WD6400AAKS. Кабель Signamax Cat 5e. OS Windows 7
3. Системная плата ASUS M2N-E. Встроенный адаптер nForce 570 Ultra + Marvell PHY. HDD Seagate ST3320620AS. Кабель Noname Cat 5e. OS Windows 7

Как видно из перечня, "железо" самое бытовое. Кроме того, все компьютеры подключены с помощью дешевых китайских патч-кордов, зачастую без всяких опознавательных знаков. Важный нюанс. Все компьютеры подключены к коммутатору кабелями длиной ровно 15 метров. Подключив вместо Fast-Ethernet коммутатора Compex Giga коммутатор Telsey я обнаружил следующую картину.

Новый коммутатор без проблем определил более современный системные платы №2 и №3 в режиме 1000Base-T, а работать с ASUS P4P800 наотрез отказался. Первое, что я сделал, поменял кабель на Gembird Cat 5e, который визуально выглядел значительно тоньше чем VCOM, да и обжимал я его сам самыми дешевыми коннекторами. Гигабитный линк появился и даже работал, но после перезагрузки компьютера пропал и не восстанавливался. Тогда я использовал в качестве кабеля экранированную витую пару FTP Gembird Cat 6. Связь с коммутатором установилась сразу и больше не прерывалась. Можно сделать вывод, что старые контроллеры типа 3C940 более требовательны к качеству кабельных систем, чем новые. Теперь самое интересное - тестирование скорости передачи файлов, для чего я элементарно копировал файлы большого объема 4Гб (разные и несколько, чтобы набрать достоверную статистику). Конечно, я проверял скорость и с помощью таких утилит как iperf. Но во-первых, это в некоторой степени синтетический тест, а, во-вторых, не учитывает производительность дисковой подсистемы. А мне нужно было выяснить реальную скорость передачи информации большого объема (скажем, фильмов).

№2 -> №3 [62 Мб/с]
Очень неплохо для бытовых систем. Более чем достаточно с учетом дешевых компонентов и Cat 5e. Коммутатор в принципе обеспечивает достаточную скорость.

№3 -> №2 [50 Мб/с]
В обратном направлении меньше, но и компьютер №3 немного слабее.

№1 (Linux) -> №2 [24 Мб/с]
№1 (Linux) -> №3 [24 Мб/с]
Ага, мало того, что 3C940 потребовал Cat 6, так еще и скорость приемлемую не обеспечивает, а ведь жесткий диск на этом компьютере самый современный (да и hdparm в тестах показывает 105 Мб/с). Может быть, проблема вовсе не в контроллере, а, например в Samba, о которую сломано не мало копьев, но я перепробовал все возможные параметры smb.conf и, прежде всего, socket options. К сожалению это приводило только к снижению производительности.

№2 -> №1 (Linux) [48 Мб/с]
Удивительная история. Запись файлов  вдвое быстрее, чем чтение (и сравнима со скоростью между компьютерами №2 и №3). Значит 24 Мб/с не обусловлено проблемами с дисковой подсистемой. Да и тестирование сети с помощью iperf показало различные результаты на передачу данных в разных направлениях. Вряд ли это связано с проблемами ядра Linux. Скорее всего, причина кроется в самом контроллере или (что также вполне вероятно) в драйвере контроллера для Linux. В ближайшее время я планирую попробовать установить более современный PCI сетевой контроллер. Посмотрим как это скажется на производительности. Однако расстраиваться по этому поводу не стоит. Скорость 24 Мб/с - это вдвое больше, чем было в 100Мбит/с сети и для большинства случаев (проигрывание файлов с сервера, даже Blue Ray) более чем достаточна.

Таким образом гигабит в домашних условиях живет, показывая скорость на современных адаптерах в 50-62 Мбайт/с на обычной дешевой витой паре 5 категории и 8-портовом коммутаторе Telsey за 1000 руб. А 5-портовый еще дешевле.


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