Персональный сайт Александра Литовченко

номер32
Поиграть в преферанс в онлайне
18 июня 2009 21:31

Медиа-хранилище своими руками

В прошлый раз я обещал рассказать об организации домашней медиабашни. Речь пойдет об устройстве, позволяющем хранить десятки террабайт, и обеспечивающем DNLA/uPnP медиапоток на PlayStation3. На рынке появилось немало, так называемых, Network Access Storage (NAS), но они мне не подошли по ряду причин, среди которых крайне убогие возможности, и неоправданная дороговизна. В результате, у меня получилось недорогое и функциональное решение, которое делает следующие вещи:

  • Роутит внешний интернет
  • Предоставляет интернет-сервисы (ntp, dns, www, mail, http-proxy, smb, ftp, ssh, nntp, smtp, pop3, imap). Некоторыми из них сервер пользуется сам, некоторые для домашней сети, некоторые открыты в мир.
  • Качает торренты
  • Домашний десктоп (с офисом, звуком, принтером, медиаплеером и обучающими играми для ребенка)
  • Раздает интернет на PlayStation3 через гигабитный crossover ethernet
  • Сервит медиатеку hd контента (музыку, видео, фото)
  • Обрабатывает (пережимает и муксит) медиаконтент
  • Раздает WiFi интернет на домашние устройства

Основной задачей является хранение больших объемов одним томом, без разделения на физические диски. В качестве файловой системы для этих целей идеально подходит ZFS. Учитывая, что на данный момент эту файловую систему поддерживает всего две операционные системы (Solaris и FreeBSD), то выбор ОС был очевиден (в [Open]Solaris/x86 далеко не все хорошо с драйверами к устройствам, щедро льющимися к нам от китайского говнопрома). Справедливости ради, стоит сказать, что под FreeBSD с этим то же не особо, но по крайней мере все что мне было нужно (цветной принтер, сетевые карты, wifi карта, звук, usb) встало «из коробки» без проблем. Небольшой сюрприз заготовили свежие OpenGL драйвера от nVidia, но хирургическое вмешательство кувалды и известной матери быстро решило этот вопрос.

Корпус и блок питания

Это почти единственный компонент на котором экономить не стоит. Корпус должен быть тихим, с хорошим охлаждением и... большим. Мне подошло вот это изделие Lian-Li PC-A70B. При покупке корпуса стоит помнить, что практически все корпуса, идущие в комплекте с блоком питания, как правило, редкий фуфел. Поэтому при выборе смотрим только отдельно корпуса и отдельно БП. Блок питания должен с запасом тянуть планируемые нагрузки, которые будут повышаться при заполнении hdd корзин. Минимальная мощность - 750 ватт. Но лучше сразу брать киловаттный.

Остальные комплектующие

Материнская плата должна поддерживать то количество SATA портов, сколько HDD планируется в сервере. Найти такую плату не особо трудно. На рынке присутствуют решения с 8, 12, 16 и даже большим количеством портов.

Процессор и память нам важны только в том случае, если планируется активно обрабатывать медиаконтент. Например пережатие одного hd-фильма легко может длиться несколько суток на относительно мощных машинах. Поэтому выбираем золотую середину между «потише, похолоднее, подешевле» и «ура, оно наконец-то оно дожалось». Мне хватило обычного Core2Duo не самой топовой модели и 4Gb DDR2.

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

Системный HDD может быть любым. На нем мы кроме системы и настроек хранить ничего не будем. И в качестве него сойдет маленький SSD диск или даже загрузочная флешка. Я воткнул старый Seagate на 250Mb который заполнен системой на 5%, и эта цифра расти не собирается.

Сетевые компоненты

Для обеспечения «роутерских» задач нам понадобятся три сетевые карты. Одна смотрит в провайдера, вторая — в медиаплеер, и третья WiFi  — раздает сеть на разные домашние устройства.

Двух не достаточно потому, что WiFi далеко не всегда хватает для обеспечения FullHD медиапотока, а к остальным устройствам провода тянуть негламурно.

Хранилище

Корзины заполняем любыми SATA винчестерами минимальной емкости 1Tb. Неплохо зарекомендовали себя «зеленые» диски от WD. Сверхскорости для этих задач не нужны. Здесь на первый план выходят параметры нагрева и уровня шума. Необязательно сразу пихать под завязку весь пул. Достаточно добавлять hdd по мере заполнения медиатеки. ZFS это позволяет.

