мая 03

Решил обновить свой мини-сервер на новую версию Debian 6 Squeeze. Сначала решил делать все по инструкции:

  • предусмотрительно сделал резервную копию системного раздела с помощью dd (этого в инструкции нет)
  • переключил репозиторий на Squeeze (как гласят инструкции)
  • обновился, перезагрузился
  • работоспособна осталась только консоль 🙁
  • откатил образ раздела назад

В итоге решил ставить "с нуля" на чистый диск. Ниже по тексту подробное описание возможных проблем с сетью, их решение и краткая инструкция по увеличению производительности сети, файловой системы NTFS и пр.

Текста много, т.к. в исходном варианте я думал описать отдельно каждую рубрику, но потом решил все склеить в один пост и сделать комплексное решение.

 

 

Проблемы с сетью.

Система встала нормально, однако Gnome,  и приложения, завязанные на него, упорно не видели сетевое подключение через eth0, хотя в ifconfig все было нормально.

Как выяснилось, это стандартная бага для Debian 6, лечение которой возможно двумя методами:

  • в файле /etc/network/interfaces закомментировать вхождения eth0 (кривой метод)
  • в файле /etc/NetworkManager/nm-system-settings.conf изменить managed=true (я сделал так)

Далее мне потребовалось переименовать eth0↔eth1, для чего в файле /etc/udev/rules.d/70-persistent-net.rules у нужной строки переименовать eth1 в eth0 и закомментировать лишние сетевые карты.

Проблемы с lm-sensors.

По старинке, поставил lm-sensors для мониторинга датчиков на материнской плате, однако тут меня ждал сюрприз - не работает. Просмотр dmesg показал следующее:

  • [ 4.248984] smsc47m1: Found SMSC LPC47M15x/LPC47M192/LPC47M997
  • [ 4.249175] ACPI: resource smsc47m1 [0x680-0x6ff] conflicts with ACPI region RTIO [0x680-0x6ff]
  • [ 4.249183] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver

Поиск показал, что это тоже стандартная бага для Debian 6 Squeeze и других дистрибутивов с ядрами 2.6.31+:  debian.orglm-sensors.orglaunchpad.net.

Возможные решения:

  • отключить ACPI --- не годится, т.к. потеряем SMP
  • пропатчить конфиги ядра с помощью GRUB2

По второму методу в файле /etc/default/grub находим параметр GRUB_CMDLINE_LINUX_DEFAULT и добавляем туда

  • GRUB_CMDLINE_LINUX_DEFAULT="acpi_enforce_resources=lax"
  • Если там что-то еще было, оставляем (через пробел).

Запускаем #update-grub2,  перезагружаемся.

Баг в MediaTomb

Также установил MediaTomb (про него было ранее). И он не работает, вместо добавления файлов в каталог начинает сильно раздувать свой лог, который у меня, например, распух до 8Гб, а дальше кончилось место на системном разделе. По логу я понял, что это возникает из-за того, что при установке пакета автоматом не ставится sqlite (его нет в зависимостях). Установка sqlite проблему решает.

Добавление от 09-05-2011: серьезная ошибка при работе с TS и M2TS файлами.

Выловил еще одну серьезную ошибку в MediaTomb.  При добавлении (ручном или автоматическом) файлов с расширением ts или m2ts, обычно встречающихся в BlueRay, демон mediatomb кушает всю оперативную память, потом виртуальную, потом все это падает иногда забирая с собой части операционной системы. В лог при этом ничего не пишется. С точки зрения файла конфигураций, импорт ts-файлов не отличается от иморта vob-файлов, с которыми все в порядке. Попробовал сменить mimetype на произвольный текст, но это не помогло.  Ничего подобного в гугле я найти не смог. Пока придумал только одно решение: закомментировать в секции <mappings> файла конфигурации /etc/mediatomb/config.xml строчки с ts и m2ts. В этом случае файлы в коллекцию добавляются, но у них нет привязки к типу, а это можно уже вручную скомпенсировать через WEB-GUI установив "Class = object.item.videoItem"; "Mimetype = video/mpeg".

