24 нояб. 2008 г.

Удаляем кластер M$ Windows 2003

Случается такое иногда - нужно удалить кластер :)

делаем так:
1. удаляем из кластера все ноды, кроме последнего;
2. на последнем ноде выполняем команду: cluster node %CLUSTER_NAME% /forcecleanup
3. проверяем отсутствие/наличие кластера в списке доступных кластеров командой: cluster /list

8 окт. 2008 г.

Увеличиваем память больше 4Гб в ОС SCO Unixware 7.1.3

Возникла необходимость нарастить серверу память до 8Гб.

Для того чтобы SCO Unixware пыталась определить больше 4Гб ОЗУ необходимо в файле /stand/boot указать ENABLE_4GB_MEM=YES (см. boot parameters).

перезагружаем машину и смотрим как ОС определяет ОЗУ.

Может понадобится настройка параметров распределения ОЗУ (см. Virtual memory (VM) parameters)

29 июл. 2008 г.

Меняем сетевую карту на машине с ОС UnixWare 7.1.3

Случилось несчастье - сдохла материнская плана.

Сетевая карта была встроенная. Заменили плату, изменился и чип сетевой карты - стала RTL8101L, вместо Intel.

Пляски с бубном вокруг установки драйверов на карту от производителя ничего не дали - драйвера исправно встают, но ОС карту Cвидеть отказывается.

На сайте SCO информацию по данному вопросу найти не удалось.

Сети нет, а машина нужна в работе. Решено было попробовать поставить другую карту, под рукой была 3COM - 3C905C-TX.

Запускаем netcfg, в меню "Hardware" выбираем пункт "Add..", ОС определила карту, спросила какой транспортный протокол использовать на этой карте, спросила настройки TCP/IP протокола и все заработало :)

24 июл. 2008 г.

Ищем кто занимет дисковое пространство

Часто возникает вопрос куда делось свободное дисковое пространство. Такие ситуации возникают не только на системах в которых работает несколько пользователей, но и на домашних компьютерах.

Особенно остро эта проблема стоит на сетевых файл-серверах.

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

Однако это процесс трудоемкий, требующий много времени и знаний ОС.

Когда необходимо быстро выяснить какая папка (и ее подпапки) заняла большое пространство диска можно применить графический инструмент WinDirStat.

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

4 июл. 2008 г.

Visual WGet - менеджер закачек под винду

Пока приходится на работе сидеть под виндой.

И вот сегодня решил озаботиться менеджером закачек - накопал Visual WGet

Эта штука даже умеет интегрироваться в IE! :)

Интерфейс минималистичен - есть все (или почти все) нужное и ничего лишнего.

Пробую...

2 июл. 2008 г.

Делаем образы дисков с помощью dd и gzip

Многие знают про утилиту dd - очень удобный инструмент.
В частности очень хорошо подходит для клонирования дисковых разделов (или целых дисков).

Недавно в ходе нескольких экспериментов выяснил, что такой образ диска можно сильно сжать с помощью GZip.

Например, заполненный на около 5Гб NTFS-раздел объемом 31Гб в сжатом состоянии занимает всего 1.7Гб. Единственное неудобство в том что на моем AMD Athlon 1700+ создание этого образа заняло 50 минут, а подсчет md5-суммы раздела-оригинала и упакованного образа по 12 минут. На системах с более производительным центральным процессором данный процес займет гораздо меньше времени.

Так как основной объем информации на системных жестких дисках (конечно за исключением медиа-данных) очень хорошо поддается сжатию, и часто многие выделяют несколько разделов под ОС, таким образом можно быть уверенным что образ раздела удастся сжать.

В ходе тестов на различных разделах степень компрессии несколько шокировала. Например, FAT-16 раздел размером 40Гб был сжат до 30МБ (контрольные суммы проверил - они совпали)!!!

Создаем образ:
#dd if=/dev/sda1 bs=8096 | gzip -9cf > sda1.dd-image.gz