В ZFS наличное дисковое пространство предстает в виде единого пула, доступ к которому могут иметь все включенные в него ветки файловой иерархии. Кроме того, ZFS 128-битная. А это гарантируют, что с ограничениями на ее размер не придется столкнуться за всю грядущую историю человечества. Как однажды заявил Джефф Бонвик (дальновидный гражданин из Sun, создатель ZFS), «заполнение 128-битных файловых систем превысит квантовые возможности хранения данных на Земле. Вы не сможете заполнить и хранить 128-битный объём, не вскипятив при этом мировой океан».

Установка и настройка ОС

Ставим и настраиваем свежую FreeBSD минимум седьмой ветки на системный диск. Поднимаем сетевые сервисы как обычно, ставим torrent клиента (я выбрал transmission за возможность работать в качестве демона и удобный веб-интерфейс)

Запускаем ZFS подсистему.

avl:~ $ uname -sr
FreeBSD 7.2-STABLE
avl:~ $ cat /etc/rc.conf | grep zfs
zfs_enable="YES"
avl:~ $ cat /boot/loader.conf | grep vm
vm.kmem_size="1024M"
vm.kmem_size_max="1024M"

После чего делаем

zpool create zfspool dev1, dev2, ....
, монтируем точку
zfs create zfspool/tank
, и у нас появляется «безразмерный» каталог /tank где и будем хранить весь свой контент.

На данный момент у меня в пуле работают 4 hdd от разных производителей (3 на 1Tb, и 1 на 1.5Tb) и это выглядит так:

root:/usr/home/avl $ zpool status
 pool: zfspool
 state: ONLINE
 scrub: none requested
config:
	NAME        STATE     READ WRITE CKSUM
	zfspool     ONLINE       0     0     0
	  ad2       ONLINE       0     0     0
	  ad12      ONLINE       0     0     0
	  ad10      ONLINE       0     0     0
	  ad1       ONLINE       0     0     0
errors: No known data errors
root:/usr/home/avl $ df -h | grep tank
zfspool/tank    4.1T    3.4T    681G    83%    /tank

Разницу между ожидаемыми 4.5T и реальными 4.1T съела маркетологическая ересь с кибибайтами, лоббируемая производителями HDD.

При установке следующего hdd будет достаточно сказать

zpool attach zfspool adXX
, и через секунду свободное место в каталоге /tank увеличится на объем нового жесткого диска.

Системная локаль обязательно должна быть UTF-8. Время восьмибитных кодировок кануло в лету, и мы наконец хотим получить полную свободу в политике именованиия файлов.

Медиасервер

Было перепробовано несколько медиасерверов, но все они были, мягко говоря, «не совсем то». Я уже был готов на крайние меры, в виде «взять libdlna и написать медиасервер самому на PlainC». Но, к счастью, вовремя наткнулся на mediatomb. Он оказался нативный, быстрый, легкий, с удобным веб-интерфейсом, и главное, прекрасно скриптующийся.

Собираем его с поддержкой JavaScript, настраиваем и запускаем

avl:~ $ cat /etc/rc.conf | grep mediatomb
mediatomb_enable="YES"
mediatomb_mtuser="root"
mediatomb_mtgroup="wheel"
mediatomb_config="/home/avl/mediatomb/config.xml"
mediatomb_logfile="/home/avl/mediatomb/mediatomb.log"
mediatomb_pidfile="/home/avl/mediatomb/mediatomb.pid"
mediatomb_interface="re1"

В конфиге указываем тонкую настройку под свои нужды и скриптуем. Например чтобы автоматически раскидать фильмы по виртуальным папкам по годам, пишем что-то вроде этого:

