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Мбит/с.
На момент написания статьи самым доступным коммутатором на 8 портов был D-Link DGS 1008D стоимостью 1650 руб. И я почти уже решил взять именно его, но, зайдя в один из местных компьютерных магазинов, обнаружил такую штуку как Telsey GS108 стоимостью в 1050 руб. Существенная разница! О марке Telsey до сих пор я ничего не слышал, поэтому попробовал найти информацию в Интернете. Однако кроме агрессивной, невежливой и неприятной рекламной кампании московского представительства (а точнее одного из менеджеров) ничего не нашел. В англоязычном сегменте Интернета также было достаточно мало информации об этой якобы итальянской компании, за исключением некоторых продуктов для VoIP. Тем интереснее было попробовать именно этот продукт, тем более, что белый цвет D-Link'а мне как-то не очень понравился. ;) А характеристики у этих двух коммутаторов были абсолютно идентичными.
Стоит сказать, что высокая производительность в гигабитной сети зависит не только от коммутатора, но также от самих компьютеров (процессор, шина, дисковая подсистема), используемого сетевого адаптера, а также кабелей (Cat 5, Cat 5e, Cat 6). Например, нет смысла ждать высокой производительности в сети при чтении файла с IDE-диска.
Итак, в моей локальной сети кроме коммутатора Telsey GS108 было 5 компьютеров со встроенными гигабитными сетевыми адаптерами. Указываю основные параметры компьютеров.
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
4. Системная плата Gigabyte GA-P55M-UD2. Встроенный адаптер Realtek 8111D, HDD Seagate ST31000528AS. Кабель Signamax Cat 5e. OS Windows 7
5. Системная плата ASUS P5G41C-M LX, Встроенный адаптер Realtek 8112, HDD Seagate ST31500341AS. Кабель VCOM Cat 5e. OS Linux Debian Lenny (kernel 2.6.26, Samba 3.2.5). В данный момент именно этот компьютер выполняет роль медиа-сервера.
Как видно из перечня, "железо" самое бытовое. Кроме того, все компьютеры подключены с помощью дешевых китайских патч-кордов, зачастую без всяких опознавательных знаков. Важный нюанс. Все компьютеры подключены к коммутатору кабелями длиной ровно 15 метров. Подключив вместо Fast-Ethernet коммутатора Compex коммутатор 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 немного слабее.
№4 -> №5 [80 Мб/с]
№5 -> №4 [100 Мб/с]
Вот эту уже совсем другое дело! В основе компьютеров - современные системные платы, оснащенные относительно свежими гигабитными контроллерами от Realtek и SATA-2 дисками Seagate. Система №5 в данный момент является медиа-сервером. Коммутатор Telsey обеспечивает достаточную скорость и надежность в локальной сети.
№1 -> №2 [24 Мб/с]
№1 -> №3 [24 Мб/с]
№2 -> №1 [48 Мб/с]
Проблема в компьютере №1. Довольно старая по современным меркам системная плата, не поддерживающая стандарт SATA-2. Результат, как говорится, очевиден - скорость в 4-5 раз медленнее в гигабитной сети, чем современные компьютеры.
При этом через 500-800 Мб закачки компьютер №1 к всему прочему еще и намертво вис...
Интересно, что зависания компьютера не наблюдались при использовании 100Мб/с сетевого режима, а также при записии на IDE ATA-100 жесткий диск. То есть, когда скорость не превышала 25Мб/с. Как только скорость чтения или записи превышала определенный предел, компьютер зависал. Первое, что я попробовал - изменение опций в smb.conf, прежде всего, socket options, но это приводило только к снижению производительности и не решало проблему. Интуиция подсказывала, что дело, как говорится, в "железе". Замена оперативной памяти ни к чему не привела. В системной плате была загружена последняя доступная прошивка BIOS. Но я обратил внимание на любопытную деталь. Для некоторых аналогичных системных плат, таких как ASUS P4P800-X и Delux были выпущены прошивки, в которых говорилось о решении проблем совместимости с некоторыми Serial ATA-2 жесткими дисками. Это навело на мысль о каких-то проблемах южного моста Intel ICH-5 (реализующего стандарт Serial ATA 150Gbit/s), а точнее его использования в системной плате P4P800 с жесткими дисками нового стандарта Serial ATA 300Gbit/s. Ради эксперимента я установил на диске Seagate перемычку, переводящую диск в режим Serial ATA 150, но это не помогло. Тогда я попробовал использовать переходник Serial ATA-IDE, но к моему удивлению и это не решило проблемы. Ничего больше не оставалось, как поэкспериментировать с PCI-контроллером SATA. Я приобрел SATA-150 контроллер на чипе Silicon Image 3114. Для шины PCI нет SATA-2 контроллеров, которые выпускаются только для PCI-E. С SATA контроллером компьютер зависать перестал. Это решило мою проблему, хотя скорость чтения и записи снизилась (21Мб/с и 32 Мб/с соответственно). Интересно, что скорость записи снизилась значительно. Системная плата P4P800 выпускалась как продукт с высокой производительностью. Не кроется ли причина нестабильной работы с SATA-2 дисками в инженерах компании ASUS, которые минимизировали все возможные задержки для достижения максимальной производительности? Сказать трудно. Я также обратил внимание, что южный мост на этой плате довольно прилично греется, поэтому на всякий случай, купив в магазине 3 мл термоклея Алсил-5, приклеил к нему первый попавшийся по руки радиатор от сгоревшего ATX блока питания. Хуже не будет, а компьютер все-таки выступает в роли сервера...