Это занимает время. За процессом можно наблюдать на той же консоли с помощью периодической посылки USR1 сигнала процессу dd.
Для этого на другой консоли выполняем:

#ps | grep dd
определяем pid процесса dd и подставляем его в следующую команду
#watch -n 15 "kill -USR1 $pid_of_dd"

Распаковка образа:
#gunzip -c sda1.dd-image.gz | dd of=/dev/sda1 bs=8096

также можно подсчитать md5-сумму для раздела, чтобы после восстановления проверить правильность распаковки образа:
#dd if=/dev/sda1 bs=8096 | md5sum - > sda1.dd-image.md5

Параноики (бывают ситуации когда лучше потратить время на еще одну перепроверку) могут еще и проверить правильность создания образа:
#gunzip -c sda1.dd-image.gz | md5sum

Приятной всем работы ;)

27 мая 2008 г.

Закрываем IceCast в CHROOT и регистрируем в каталоге dir.xiph.org

Задача изоляции IceCast в CHROOT решается больее чем просто:
1. копируем в директорию изоляции IceCast директории /admin /log /web и их содержимое;
2. правим /etc/icecast/icecast.xml

Решение вопроса с регистрацией в каталоге оказалось мнее простым.
Необходимо добавить в директорию изоляции еще и все подключаемые библиотеки, и возможно некоторые файлы из /etc.

В первую очередь сделал:
# ldd `which icecast`
linux-gate.so.1 => (0xffffe000)
libcurl.so.4 => /usr/lib/libcurl.so.4 (0xb7eba000)
libidn.so.11 => /usr/lib/libidn.so.11 (0xb7e8a000)
libssl.so.0 => /usr/lib/libssl.so.0 (0xb7e4a000)
libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0xb7d0c000)
libtheora.so.0 => /usr/lib/libtheora.so.0 (0xb7cd2000)
libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0xb7ca9000)
libogg.so.0 => /usr/lib/libogg.so.0 (0xb7ca4000)
libxslt.so.1 => /usr/lib/libxslt.so.1 (0xb7c71000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7b58000)
libdl.so.2 => /lib/libdl.so.2 (0xb7b54000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7b3f000)
libm.so.6 => /lib/libm.so.6 (0xb7b18000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7b01000)
libc.so.6 => /lib/libc.so.6 (0xb79bf000)
/lib/ld-linux.so.2 (0xb7efd000)

и затем скопировал все необходимые библиотеки в соответствующие директории в CHROOT.

Как в процессе выяснилось, для регистрации нашего севера в каталоге также необходимо скопировать билиотеку /lib/libresolv.so

Далее создаем в CHROOT директорию /etc и размещаем там файлы:
/etc/host.conf
/etc/hosts
/etc/resolv.conf
/etc/nsswitch.conf

Теперь настраиваем наш source-клиент на регистрацию, заполняем информацию и проверяем как прошла регистрация.

Для тех кто за файерволом необходимо открыть нашему серверу порт 80 на исходящее соединение с dir.xiph.org.

У меня так и не получилось добится от IceCast'a разрешать имена хостов через DNS. Пришлось прописать адрес в /etc/hosts:

# For loopbacking.
127.0.0.1 localhost
192.168.0.21 icecast.rest.str.ru

# End of hosts.

193.218.105.163 dir.xiph.org

23 апр. 2008 г.

Скрипт записи эфира онлайн радио (для использования на радиостанциях)

Продолжаю публикацию своих скриптов.

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

Для чего и изготовил этот скрипт.

Зависимости:
1. нужен собственно Shell;
2. для записи http-потока использован wget.

Протестирована работа с сервером IceCast, думаю будет работать и с другими серверами отдающими звук по http.

Формат вещания он ест любой - напрямую сохраняет часовые (или любой другой продолжительности) куски потока на жесткий диск.

На случай обрыва связи предусмотрена логика востановления соединения через пятисекундные интервалы.