function addVideoYears(obj){
    var pattern = /(.*)\[(\d\d\d\d)(.*)/;
    var match = pattern.exec(obj.title);
    if (match){
        var year = match[2];
        var chain = new Array('Видео', 'По годам', year);
        addCdsObject(obj, createContainerChain(chain));
    }
}
function addVideo(obj)
{
    addVideoYears(obj);
    // .... Other our video handlers
}

Более подробно можно прочитать в документации по mediatomb. При этом, подразумевается что мы называем фильмы строго по шаблону. У меня этот шаблон такой:

Русское название ~ English Name [year, genre1, genre2, ... genreN] #imdb_id .extension

Примеры названий:

Подмена ~ Changeling [2008, драма, исторический, детектив] #tt0824747.m2ts
Подозрительные лица ~ Usual Suspects [1995, триллер, криминал] #tt0114814.ts
Чтец ~ Reader [2008, драма, романтика] #tt0976051.m2ts

Выкладываем на Веб

Рано или поздно медиабиблиотека разрастается и не всегда можно ответить на вопрос «а что собственно у нас там есть». К тому же люди имеют обыкновение меняться медиаконтентом чтобы не тянуть бесконечные террабайты одного и того же. Поэтому возникает необходимость в автоматическом онлайновом каталоге.

За пару дней была набросан примитивный каталогизатор на python. Несмотря на то, что медиабашня светится в мир «белым ip», показывать каталог напрямую с нее неразумно, так как домашний канал круглосуточно забит торрентами «под полочку». Поэтому сам каталог будем хостить на внешнем вебсервере.

Для сбора информации о медиатеке был написан скрипт на Python, использующий binding к mediainfo. Он просто собирает информацию с каталогов коллекторов в простые dict, сериализует их при помощи pickle и ложит в файлы.

Между медиабашней и внешним вебсервером настроена ssh авторизация по ключам, и скрипт с внешнего сервера забирает эти файлы через scp.

Дальше в дело вступает django-приложение, которое через кастомные команды обновляет свою базу, лезет в imdb за рейтингом и обложками фильмов, и наконец, показывает на вебе каталог.

Вот как это выглядит с мира http://hd.litovchenko.com/

Пока отображаются только фильмы и мульты. В дальнейшем планируется добавить каталог сериалов, документалистики, советских фильмов и loseless музыки (они все каталогизируются по разным правилам). Также не помешает личный рейтинг (чтобы сравнить его с imdb), автогенерирование скриншотов и многое другое. Но то все потом как появится лишние пара часов и вдохновение. А пока, то что есть, мою задачу выполняет. Один из usecase использования:

  • Начать смотреть новый фильм. (обычно это происходит в районе полуночи. примерно в это же время пороисходит обновление каталога по крону)
  • Досмотреть, составить для себя мнение.
  • В зависимости от того что ближе к правой руке PS3-манипулятор или iPhone глянуть (либо через телевизор, или через телефон) на сайте каталога imdb-шный рейтинг, только что просмотренного фильма.
  • Задуматься насколько мое мнение совпадает с мнением mainstream.
  • Заснуть

Комментарии

1 19 июня 2009 16:06, KOHb

Суперкруто!

2 13 июля 2009 19:18, WOW

Офигеть можно как придумано!

3 27 августа 2009 10:00, Артем

Саша,откуда врямя на такие реализации? O_o

4 30 августа 2009 03:53, avl

Да какое там время-то? Два часа сетап сервера, потом только hdd новый изредка доставляешь в корзину и все. Ну и потом за один weekend софт нужный вместе с сайтом написать.
Все остальное делают машины. А пока они быстро и хорошо делают ровно то что нам надо и так как нам надо, skynet обречен ;)

5 8 декабря 2009 14:06, andre

Нормально,
Электричество похоже нахаляву :)
У меня нечто подобное дома на Линуксе, только ВайВай я отдельной PCI карточкой раздаю. И дисков не столько :)

6 11 декабря 2009 22:21, bm13kk

А отказоустойчивость?
Что будет со всем этим счастьем если один из дисков полетит?

В планах собрать аналогичную штуку, правда без десктопности, чисто сервер. Вероятность, что один из 8ми (план) винтов умрет - не такая уж и маленькая.
Тем более, что я хочу на сервере бекапить работу.

7 18 декабря 2009 01:25, avl

> Электричество похоже нахаляву :)

Да я вас умоляю. Казуально используемая стиральная машинка
жрет в месяц больше чем домашний сервер. Реально пик выжирания
электроэнергии только в момент холодного бута, когда стартуют
и раскручиваются HDD (они еще так прикольно трещат каждый на свой лад)

> У меня нечто подобное дома на Линуксе,

Есть мнение что Линукс не нужен.
Даже в типичных для него нишах.
Совсем.

> только ВайВай я отдельной PCI карточкой раздаю.

Я тоже.
Критичные по скорости домашние каналы вроде hd-player, playstation
или те, кто по другому не умеет вроде LCD панели
кормятся с гигабитного ethernet.
Остальное, для всяких телефонов и ноутов сеть сосет с банального
PCI-шного WiFi на RT2561S (ral0)
только пришлось антенку побольше в нее вставить чтобы
стабильнее по квартире пробивало.

> И дисков не столько :)

Дисков уже много больше. Пул на данный момент больше 10Tb
И ему еще расти и расти.

> А отказоустойчивость?

Меня на storage pool для восстанавливаемой медиатеки
отказоустойчивость волнует много меньше общего объема.
Кого она таки волнует, делают zraid
Кого она волнует и при этом не взападло добровольное анальное рабство,
берут 3ware/Adaptec/Etc..., и строят аппаратные RAID нужного уровня

> Что будет со всем этим счастьем если один из дисков полетит?

Уже летели. Два раза.

Первый раз начал сыпаться диск, и система начала
писать в email доклады про "че да как"
Пара фильмов стала недоступна.
Просто добавил новый диск сказал zfs replace
подождал несколько часов, вынул старый.
Файлы восстановились.

Второй раз ребенок усиленно играя в оффлайновые игры
ударил самурайским пластмассовым мечем (!)
опрокинул сервер на бок. Один из SATA шнуров немного отошел,
стал плохо контачить и все стало по черному глючить в виде
кучи ошибок чтения/записи и периодическими
тормозами/недоступностью фильмов,
части которых находились на этом диске.
С торрент клиентом тоже происходили
всякие странности.
Шнур подоткнул, сказал zpool scrub, и где-то через
сутки все нормализовалось. Все файлы на месте, все
пишется/читается на ура (в тех местах где был град ошибок)

Ни одного файла потеряно не было.

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

То есть под восстанавливаемую медиатеку, для которой важен объем,
простой pool, а рабочие файлы/бекапы - однозначно zraid
работает прекрасно и, что характерно бесплатно в отличии
от аппаратных sata raid (и далеко не факт что хуже)

Ну и для чистого файлового сервера думаю все же лучше подойдет
Solaris для которого (в отличии от FreeBSD) zfs родное
и вылизанное.

А Линукс, да. Не нужен. Впрочем как и Windows, которой вообще нет ;)

8 26 января 2010 08:40, Андрей

Очень интересная статья.
Собираюсь тоже собрать что то типа этого, но пока задача одна - файловый сервер с raidz пулами.
Вопрос - а когда кончатся САТА разьемы ( с 10-ю стоят уже по 5 тыщ мамки) как будете расширять?

9 4 февраля 2010 13:38, avl

Уже сменил мамку. Сейчас серверный ASUS с SAS контроллером.
LSI - 8 SAS/SATA портов. и на самом борту еще 4 порта. Относительно недорогая. Гружусь с IDE Flash на 4Gb и вся система на нем же (более чем хватает. /var и /home естественно вынесены. swap тоже на zvol разделе)
То есть утыкивая двушками (Seagate LP) получаем сырые 24Tb (будет мало, - ЕЩЕ один внешний контроллер не проблема)
Но тут уже лучше действительно переходить на raidz. 3 raidz в одном пуле по 4HDD в каждом. и получается чистых (и _надежных_) 18Tb. это около
500 BluRay дисков. или 3600 DVD дисков. Что немало. Столько, _пока_ хватает. Конечно это до тех пор пока UltraHD контент плотно не пойдет. Но думаю что к тому времени когда все-таки пойдет, и HDD подрастут

10 8 февраля 2010 00:09, Arthur

Ебану***а! По другому просто не скажешь!
Купите дата-центр! =)

11 1 марта 2010 18:55, lolq

Я вот ни как не могу в нем настроить ретрансляцию потокового видео из инета в локалку.
можете подсказать?
Т.е хотел смотреть инет тв и фильмы онлайн на телевизоре.

12 3 марта 2010 20:37, avl

> Я вот ни как не могу в нем настроить
> ретрансляцию потокового видео из инета в локалку.

КО в недоумении. В чем не можете настроить, что именно (потоковое видео понятие растяжимое) и чем пытаетесь смотреть?

13 11 апреля 2010 20:16, Anonymous

