FastNetMon

Friday 23 March 2012

firmware: requesting rtl_nic/rtl8168d-1.fw

dmesg| grep rtl
[62227.714606] r8169 0000:01:00.0: firmware: requesting rtl_nic/rtl8168d-1.fw
[62227.733729] r8169 0000:01:00.0: eth0: unable to load firmware patch rtl_nic/rtl8168d-1.fw (-2)

Для фикса проблемы нужно активировать репозиторий non-free и поставить оттуда пакет с прошивкой:
apt-get install -y firmware-realtek

Автоматизация установки Debian 6 Squeeze

Официальное описание возможности: http://wiki.debian.org/DebianInstaller/Preseed

Раздел мануала по установке:
http://www.debian.org/releases/stable/amd64/apb.html.en

Пример конфиг-файла:
http://www.debian.org/releases/squeeze/example-preseed.txt

Thursday 22 March 2012

Создание загрузочного USB диска Debian 6 Squeeze на Linux

Сначала скачиваем обычный установочный CD: debian-6.0.4-amd64-CD-1.iso. После этого, подключаем USB флеш-диск к машине и смотрим, как он определился:
dmesg|tail
[ 1585.583845] usb-storage: device scan complete
[ 1586.111281] scsi 7:0:0:0: Direct-Access Freecom DATABAR 1100 PQ: 0 ANSI: 0 CCS
[ 1586.112143] sd 7:0:0:0: [sdc] 15728640 512-byte logical blocks: (8.05 GB/7.50 GiB)
[ 1586.112891] sd 7:0:0:0: [sdc] Write Protect is off
[ 1586.112893] sd 7:0:0:0: [sdc] Mode Sense: 43 00 00 00
[ 1586.112894] sd 7:0:0:0: [sdc] Assuming drive cache: write through
[ 1586.115266] sd 7:0:0:0: [sdc] Assuming drive cache: write through
[ 1586.115328] sdc: sdc1
[ 1586.117758] sd 7:0:0:0: [sdc] Assuming drive cache: write through
[ 1586.117820] sd 7:0:0:0: [sdc] Attached SCSI removable disk

После этого копируем данные ISO образа прямо на устройство флеш диска:
cat debian-6.0.4-amd64-CD-1.iso > /dev/sdc
sync

Все, после перезагрузки система корректно запустит установку с USB :)

Рейтинг самых популярных пакетов в Debian

http://popcon.debian.org/

Настройка LogiLink UA0025C на Mac OS X Tiger

Драйвера с офсайта очень старые, нужно брать драйвера с сайта производителя чипа (MCS7830): http://www.asix.com.tw/products.php?op=pItemdetail&PItemID=109;74;109&PLine=74

Способы сборки массивов Adaptec - clear / build verify / quick init / skip init

Подробно описаны тут: http://ask.adaptec.com/cgi-bin/adaptec_tic.cfg/php/enduser/std_adp.php?p_faqid=10062&p_created=1065098797&p_sid=TkmSHeZk&p_accessibility=0&p_redirect=&p_lva=&p_sp=cF9zcmNoPTEmcF9zb3J0X2J5PWRmbHQ6MSZwX2dyaWRzb3J0PSZwX3Jvd19jbnQ9Nyw3JnBfcHJvZHM9MCZwX2NhdHM9MCZwX3B2PSZwX2N2PSZwX3NlYXJjaF90eXBlPWFuc3dlcnMuc2VhcmNoX25sJnBfcGFnZT0xJnBfc2VhcmNoX3RleHQ9cXVpY2sgaW5pdA**&p_li=&p_topview=1

Monday 19 March 2012

Ускорение vzdump за счет использования параллельного pigz

http://forum.proxmox.com/threads/5967-Speed-up-vzdump-using-pigz

Подробное описание БД Plesk

http://pleskhacker.com/

httpry - удобный сниффер http трафика

Подробнее: http://dumpsterventures.com/jason/httpry/

Рекомендации по подготовке к Red Hat экзаменам

http://rackerhacker.com/2012/02/28/preparing-for-red-hat-exams/

Решения для централизованного управления логами

http://graylog2.org/ и http://www.splunk.com/

Визы в Хорватию теперь не нужны!

Правительство Республики Хорватии приняло решение, что гражданам Российской Федерации, Украины, Республики Казахстан и Азербайджанской Республики обладателам действующих заграничных паспортов, временно не потребуется виза для въезда в Республику Хорватию на период до 90 дней, или для транзита через территорию Республики Хорватии.

Временное приостановление визового режима будет применяться с 1 апреля по 31 октября 2012 года.

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

Срок действия паспорта должен истекать не ранее срока окончания поездки (окончание срока действия паспорта может быть равно окончанию поездки).