Для записи эфира в режиме 24/7 достаточно прописать его запуск в crontab и добавить логику организации файлов в папки (если есть желание конечно ;) ).

У нас собственно складывается по дням, храним записи 40 дней, для чего используется как раз Скрипт удаления старых файлов и папок

Прошу смотреть и ругать ;)

22 апр. 2008 г.

Скрипт удаления старых файлов и папок.

Решил начать публикацию своих скриптов, которые наработал за последние пол года.

Первым выбрал самый маленький, но при этом не менее удобный скрипт для удаления старых файлов/директорий из указанной директории и лимитирования их колличества.

Получился такой своеобразный logrotate.

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

Вот сам скрипт: http://gleb.poljakov.googlepages.com/cleanup.sh

9 мар. 2008 г.

Защита сети на уровне доступа от образования петель на коммутаторах hp без использования STP

Коммутаторы hp 2510-24 (и ряд других моделей производителя) имеют поддержку протоколов *STP (MSTP, RSTP, STP).
Применение этих протоколов на уровне доступа сопряжено с некоторыми проблемами - длительное блокирование порта при включении и периодическая длительная блокировка для проверки топологии.

Компания hp с 2007 года включила в прошивки части коммутаторов функцию защиты от образования петель (loop-protect).

Данная функция использует посылку пакета на мультикастовый адрес, который теоретически ни одно устройство в локальной сети не блокирует, что нередко случается с BPDU (например, коммутаторы hp 1800 и некоторые модели ip-телефонов их блокируют).

Конечно применение опции Edge-Port (FastPort) при конфигурировании STP позволяет сократить время блокировки порта до 5 секунд, но остается вопрос насколько целесообразно применение STP на портах где явно предполагается подключение рабочих мест.

Также с помощью loop-protect есть возможность автоматически извещать по протоколу SNMP систему мониторинга об образовании петли, что сильно упрощает работу администратора.

Далее приведу перевод части Руководства по настройке касаемое функции loop-protect:
  1. Включение loop-protect:

    ProCurve(config)# loop-protect <port-list>


  2. Синтаксис: [no] loop-protect <port-list> [receiver-action <send-disable | no-disable> ] [transmit-interval <1-10> ] | [disable-timer <0-604800>] | [trap <loop-detected>]

    • [receiver-action <send-disable | no-disable>]
      Устанавливает действие при обнаружении петли на порту. Если у казано "send-disable", то порт передавший пакет отключается. Если же установлено значение "no-disable" порт остается включенным.
      Значение по умолчанию: send-disable

    • [trap <loop-detected>]
      Позволяет сконфигурировать ловушку (trap) “loop-detected”, которая означает что на определенном порту обнаружена петля.

    • [disable-timer <0-604800>]
      Определяет сколько секунд коммутатор ждет перед попыткой задействовать порт на котором была определена петля. Нулевое значение запрещает попытки задействовать порт.
      Значение по умолчанию: 0.

    • [transmit-interval <1-10>]
      Определяет частоту передачи пакетов обнаружения петель.
      Значение по умолчанию: 5 секунд.


  3. Для вывода информации по портам с включенной функцией обнаружения петель введите следующую команду:

    show loop-protect <port-list>

    Если не указан список портов, то выводится информация только для портов на которых данная функция включена.

20 февр. 2008 г.

Шпаргалка по настройке коммутаторов hp 2824 (2848)

  • Включаем IGMP для VLAN 1:

    2824#conf
    2824(config)#vlan 1 ip igmp


  • Включаем STP:

    2824#conf
    2824(config)#span

    указываем какой протокол необходимо использовать (STP, RSTP или MSTP):

    2824(config)#span protocol-version rstp

    устанавливаем приоритет коммутатора (по умолчанию 8, у меня же в сети этот коммутатор является ядром - приоритет поднял до 3):

    2824(config)#span pri 3


17 февр. 2008 г.

Шпаргалка по настройке коммутаторов hp 2510-24


  • Включаем IGMP для VLAN 1:

    2510-24# conf
    2510-24(config)# vlan 1 ip igmp

    отключаем фунцкию курьера, курьером будет коммутатор ядра
    2510-24(config)# no vlan 1 ip igmp



  • Включаем STP:

    2510-24#conf
    2510-24(config)#span


    указываем какой протокол необходимо использовать (STP, RSTP или MSTP):

    2510-24(config)#span force-version rstp-operation

    устанавливаем приоритет коммутатора (по умолчанию 8):

    2510-24(config)#span pri 8

    на портах к которым будут подключены непосредственно рабочие места включаем режим Edge-Port:

    2510-24(config)#span eth 1-24 admin-edge-port





  • Включаем LACP на гигабитных портах:

    2510-24(config)#int eth 25-26 lacp active


7 февр. 2008 г.

Трансляция спутникового канала в локальную сеть

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

В связи с реорганизацией парка серверов пришлось переносить DVB-S карты и весь софт на другую машину.

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

Решил теперь все такие настройки организовывать в мануалы и оставлять на блоге - и себе и другим :)

Приступим.

Многое взято из статьи http://omsk.lug.ru/SatTVLinux

Однако в моей ситуации все сразу не получилось.

1. Ищем информацию по нашему спутнику.
Мне помог http://www.lyngsat.com
Спутник HotBird.


2. Составляем список каналов и записываем в /etc/channels.conf
У меня пока только:
Vesti:11034:v:0:27500:1020:1030:1710

3. Проверяем наличие сигнала:
#szap -c /etc/channels.conf -x -n 1 -a 2
-a определяет номер адаптера, у меня в машине их 3, выбираю третий.

4. Транслируем каналы мультикастом:
Много экспериментировал с трансляцией всего транспондера, но так и не получилось.
#/usr/local/bin/dvbstream -c 2 -i 224.1.2.10 -r 1234 -f 11034 -p V -s 27500 -ps -v 1020 -a 1030

Вот тут я погряз надолго. Стример запускался, но тут же завершал свою работу.
Чего я только не делал и ядро скачал самое новое, и потом откатывался обратно, но все так и не получалось...

Решение пришло неожиданно.
Оказалось что у машины нет DNS-записи типа А! - вот из-за чего падал dvbstream!!!

[Дополнение]
Необходимость в DNS-записи типа А была вызвана только тем, что в /etc/hosts небыло записи с настоящим именем машины. После добавления/изменения записи в данном файле необходимость в DNS вообще отпадает.

Так что, господа, незабываем сделать запись или лезем в исходники и фиксим...

На этот момент трансляция настроена и наша машина выплевывает в сеть видео-поток.
Если не предпринять дополнительных мер, то трафик будет распространятся по всей локальной сети постоянно и нагружать все компьютеры сети.

В нашей сети используются интелектуальные коммутаторы hp 2824 и hp 2510-24.
Эти коммутаторы имеют возможности контроллирования распространения multicast-трафика - IGMP .

Описание этого процесса достойно отдельной статьи, либо прочтения руководства по настройке коммутатора ;)

1 февр. 2008 г.

29 янв. 2008 г.

LCD wide on i945

Получил новый комп на работе :)

Радость обновления железа была слегка омрачена тем, что встроенное графическое ядро i945 не предоставляло возможности установить родное для моего Samsung SyncMaster 940bw разрешение.


Как всегда помог Гугл.
На каком-то Итальянском или Французском сайте обнаружил инструкцию.

Далее приведу свой русский вариант:

sudo apt-get install xserver-xorg-video-intel
sudo apt-get remove 915resolution
sudo dpkg-reconfigure -phigh xserver-xorg

Сообщаем утилите конфигурации что мы хотим использовать драйвер intel и разрешение монитора необходимо установить в 1440х900.

После чего заработали все красявости Compiz'a :)


Информация взята отсюда:
http://oscar.burodigital.com.mx/mini-how-to-resolucion-intel-1440900-i845-i915-i945-i965/