А скриптом для веба не поделитесь?

14 26 июня 2010 22:39, tester

Александр, приветствую.
Ставил mediatomb, всё нормально, запустилось, клиентами определяется, но вот русские названия видео файлов показываются в виде вопросика.
догадываюсь, что копать надо кодировку, прав ли я и если копать то конкретно в mediatomb или локаль ОС.
З.Ы.: freebsd 8.0

15 7 июля 2010 17:32, avl

Локаль в файловой системе utf-8 и проблем нет.
FreeBSD 8.1, zfs. На стороне клиента PS/3
Насколько я помню дополнительных настроек в Mediatomb никаких не нужно.

У вас точно имена файлов в utf-8?
Клиент точно utf-8 понимает?

16 7 июля 2010 22:38, tester

по поводу "У вас точно имена файлов в utf-8?"
я использовал convmv для перекодировки.

"Клиент точно utf-8 понимает?"
использовал vlc на убунту 10.04

использую mysql для бд медиатомба, данные заносятся, кодировка там тоже utf8 и тоже в таблицах вопросики вместо русских названий

utf8 так же ставил в качестве локали для пользователя который mediatomb_mtuser=

вот варианты у меня и закончились...

17 30 августа 2010 16:17, cepxuo

А можно, пожалуйста, посмотреть кусочек скрипта, который разбивает фильмы по папкам по Вашему шаблону? У Вас в статье только по годам... А по жанрам делите?

18 30 сентября 2010 21:59, tigranav

В 9 FreeBSD обещают поддержку ZFS версии 24 - лучше уж некуда.
К тому же в ZFS можно сделать и файловую систему с количеством хранимых копий 2 и более, при это сохраняемый там файл будет "стараться" лежать на разных дисках для сохранности.

19 30 ноября 2010 00:51, ah0rn

Здравствуйте! Очень интересная статья и как раз в тему - собираюсь реорганизовывать своё медиахранилище. Сейчас оно построено на 4-х 2 Tb WD (LVM+XFS), но возможности zfs заинтересовали.
Вопрос такой: почему не lvm, а zfs? Если можно, приведите преимущества использования именно zfs в случае файл-сервера.

20 14 декабря 2010 20:14, avl

Ответ прост. zfs - комбайн на нескольких слоях. И за счет дополнительной информации о близлежащих слоях выигрывает у любых связок (LVM + anyFS) практически во всем.

Сколько у меня сейчас дисков я просто не знаю. Знаю что есть несколько raidz пулов (ближайший аналог - raid5). Сколько пулов - тоже уже не помню. Уже давно не заглядывал. Зато я точно знаю что hd контента там столько, что впору открывать свой телеканал. И вполне возможно что его там больше чем на всех провайдерских media ресурсах всего города вместе взятых :)

На дворе скоро 11. Пора перестать считать диски и террабайты. Какие могут быть LVM+XFS+EXT+JFS+Reiser+other_shit? Оно еще небось и богомерзкий лулепс за собой потянет, который нормальному человеку не нужен, а ненормальному так и вовсе вреден.

Из телевизора льется говно? ok. Сделаем свое телевидение.
Правительство не пускает в кинотеатры? (на мове смотрите сами) ok. Сделаем свои кинотеатры. Голосуйте рублем. Мы в конце концов при капитализме или где?

Sun своевременно открыв zfs полностью закрыло вопрос с хранилищами
Sony подсуетилось с играми и LCD панелями
Marantz на пару с Paradigm порешало со звуком
Apple предоставила рабочие десктопы, ноутбуки и телефоны

Все остальное - просто не нужно. К тому же до декабря 12 года остается не так уж и много. Cкоро и вышеперечисленное ТОЖЕ станет не нужно.

21 1 января 2011 18:48, hard

А проводился ли какой либо тонкий тюнинг ZFS ? Какая скорость при копировании файлов с/на медиахранилище по гигабитному интерфейсу?

22 18 января 2011 16:37, Harry

Добрый день, Александр!
Собрался ставить raidz под FreeBSD 8.1, в том числе и для медиахранилища (фильмы с русскими названиями в UTF-8), но насторожила эта статья - http://blog.lexa.ru/2010/10/30/poetos...
Имея такой опыт с ZFS, можете это как-то прокомментировать?

23 21 января 2011 18:54, Проходил

"Sony подсуетилось с играми и LCD панелями"

Насчет игр - согласен. Насчет панелей - качество у сониевских панелей оставляет желать лучшего.. Лучше уж жк самсунг или плазма от панасоника.

24 8 апреля 2011 14:15, Владимир

спасибо вам огромное за статью, давно активно пользуюсь zfs+mediatomb на Freebsd. Долго искал DLNA для PS3 и выбор пал на медиатомб, и тут подвернулась такая статейка)

в материнке 8 сата портов которые уже забиты двухтерабайтниками
. 2 PCI слота, в одном сетевуха во втором SCSI рэйд на котором стоит система.

вопрос раз - свободны всего 2 PCI-Е слота, и мне интересно, есть ли какие нибуть недорогие SATA контролееры с PCI-E портом которые видит фря? а то куплю а его и жестаки на нем окажутся недоступны, будет обидно... через усб подключать не хотелосьбы..

вопрос два - как заставить медиатомб хавать MKV? камень стоит core 2 quad q8400 И 8 гигов DDR3. сеть гигабитная. в каком направлдении лучше копать? в транскодировании на лету или сначала транскодировать все MKVшки а потом добавлять их в библиотеку медиатомба? сам пол года бился а разобраться так и не смог.

25 23 апреля 2011 05:11, avl

> в одном сетевуха во втором SCSI рэйд на котором стоит система.

Это неспортивно. У меня последние пару система живет на IDE Flash :) Оставьте "SCSI рэйд" под хранилище.

> вопрос раз - свободны всего 2 PCI-Е слота, и мне интересно, есть
> ли какие нибуть недорогие SATA контролееры с PCI-E портом которые
> видит фря?

Не в курсе. Давно не следил. В текущей конфигурации у меня просто
серверная мать с набортными железными LSILogic SAS/SATA Adapter по плюс 4 обычных SATA порта на матери. Фрей распознаются как mpt, работают на ура. Естественно все их железные рейды выключены и все сделано средствами zfs.

> вопрос два - как заставить медиатомб хавать MKV?

получалось поставить mediatomb в позу при помощи внешних муксеров работающих на лету. и даже dts звук удавалось передавать акуратно кромсая заголовок, чтобы ps3 думала что это валидная dts дорожка.

Но все это сопровождалось _огромным_ геммороем и сама конструкция была весьма капризная. Лучше оставьте ps3 для игр и проигрывания loseless музыки с того же mediatomb. dune3 стоящая рядом решает все эти вопросы. Помимо них она решает вообще самый главный вопрос последних лет. bdmv контейнер с java-меню, блюрейными субтитрами и прочим. PS3 конечно же все это умеет не хуже, но... только при проигрывании с физического bd. Про сеть, к сожалению, можно забыть.

Если плеер (dune3/popcorn200) покупать лень, то проще потратить 15 минут и перемуксить mkv в m2ts и уже его положить в mediatomb хранилище. посмотреть по сети на ps3 его получится, но опять же. ни субтитров ни честного dts звука не будет.

26 12 января 2012 20:01, Alxd

А Вы не думали о том, чтобы получать информацию о фильме из инета? ID есть, читаем инфу о фильме как описано в http://imdbapi.com/, парсим и раскидываем по папкам. Вот только у меня загвоздка, как из import.js оформить запрос для получения этих самых данных?

27 17 января 2012 22:49, Сергей

Под FreeBSD страшно глючит с русскими именами каталогов.

28 18 января 2012 15:17, Сергей

У меня под FreeBSD не отображаются русские названия каталогов, хотя с файлами проблем нет. Вообщем сложилось ощущения что для FreeBSD продукт сырой.

29 21 января 2012 03:01, avl

Сергей. честная UTF8 локаль на файловой системе решает любые вопросы с русскими (и не только русскими) бувками. Все отображается. Причем везде. И на ps3 через mediatomb, и на dune3 хоть через smb хоть через nfs. И даже через штатный ftpd все в порядке не говоря уже про ssh. Более того. Этих проблем последние лет 15 вообще нет. Ни во FreeBSD, ни где либо еще.

30 23 января 2012 12:37, Alxd

А на мой вопрос про запрос к http://imdbapi.com из import.js ответа нет? :)

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

только текст. HTML теги вырезаются:

Пожалуйста будьте вежливы при общении