Источник: http://ru.mfa.hr/?mh=307&mv=1782

gzip vs pigz

Все тесты проведены на базе Intel i7 CPU X980 - 12 логических ядер.

gzip
time tar -cpzf /var/backup/4601.tar.gz -C /vz/private/4601 .


real 3m10.887s - это астрономическое время
user 3m0.454s
sys 0m8.755s

pigz
time tar --use-compress-program=pigz -cpf /var/backup/4601.tar.gz -C /vz/private/4601 .


real 0m27.728s - это астрономическое время
user 4m3.871s
sys 0m7.412s

tar без сжатия
time tar -cpf /var/backup/4601.tar -C /vz/private/4601 .


real 1m10.247s
user 0m1.400s
sys 0m7.596s



Итого, pigz где-то в 6 раз быстрее, нежели gzip. Вообще, несмотря на hyper threading, это как раз равно числу физических ядер испытуемой машины. Кроме этого, pigz вдвое быстрее, чем просто tar без сжатия. Насколько я понимаю, это объясняется тем, что данных пишется меньше и процессор снимает данные быстрее, чем осуществляется простая запаковка без сжатия.

Далее привожу более-менее корректно проведенные тесты на архивацию уже сжатого tar.gz архива.

Сжатие pigz:
real 0m19.414s
user 2m21.545s
sys 0m4.596s

real 0m19.371s
user 2m20.833s
sys 0m4.720s

real 0m19.218s
user 2m21.341s
sys 0m4.368s

Сжатия gzip:
real 1m37.801s
user 1m35.586s
sys 0m3.388s


real 1m38.116s
user 1m35.990s
sys 0m3.284s


real 1m38.371s
user 1m36.222s
sys 0m3.092s


Без сжатия:
real 0m3.175s
user 0m0.052s
sys 0m1.908s

real 0m4.768s
user 0m0.072s
sys 0m2.520s

real 0m5.012s
user 0m0.100s
sys 0m2.456s

Причем, в режиме pipe pigz также дает серьезный прирост:
time cat Counter-Strike_LinuxServer_with-AmxModX.tar.gz | pigz > archive.pigz

real 0m1.608s
user 0m15.246s
sys 0m0.688s

time cat Counter-Strike_LinuxServer_with-AmxModX.tar.gz | gzip > archive.gz

real 0m10.647s
user 0m10.138s
sys 0m0.602s

Другие бенчмарки: http://www.unixdaemon.net/tools/commandline/pigz-parallel-gzip.html, http://edwin.io/pigz-vs-gzip-benchmark

Sunday 18 March 2012

Adaptec - замена сразу двух жестких дисков в RAID 10

К сожалению, такое случается. При этом, есть одна фича - насколько я понял, контроллер не выполняет более 1го ребилда в один момент времени. То есть, если у Вас есть массив в состоянии DEGRADED с двумя missing жесткими дискам и Вы заменяете два диска на новые, то сначала один из них станет rebuilding, а второй так и останется миссинг, но в arcconf pd 1 его статус будет "ready". Как закончится первый ребилд, сразу же начнется второй и missing превратится в rebuilding.

Как узнать прогресс ребилда рейда на Adaptec?

arcconf GETSTATUS 1
Controllers found: 1
Logical device Task:
  Logical device                 : 0
  Task ID                        : 105
  Current operation              : Rebuild
  Status                         : In Progress
  Priority                       : High
  Percentage complete            : 15

Очень интересная тенденция - Ubuntu тихо вошел в строй серьезных дистрибутивов!

Однако! http://www.opennet.ru/opennews/art.shtml?num=33355

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

Окончание поддержки RHEL 4 и всех производных

Все, прощай 4ка! https://www.redhat.com/archives/enterprise-watch-list/2012-March/msg00000.html

HTTPie - отладка HTTP JSON приложений

Очень удобный инструмент: http://www.opennet.ru/opennews/art.shtml?num=33314

Да здравствует Apache 2.4

Кардинально новых фич крайне мало, скорее доделка и повсеместное улучшение, но на этом попрощие работа выполнена просто огромная!

Подробнее: http://www.opennet.ru/opennews/art.shtml?num=33138

Классический gzip на современных мультипроцессорных машинах неэффективен - встречайте Pigz

Велкам: http://zlib.net/pigz/

Все тоже самое, но в несколько потоков и с использованием всех возможных мощностей серверов.

Причем, он бинарно совместим с обычным gzip.

Заставить tar использовать его для сжатия можно вот так:
tar --use-compress-program=pigz -cpf /root/archive.tar.gz /data

Релиз PHP 5.4 - что ждет программистов и администраторов?

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

Итак: все связанное с safe_mode удалено, удален механизм register_globals и все с ней связанное, удаление настроек magic quotes. Кроме этого - ожидаемое увеличение скорости, а также очень вкусная возможность - встроенный в CLI версию PHP HTTP сервер, который можно использовать для отладки приложений. Кроме этого, имеется улучшение PHP FPM - теперь есть возможность указывать число процессов, которые может порождать PHP.

Источник: http://www.opennet.ru/opennews/art.shtml?num=33241

Проект Lumberjack - попытка кардинальной переделки системы логгирования в Linux

Сначала стоит сказать о том, кто основал этот проект, а именно: Red Hat, Adiscon (мейнтейнеры rsyslog) / Balabit (мейнтейнеры Syslog-NG). Как можно убедиться, команду лучше для разработки данного решения не увидишь даже в снах. На мой взгляд, стоит ждать серьезного качественного скачка в данном направлении.

Пока информации о том, что именно планируется изменить и переделать почти нет (не удивительно - проект начат в марте 2012), но если есть интерес ее получить, пожалуй, список рассылки - лучшее место для этого: https://fedorahosted.org/pipermail/lumberjack-developers/

Источник: http://www.opennet.ru/opennews/art.shtml?num=33246

CentOS 5.8 вышел почти вовремя!

Ура ура! Задержка от выхода RHEL 5.8 до релиза CentOS 5.8 была всего две недели: http://www.opennet.ru/opennews/art.shtml?num=33298

Ниужели, CentOS исправился и его не придется заменять на SL?

Gate One: ssh в браузере средствами html 5

http://www.opennet.ru/opennews/art.shtml?num=33333

Вышел Unbreakable Enterprise Kernel 2, альтернативное ядро для RHEL 5 и 6, а также их производных

Отличное стабильное ядро, самое новое из имеющихся стабильных (основано на 3.0.16) с кучей крайне приятных фич: http://www.opennet.ru/openforum/vsluhforumID3/83568.html#1

Лучший тулкит для управления MySQL - Percona Toolkit

Встречайте! Наследник Maatkit и Aspersa: http://www.percona.com/software/percona-toolkit/

Как избавится от socket ignored у tar?

tar 2> >(grep -v 'socket ignored' >&2)

P.S. сам еще НЕ проверял, используем осторожно.

Источник: http://wundsam.net/2011/03/27/filtering-stderr-or-how-to-get-rid-of-tars-socket-ignored-message/

Как узнать, почему Adaptec пометил диск сбойным / выкинул диск из массива?

Следуюящая команда выдает лог сбоев дисков по всему контроллеру:
arcconf getlogs 1 dead

Строка, повествтующая об отказе/выбросе диска из массива выглядит как: deadDriveEntry vendorID="SEAGATE " rtcSeconds="1" rtcMinutes="47" rtcHours="8" rtcDay="18" rtcMonth="3" rtcYear="2012" serialNumber="3SJ202FY00009104X2T0" productID="ST330065" wwn="5000c500240e70a8" failureReasonCode="1"

Где, failureReasonCode - код, в котором зашифрована причина действия контроллера.

Вот все коды:
0 or 0x00 Unknown failure
1 or 0x01 Device not ready
2 or 0x02 Selection timout
3 or 0x03 User marked the drive dead
4 or 0x04 Hardware error
5 or 0x05 Bad block
6 or 0x06 Retries failed
7 or 0x07 No Response from drive during discovery
8 or 0x08 Inquiry failed
9 or 0x09 Probe(Test Unit Ready/Start Stop Unit) failed
A or 0x0A Bus discovery failed

Источник: http://ask.adaptec.com/scripts/adaptec_itic.cfg/php.exe/enduser/std_adp.php?p_faqid=17051&p_created=1284026018

Friday 16 March 2012

md5 в PHP

Вполне себе стандартный :) Выдача совпадает с выдачей стандартной утилиты.

md5 domains.txt
MD5 (domains.txt) = c97d110cfd4d53633d5dd1cd881b7e1d

php -r "echo md5_file('domains.txt');"
c97d110cfd4d53633d5dd1cd881b7e1d

Wednesday 14 March 2012

Пример многопроцессного приложения на PHP с использованием pcntl_fork

Код:
# based on: http://php.net/manual/ru/function.pcntl-fork.php
$worker_processes = 5;
$child_processes = array();

for ($i = 0; $i < $worker_processes; $i++) {

    $child_pid = pcntl_fork();
    
    if ($child_pid == -1) {
        die ("Can't fork process");
    } elseif ($child_pid) {
        print "Parent, created child: $child_pid\n";
        $child_processes[] = $child_pid;     
    
        # В данный момент все процессы отфоркнуты, можно начать ожидание
        if ($i == ( $worker_processes -1 ) ) {
            foreach ($child_processes as $process_pid) {
                # Ждем завершение заданного дочернего процесса
                $status = 0;
                pcntl_waitpid($process_pid, &$status); 
            }
        }
    } else {
        print "Child $i\n";
        sleep(10 + $i);
    
        # Если здесь не будет exit, то foreach заработает и здесь
        exit(0);
    }

}


Алгоритм - мастер-процесс запускает 5 дочерних процессов и ждет окончание их всех, после этого он сам завершает свою работу.

Использование proctitle в PHP для смены имени процесса

Устанавливаем:
pecl install proctitle channel://pecl.php.net/proctitle-0.1.2
echo "extension=proctitle.so" > /etc/php5/conf.d/proctitle.ini

Пример кода, использующего смену имени процесса:
setproctitle("my_super_process");
while(true) { sleep(10); }

Запускаем:
php -f test_proctitle.php

Убеждаемся, что используется заданное нами имя процесса:
ps aux|grep my_
root 26611 0.0 0.0 292120 12044 pts/8 S+ 18:32 0:00 my_super_process
root 26645 0.0 0.0 112316 876 pts/9 S+ 18:33 0:00 grep my_

Tuesday 6 March 2012

Что означает ошибка "BUG: soft lockup - CPU#0 stuck for Xs!" ?

Она означает, что на данном ядре не происходила операция reschedule в течение X секунд. Иными словами (на моем уровне понимания), один процесс все это время монопольно занимал все ядро целиком и другие процессы не могли от него получить процессорного времени (то есть, как раз выполнить тот самый решедулинг - приостановить один процесс и предоставить процессорное время другому). Иными словами, это блокировка, которая блокирует работу одного/нескольких ядер. Чем вызвана - причин множество, в том числе баг ядра.

Источник: http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/kernel/softlockup.c

Проблема никак не фиксится. Если у Вас OpenVZ и 2.6.32 ядро, то обновитесь до упора, но если жто не решит проблем со стабильностью - откатывайтесь на centos 5, могу помочь с полным рецептом для этого дела.

Как настроить автоматический ребут Linux систем при возникновении кернел паника?

Очень просто: http://www.cyberciti.biz/tips/reboot-linux-box-after-a-kernel-panic.html

Cмена прав для вновь создаваемых файлов на FreeBSD

Стандартно для обычных пользователей во FreeBSD umask стоит в значении 022, это далеко не всегда удобно, так как сбрасывает право записи в файл для пользователей группы. Если это требуется изменить, то нужно открыть файл:
vi /etc/login.conf

Скорректировать строку:
:umask=002:

После этого перестроить конфиги:
cap_mkdb /etc/login.conf

Все, после этого достаточно выйти / войти в консольную сессию и значение umask изменится на новое. Кроме этого, обращаю внимание, что umask для root меняется иначе.

Установка Nginx 1.1 на FreeBSD 8.2

Компилируем:
cd /usr/ports/www/nginx
make install clean

Добавляем в автозапуск:
vi /etc/rc.conf

Добавляем там:
nginx_enable="YES"

Запускаем:
/usr/local/etc/rc.d/nginx start

Monday 5 March 2012

Перевозка велосипеда в самолете

http://velopiter.spb.ru/articles/aviabag.htm

О стабильности OpenVZ на 2.6.32 ядрах (RHEL6/CentOS6)

Дорогие друзья, администраторы!

Ядра OpenVZ для RHEL6 (и, как следствие, CentOS 6, SL 6), заявленные как стабильные еще чуть ли не 3 месяца назад такими НЕ ЯВЛЯЮТСЯ даже близко. Если это не альфа, то бета и крайне сырая. В бигзилле OpenVZ вагон критичных багов, приводящих чуть ли не к ежедневной перезагрузке нод, на форуме также очень много жалоб на стабильность. Не говоря уже о том, что на практике новые ядра очень легко уронить одним неловким движением (например, рестартом нескольких контейнеров). Иными словами, все, кто замыслил переход должны выждать минимум 3-6 месяцев до внедрения RHEL6 ядер.

Критика приветствуется, все выше сказанное на основании опыта эксплуатации RHEL6 ядер начиная с самого первого стабильного на ферме из нескольких десятков идентичных серверов.

Update: Сейчас с ядрами все стало окей :)

Saturday 3 March 2012

Как слить фото с камеры на Mac OS X без iPhoto?

У iPhoto огромное количество не нужных фич (в том числе некая библиотека, из-за которой фотки еще и нужно выдергивать после копирования), когда нужно просто скачать фотки с камеры и положить в папку. Если у Вас Tiger, то можно обойтись без него, есть чудная прога "image capture" (вбиваем название в Spotlight и находим), по-русски она называется "Захват изображений".

Источник: http://forums.macrumors.com/showthread.php?t=152260