Таким образом гигабит в домашних условиях живет, показывая скорость на современных адаптерах совместно с SATA-2 дисками до 100 Мбайт/с на обычной дешевой витой паре 5 категории и 8-портовом коммутаторе Telsey за 1000 руб. А 5-портовый еще дешевле.
Несмотря на явно китайское происхождение этого итальянского бренда, коммутатор GS108 проработал безотказно больше года. Свитч ни разу не завис, скорость передачи файлов между медиа-сервером и компьютерами в 80-110Мб/с меня вполне устраивала. Вполне достойное исполнение, металлический корпус. Но в один прекрасный момент оказалось, что 8 портов мне мало... Никогда бы не подумал, что для дома нужно будет более 8 Ethernet-портов... Два сервера, четыре компьютера, спутниковый ресивер, медиаплеер, IP-менеджер для управление освещением по Ethernet. Подключать многофункциональный контроллер на Atmega168 собственной разработки для исполнительных механизмов Умного Дома уже было некуда. Поэтому я решил сделать апгрейд и купить... 24-портовый гигабитный коммутатор Telsey GS124, благо стоил он всего 2000 руб! За эти деньги 24 гигабитных порта другого производителя не купить. Новый коммутатор с точки зрения скорости нисколько не отличался от старого, но выявился один существенный недостаток - он СИЛЬНО шумел. В 24-портовом коммутаторе, который, к слову, внутри состоит из 3-х восьмипортовых модулей имел на борту маленький но очень гордый шумный вентилятор, закрепленный сбоку. Терпел я недолго и решил поступиться гарантией, вскрыв корпус и отключив злополучного карлсона. Тишина восстановилась. Греется коммутатор, конечно, прилично, но не настолько, чтобы применять активные системы охлаждения. Да и крохотный вентилятор в корпусе вряд ли существенно влияет на температуру чипов. А "помрет, так помрет", как писал В. Цой.
Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.
2011-08-24 16:53:45 | Кирилл
"Для шины PCI нет SATA-2 контроллеров, которые выпускаются только для PCI-E"....
Если правильно понял, то Promise SATA300 TX4 (3 штуки, очень хорошо работают около 3 лет, непрерывно)
2010-11-05 12:36:32 | Andrey_B
ТНК, используется модуль skge
Вот, что он пишет в dmesg
skge 1.13 addr 0xfeaf8000 irq 22 chip Yukon rev 1
skge eth0: addr 00:0c:6e:8a:35:68
skge eth0: enabling interface
skge eth0: Link is up at 1000 Mbps, full duplex, flow control both
Завелся без проблем
2010-11-05 11:32:56 | THK
Добрый день!
Вопрос не совсем по теме... Встроенный адаптер 3COM 3C940 (Marvell) на плате ASUS P4P800 под OS Linux Debian Lenny завелся без проблем? Какой модуль используется?
У меня Abit IS7 с таким-же адаптером не работает, загружен модуль skge.