ISP`s IT Аутсорсинг
Быстрый переход: Главная блога Главная сайта Форум
Если Вы чего то недопоняли или не нашли - задайте
вопрос на нашем форуме и мы попробуем Вам помочь.
Subnets.ru Регистрация IP и Автономных систем mega-net.ru

Архивные статьи в категории ‘FreeBSD’

Добро пожаловать в блог! Надеемся, что Вы еще вернетесь.

NFS — Network File System

Задача.

Сбалансировать нагрузку на 2 www+база данных сервера и заставить их использовать одно хранилище www-контента, базы данных и логов.

Вариант решения.

Резолв DNS имени www-сервера на 2 разных ip-адреса используемые www-серверами, и организация для них общего хранилища www-контента, базы данных и логов при помощи NFS

Настройка NFS-сервера

— Ядро должно быть собрано с опцией

options NFSSERVER # Network Filesystem Server

— Необходимо создать файл экспорта, в котором описываются локальные точки системы, доступные для монтирования клиентами, файл /etc/exports
— Формат файла:
/mnt/disk1/www /mnt/disk2/mysql /mnt/disk3/logs -maproot=0 192.168.0.10 192.168.0.11

Если требуется экспортировать более 3-х точек, например — 4, следует описывать их в другой строке файла. Иными словами, в одной строке должно быть не более 3х точек экспорта

Права доступа на точки экспорта в нашем случае описаны следующим образом:
-maproot=user
Права данного пользователя используются для удаленного подключения как root. Права включают все группы в которые входит пользователь на локальной машине. Может быть представлен по имени или uid (как в нашем примере).

192.168.0.10 192.168.0.11 — хосты которым разрешено монтирование.
Подробнее по синтаксису можно прочесть в man 5 exports

запуск сервера осуществляется последовательностью команд
/usr/sbin/rpcbind -l -h 192.168.0.1
/usr/sbin/mountd -r
/usr/sbin/nfsd -h 192.168.0.1 -t -n 8

Описание параметров


rpcbind
-l — Turn on libwrap connection logging
-h — биндинг адреса для UDP requests (если не указать — будет слушать на всех доступных)
mountd
-r — Allow mount RPCs requests for regular files to be served
nfsd
-h — биндинг адреса
-t — параметр, указывающий обслуживать только TCP-клиентов (если требуется работать по протоколу UDP, следует указать параметр -u)
-n — количество создаваемых серверов

Настройка WWW-серверов (NFS клиентов)

— Ядро должно быть собрано с опцией
options NFSCLIENT # Network Filesystem Client

Монтирование осуществляется командами вида
/sbin/mount_nfs -3 -T 192.168.0.1:/mnt/disk1/www /usr/local/www
/sbin/mount_nfs -3 -T 192.168.0.1:/mnt/disk2/mysqk /var/db/mysql
/sbin/mount_nfs -3 -T 192.168.0.1:/mnt/disk3/logs /var/log/httpd

Описание параметров
-3 — использовать только версию 3 протокола NFS
-T — использовать TCP в качестве траспортного протокола (-U — udp по умолчанию)
192.168.0.1 — адрес nfs-сервера
/mnt/disk1/www — директория на сервере (описываются в /etc/exports на сервере)
/usr/local/www — локальная директория для монтирования на клиенте

Примечания
Для клиентов доступен демон nfsiod, который регулирует максимальное количество запускаемых клиентов (max — 20)
Для просмотра подробной статистики на сервере и клиентах можно использовать утилиту nfsstat.
Монтирование производится поверх локальных ресурсов (т.е. если примонтировать в директорию с данными, локальные данные не будут доступны до размонтирования).

Более подробно можно прочесть на
http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/network-nfs.html

Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 4, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту

Запуск вещания VoD (Video on Demand) — Видео по запросу

Для примера возьмем сервер с unicast IP-адресом 172.16.10.14, вещаем с порта 5554

Консоль сервера:
===========

1. vlc --ttl 12 --color -I telnet --telnet-password 123 --rtsp-host 172.16.10.14:5554

2. telnet localhost 4212

3.
> new Test vod enabled
> setup Test input /path/to/file.avi

На клиенте:
=======

запускаем vlc проигрыватель
нажимаем «Файл» ->«Открыть URL»
в строке MRL пишем: rtsp://172.16.10.14:5554/Test
жмем «ОК» — смотрим фильм «по запросу»


Multicast вещание нескольких видео файлов на multicast IP-адреса 239.255.1.1 и 239.255.1.2

Вещаем по RTP, консоль сервера:
===========

1. vlc --ttl 12 --color -I telnet --telnet-password 123

2. telnet localhost 4212

3.
> new channel1 broadcast enabled
> setup channel1 input /path/to/file_1.avi
> setup channel1 output #rtp{mux=ts,dst=239.255.1.1,sap,name="Channel1"}
> new channel2 broadcast enabled
> setup channel2 input /path/to/file_2.avi
> setup channel2 output #rtp{mux=ts,dst=239.255.1.2,sap,name="Channel2"}
> control channel1 play
> control channel2 play

Вещаем по UDP, консоль сервера:
===========

1. vlc --ttl 12 --color -I telnet --telnet-password 123

2. telnet localhost 4212

3.
> new channel1 broadcast enabled
> setup channel1 input /path/to/file_1.avi
> setup channel1 output #standard{access=udp{ttl=12},mux=ts{tsid=22,pid-video=23,pid-audio=24,pid-pmt=25,use-key-frames},dst=239.255.1.1,sap,name="Channel1"}
> control channel1 play
По второму каналу точно так же, не буду повторяться.

Если мы хотим зациклить проигрывание файлов до бесконечности «по кругу» то добавим:
> setup channel1 loop
> setup channel2 loop

На клиенте:
========

запускаем vlc проигрыватель
нажимаем «Инструменты» -> «Настройки», там, в нижнем левом углу жмем в «Показывать настройки» на «Все», затем раскрываем «Вывод потока», а там ищем «Модули вывода», в поле «Интерфейс вывода IPv4 multicast» пишем IP-адрес, который прописан на вашей сетевой карте ( смотрящей в сторону сервера вещающего поток), жмем «Сохранить»

Для просмотра потока по RTP:

После того как выполнили настройки: «Файл» ->«Открыть URL»
в строке MRL пишем:
udp://@239.255.1.1:5004 (что бы посмотреть видео из файла file_1.avi)
или
udp://@239.255.1.2:5004 (что бы посмотреть видео из файла file_2.avi соответственно)

Для просмотра потока по UDP:
в строке MRL пишем:
udp://@239.255.1.1 (что бы посмотреть видео из файла file_1.avi)

З.Ы.

Так же запустить вещание в один поток по UDP можно так:

vlc -vvv /path/to/file.avi —sout ‘#standard{access=udp{ttl=15},mux=ts{tsid=22,pid-video=23,pid-audio=24,pid-pmt=25,use-key-frames},dst=239.255.1.1}’ —random —loop —volume 100


VLC Unicast to HTTP

Вещаем поток в HTTP страницу, просмотр возможен как и на HTTP странице, так и отдельно с помощью плеера Windows Media Player.

Консоль сервера:
===========

vlc -vvv /path/to/file.avi --sout '#transcode{vcodec=DIV3,vb=256,scale=1,acodec=mp3,ab=32,channels=2}:std{access=mmsh,mux=asfh,dst=:8080}'

На клиенте:
========

код страницы для отображения вещания + ссылка на запуск WMP:

<html>
<title>TEST</title>
<body>
<div id='content'>
<table align='left' style='border:none'>
<tr><td  style = 'width:320px;border:none'>
<div style = 'width:320px;'>
<OBJECT ID="mediaPlayer" width="320" height="309"
                CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"
                CODEBASE="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715"
                STANDBY="Loading Microsoft Windows Media Player components..."
                TYPE="application/x-oleobject">
<PARAM NAME="url" VALUE="mms://10.10.16.71:8080">
<PARAM NAME="autoStart" VALUE="1">
<PARAM NAME="bgColor" VALUE="#000000">
<PARAM NAME="showControls" VALUE="true">
<PARAM NAME="TransparentatStart" VALUE="false">
<PARAM NAME="AnimationatStart" VALUE="true">
<PARAM NAME="StretchToFit" VALUE="true">
<EMBED src="mms://10.10.16.71:8080"
                        type="application/x-mplayer2"
                        name="MediaPlayer"
                        autostart="1" showcontrols="1" showstatusbar="1" autorewind="1"
                        width="320" height="309"></EMBED>
</OBJECT>
</div>
</td><td valign=top style='padding-left:30px;border:none;text-align:left'>
<a class='text' href='mms://10.10.16.71:8080'>Открыть в МедиаПлеер</a>
</td></tr>
</table>
</div>
</div>
</body>
</html>

10.10.16.71 — IP-адрес сервера, с которого вещается поток
8080 — порт куда вещается поток

Заливаем эту страницу на свой WWW сервер, заходим на нее http://адрес_WWW_сервера/mms_test.html и смотрим вышаемый поток.


VLC Multicast to Unicast

Принимаем поток по multicast, а отдаем по unicast

Консоль сервера:
===========

vlc --ttl 12 udp://@224.0.42.49:5000 --sout '#std{access=udp,mux=ts,dst=192.168.1.15:1234}'

224.0.42.49:5000 — адрес потока откуда берем multicast
192.168.1.15 — адрес клиента куда отправляем unicast

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

Если на сервере несколько сетевых карт и соответственно IP-адресов, то указать через какую карту брать поток можно прописав маршрут (роутинг) через IP-адрес сервера на нужной вам сет. карте, например на сервере одна из сет. карт это em0 с IP-адресом 192.168.1.1:

route add 224.0.42.49/32 192.168.1.1

Добавив маршрут сервер будет пытаться получить multicast поток через em0, что можно видеть с помощью tcpdump:

tcpdump -ni em0

09:24:34.475683 IP XX.XX.100.182.32857 > 224.0.42.49.5000: UDP, length 1316
09:24:34.478554 IP XX.XX.100.182.32857 > 224.0.42.49.5000: UDP, length 1316
09:24:34.481677 IP XX.XX.100.182.32857 > 224.0.42.49.5000: UDP, length 1316

Отправка unicast потока клиенту (192.168.1.15) будет выглядеть примерно так:

09:26:11.374433 IP 192.168.1.1.61320 > 192.168.1.15.1234: UDP, length 1316
09:26:11.376441 IP 192.168.1.1.61320 > 192.168.1.15.1234: UDP, length 1316
09:26:11.378381 IP 192.168.1.1.61320 > 192.168.1.15.1234: UDP, length 1316

На клиенте:
=======

запускаем vlc проигрыватель
нажимаем «Файл» ->«Открыть URL»
в строке MRL пишем: udp://@192.168.1.15
жмем «ОК» — смотрим unicast поток отправляемый сервером

Сжимаем выходной поток:

vlc --ttl 12 -vvv udp://@224.0.42.49:5000 --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=200,ab=128,deinterlace}:rtp{mux=ts,dst=192.168.1.15}'

«vb=» — Эта опция позволяет установить bitrate видио потока в kbit/s
«ab» — TЭта опция позволяет установить bitrate аудио потока в kbit/s


VLC и несколько сетевых интерфейсов
Вопрос:

У меня в компьютере несколько сетевых интерфейсов, как указать VLC чтобы multicast шел через нужный мне, например 192.168.1.15 ?

Ответ:
Это можно сделать указав IP-адрес нужного вам сетевого интерфейса в настройках VLC.

vlc_ifaces

vlc_ifaces

Теперь IGMP запросы будут уходить с сетевого интерфейса с IP-адресом 192.168.1.15

Если вещание производится из консоли сервера (например сервер с OS FreeBSD) и в нем несколько сетевых интерфейсов, то указать через какой интерфейс пускать поток multicast (udp) можно прописав статический маршрут, например:

224.0.42.49 — адрес потока который собираемся вещать
192.168.1.15 — IP-адрес на одной из сетевых карт сервера

route add 224.0.42.49/32 192.168.1.15

Теперь поток multicast (udp) будет уходить с сетевого интрфейса с IP-адресом 192.168.1.15

Ссылки:

Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 4, среднее: 3,25 из 5)
Загрузка...
Отправить на почту Отправить на почту

Формат почтовых ящиков — Maildir

Почтовые ящики доменов находятся в /var/qmail/popboxes/my-domain-ru/

Установка/настройка IMAP:

Идем в /usr/ports/mail/courier-imap/

make (в меню отмечаем AUTH_USERDB)
make install

После установки правим конфиг: /usr/local/etc/courier-imap/imapd
Прописываем ADDRESS=127.0.0.1
В моем случае 127.0.0.1 т.к. веб морда, qmail и IMAP живут на одном сервере.

Правим /usr/local/etc/authlib/authdaemonrc, строчки authmodulelist и authmodulelistorig:
authmodulelist=»authuserdb»
authmodulelistorig=»authuserdb»

Правим /etc/rc.conf и дописываем:
courier_imap_imapd_enable="YES"
courier_authdaemond_enable="YES"

Что бы логировать демон авторизации и imapd можно прописать в начало /etc/syslog.conf:
!authdaemond
*.* /var/log/authdaemond.log
!imapd
*.* /var/log/imapd.log
!-authdaemond,imapd

а в файле /usr/local/etc/authlib/authdaemonrc можно задать необходимый уровень дебага, переменная DEBUG_LOGIN=Х

Теперь необходимо создать файл /usr/local/etc/userdb с помощью которого и будут авторизоваться пользователи.
Формат файла такой:
LOGIN systempw=MD5_PASSWORD|uid=888|gid=82|home=/var
/qmail/popboxes/my-domain-ru/user

Где:
/var/qmail/popboxes/my-domain-ru/user — полный путь до папки почтового ящика
LOGIN — логин пользователя
MD5_PASSWORD — пароль в MD5, поможно сделать с помощью программы userdbpw
uid — юзер ID которому принадлежит папка /var/qmail/popboxes/my-domain-ru/user
gid — груп ID которому принадлежит папка /var/qmail/popboxes/my-domain-ru/user

Смотреть содержимое файла userdb можно с помощью:
userdb -show
а так же управлять им, например:
userdb LOGIN set home=/var/qmail/popboxes/my-domain-ru/user
этой командой он допишет в /usr/local/etc/userdb указанному юзеру указанный параметр. Минимально файл /usr/local/etc/userdb должен содержать параметры указанные выше.

После того как мы создали и отредактировали /usr/local/etc/userdb нужно запустить makeuserdb, который создаст /usr/local/etc/userdb.dat
Если при выполнении команды makeuserdb выдается сообщение:
/usr/local/etc/userdb: MAY NOT HAVE GROUP OR WORLD PERMISSIONS!!

то выставляем права chmod 600 /usr/local/etc/userdb и ещё раз выполняем makeuserdb

Советую полистать для более полного понимания:
man userdb
man userdbpw
man makeuserdb

Исталим веб морду:

Качаем http://www.roundcube.net/ или берем в портах /usr/ports/mail/roundcube
Как инсталить читаем в INSTALL, который появится после сборки командой make
В итоге потребуется создать БД, поправить пару конфигов и ессно настроить ваш веб сервер (например apache)
в файле config/main.inc.php:
правим переменную $rcmail_config[‘default_host’] равную 127.0.0.1
$rcmail_config[‘create_default_folders’] устанавливаем как TRUE
$rcmail_config[‘locale_string’] пишем ru

Стартуем IMAP:

Итак, все подготовлено к запуску, стартуем:
/usr/local/etc/rc.d/courier-imap-imapd start
/usr/local/etc/rc.d/courier-authdaemond start

Правим/создаем файлы для Qmail:

Несколько слов про квоты.
Квота на ящик задается в файле /var/qmail/popboxes/my-domain-ru/user/Maildir/maildirsize в виде <[XXXXS],[YYYYC]>\n, где
XXXX — Объем сообщений в байтах;
YYYY — Количество сообщений в ящике.
Должно быть задан либо объем либо количество либо и то и то.

Необходимо немного следует изменить содержимое /var/qmail/popboxes/my-domain-ru/user/.qmail на:
|/usr/local/bin/deliverquota ./Maildir/
Будьте внимательны, это должно быть написано именно на одной строке.

P.S. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Авторы:
Панфилов Алексей (lehis (at) subnets.ru)
Николаев Дмитрий (virus (at) subnets.ru)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 2, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту

В Xorg начиная с 7 ветки некорректно работает с настройками изображения и шрифтами. даже полсе установки в FreeBSD /usr/ports/x11-fonts/webfonts (шрифты из Windows) ситуация в firefox изменилась, но стала далеко не идеальной, буквы скачат как по высоте так и по ширине, некоторые жиренее, некоторые тоньше. Одним словом одно расстройство. Как выяснилось это происходит из-за того что xorg 7.3 не обращает внимания ни на какие настройки экрана и стартует с настройками, которые он считает оптимальными для данного монитора, которые в свою очередь далеки от идеала. часто это 1024х768 72dpi а уж потом их меняет ваша оболочка, выставляя разрешение в выбранное вами, но забыв установить dpi, что не очень хорошо, так как он может поставить даже 120dpi что для шрифтов-крайне критично. Соответственно, никакие манипуляции с конфигурационным файлом этого не меняют. Для того чтобы выставить нужные нам значения в 7 ветку xorg была добавлена команда xrandr, которая позваляет налету сменить настройки изображения тем самым сделать шрифты более приятными.

например

xrandr —fb 1280×1024 —dpi 96

ставит разрешение 1280×1024 и выставляет 96 dpi.

*96 dpi это значение которое используется windows

Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 1, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту