Sunday 29 June 2014
Wednesday 25 June 2014
Пару слов о режимах работы PF_RING
parm: transparent_mode
0=standard Linux,
1=direct2pfring+transparent,
2=direct2pfring+non transparent
For 1 and 2 you need to use a PF_RING aware driver (uint).
Как можно понять, стандартно используется режим 0, так как 1 и 2 требуют установки специального драйвера. Где его взять? В дистрибутиве PF_RING в папке drivers/PF_RING_aware. Папку DNA пока не трогайте, она Вам незачем пока что.
Теперь шерстите папки :) Но вообще я Вам не рекомендую заниматься чем-то подобным, если у Вас сетевая не класса 82599. То есть можете, но не факт, что все будет работать, как Вам нужно.
Итак, идем в папку cd intel/ixgbe/ixgbe-3.21.2-zc/src (мой случай), собираем и устанавливаем в систему драйвер (тут установка штучная, в продакшене соберите пакет или используйте dkms):
make
make install
И после этого загружаете драйверы спец скриптом:
./load_driver.sh
Если он начнет ругаться "не могу найти pf_ring.ko", то исправьте к нему путь на абсолютный. Тоже самое касается случая, когда Вам нужен иной transparent_mode, его нужно указать драйверу явно в этом же файле.
Теперь убеждаемся, что у нас запустилась пропатченная версия драйвера, а не системная. Это можно легко определить по выдаче команды modinfo ixgbe. Следующие строки есть только в патченном драйвере.
0=standard Linux,
1=direct2pfring+transparent,
2=direct2pfring+non transparent
For 1 and 2 you need to use a PF_RING aware driver (uint).
Как можно понять, стандартно используется режим 0, так как 1 и 2 требуют установки специального драйвера. Где его взять? В дистрибутиве PF_RING в папке drivers/PF_RING_aware. Папку DNA пока не трогайте, она Вам незачем пока что.
Теперь шерстите папки :) Но вообще я Вам не рекомендую заниматься чем-то подобным, если у Вас сетевая не класса 82599. То есть можете, но не факт, что все будет работать, как Вам нужно.
Итак, идем в папку cd intel/ixgbe/ixgbe-3.21.2-zc/src (мой случай), собираем и устанавливаем в систему драйвер (тут установка штучная, в продакшене соберите пакет или используйте dkms):
make
make install
И после этого загружаете драйверы спец скриптом:
./load_driver.sh
Если он начнет ругаться "не могу найти pf_ring.ko", то исправьте к нему путь на абсолютный. Тоже самое касается случая, когда Вам нужен иной transparent_mode, его нужно указать драйверу явно в этом же файле.
Теперь убеждаемся, что у нас запустилась пропатченная версия драйвера, а не системная. Это можно легко определить по выдаче команды modinfo ixgbe. Следующие строки есть только в патченном драйвере.
parm: numa_cpu_affinity:Comma separated list of core ids where per-adapter memory will be allocated (array of int)А вот дальше возникли сложности, так как хидер pfring_zc.h не устанавливается при установке либы, о чем я уже отправил багрепорт.
parm: enable_debug:Set to 1 to enable debug tracing into the syslog (uint)
Monday 23 June 2014
Как победить chrono:666:7: error: static_assert expression is not an integral constant expression в Debian Wheezy?
Ловлю вот такой баг:
In file included from fastnetmon.cpp:45:Боюсь, что тут ничего толком не сделать, кроме как воткнуть из бэкпортов более новый LibC++, что почти подобно самоубийству. Кроме этого, в сети пишут, что clang данной версиин не умеет этих самых константных выражений.
In file included from /usr/include/c++/4.6/thread:37:
/usr/include/c++/4.6/chrono:666:7: error: static_assert expression is not an integral constant expression
static_assert(system_clock::duration::min()
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
Friday 20 June 2014
Отключение IPMI на BCM карте Supermicro
Готовим окружение:
Запускаем с машины:
Убеждаемся, что все вырублено:
и проверяем пингом
apt-get install ipmitool
modprobe ipmi_devintf
modprobe ipmi_si
Запускаем с машины:
ipmitool lan set 1 ipsrc static
ipmitool lan set 1 ipaddr 127.0.0.1
ipmitool lan set 1 defgw ipaddr 127.0.0.1
Убеждаемся, что все вырублено:
ipmitool lan print
и проверяем пингом
DHL - документы со скоростью мысли :)
Сегодня на 3 дня раньше обещенного срока получил посылку DHL прямо в торговом центре около дома! :) Хотя была оплачена не срочная доставка за 4 дня, посылка была у меня ровно через 2! И это из Самары в Питер (~1600 км)!
Вот это - образец качества. DHL рулез :)
Вот это - образец качества. DHL рулез :)
Не пользуйтесь говнобанком по имени Сбербанк, НИКОГДА
Недавно испытал определенный баттхерт в отделении Сбербанка (Спб), на что, буквально через полчаса составил жалобу следующего содержания. Я, конечно, человек, наверное, наивный, но очень часто мои жалобы находят ответ. Но не в этом случае. В ЭТОМ банке всем насрать.
Здравствуйте!
Хотелось бы поделиться форменным идиотизмом, с которым я столкнулся в
подразделении Сбербанка по адресу Пионерская , Коломяжский пр. , 15 " А" ,
корп. 2. Но я не хотел бы наговаривать именно на это подразделение, потому
что эта ситуация точь-в-точь имеет место и в любых других подразделениях
Сбербанка.
Волею судьбы я вынужден оплачивать квартплату только в Сбербанке, для чего
пользуюсь Терминалами Самообслуживания. Они в целом удобны для меня (если,
конечно, работают - что в нашем подразделении тоже редкость - обычно
работает 1-2 из 6 штук).
Но сегодня оплачивая квартплату в 3450 я оплатил купюрой в 5000 рублей и
сумма сдачи была очень большой, чтобы получить ее на телефон (что я ранее делал
всегда - меня это устраивало) и я выбрал вариант "получить у кассира".
И тут начались все мои круги ада. Резонно спросив консультанта "а где
деньги-то получить" ? Я получил ответ - идите в ближайшее окно. Из ближайшего окна
прождав 5 минут я был послан взять талон (понять какой из 10 вариантов
"кредиты""ипотека""платежи" обозначает "я хочу свою сдачу из терминала"
имеяполное высшее обращование я не смог). Талон
(если хотите - я могу прислать его скан-копию, он у меня на столе лежит) меня
обрадовал ожиданием в 33 минуты и очередью в 5 человек.
Но на этом мои удивления не закончились, уже _после_ получения этого чудо
чека я прочитал на нем, что у меня должен быть паспорт, которогое у меня с собой
не было. Поэтому я был вынужден сходить домой и взять паспорт, чтобы получить
своиденьги. Но очередь была настолько длинной, что пока я ходил домой (20 минут), она
не сдвинулась вообще. Почему? Потому что пришли техники и начали чинить
переговорное устройство и в итоге из 4х окон работали от силы 2, очередь в
филиале достигла почти 25 человек - сесть было уже некуда.
После этого с горем поплам через 40 минут (!!!) дошла моя очередь. Кассир
сработала довольно оперативно (если не считать ухода за мелочью мне на
сдачу на 5 минут; у Вас в банке нет запаса мелочи?).
Но что меня напрочь убило - это два огромных бланка (по одному за каждый из
возвратов из терминала), которые я должен заполнить сам! Да, ФИО и мой
паспорт операционист впечатала (да и вообще операционистка была самым лучшим
впечатлением после посещения данного филиала). В итоге мне понадобилось еще
почти 5 минут, чтобы заполнить эти огромные бланки, где я должен вписать
ФИО, адрес жительства, адрес регистрации, телефон, номер подразделения выдавшего
мой паспорт и две подписи. Вам не кажется, что это просто тотальный и бесповоротный идиотизм? Мне
кажется, честно. Пожалуйста, раз уж Вы позиционируете терминалы как "ОПЕРАТИВНЫЙ"
способ осуществления платежей.
В итоге на оплату двух несчастных квитков квартплаты я потратил ровно
полтора часа своего личного времени, из-за чего был вынужден опоздать на работу. И
это в 21м веке, а не в 18м и мои деньги не ехали на перекладных из Петербурга в
Москву.
Я надеюсь, что хотя бы пару пунктов моей жалобы будут рассмотрены.
С уважением, Одинцов Павел, контактный телефон: +7951xxxyyzz
ОТВЕТ БАНКА:
На что получил тупую отписку (Ответ на обращение N 000913-2014-059266 от Одинцов Павел):
Ответ Клиенту:
Уважаемый Павел Юрьевич!
ОАО "Сбербанк России" (далее-Банк), рассмотрев Ваше обращение, сообщает
следующее.
Прежде всего, позвольте поблагодарить Вас за то, что Вы нашли время и
поделились с нами впечатлениями от обслуживания в Сбербанке. Для нас очень
важно знать мнение клиентов о предоставляемых банком услугах, ведь это
позволяет находить и исправлять существующие ошибки или вносить изменения в
процессы Банка для повышения качества обслуживания.
Мы искренне сожалеем о времени, которое Клиенты Банка теряют в
очередях, и заверяем Вас, что Банк принимает все меры к устранению этого
недостатка в нашей работе.
В частности, в настоящее время в Банке проводится масштабная программа по
борьбе с очередями, целями которой является снижение максимального времени
ожидания клиентов в отделениях. В рамках этой программы мы активно меняем
формат отделений, пересматриваем их месторасположение, внедряем системы
электронной очереди и совершенствуем наши процессы.
Также нельзя не отметить, что уже сейчас Вы можете избежать
неудобств, которые могут возникнуть при личном посещении отделений Банка,
воспользовавшись альтернативными каналами обслуживания: услугами "Сбербанк
ОнЛ@йн" (услуга предоставляется бесплатно) и "Мобильный банк", безналичным
списанием коммунальных платежей с вкладов, либо использовать для оплаты
услуг
широкую сеть наших информационно-платежных терминалов и банкоматов. С
подробной
информацией об этих услугах, а также полным списком устройств
самообслуживания
и структурных подразделений Банка можно ознакомиться на нашем официальном
сайте www.sberbank.ru.
В заключение хотим еще раз принести свои извинения за причиненные
неудобства и выразить надежду, что наши разъяснения помогут Вам в
дальнейшем
успешно пользоваться нашими услугами.
С уважением,
Управление претензионной работы
Центра сопровождения клиентских операций
ОАО "Сбербанк России"
С уважением,
Управление претензионной работы
Центра сопровождения клиентских операций
"Старо-Петергофский" ОАО "Сбербанк России"
Здравствуйте!
Хотелось бы поделиться форменным идиотизмом, с которым я столкнулся в
подразделении Сбербанка по адресу Пионерская , Коломяжский пр. , 15 " А" ,
корп. 2. Но я не хотел бы наговаривать именно на это подразделение, потому
что эта ситуация точь-в-точь имеет место и в любых других подразделениях
Сбербанка.
Волею судьбы я вынужден оплачивать квартплату только в Сбербанке, для чего
пользуюсь Терминалами Самообслуживания. Они в целом удобны для меня (если,
конечно, работают - что в нашем подразделении тоже редкость - обычно
работает 1-2 из 6 штук).
Но сегодня оплачивая квартплату в 3450 я оплатил купюрой в 5000 рублей и
сумма сдачи была очень большой, чтобы получить ее на телефон (что я ранее делал
всегда - меня это устраивало) и я выбрал вариант "получить у кассира".
И тут начались все мои круги ада. Резонно спросив консультанта "а где
деньги-то получить" ? Я получил ответ - идите в ближайшее окно. Из ближайшего окна
прождав 5 минут я был послан взять талон (понять какой из 10 вариантов
"кредиты""ипотека""платежи" обозначает "я хочу свою сдачу из терминала"
имеяполное высшее обращование я не смог). Талон
(если хотите - я могу прислать его скан-копию, он у меня на столе лежит) меня
обрадовал ожиданием в 33 минуты и очередью в 5 человек.
Но на этом мои удивления не закончились, уже _после_ получения этого чудо
чека я прочитал на нем, что у меня должен быть паспорт, которогое у меня с собой
не было. Поэтому я был вынужден сходить домой и взять паспорт, чтобы получить
своиденьги. Но очередь была настолько длинной, что пока я ходил домой (20 минут), она
не сдвинулась вообще. Почему? Потому что пришли техники и начали чинить
переговорное устройство и в итоге из 4х окон работали от силы 2, очередь в
филиале достигла почти 25 человек - сесть было уже некуда.
После этого с горем поплам через 40 минут (!!!) дошла моя очередь. Кассир
сработала довольно оперативно (если не считать ухода за мелочью мне на
сдачу на 5 минут; у Вас в банке нет запаса мелочи?).
Но что меня напрочь убило - это два огромных бланка (по одному за каждый из
возвратов из терминала), которые я должен заполнить сам! Да, ФИО и мой
паспорт операционист впечатала (да и вообще операционистка была самым лучшим
впечатлением после посещения данного филиала). В итоге мне понадобилось еще
почти 5 минут, чтобы заполнить эти огромные бланки, где я должен вписать
ФИО, адрес жительства, адрес регистрации, телефон, номер подразделения выдавшего
мой паспорт и две подписи. Вам не кажется, что это просто тотальный и бесповоротный идиотизм? Мне
кажется, честно. Пожалуйста, раз уж Вы позиционируете терминалы как "ОПЕРАТИВНЫЙ"
способ осуществления платежей.
В итоге на оплату двух несчастных квитков квартплаты я потратил ровно
полтора часа своего личного времени, из-за чего был вынужден опоздать на работу. И
это в 21м веке, а не в 18м и мои деньги не ехали на перекладных из Петербурга в
Москву.
Я надеюсь, что хотя бы пару пунктов моей жалобы будут рассмотрены.
С уважением, Одинцов Павел, контактный телефон: +7951xxxyyzz
ОТВЕТ БАНКА:
На что получил тупую отписку (Ответ на обращение N 000913-2014-059266 от Одинцов Павел):
Ответ Клиенту:
Уважаемый Павел Юрьевич!
ОАО "Сбербанк России" (далее-Банк), рассмотрев Ваше обращение, сообщает
следующее.
Прежде всего, позвольте поблагодарить Вас за то, что Вы нашли время и
поделились с нами впечатлениями от обслуживания в Сбербанке. Для нас очень
важно знать мнение клиентов о предоставляемых банком услугах, ведь это
позволяет находить и исправлять существующие ошибки или вносить изменения в
процессы Банка для повышения качества обслуживания.
Мы искренне сожалеем о времени, которое Клиенты Банка теряют в
очередях, и заверяем Вас, что Банк принимает все меры к устранению этого
недостатка в нашей работе.
В частности, в настоящее время в Банке проводится масштабная программа по
борьбе с очередями, целями которой является снижение максимального времени
ожидания клиентов в отделениях. В рамках этой программы мы активно меняем
формат отделений, пересматриваем их месторасположение, внедряем системы
электронной очереди и совершенствуем наши процессы.
Также нельзя не отметить, что уже сейчас Вы можете избежать
неудобств, которые могут возникнуть при личном посещении отделений Банка,
воспользовавшись альтернативными каналами обслуживания: услугами "Сбербанк
ОнЛ@йн" (услуга предоставляется бесплатно) и "Мобильный банк", безналичным
списанием коммунальных платежей с вкладов, либо использовать для оплаты
услуг
широкую сеть наших информационно-платежных терминалов и банкоматов. С
подробной
информацией об этих услугах, а также полным списком устройств
самообслуживания
и структурных подразделений Банка можно ознакомиться на нашем официальном
сайте www.sberbank.ru.
В заключение хотим еще раз принести свои извинения за причиненные
неудобства и выразить надежду, что наши разъяснения помогут Вам в
дальнейшем
успешно пользоваться нашими услугами.
С уважением,
Управление претензионной работы
Центра сопровождения клиентских операций
ОАО "Сбербанк России"
С уважением,
Управление претензионной работы
Центра сопровождения клиентских операций
"Старо-Петергофский" ОАО "Сбербанк России"
Thursday 19 June 2014
Что думает об O_DIRECT Linus Torvalds?
The thing that has always disturbed me about O_DIRECT is that the whole interface is just stupid, and was probably designed by a deranged monkey on some serious mind-controlling substances
Решение для работы с файлами в режиме с O_DIRECT для любого приложение
http://arighi.blogspot.ru/2007/04/how-to-bypass-buffer-cache-in-linux.html
Совместимо с любым приложением - работает через LD_PRELOAD.
Совместимо с любым приложением - работает через LD_PRELOAD.
Wednesday 18 June 2014
Сборка xdelta3 на CentOS 6
Вот так:
yum install -y xz gcc make xz-devel gcc-c++Может кто соберет пакетик в Epel? А-то там только xdelta1 :)
cd /usr/src
wget https://xdelta.googlecode.com/files/xdelta3-3.0.8.tar.xz
tar -xf xdelta3-3.0.8.tar.xz
cd xdelta3-3.0.8
./configure --build=x86_64 --prefix=/opt/xdelta3
Tuesday 17 June 2014
Добавляем поддержку Netconsole в Debian апстрим
Опубликовал свой проект в рассылке: https://lists.debian.org/debian-kernel/2014/06/msg00205.html
Буду рад критике и помощи по улучшению скриптов :)
Буду рад критике и помощи по улучшению скриптов :)
Monday 16 June 2014
PF_RING: pfring_open Operation not supported errno: 95
Это очень странная баго-фича. Суть в том, что даже при успешном открытии сокета pfring_open возвращает errno = 95, который обозначает: Operation not supported. Это ломает в частности gopacket/pfring и приводит к тому, что он нифига не работает.
Бага исправлена по моему репорту в коммите 7775 и доступна в svn версии PF_RING. Скорее всего фикс будет включен в релиз 6.0.2, в 6.0.1 баг все еще присутствует.
Бага исправлена по моему репорту в коммите 7775 и доступна в svn версии PF_RING. Скорее всего фикс будет включен в релиз 6.0.2, в 6.0.1 баг все еще присутствует.
Интересный продукт - APS Anti Abuse - защита Ваших VPS от жалоб
Вот наткнулся на такой продукт: http://vpsantiabuse.com/
Сам не пробовал, никакого резюме дать не могу. Все под Вашу личную ответственность.
Сам не пробовал, никакого резюме дать не могу. Все под Вашу личную ответственность.
Thursday 12 June 2014
Can't install Go binding for PF_RING
Что делать? Открываем:go get "code.google.com/p/gopacket/pfring" # code.google.com/p/gopacket/pfring /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/libpfring.so: undefined reference to `numa_node_of_cpu' /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/libpfring.so: undefined reference to `clock_gettime' /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/libpfring.so: undefined reference to `numa_bind' /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/libpfring.so: undefined reference to `numa_parse_nodestring' /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/libpfring.so: undefined reference to `numa_available'
/usr/share/go/src/pkg/code.google.com/p/gopacket/pfring/pfring.go
И далее на строке #cgo корректируем следующее:
#cgo LDFLAGS: -lpfring -lpcap -lnuma -lrt
После этого повторяем сборку и все будет ок :) Багрепорт уже создан мной.
Установка PF_RING на Debian 7 Wheezy
Стягиваем код:
Собираем модуль ядра:
После этого смотрим в dmesg и убеждаемся, что модуль подгрузился.
Собираем библиотеки:
После этого собираем примеры, чтобы посмотреть каков PF_RING в действии:
Смотрим PF_RING в бою:
cd /usr/src
wget 'http://downloads.sourceforge.net/project/ntop/PF_RING/PF_RING-6.0.1.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fntop%2Ffiles%2FPF_RING%2F&ts=1402307916&use_mirror=cznic' -OPF_RING-6.0.1.tar.gz
tar -xf PF_RING-6.0.1.tar.gz
cd PF_RING-6.0.1
apt-get install build-essential bison flex linux-headers-$(uname -r) libnuma-dev
Собираем модуль ядра:
cd kernel
make
make install
modprobe pf_ring
После этого смотрим в dmesg и убеждаемся, что модуль подгрузился.
Собираем библиотеки:
cd /usr/src/PF_RING-6.0.1/userland/lib
./configure --disable-bpf --prefix=/opt/pf_ring
make install
После этого собираем примеры, чтобы посмотреть каков PF_RING в действии:
cd /usr/src/PF_RING-6.0.1/userland
make
cd examples
Смотрим PF_RING в бою:
./pfcount -i eth3И все это при нулевой нагрузке на процессор :)
Using PF_RING v.6.0.1
Capturing from eth3 [90:E2:BA:49:92:4D][ifIndex: 4]
# Device RX channels: 8
# Polling threads: 1
Dumping statistics on /proc/net/pf_ring/stats/14988-eth3.5
=========================
Absolute Stats: [147170 pkts rcvd][147170 pkts filtered][0 pkts dropped]
Total Pkts=147170/Dropped=0.0 %
147'170 pkts - 113'915'190 bytes
=========================
=========================
Absolute Stats: [300663 pkts rcvd][300663 pkts filtered][0 pkts dropped]
Total Pkts=300663/Dropped=0.0 %
300'663 pkts - 229'629'649 bytes [300'647.06 pkt/sec - 1'836.93 Mbit/sec]
=========================
Actual Stats: 153493 pkts [1'000.05 ms][153'484.86 pps/0.93 Gbps]
Wednesday 11 June 2014
rdiff: sorry, compression is not really implemented yet
Да, вот такая блин фича :)
rdiff: ERROR: (rdiff_options) sorry, compression is not really implemented yetНо я думаю можно заменить путь до дельты на - и сделать | pigz.
Tuesday 10 June 2014
Как построить диаграмму по размерам пакетов в Linux?
Вот так:
После запуска ждете требуемое время и зажимаете CTRL+C. Из зависимостей: tshark и gsl-bin на Debian.
В итоге вы увидите красивую таблицу распределения:
tshark -i eth0 -n -eframe.len -T fields > traffic.dat; cat traffic.dat | gsl-histogram 0 1500 30
После запуска ждете требуемое время и зажимаете CTRL+C. Из зависимостей: tshark и gsl-bin на Debian.
В итоге вы увидите красивую таблицу распределения:
0 50 0
50 100 130328
100 150 12102
150 200 3012
200 250 1595
250 300 3114
300 350 1738
350 400 1363
400 450 1361
450 500 1924
500 550 1530
550 600 2052
600 650 1164
650 700 908
700 750 638
750 800 622
800 850 683
850 900 557
900 950 452
950 1000 421
1000 1050 507
1050 1100 442
1100 1150 547
1150 1200 657
1200 1250 365
1250 1300 1666
1300 1350 367
1350 1400 1618
1400 1450 13008
1450 1500 25497
Monday 9 June 2014
FastNetMon - решение для высокоскоростного анализа трафика и блокировки узлов, на которые идет DDoS атака
Данная задача крайне часто встает в моей практике и, к сожалению, не имеет ни красивых ни удобных, ни вообще каких-либо решений.
Что мы делаем? Мы работаем через PF_RING и на очень высокой скорости извлекаем транзитные либо входящие пакеты идущие на нашу машину либо крупную сеть. Приложение написано на С++ и может работать до очень и очень серьезных нагрузок, 10-15 Gbps или 2-5 Mpps - это нормально. Как только на один из узлов pps превышает заданный порог, то запускается скрипт, который банит клиента либо передает сообщение группе администраторов.
Аналогичные решения существуют только для NetFlow, который сам по себе не создан для оперативной реакции и уведомления об атаке, а в моем решении уведомление об атаке будет через 3-5 секунд после превышение порога.
Также решение умеет работать на OpenVZ нодах и фиксировать атаки на VPS, нагрузка на CPU и сеть от решения минимальная.
Прошу: FastNetMon.com
Friday 6 June 2014
Миграция Puppet Master сервера с WebRick на Passenger + httpd на CentOS
Итак, мы имеем работающий Puppet сервер со скоростью работы не удовлетворяющей нас совершенно. Что делать? Ускорять методом переключения на Апача с модулем Passanger.
Устанавливаем зависимости:
Устанавливаем модули rack и passanger:
Далее создаем конфиг
Со следующим содержимым: https://gist.github.com/pavel-odintsov/7813f50ee2f8dc1ef467
Перегружаем Апача, чтобы активировать модуль:
Создаем конфигурацию для запуска Puppet Master как Passanger приложения:
После этого повторно перезапускаем апача и деактивируем старый pupept master сервер:
Гайд, по которому велась конфигурация: http://docs.puppetlabs.com/guides/passenger.html
Устанавливаем зависимости:
install httpd httpd-devel mod_ssl ruby-devel rubygems gcc zlib-devel openssl-devel curl-devel gcc-c++
Устанавливаем модули rack и passanger:
gem install rack passengerКомпилируем модуль Passanger для Апача:
passenger-install-apache2-moduleЕсли он спросит какой язык нам требуется, выбираем Ruby.
Далее создаем конфиг
vim /etc/httpd/conf.d/passenger.conf
Со следующим содержимым: https://gist.github.com/pavel-odintsov/7813f50ee2f8dc1ef467
Перегружаем Апача, чтобы активировать модуль:
/etc/init.d/httpd restartУбеждаемся, что все зацепилось корректно:
apachectl -M 2>&1|grep pass
passenger_module (shared)
Создаем конфигурацию для запуска Puppet Master как Passanger приложения:
mkdir -p /usr/share/puppet/rack/puppetmasterdСоздаем конфигурацию сайта:
mkdir /usr/share/puppet/rack/puppetmasterd/public /usr/share/puppet/rack/puppetmasterd/tmp
cp /usr/share/puppet/ext/rack/config.ru /usr/share/puppet/rack/puppetmasterd/
chown puppet:puppet /usr/share/puppet/rack/puppetmasterd/config.ru
vim /etc/httpd/conf.d/puppetmaster.confВот содержимое: https://gist.github.com/pavel-odintsov/386956e25f886ba214fe
После этого повторно перезапускаем апача и деактивируем старый pupept master сервер:
chkconfig puppetmaster offПосле этого пробуем провести синхронизацию с какого-либо клиента :) Думаю, все будет ок!
/etc/init.d/puppetmaster stop
/etc/init.d/httpd restart
Гайд, по которому велась конфигурация: http://docs.puppetlabs.com/guides/passenger.html
Thursday 5 June 2014
Wednesday 4 June 2014
Эффективность работы ZFS дедупликации и сжатия на Open Indiana при хранении бэкапов ploop образов VPS
Вот такие цифры:
zpool listСжатие примерно двухкратное:
NAME SIZE ALLOC FREE EXPANDSZ CAP DEDUP HEALTH ALTROOT
array 43,5T 9,30T 34,2T - 21% 5.16x ONLINE -
rpool 29G 10,0G 19,0G - 34% 1.00x ONLINE -
zfs get compressratio arrayТо есть, относительно исходного сырого объема мы получаем следующее соотношение - для хранения где-то десятка бэкапов по 10 гб нам требуется 10 гб. Так как они сжимаются 1 к 5 дедупликацией и потом вдвое за счет сжатия.
NAME PROPERTY VALUE SOURCE
array compressratio 2.03x -
Tuesday 3 June 2014
Использование собственных параметров в конфиге OpenVZ контейнера
Очень часто требуется добавить какие-то свои параметры в конфиг OpenVZ контейнера, например, идентификатор услуги в биллинге или еще что-то.
Городить отдельные конфиги крайне не хочется и есть отличный способ! Можно просто добавить их в конфиг контейнера /etc/vz/conf/XXX.conf в виде по аналогии с родными параметрами vzctl:
Городить отдельные конфиги крайне не хочется и есть отличный способ! Можно просто добавить их в конфиг контейнера /etc/vz/conf/XXX.conf в виде по аналогии с родными параметрами vzctl:
NETWORK_UPLOAD_SPEED="10mbps"Никаких проблем/ошибок это не вызовет, vzctl примет их как родных. Единственным неудобством в данном случае является то, что требуется делать обертку для правки/чтения данных параметров, так как vzctl/vzlist ничего о них не знаю и не могут их править/отображать.
Monday 2 June 2014
Ускорение работы DNS в ISPManager 4 при добавлении доменов
Суть проблемы в том, что ISPManager перезапускает Bind при добавлении каждого домена.
Чтобы избежать этого делаем следующее.
Открываем конфиг ISPManager:
Там корректируем либо добавляем строку (если не было):
После этого перезапускаем ISPManager по killall -9 ispmgr и тестируем скорость добавления доменов.
Чтобы избежать этого делаем следующее.
Открываем конфиг ISPManager:
vi /usr/local/ispmgr/etc/ispmgr.conf
Там корректируем либо добавляем строку (если не было):
path ndc /usr/sbin/rndcfastА там кладем вот такой скриптик: https://gist.github.com/pavel-odintsov/e4a3cd655f51fa7f99b8
После этого перезапускаем ISPManager по killall -9 ispmgr и тестируем скорость добавления доменов.
Subscribe to:
Posts
(
Atom
)