Добавление от 02-07-2011: устранение ошибки при работе с TS и M2TS файлами.

Как показали опыты, аналогичный эффект возникает и при использовании другого DLNA-медиасервера (miniDLNA) с файлами ts и m2ts. При этом, если у файлов изменить расширение одновременно поправив конфиг, то проблема исчезает. В итоге я пришел к выводу, что это проблема с кодеками в системе (правда, зачем вообще нужны кодеки для вещания без перекодирования я так и не понял, видимо, пытаясь запросить информацию о файле с известными расширениями что-то сжирает ресурсы забирая за собой весь комп). В итоге, подключив репозиторий debian-multimedia и установив оттуда mplayer и парочку кодеков (w32codecs, libdvdcss2) я полностью решил эту проблему.

Перенос логов и настроек Cacti на новый сервер.

На новом сервере прикрутил Cacti (про него также предыдущая запись), но решил попутно перенести логи, данные мониторинга, профили, графики и настройки со старого сервера. Операция достаточно тривиальная:

  • Остановить Cacti на старом компьютере, закомментировав строки запуска в файле /etc/cron.d/cacti
  • Сделать дамп MySQL базы данных Cacti командой mysqldump -u root -p cacti > путь-к-файлу.sql
  • Экспортировать RRD в XML, для чего в директории /var/lib/cacti/rra/ выполнить команду ls -1 *.rrd | awk '{print "rrdtool dump "$1" "$1".xml"}' | sh -x
  • Остановить Cacti на новом компьютере, закомментировав строки запуска в файле /etc/cron.d/cacti
  • полученные в пп.3 файлы переместить в ту же папку, но на новом сервере, развернуть командой ls -1 *.rrd.xml | sed 's/\.xml//' | awk '{print "rrdtool restore "$1".xml "$1}' | sh -x
  • восстановить аттрибуты файлов командой chown www-data:www-data *.rrd
  • загрузить дамп базы данных на новый сервер mysql -u root -p cacti < файл.sql
  • Браузером посетить http://localhost/cacti на новом сервере и выбрать режим обновления
  • Запустить cacti обратно, раскомментировав строчки пп. 4
  • перезагрузиться

Увеличение скорости локальной сети.

Увеличивать скорость будем включением Jumbo-фреймов. При этом следует убедиться, что все участники сетевого обмена, такие как роутеры и коммутаторы его поддерживают.

Изменение MTU

  • проверяем возможности адаптера командой ifconfig eth0 mtu 9000 (если не ругается, это хорошо, значит сетевая карта поддерживает)
  • в файле /etc/network/interfaces устанавливаем MTU 9000
  • перезапускаем сеть #/etc/init.d/networking restart
  • проверить настройки можно командой #ip route get 192.168.1.1, наблюдать что-то типа "cache mtu 9000 advmss 8960 hoplimit 64"

Тестирование скорости (Intel D945GCLF2 + D-Link DGE-530T ↔ Intel 82573):

  • Установить iperf на сервер и клиент.
  • На стороне сервера запустить iperf -s -m -M 100000 -w 1M -l 24K
  • На стороне клиента запустить iperf -c "SERVER_NAME" -m -w 1M -l 24K -M 9000 (если клиент это Windows, то изменение MTU может быть закопано в настройках сетевой карты, тогда действительное значение при тестировании будет отображаться в консоли сервера)
  • Увидеть результат в консоли сервера:
  • [ 5] local 192.168.0.2 port 5001 connected with 192.168.0.1 port 51363
    [ 5] 0.0-10.0 sec 999 MBytes 837 Mbits/sec
    [ 5] MSS size 8960 bytes (MTU 9000 bytes, unknown interface)

Веселые плюшки. Виджет состояния сервера для рабочего стола MacOS X и Windows

Для этого нам потребуется:

  • установить на сервер phpsysinfo командой #apt-get install phpsysinfo
  • пофиксить очередной баг, связанные с тем, что установщик не настраивает apache2, набрав команду #cp -rf /usr/share/phpsysinfo/ /var/www/phpsysinfo
  • включить в настройках phpsysinfo отображение датчиков lm-sensors, для чего в файле/etc/phpsysinfo/config.php установить $sensor_program = "lmsensors";
  • перезапустить apache2 командой #etc/init.d/apache2 restart
  • установить Yahoo Widgets
  • скачать и поставить виджеты Sys Watch и Server Monitor
  • в настройках виджета указать следующую строку получения XML-файла: ""

Результат:

Обеспечение нормальной производительности при работе с файловой системой NTFS.

По умолчанию, в linux используется бесплатная версия драйвера NTFS-3G, которая хорошо работает только на быстрых машинах. Например, копирование файла на чистый диск из /dev/zero со скоростью около 80Мб/сек на моей рабочей машине загружает одно ядро Core2Quad Q9500 на 90%! В случае же с Atom 330 (Intel D945GCLF2) скорость записи получается всего 8Мб/сек при полной загрузке процессора.

В Debian Lenny я это решил установкой бесплатного kernel-mode драйвера от Paragon S.G. — NTFS for Linux express 8.1. Причем, на тот момент (год назад) драйвер не поддерживал ядра свежее 2.6.26, зато сейчас эта проблема решена выпуском новой версии. Текущая версия без проблем установилась на Debian 6 Squeeze.

Единственное ограничение бесплатной версии — отсутствие утилит по проверке диска (можно воспользоваться утилитой из набора NTFS-3G), программы дефрагментации и пр.Вторая особенность состоит в том, что на русской версии сайта бесплатная версия не предлагается к скачиванию, зато предлагают купить 6-ю версию в магазине SofKey.

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

Подводные камни: dirty-flag (признак возможных проблем в файловой системе) невозможно снять средствами linux (по крайней мере бесплатной версией), поэтому в случае возникновения подозрения на ошибки файловой системы их можно проверить/устранить средствами NTFS-3G, а сам снять может только chkdsk из Windows. С другой стороны, флаг можно игнорировать опцией force в fstab, тогда файловая система будет монтироваться без его учета.

Баг (фича) с доступом по VNC

У меня настроен автологин в графический терминал пользователя, от имени которого далее пускаются некоторые графические программы. Для удаленного контроля в Debian Lenny я настроил VNC-подключение стандартными средсвами Gnome с доступом по паролю.

В Debian Squeeze этот метод работает, но после ввода правильного пароля вместо изображения отображается черный экран. При этом, если посмотреть на настоящем мониторе, Gnome выдает следующее сообщение:

Таким образом, подключиться удаленно к системе по VNC можно только после того, как пользователь помимо автологина с паролем вводит еще раз свой пароль на клавиатуре для разблокировки связки ключей. Опять же, это стандартное "нововведение" Gnome Keyring дает проблемы тут. Что удивительно, так это то, что галочки "разблокировать при входе в систему" тут нет. С другой стороны, при подключении по SSH такого желания у системы нет.

Решение:

Установить пустой мастер-пароль на брелок в seahorse:

  • удалить содержимое папки ~/.gnome2/keyrings
  • запустить seahorse
  • создать связку ключей без пароля: Файл→Создать→Связка ключей для паролей и создаём брелок с именем "login"
  • заново установить пароль для подключений по VNC

 

Добавления к записи:

  • 09-05-2011 описание ошибки MediaTomb при работе с TS и M2TS файлами
  • 02-07-2011 решение проблемы MediaTomb при работе с TS и M2TS файлами --- теперь все работает.

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Автор: Vasiliy \\ Метки: , , , , , , , , ,


Оставьте комментарий или два