пятница, 20 декабря 2013 г.

PHP APC Potential Cache Slam Averted for Key

При использовании APC и его обновлении в логах могут появиться строки вида
[apc-warning] Potential cache slam averted for key

http://pecl.php.net/bugs/bug.php?id=16814
может возникать, когда пишется ключ который уже существует. Пока лекарства нет. Отключить можно так: в php.ini
apc.slam_defense = 0

среда, 18 декабря 2013 г.

UniFi контроллер на debian

У точек unifi есть софт-контроллер, который можно поставить в том числе на линукс. Для дебиана 6 надо подключить репы mongodb + unifi, для 7 достаточно только unifi.

вторник, 17 декабря 2013 г.

debian: php 5.3 в версии от DotDeb

В debian 7 есть возможность поставить 5.3 из backports

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

Шпаргалка по Redis

http://habrahabr.ru/post/204354/


RHEL6 Performance Tuning Guide

Red Hat Enterprise Linux 6
Performance Tuning Guide
Optimizing subsystem throughput in Red Hat Enterprise Linux 6

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/

Оптимизация работы на SSD-накопителе рабочей станции с Fedora Linux

Оптимизация работы на SSD-накопителе рабочей станции с Fedora Linux

вторник, 3 декабря 2013 г.

мегасайт по aix

http://docs.gz.ro/aix-misc-commands.html

4 часа копания офсайта дали ровно 4 команды, а тут за 5 минут было найдено всё нужное. В частности, в aix 7.1 нету
lsrsrc "IBM.ManagementServer", вместо него IBM.MCP. И только тут было
To dispay the HMC information (hmc ip is on HostName field of "resource N" stanza):
gz@aix# lsrsrc "IBM.ManagementServer"
or
gz@aix# lsrsrc IBM.MCP

Sometimes you may get error on the above command, like:
gz@aix# /usr/sbin/rsct/bin/lsrsrc-api: 2612-010 Resource class IBM.ManagementServer is not defined.
In this case, you can search for the hostname or ip of hmc on the file:
/var/ct/cfg/ctrmc.acls

И еще, по включению RMC
под старую версию
https://www.ibm.com/developerworks/community/blogs/cgaix/entry/february_24_2011_6_51_pm79?lang=en
https://www.ibm.com/developerworks/community/blogs/cgaix/entry/dlpar_and_aix_5_32?lang=en

http://unixhood.com/main/2013/07/14/check-and-reset-the-lpar-rmc-connection-with-hmc/

было найдено сильно позднее, что-то типа листа дагностики
http://www-01.ibm.com/support/docview.wss?uid=isg3T1012915


четверг, 21 ноября 2013 г.

Перезапуск сервисов в разных ОС на примере sshd

http://www.starnet.com/xwin32kb/restart_sshd

для 10 соляриса на самом деле методов несколько:
1) svcadm disable ssh; svcadm enable ssh
2) svcadm restart ssh
3) svcadm restart svc:/network/ssh:default
4) /lib/svc/method/sshd restart
5) kill -HUP `cat /var/run/sshd.pid`

С 10 солярисом есть особенность: если конфиг-файл был ошибочен, всякими svcadm restart ssh сервис не поднимается и порт не слушается, хоть уже установленные соединения и не рвутся. Система переходит в maintenance, проверять так:
svcs -xv ssh
(точного вывода нет, поэтому примерно)
State: maintenance since Thu Mar 24 19:26:28 2011
Reason: Start method exited with ...
   See: /var/svc/log/network-ssh:default.log
Impact: This service is not running.

Смотрим этот самый лог на предмет ошибок
tail /var/svc/log/network-ssh\:default.log

исправляем, выводим из maintenance, запускаем, проверяем
# svcadm clear ssh
# svcadm restart ssh
# svcs -xv ssh
svc:/network/ssh:default (SSH server)
 State: online since 20 пҐп+я¦п¦я-я¦ 2013 пЁ. 11:39:44 MSK
   See: man -M /usr/share/man -s 1M sshd
   See: /var/svc/log/network-ssh:default.log
Impact: None.

И на всякий случай netstat -an|grep 22 |grep LISTEN

SMF — управление сервисами в Solaris

суббота, 16 ноября 2013 г.

debian: socket() failed (24: Too many open files)

Настройки дебиана для сервера далеко не оптимальны, в частности лимит на количество открытых файлов. Это затрагивает много серверного софта, например mysql, apache, nginx...

В частности, следвие для nginx -  в логе
socket() failed (24: Too many open files)

среда, 13 ноября 2013 г.

jira: java.lang.OutOfMemoryError: Java heap space

Когда джире мало памяти, могут быть ошибки вида
com.atlassian.core.AtlassianCoreException: Error in action: <a href='mailto:com.atlassian.jira.action.admin.DataExport@7c523802'>com.atlassian.jira.action.admin.DataExport@7c523802</a>, result: error<br/> Ошибка при экспорте данных: java.lang.OutOfMemoryError: Java heap space

Кончилась память, которая выставляется через -Xmx. Но для начала теория, что там бывают за виды ошибок с памятью

Теперь увеличиваем память. Смотрим, где лежит bin-каталог
# cat /etc/init.d/jira|grep BIN
BIN='/opt/jira/JIRA 4.2/bin'

переходим туда (если в пути есть пробелы, не забываем их экранировать или брать путь в кавычки) и правим setenv.sh, нужна строка
JVM_MAXIMUM_MEMORY="512m"
увеличиваем до 1024 например.

чуть об отладке

четверг, 7 ноября 2013 г.

Семь уязвимостей в IPMI-прошивках Supermicro

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

Разработчики проекта Metasploit раскрыли данные о семи уязвимостях в IPMI-прошивках серверных продуктов Supermicro и опубликовали прототипы эксплоитов. Проблемы остаются неисправленными, несмотря на то, что приватное уведомление об их наличии было отправлено сотрудникам Supermicro три месяца назад.

Но надо понимать, что косяки такого рода есть у всех
Из подверженных проблемам серверных систем отмечены серверы на базе контроллеров HP Integrated Lights Out (iLO), Dell DRAC и IBM Remote Supervisor Adapter.
http://www.opennet.ru/opennews/art.shtml?num=37554

среда, 30 октября 2013 г.

php+debian: проблемы с max_input_vars

Очередная бага дебиляна:
http://stackoverflow.com/questions/19042734/is-there-a-limit-like-max-input-vars-in-versions-before-5-3-9
есть условный сервер с проектом на битриксе, к которому не покупалось поддержки и он не работает на 5.4, поэтому нужна версия именно 5.3. А в дебиляне это
PHP 5.3.3-7+squeeze17 with Suhosin-Patch (cli) (built: Aug 23 2013 15:06:16)
Все норм дистры позволяют обновиться до более поздних версий (5.4 не подходит), а тут - штатно без вариантов.

Суть бага: установка max_input_vars в  версиях ниже 5.3.9 не имеет значения, ограничение в 1000 прописано в коде, хотя даже по phpinfo всё выставлено верно.

Самый простой вариант - на dotdeb есть 5.3.9+ (5.3.25, 5.3.27...)
Установка php 5.3 на Debian 7 Wheezy
Не забываем ограничить "наглость" репы, иначе половину пакетов заменит, в том числе то что не нужно.

Вот 5.4 ставить лучше оф, если нет особой нужды именно в последних версиях - штатная конечно будет устаревшей, но относительно проверенной "миллионами хомячков".

mpt-statusd: detected non-optimal RAID status

Есть у дебиана 7 (странный) глюк при развороте на vmware esxi:
в /var/log/messages пишет
mpt-statusd: detected non-optimal RAID status
при том, что никакого рейда там нет.

Фикс:
service mpt-statusd stop
 update-rc.d mpt-statusd disable

вторник, 29 октября 2013 г.

debian: allow-hotplug и auto, что это и чем отличаются

Суть в том, что в дебиане после установки зачастую в /etc/network/interfaces есть только строка allow-hotplug, но нет auto, поэтому есть проблемы с получением адреса по dhcp, сеть гарантированно не поднимается после service networking restart и нужно делать принудительно dhclient eth0

if eth0 is allow-hotplug but not auto it will be started at boot when the hardware is found, or when the hardware is attached (eg USB) but not when /etc/init.d/networking is run, which only calls ifup -a.
http://forums.debian.net/viewtopic.php?f=5&t=47649

allow-hotplug говорит о том что этот интерфейс запускается не через /etc/init.d/networking а через что-то другое. если Вы хотите управлять интерфейсами через скрипт /etc/init.d/networking - замените allow-hotplug на auto
http://ru-nix.livejournal.com/18890.html

Насколько я понимаю, allow-hotplug - применить настройки при обнаружении устройства (разово), а auto - при поднятии интерфейса. Поэтому настройка фаервола и статики лучше делается через allow-hotplug, а dhcp через auto. Но я могу ошибаться.

И на всякий случай из ЖЖ  блок кода с примерами автонастройки фаервола и статики.
Пример /etc/network/interfaces:
auto lo
iface lo inet loopback
pre-up /sbin/iptables-restore < /var/lib/iptables/rules

allow-hotplug eth1
iface eth1 inet static
address IP адресс провайдера
netmask 255.255.255.X
hwaddress ether 00:E0:4C:A2:C4:48
network Х.Х.Х.0
broadcast Х.Х.Х.255
gateway Х.Х.Х.Х 
dns-nameservers Х.Х.Х.X Х.Х.Х.Х
up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.17.254 eth0
auto eth1

iface eth0 inet static
address 192.168.Х.Х
netmask 255.255.255.0
up route add -net 10.0.10.0 netmask 255.255.255.0 gw 10.0.0.1 dev $IFACE
up route add -net 10.0.20.0 netmask 255.255.255.0 gw 10.0.0.1 dev $IFACE
up echo Interface $IFACE going up | /usr/bin/logger -t ifup
down echo Interface $IFACE going down | /usr/bin/logger -t ifdown
auto eth0

И еще сайт,
http://xmodulo.com/2012/05/how-to-run-iptables-automatically-after.html

Ещё линки
http://www.debian.org/doc/manuals/debian-reference/ch05.en.html
https://wiki.debian.org/NetworkConfiguration
http://forums.debian.net/viewtopic.php?f=5&t=47649



воскресенье, 27 октября 2013 г.

MySQL+SSL репликация

Репликация у MySQL изначально без шифрования, что снижает нагрузку на систему, но при разнесении базы на несколько площадок возникает вопрос безопасной репликации. Это можно делать как через сторонние тоннели, так и штатными методами через SSL. Будем делать штатными методами.

четверг, 24 октября 2013 г.

Немного про zfs send

Команда zfs send создает потоковое представление снимка, передаваемое на стандартный вывод. По умолчанию генерируется полный поток. Выходные данные можно перенаправить в файл или в другую систему. Команда zfs receive создает снимок, содержимое которого помещается в поток, направляемый на стандартный ввод. При получении полного потока также создается новая файловая система. С помощью этих команд можно отправлять и получать данные снимков ZFS и файловых систем.
http://docs.oracle.com/cd/E19253-01/820-0836/gbchx/

О надёжности рейдов

Неожиданно обнаружилось, что в блоге нет очень важной заметки про надёжность RAID разных уровней.

http://blog.aboutnetapp.ru/archives/975

"RAID-5 на 7 дисках данных (7d+1p) почти в четыре тысяч раз менее надежен, чем RAID-6, на тех же 7 дисках данных (7d+2p)!"

Почему RAID-5 — «mustdie»?

Почему RAID5 — «must have»?
Но тут следует читать скорее как "почему raid-6 лучше чем raid-10", помня про оочень долгое время перестроения у raid-5 и существенное снижение производительности, в отличии от той же 10, где надо отзеркалировать только 1 диск, вообще без вычислений, и существенный рост нагрузки на оставшиеся диски, с шансом "добить" еще диск и гарантированно потерять весь массив.
Ну и про write hole помним.

публикация консольных "плюшек" с голосовалкой за лучшие

What's this?
commandlinefu.com is the place to record those command-line gems that you return to again and again.
Delete that bloated snippets file you've been using and share your personal repository with the world. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

http://www.commandlinefu.com/commands/browse

debian: ставим утилиты для raid-контроллеров

Штатно в дебиляне нет программ для управления raid-контроллерами, того же arcconf. Исправим это недоразумение.

Подключаем доп репу hwraid (на примере 7, для 6 заменяем wheezy на squeeze)
cat > /etc/apt/sources.list.d/hwraid.list <<EOF
deb http://hwraid.le-vert.net/debian wheezy main
EOF
(а вообще -- branch can be lenny, squeeze, wheezy and sid for debian, or hardy, intrepid, jaunty and lucid for ubuntu.)

GPG сигнатуры
wget -O - http://hwraid.le-vert.net/debian/hwraid.le-vert.net.gpg.key | sudo apt-key add -

обновим листы
apt-get update

Теперь доступны такие утилиты как aacraid-status, arcconf, cciss-vol-status, hpacucli, megactl итд.

Да, при попытке установить ASM выдаст, что не может найти jre5 или jre6, надо искать последнюю рабочую версию jre-6 на просторах интернета.

Линки

среда, 23 октября 2013 г.

File System Latency

Красивое и достаточно подробное описание дисковых операций, 1 и 2 часть - теория, применима не только к соляре. 3 и 4 - практика, солярис. 5 - что-то вроде итогов и утилиты, тоже можно посмотреть, те же strace и truss есть и в линуксе.

http://dtrace.org/blogs/brendan/2011/05/11/file-system-latency-part-1/
http://dtrace.org/blogs/brendan/2011/05/13/file-system-latency-part-2/

http://dtrace.org/blogs/brendan/2011/05/18/file-system-latency-part-3/
http://dtrace.org/blogs/brendan/2011/05/24/file-system-latency-part-4/
http://dtrace.org/blogs/brendan/2011/06/03/file-system-latency-part-5/

воскресенье, 20 октября 2013 г.

CentOS: subversion 1.7, 1.8 от WanDisco

centos 5:
Для 5 есть только 1.7, можно скачать пакетами, можно добавить репу wandisco.
Пакетами:
http://opensource.wandisco.com/centos/5/devel/RPMS/i386/
http://opensource.wandisco.com/centos/5/devel/RPMS/x86_64/

Через репу:
cat > /etc/yum.repos.d/wandisco.repo <<EOF
[wandisco]
name=subversion 1.7
baseurl=http://opensource.wandisco.com/centos/\$releasever/devel/RPMS/\$basearch/
enabled=1
gpgcheck=0
EOF

centos 6:
пакеты можно взять тут:
http://opensource.wandisco.com/centos/6/
выбираем 1.7 или 1.8

!!!При ручной установке пакетов предварительно удаляем старый svn!

Через репу - по аналогии как для 5, подставляем нужную версию, адрес получаем после посещения сайта.


Инструкция по настройке доступа через dav (http)
http://kianmeng.org/blog/2012/12/11/subversion-1-dot-7-x-installation-and-configuration-for-centos-5-dot-x/
Можно еще через inetd, в архиве должно быть.

среда, 16 октября 2013 г.

LTFS -- Linear Tape File System

Ленточная ФС, позволяющая работать с лентой как с диском. Существует как минимум 3 версии, и как минимум 5 версий ПО от разных вендоров (quantum, oracle, ibm, hp). Quantum-версия (qtmltfs) работает через fuse, так что будет весьма тормозной.

http://en.wikipedia.org/wiki/Linear_Tape_File_System
http://h71028.www7.hp.com/enterprise/us/en/solutions/storage-linear-tape-file-system.html
http://stream0.org/2011/08/04/setting-up-a-quantum-lto5-tape-drive-on-debian/
http://www.lto.org/About/faq.html

Перекачиваем файлы по сети

Наиболее простой метод -- используя sshfs или nfs, но иногда такой возможности нет, а нужно например закачать 3тб данных на ленту, при том что на дисках доступно менее 1тб.

Наиболее простой метод - через netcat
Вариант "залить на ленту"
на получателе:
nc -l -p 9876 | dd bs=1k of=/dev/st0

на источнике:
tar -cf - /dir | nc -c 1.1.1.1 9876

Можно на получателе делать не через dd а через простое перенаправление ">", но работает это несколько странно и тар при проверке говорит "неожиданный конец архива".

Вариант "залить на диск"
на источнике:
cd /path/to/directory
find|cpio -ov|nc -l -p 9999

на получателе:
cd /path/to/directory
nc адрес 9999|cpio -idmv
(тут слушатель не получатель а отправитель).
Есть вариант через tar, но "вместо cpio можно использовать tar, но в нём я столкнулся с проблемой - криво копируются симлинки, указывающие на абсолютный путь"
http://mydebianblog.blogspot.ru/2008/07/netcat.html

большая дока по
http://handynotes.ru/2010/01/unix-utility-netcat.html

pipe viewer

http://handynotes.ru/2010/01/unix-tool-pipe-viewer.html

вторник, 15 октября 2013 г.

Подключаем ленточную библиотеку на примере HP MSL2024+debian 7

Знакомимся с ленточными библиотеками на примере HP MSL2024, на 24 ленты, 2 RU, версия под LTO-5 c SAS выходом.
О начальном конфигурировании: Configuring the Tape Library

Библиотека достаточно капризная, например она не заводится со многими контроллерами, в частности с adaptec ServeRaid 8k не заработало. Точнее, увидело только читалку, но не робота (changer) и выдавало
[    1.869977] scsi 3:3:0:0: Sequential-Access HP       Ultrium 5-SCSI   Z58W PQ: 0 ANSI: 6
[    1.874392] scsi 3:3:0:0: Unexpected response from lun 1 while scanning, scan aborted

четверг, 10 октября 2013 г.

Создание плана резервного копирования

http://www.opennet.ru/base/sys/backup_plan.txt.html
Основной документ, хорошая основа, но не идеален.

http://www.certification.ru/library/articlesdir/big99.html?156

http://www.ibm.com/developerworks/ru/edu/au-restoreaix/section2.html

http://habrahabr.ru/company/veeam/blog/163405/
В основном рекламная чушь, но дельные мысли тоже есть, поэтому почитать стоит.

http://www.xakep.ru/magazine/xs/062/046/1.asp
главы "стратегия", "Пример из реальной жизни" (всё остальное там чепуха)

http://technet.microsoft.com/ru-ru/library/hh202195.aspx
http://technet.microsoft.com/ru-ru/library/hh202183.aspx
http://technet.microsoft.com/ru-RU/library/hh202194.aspx
http://technet.microsoft.com/ru-ru/library/hh202169.aspx
Несколько однобоко, но не просто слоова и теория, а неплохая основа для переработки под свои нужды.

вторник, 8 октября 2013 г.

bacula: делим конфиг файлы на части

в /etc/bacula/bacula-dir.conf вставляем

Director { ...}
Console { ... }

# Include split config files.
@/etc/bacula/conf.d/catalogs.conf
@/etc/bacula/conf.d/filesets.conf
@/etc/bacula/conf.d/jobdefs.conf
@/etc/bacula/conf.d/messages.conf
@/etc/bacula/conf.d/pools.conf
@/etc/bacula/conf.d/schedules.conf
@/etc/bacula/conf.d/storages.conf

# Read client directory for config files. Remember to bconsole "reload" after adding a client.
@|"sh -c 'cat /etc/bacula/conf.d/clients-enabled/*'"

По аналогии остальные конфиги правим.

https://gist.github.com/mashdot/2312522

понедельник, 23 сентября 2013 г.

solaris: включаем систему статистики sar

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

среда, 18 сентября 2013 г.

Debian 7: downgrade php to 5.3

В дебиане штатный пых версии 5.4, но иногда требуется 5.3, как в 6 версии. Нужная нам плюшка называется oldstable, ставится так: в /etc/apt/sources.list дописываем
deb http://ftp.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free

apt-get update

Теперь 2 варианта: выставляем приоритеты пакетам
в /etc/apt/preferences.d/preferences (надо файл создать)
Package: php5*
Pin: release a=oldstable
Pin-Priority: 700

Package: libapache2-mod-php5
Pin: release a=oldstable
Pin-Priority: 700

Package: php-pear
Pin: release a=oldstable
Pin-Priority: 700

Package: php-apc
Pin: release a=oldstable
Pin-Priority: 700

Package: *
Pin: release a=stable
Pin-Priority: 600

ну и обновляем то, что уже стоит
PHP=$(dpkg -l|grep php|grep 5.4.4|awk '{print $2}')
apt-get install --reinstall $PHP

или просто ставим нужные версии руками через
apt-get install php5=5.3.3-7+squeeze14
версию вынесем в переменную
VERSION="5.3.3-7+squeeze14"
и чтобы не было конфликтов, ставим базу отдельно
1) apt-get install php5=$VERSION
2) apt-get install php5-common=$VERSION
3) apt-get install php5-cli=$VERSION
после этого доставляем нужные модули, зависимости уже подтянет само. Но это уже изврат, имхо. Да, и не забываем зафиксировать версии, чтобы не обновило на 5.4 (для 1 варианта неактуально!)
aptitude hold php5 php5-cli php5-common

линки
http://blog.wpkg.org/2013/06/20/downgrading-to-php-5-3-on-debian-wheezy-7-0/
http://rusadmin.biz/ustanovka-php-5-3-na-debian-7.html
http://forums.debian.net/viewtopic.php?f=17&t=104075

.htaccess и php_value mbstring.func_overload

Боян конечно, но мы только недавно столкнулись: в htaccess больше нельзя прописать php_value типа mbstring.func_overload (http://bugs.php.net/bug.php?id=47187&edit=1)

Достаточно простое решение без всяких fastcgi:

<IfModule mod_php5.c>
    php_value default_charset UTF-8
    php_admin_value mbstring.func_overload 2
    php_value mbstring.internal_encoding UTF-8
    php_admin_value realpath_cache_size "4096k"
</IfModule>

четверг, 12 сентября 2013 г.

Сварка оптических волокон

Очень интересное описание процесса работы с оптикой

http://habrahabr.ru/post/193146/
Сварка оптических волокон. Часть 1: кабели и их разделка, оптический инструмент, муфты и кроссы, коннекторы и адаптеры

Отличия свичей L2 и L2+

L2+ "обычно" называют коммутатор уровня 2, но с расширенной функциональностью, чаще всего имея ввиду именно поддержку VLAN-ов 802.1q

Часть операций он может выполнять и на уровне Layer3-4 (например на портах выставлять QoS с приоритезацией по UDP/TCP портам, но при этом маршрутизировать не может).


http://forum.ixbt.com/topic.cgi?id=14:44486

А маршрутизация VLAN это уже L3

понедельник, 9 сентября 2013 г.

Ускоряем работу umi.cms

Есть такая CMS от UMI, отличается даже большей тормознутостью чем битрикс и в целом несколько сложной разработкой.

Есть сервер, на базе core i7, не загруженный, но со временем открытия страниц порядка 7с. Попробуем несколько ускорить.

среда, 4 сентября 2013 г.

solaris: аналоги netstat -npl, -tulpn

Варианты не 1-в-1, но можно сформировать список и форматировать уже как надо, главное понять принцип.

Через lsof (ставится отдельно)
lsof -i TCP|fgrep LISTEN

получение списка без lsof
pfexec pfiles `ls /proc` 2>/dev/null | egrep '^[0-9]|port:' | grep -v "AF_INET6" | sed -e 's/sockname: AF_INET//' -e 's/ *port: /:/'

вариант 2, фильтрованный
pfiles /proc/* 2>&- |
  nawk 'END {
  if (f) print p
    }
/^[0-9]/ {
    if (f) print p, RS
    p = $0
    f = 0
  }
/INET / {
  sub(/.*INET/,"")
  p = p ? p RS $0 : $0
  f = 1
  }'

Вариант  для 1 порта через lsof
lsof -i:port

без lsof надо открывать proc(ls /proc) и парсить, пример есть тут

линки
https://blogs.oracle.com/taz/entry/get_application_pid_listening_on
http://onlineappsdba.com/index.php/2008/06/10/how-to-find-pid-listening-particular-port-on-linuxsolaris-10/
http://stackoverflow.com/questions/91169/what-process-is-listening-on-a-certain-port-on-solaris
http://www.unix.com/solaris/87330-list-tcp-ports-process.html
http://chihungchan.blogspot.ru/2007/03/which-process-listens-to-this-port-in.html

четверг, 29 августа 2013 г.

debian 7: куда сохранять правила для iptables?

Ищем загрузку правил:
grep -rl iptables /etc/
/etc/network/if-up.d/iptables

cat /etc/network/if-up.d/iptables
#!/bin/sh
/sbin/iptables-restore < /var/lib/iptables/rules

Значит, искомый путь в /var/lib/iptables/rules

ЗЫ 
Если стоит ispmanager, он этот файл заполняет, но иногда почему-то при запуске оно игнорируется. Проверить наличие правил: 
iptables -L -v
Если пусто - можно загрузить руками, /sbin/iptables-restore < /var/lib/iptables/rules

среда, 28 августа 2013 г.

opsview: еще система мониторинга

http://www.opsview.com/
Это несколько улучшенный и переточенный nagios, с добавленными графиками и прочим.

http://www.linuxhome.ru/tag/opsview/

Есть в бесплатном и платных вариантах.

Opsview is a software company specializing in enterprise systems monitoring software for physical, virtual, and cloud-based IT infrastructures.[1] Its headquarters is in ReadingEngland, with a US office in Woburn, Massachusetts. The product aims to provide a single, unified view of IT operations. The company claims that more than 30,000[2] businesses and service providers use Opsview to manage their network devices, physical and virtual servers, storage and cloud systems.
Opsview sponsors a freeopen-source software version - Opsview Core. It sells Opsview Pro to SMBs and Opsview Enterprise to larger organisations under a proprietary license.[1]

redmine: Internal error на /settings и /users/1/edit

Ошибка обычно возникает после обновления редмайна, при обращении в /settings и добавлении/правке юзеров, при том что остальное работает нормально.

пятница, 23 августа 2013 г.

solaris 5.10 и нормальный список софта

Поскольку без подписки ничего толком не поставить, надо подключить доп репу, да и не факт что для 5.10 что-то есть уже (январь 2005 года дистр), раньше это была ...wave, вместо которой теперь OpenCSW

Подготовка к работе:
http://www.opencsw.org/manual/for-administrators/getting-started.html

Какой выбрать вариант пакетов:
http://mirror.opencsw.org/opencsw/
DIRECTORIES:
  "unstable" gets a high volume of freshly built updates
  "testing" is a symlink to the current testing release
  "stable" has been deprecated

  "dublin" (a named release) does not get updates
  "kiel" (a named release) is periodically synchronized from "unstable"
  "current" has been removed
  "legacy" is a dead branch with a 2008 snapshot

  "allpkgs" contains all packages that can be found in the archive
            It is available on http://mirror.opencsw.org/opencsw/allpkgs
            and sites mirroring rsync://mirror.opencsw.org/opencsw-full
  "releases" contains symlinks to previously released catalogs

Вообще странно видеть строку ""stable" has been deprecated". Мы для себя выбрали kiel

Пример просмотра пакетов для 5.10 в kiel
http://mirror.opencsw.org/opencsw/kiel/sparc/5.10/

Ставим пакет, например vim
pkgutil -i vim

Если что, конфиг в /opt/csw/etc/pkgutil.conf

вторник, 20 августа 2013 г.

Выпускаем debian через прокси в мир

Довелось настраивать сервер в клиентской сети, где всё нужно пускать через прокси.
Простой вариант:
export http_proxy="http://proxy-name-or-ip:port"

С авторизацией:
export http_proxy="http://user:pass@proxy-name-or-ip:port"

таким же образом могут быть прописаны https_proxy, rsync_proxy, ftp_proxy


линки
https://wiki.archlinux.org/index.php/Proxy_settings

понедельник, 19 августа 2013 г.

postgresql: psql: FATAL: Peer authentication failed for user "postgres"

При простом
psql -U postgres
можно получить
psql: FATAL:  Peer authentication failed for user "postgres"

Решений несколько:
1) sudo -u postgres psql (при записи peer в конфиге даже без запроса пароля)
2) psql -U postgres -h localhost (с запросом пароля)
3) задать PGHOST=localhost



линки

postgresql: "postgres" ?? ?????? ???????? ??????????? (?? ??????)

Обнаружилось на одном сервере при перезапуске porstgresql такое:
# /etc/init.d/postgresql restart
[....] Restarting PostgreSQL 9.1 database server: mainpsql
[....] The PostgreSQL server failed to start. Please check the log output: 2013-08-19 11:21:00 MSK ???????: ??????? ?? ???? ?????????: 2013-08-19 11:20:58 MSK 2013-08-19 11:21:00 MSK ???????: ??????? ?? ?????? ????????? ??????????? 2013-08-19 11:21:00 MSK ???????: ??????? ??????? ??????????? ?????? 2013-08-19 11:21:00 MSK ???????: ???????? ????????? ????? 2013-08-19 11:21:00 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:01 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:01 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:02 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:03 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:03 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:04 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:04 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:05 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:05 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:06 MSK ?????: ???????????? "postgres" ?? ?????? ???????[FAIL???????? (?? ??????) ... failed!

 failed!

# cat /etc/debian_version
7.1

Очень похоже на глюки в перекодировке, потому что в putty что в режиме utf-8, что cp1251 - показывает только вопросы, что характерно (с).

#cat /etc/postgresql/9.1/main/postgresql.conf|grep -i utf
lc_messages = 'ru_RU.UTF-8'                     # locale for system error message
lc_monetary = 'ru_RU.UTF-8'                     # locale for monetary formatting
lc_numeric = 'ru_RU.UTF-8'                      # locale for number formatting
lc_time = 'ru_RU.UTF-8'                         # locale for time formatting

Вот и виновники. Вот какой идиот на СЕРВЕРЕ включает сообщения на русском? Это же не рабочая станция, вдобавок парсить логи потом будет той ещё проблемой.
Поправим этот дебилизам:
sed -i '' -e 's#ru_RU#en_US#g' /etc/postgresql/9.1/main/postgresql.conf

После этого в логе может появиться ругань
FATAL:  invalid value for parameter "lc_messages": "en_US.UTF-8"
(у нас появилось на машине с постгресом 9.1 + дебилян 7.1, тогда как 8.4 + 6 деб - ругани нет)

В этом случае самое простое -- закомментировать lc_* и всё заработает.

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

среда, 14 августа 2013 г.

Обновляем debian с 6 на 7

Есть офдока, ниже краткая выжимка + Что нужно знать о wheezy

Сначала надо обновить систему до последней версии
apt-get update
apt-get upgrade -y

Теперь прописываем новую версию в apt
# sed -i'' -e "s#squeeze#wheezy#g" /etc/apt/sources.list
sed -i'' -e "s#squeeze#wheezy#g" /etc/apt/sources.list.d/*

И обновляем.
apt-get update
apt-get upgrade

В связи с переходом на udev доставим пакетик...
apt-get install udev
желающим использовать ядро 2.6:
apt-get install linux-image-2.6-amd64
обновить загрузчик (но работать будет и так)
update-grub

и обновляемся на 7.
apt-get dist-upgrade

Если в mount мешают записи типа
/dev/disk/by-uuid/
то в /etc/default/grub раскомментировать
GRUB_DISABLE_LINUX_UUID=true
и обновить загрузчик
update-grub


понедельник, 12 августа 2013 г.

Получаем информацию об оборудовании

Потребовалось посмотреть начинку для solaris 10.0 под sparc, гугление долго ничего не показывало. И вдруг обнаружилась крайне интересная статейка
32 vs 64: Как определить битность операционной системы и процессора
Начало бесполезно, а вот дальше шли основные диагностические команды, по которым стало понятно всё о начинке, в частности isainfo -kv, psrinfo -v, prtdiag
Плюсом про HP-UX, AIX есть.

Ниже копипаста, мало ли исчезнет оригинал.

вторник, 6 августа 2013 г.

linux: mysql binlog + logrotate = создание тысяч файлов

При включении систем ротации логов нужно проверять, что бинлоги не попадают в ротацию, иначе при активной работе с базой появляется куча файлов вида
mysql-bin.000001.1.gz.2.gz.1.1
.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1
...
mysql-bin.000001.1.gz.2.gz.1.1
.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1

Правильнее делать самой базой
expire_logs_days        = 10
max_binlog_size         = 128M
и они сами будут создаваться, удаляться. А вот для всяких slow_log можно оставить.

среда, 24 июля 2013 г.

linux: немного про управление upstart

Постепенно все переходят на систему upstart, и по неопытности приходится видеть сообщения вида
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql status

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the status(8) utility, e.g. status mysql

Теперь всё управление запуском идёт через скрипты в /etc/init/

Больше никаких update-rc.d...
Управлять сервисами можно через service, типа
service mysql status
можно просто
start mysql; restart mysql; status mysql; stop mysql
только не перепутайте restart и reboot :)

proxmox: create vm : error cluster not ready - no quorum ??

Бывает, если не хватает нод (например есть система из 2 нод, 1 отпала, больше машины не создаются)
Быстрый фикс: в консоли живой ноды
pvecm e 1
но вообще лучше устранить проблему, чтобы кворум был.

Проверить настройки
pvecm status |grep Quorum

Таким же методом можно удалить ноду из системы, где их было всего 2.

proxmox: запуск ubuntu в vz-контейнере

Как обычно, сначала выкачиваем шаблон (templates), create CT, вводим что и где.

Теперь об интересном: о настройке.

понедельник, 22 июля 2013 г.

FreeBSD: freebsd-update и Fetching public key from updateX.FreeBSD.org... failed.

freebsd-update fetch
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching public key from update5.FreeBSD.org... failed.
Fetching public key from update3.FreeBSD.org... failed.
Fetching public key from update4.FreeBSD.org... failed.
Fetching public key from update2.FreeBSD.org... failed.
No mirrors remaining, giving up.


вторник, 16 июля 2013 г.

resize2fs: Couldn't find valid filesystem superblock.

Например:

# resize2fs /dev/vg-www/www
resize2fs 1.41.12 (17-May-2010)
resize2fs: Device or resource busy while trying to open /dev/vg-www/www
Couldn't find valid filesystem superblock.

Для нас было актуально, когда надо было ресайзить /var/www без перезагрузки системы и желательно даже без отмонтирования раздела, благо облако selectel такое позволяет, и даже LVM уже умеет на лету увеличиваться. Проблема оказалась чисто в изменении размера раздела.

UP: как оказалось, эта ошибка в_том_числе значит, что нужно было сделать fsck (на отмонтированном разделе опять же). Вот такая тут магия.

vmfs - ФС у esx(i)

Плюшки:
VMFS — кластерная файловая система, разработанная VMware для хранения образов виртуальных машин. Некоторые особенности VMFS:
Максимальный размер файлв - до 2 ТБ
Высокая производительность - доступ к vmdk файлу по скорости лишь немного уступает скорости прямого чтения с диска
Поддержка кластерности - возможность множественных обращений с различных хостов к VMFS раздел (но не более 64 ESX-серверов[1])
Файловая система является проприетарной, но существует свободная реализация, которая позволяет получить доступ к файловой системе в режиме только для чтения.
http://xgu.ru/wiki/VMFS

Дальше минусы. В линуксе можно монтировать её в режиме read-only, поставив vmfs-tools (который судя по всему уже 4 года не развивается вообще и фактически рип), вдобавок оно fuse, то есть будет дико медленным.

Заявлялась поддержка freebsd 7.2, а дальше видимо никто не проверял.

Линки
http://glandium.org/projects/vmfs-tools/
http://en.wikipedia.org/wiki/VMware_VMFS
http://www.stableit.ru/2011/04/vmfs-vmware-esxi-ubuntu-1010-vmfs-tools.html

понедельник, 15 июля 2013 г.

четверг, 11 июля 2013 г.

proxmox: Поднимаем centos 6 в ovz-контейнере

Как оказалось, настроить centos в ovz сложнее, чем полноценную KVM виртуалку.

Итак, имеем proxmox-ve-2.6.32 (3.0-100) и хотим поставить centos 6.

0. Некоторые замечания
Что где искать?
шаблоны, которые загружаются в local (место создано по умолчанию, локально)
/var/lib/vz/template/cache/

для созданных нами точек:
/mnt/pve/(название)/template/cache

глобальные настройки openvz
/etc/vz/vz.conf

Также можно заглянуть в

пятница, 5 июля 2013 г.

Subversion 1.8.0

Чуть запоздало:
Увидела свет система управления версиями Subversion 1.8.0

Из основных отличий - переход с NEON на SERF, который должен быть быстрее (фряшникам неактуально, серф опцией еще в 1.6 был).. Чуть улучшили мержи, FSFS. В общем, можно перейти, но я не вижу вау-фишек как в 1.7 централизация .svn

Теперь во freebsd порт devel/subversion указывает на 1.8, и если нужно сохранить 1.7 -- переходим на devel/subversion17

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

четверг, 4 июля 2013 г.

получаем ssh fingerprint для хоста

При первом подключении к серверу запрашивается
The authenticity of host 'nnn.nnn.nnn.nnn' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? no

А как этот самый принт получить? (например, для автоматического добавления)
# ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
2048 1a:b9:2c:dc:99:a6:57:14:5e:b4:b0:f4:62:a4:1a:3d  root@ubuntu (RSA)

понедельник, 1 июля 2013 г.

понедельник, 24 июня 2013 г.

FreeBSD: fail2ban - базовая настройка

fail2ban это универсальная система для защиты от атак перебором, в том числе на ssh, телефонию, ftp итд.
Более простая система - denyhosts, но она следит только за ssh, тогда как возможности fail2ban гораздо шире.

четверг, 20 июня 2013 г.

среда, 19 июня 2013 г.

Компания Oracle молча перевела man-руководства MySQL на проприетарную лицензию

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

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

Король мёртв... Да здравствует король! В общем, пора переходить на марию/перкону. И привет ламерам с sql.ru, у которых "у тебя версия не сана/оракла? Ставь официальный и возвращайся". Оракл аккуртно душит продукт, и дальше будет только хуже, привет закрытые модули и зажатые исходники. Но полностью его не закроют, не просто так же заплатили 1ккк долларов в том числе за мускуль.
Мне кажется, что будет повторена судьба опенсоляриса: если раньше опен был тестовой площадкой перед внедрением плюшек в соляру, сейчас это весьма урезанная версия, отстающая от соляры на год-другой, и без ряда некоторых интересных вещей. Тут тоже бесплатная версия относительно энтерпрайз будет остающей на пару лет, всё наиболее интересное будет в закрытых платных модулях, дыры будут закрываться по году, никаких официальных форумов по бесплатной версии не будет...

понедельник, 10 июня 2013 г.

DNAME бесполезен?

DNS: DNAME Is Useless
DNAME understanding
wiki: CNAME record

A DNAME record or Delegation Name record is defined by RFC 6672
A DNAME record creates an alias for an entire subtree of the domain name tree. In contrast, the CNAME record creates an alias for a single name and not its subdomains. Like the CNAME record, the DNS lookup will continue by retrying the lookup with the new name.

Для чего это могло бы пригодиться? Например, сделать редирект с одного домена на другой, целиком. Но увы, не получится: основной домен всё-равно редиректить не будет и нужна А запись. То есть, для домена запись
@ IN DNAME new.com.
@ IN A 1.2.3.4

примерно превращается в
@ IN A 1.2.3.4
* IN CNAME new.com.
Отличие только при попытке обратиться к поддоменам вида a.b.c.d.domain, что бывает нужно редко. При этом если в BIND 9.6 прописать * CNAME new.com. - работать будет в том числе для поддоменов не-единичной вложенности, что было проверено на практике.

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

А что делать, если надо сделать полный редирект для всего домена? Прописать А записи в ту же зону .com никто не даст, поэтому нужен сервер, который будет делать этот самый редирект. Плюс CNAME при необходимости.

среда, 1 мая 2013 г.

Dell: Sliding Rail installation guidline


Cable Routing Procedures for Dell™ PowerEdge™ R320 & R420 Systems
http://i.dell.com/sites/content/shared-content/data-sheets/en/Documents/R320_R420_Cabling_White_Paper.pdf
Красиво, в цвете и картинках

Dell Sliding Rail installation guidline
http://www.youtube.com/watch?v=g8gTTFiOh84
Видео, как ставится cable management arm, снимает ряд вопросов.

Rack Installation Guide
http://www.noesisinc.com/links/DellDocs/PowerEdge2650/RackMounting/7W226A00.pdf
Более полная и подробная инструкция, больше первой раза в 2. Но не такая красивая.

И немного от себя.
В комплекте к sliding rails есть проводок status indicator cable, он дублирует показания "системного цвета" (например, при норм работе сзади и на LCD экране подсветка голубая, при отказе диска всё становится оранжевым). Подключается около светящегося сзади огонька. Прицепляется на сам "хобот"-органайзер, который двигается. Около места выхода кабелей сверху есть впадинка под индикатор. Как оно туда цепляется, мы понять не сумели, приложение умеренной силы результата не дало.

Также в комплекте есть 2 небольшие железки, они обозначены Side A & Side B и прицепляются на рельсы около выступов с такими же надписями, чуть глубже (ближе к переднему краю), на пару см. Есть размещение с закреплением концов органайзера справа и слева, нормальное размещение для R420 слева - замки на органайзере будут сверху. Можно разместить справа, но тогда будет сложность с заменой БП - надо будет снимать этот органайзер.

суббота, 27 апреля 2013 г.

postfix: очистка почты

Оказалось, что с почтой в exim и postfix надо работать по разному. Про exim уже была неплохая подборка, теперь на очереди postfix.

Где лежат исходящие письма (линь):

/var/spool/postfix/deferred/ - сами сообщения
/var/spool/postfix/defer/ - сообщения о процессе доставки (например, почему отложено)

пятница, 26 апреля 2013 г.

idle3-tools

http://idle3-tools.sourceforge.net/


Idle3-tools provides a linux/unix utility that can disable, get and set the value of the infamous idle3 timer found on recent Western Digital Hard Disk Drives.
It can be used as an alternative to the official wdidle3.exe proprietary utility, without the need to reboot in a DOS environement.
A power off/on cycle of the drive will still be mandatory for new settings to be taken into account.

Для centos эта утилита есть в репе CentALT.

пятница, 12 апреля 2013 г.

SuperMicro Battery Backup Power (BBP)

http://www.supermicro.nl/products/nfo/BBP.cfm

dell и supermicro

Ко многим серверам dell можно подобрать аналоги у супермикры, например для R420:
2.5"
http://www.supermicro.nl/products/system/1U/1027/SYS-1027B-URF.cfm
или версия с 1 БП
http://www.supermicro.nl/products/system/1U/1027/SYS-1027B-MTF.cfm

3.5"
http://www.supermicro.nl/products/system/1U/6017/SYS-6017B-URF.cfm
http://www.supermicro.nl/products/system/1U/6017/SYS-6017B-MTRF.cfm

Плюс SAS контроллер.

Под R620 вариантов больше, но тут уже надо сравнивать параметры, например там половина моделей заточена под установку GPU, и сложнее с выбором мощности БП.

У dell основные преимущества это pro support, в том числе исправление неполадок за 4 часа на месте.

вторник, 9 апреля 2013 г.

Apache Thrift

Универсальный коннектор между языками программирования, но может использоваться и в связке с некоторыми nosql-базами.

The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages.

http://thrift.apache.org/

понедельник, 8 апреля 2013 г.

How to Configure IPMI on a Dell PowerEdge running Red Hat Enterprise Linux

http://lonesysadmin.net/2007/06/21/how-to-configure-ipmi-on-a-dell-poweredge-running-red-hat-enterprise-linux/

Dell PowerEdge 12G поколение и FreeBSD

По списку совместимости на 12 поколении dell (на базе Е5-2400, Е5-2600 например) работает FreeBSD 9.0+. Ниже по всей вероятности уже не заработает.
Основные узкие места:

  • RAID контроллеры H-серии (310, 710, 810) -- в основе LSi 2008 и 2208. 2008 работает и на 8 версии без проблем, 2208 пока проверить не доводилось. 2108 на 8 версии тоже работает, если что (вроде 700 серия была такая). Если что - есть системная утилита mfiutil, так как фирменная от LSi убога.
  • Сеть. Тут Broadcom BCM5720, и иногда всплывают проблемы вроде такой. Можно решить установкой отдельной интел-сетевой или убрать iDRAC (?)
http://engineering.wayfair.com/freebsd-9-0-on-dell-poweredge-12g-servers/

Также с сетью может быть такое:
bge0: link state changed to DOWN
bge0: link state changed to UP
bge0: link state changed to DOWN
bge0: link state changed to UP
десятки раз в секунду. Мне помогло в /boot/loader.conf
dev.bge.0.msi = 0
dev.bge.1.msi = 0

Кому-то может пригодиться ещё (при watchdog timeout - resetting)
hw.bge.allow_asf = 0
hw.pci.enable_msix = 0

Dell PERC (рейд-контроллеры) H310, H710, H710p

Dell PowerEdge Raid Controller - PERC

Особенности.
Эти серии -- под специальный разъём, состоят из 2 частей: SAS порты размещаются на материнской плате, и внешний заменяемый модуль, который подключается к этим портам.

H310 - HBA, в основе LSISAS 2008
H710, H710P - в основе LSISAS2208 dual-core PowerPC ROC (хотя тут указан чип LSI SAS 2108)
P-версия имеет поддержку CashCade (какой версии?) - SSD кэш, из отличий только памяти не 512Мб а 1Гб + лицензия на этот cachecade. 0 1 2 3 4
Есть 2 версии CacheCade - 1 умеет кэшировать только чтение, а 2.0 - ещё и запись. Ограничение - до 32 кэш-дисков на контроллер, макс 512Гб.

При желании/необходимости можно вшить прошивку от оригинального LSi (сравнивать с сериями 9260, 9280), сняв всякие локи на фирменные SSD, но смысл? Правильнее тогда -- поставить отдельный контроллер например от Adaptec.

User's Guide ru
http://www.servethehome.com/lsi-sas-2208-raid-controller-information-listing/

zfs: восстановление

Где-то у меня было, но найти не удалось. Дубль.

Rolling Back a ZFS Snapshot
http://docs.oracle.com/cd/E19253-01/819-5461/gbcxk/index.html

Восстановление ZFS-пула с помощью подручных средств
http://www.lissyara.su/articles/freebsd/file_system/zfs_recovery/

Восстановление корневого пула ZFS или снимков корневого пула
http://docs.oracle.com/cd/E19253-01/820-0836/ghzvz/index.html

Также был спецфлаг
zfs:zfs_recover=1

"ZFS maintains an internal cache of available pools and their configurations in /etc/zfs/zpool.cache. The location and contents of this file are private and are subject to change. If the system becomes unbootable, boot to the milestone none by using the -m milestone=none boot option. Once the system is up, remount your root file system as writable and then rename or move the /etc/zfs/zpool.cache file to another location. These actions cause ZFS to forget that any pools exist on the system, preventing it from trying to access the bad pool causing the problem. You can then proceed to a normal system state by issuing the svcadm milestone all command. You can use a similar process when booting from an alternate root to perform repairs."
"Determine which pool might have issues by using the fmdump -eV command to display the pools with reported fatal errors."
http://docs.oracle.com/cd/E19082-01/817-2271/6mhupg6qg/index.html

http://breden.org.uk/2009/08/30/home-fileserver-zfs-boot-pool-recovery/


Recovering the ZFS Root Pool or Root Pool Snapshots

HH: FreeBSD + PostgreSQL: тюнинг сервера БД

http://habrahabr.ru/post/120932/

суббота, 30 марта 2013 г.

Балансировщик нагрузки для Amazon EC2 c автомасштабированием

http://habrahabr.ru/post/136827/

На базе ELB

+

gigimon,#
Помимо амазоновского сервиса автомасштабирования, есть (как минимум) 2 сервиса, которые позволяют это делать на амазоне сильно умнее (scalr.com, alestic.com). Умнее в том, что есть интеграция с ПО на инстансах (если это mysql, то будет подниматься репликация, если apache, то автоматически будет добавляться к фронтенду в список бэкендов)
0
anatolijd,#
вьі наверно имели ввиду ylastic.com?

пятница, 29 марта 2013 г.

perl+cpan

Если есть возможность, всегда надо ставить штатной системой пакетов. Но иногда всё-таки нужно ставить из цпана, делается это так
perl -MCPAN -e 'install DBD::mysql'

Могут быть ошибки разного рода, например
dbdimp.c:3215 error: 'imp_sth_t' has no member named 'warning_count'

В данном случае видно, что это ошибка сборки dbdimp.c, то есть проблема зависимостей библиотек. В линуксе обычно требуется сначала поставить mysql-devel + mysqlclient. В общем, тут нет автоматического решения зависимостей, и это ещё один минус такой ручной установки. Ну и сложнее потом сопровождать такую систему, поэтому если нужен 1-2 модуля, можно их просто скачать прямо в проект, доставив зависимости через систему.

Линки
http://twiki.org/cgi-bin/view/TWiki/HowToInstallCpanModules
http://www.dark.ca/2010/04/08/cpan-rpms-in-rhel-centos/
http://stackoverflow.com/questions/1440320/installation-of-perl-packages-is-failing-on-centos-5-64-bit

четверг, 28 марта 2013 г.

Приватные аналоги Dropbox

Наиболее известные аналоги:
LiquidFiles
ownCloud 1
seafile 1
alfresco w

Совсем простой вариант openfiler

Непонятный вариант
ajaxplorer

Выбор-то есть, но сравнений продуктов особо найдено не было. Хотя нужно ещё смотреть, что требуется от системы, поскольку они различаются плюшками.
Многие имеют версию enterprise, платную, и community-версию.

вторник, 26 марта 2013 г.

Порядок обработки фаз nginx

Из кода, порядок обработки фаз nginx

typedef enum {
     NGX_HTTP_POST_READ_PHASE = 0,

     NGX_HTTP_SERVER_REWRITE_PHASE,

     NGX_HTTP_FIND_CONFIG_PHASE,
     NGX_HTTP_REWRITE_PHASE,
     NGX_HTTP_POST_REWRITE_PHASE,

     NGX_HTTP_PREACCESS_PHASE,

     NGX_HTTP_ACCESS_PHASE,
     NGX_HTTP_POST_ACCESS_PHASE,

     NGX_HTTP_TRY_FILES_PHASE,
     NGX_HTTP_CONTENT_PHASE,

     NGX_HTTP_LOG_PHASE
} ngx_http_phases;

Выполняются в порядке перечисления.

Adaptec RAID 6805

Adaptec RAID 6805 и модификация Adaptec 6805Q with maxCache™ 2.0 с поддержкой ssd cache.

Достаточно интересный RAID контроллер, отличающийся поддержкой большого числа ОС:
Windows 7, Windows Vista, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003 x64, Windows 2003 Server, Ubuntu Linux 10.4, Debian Linux 5, Fedora Core 12, RedHat Enterprise Linux 6, SuSE Linux Enterprise Server 11, FreeBSD 8, Sun Solaris 10, VMware ESXi 5.0, VMware ESXi 4, VMware ESX 4.1 Classic
Порты: 2x SFF-8087, поддерживается SAF-TE и SES2/SGPIO.
Одно из главных преимуществ - нет батарейки, вместо неё используется zero maintenance cache с ионисторами, модуль AFM-600.

Adaptec RAID 6805 ASR-6805 KIT PCI-E x8, 8-port SAS / SATA, RAID 0 / 1 / 1E / 10 / 5 / 5EE / 6 / 50 / 60 / JBOD, Cache 512Mb (660 уе)
+
Flash Module Adaptec AFM-600 модуль резервного сохранения данных из кэша на flash память (210 уе)
Модуль резервного сохранения данных из кэша RAID контроллера. При отключении питания все данные из кэша переписываются во flash память модуля. В процессе перезаписи питание осуществляется от входящего в комплект суперконденсатора.

Аналоги:
LSI 9265-8i, LSI 9750-8i

Сравнения:
LSI 9265-8I MEGARAID CARD VS ADAPTEC 6805 RAID CARD – THE ULTIMATE 6GB/S RAID SHOWDOWN

Но стоит учесть негативный опыт amarao с LSi: https://github.com/amarao/lsi-sata-fuckup
Также помнить, что штатная утилита у LSi - тот ещё выкидыш (приводящий иногда к полному зависанию системы), поэтому во фре использовать mfiutil. В лине хз.

понедельник, 25 марта 2013 г.

FreeBSD 7: undefined reference to `sqrt'

При попытке обновить nginx обновляется dialog4ports, и тот выпадает с ошибкой

cc -O2 -fno-strict-aliasing -pipe  -I/usr/ports/ports-mgmt/dialog4ports/work/dialog-1.1-20120706 -D_XOPEN_SOURCE_EXTENDED -Wsystem-headers -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign  -o dialog4ports dialog4ports.o mixedlist.o arrows.o buttons.o dlg_keys.o help.o inputstr.o mouse.o mousewget.o textbox.o rc.o trace.o ui_getc.o util.o version.o -lncursesw
util.o(.text+0x2ead): In function `dlg_auto_size':
: undefined reference to `sqrt'
*** Error code 1
1 error
*** Error code 1

Stop in /usr/ports/ports-mgmt/dialog4ports.

FreeBSD 7.4. Связано это с изменениями в системе портов, решение -- перейти на 8 версию или более не использовать portsnap и зафиксировать порты на тэге RELENG_7_EOL

"7.4 is EOL. If you want to continue using it you will need to use 
RELEASE_7_EOL. head is not supported. "
Ну и собственно по линку подробности.

Если сильно надо, находим файл ports-supfile, копируем в другое место, прописываем *default host= и
*default release=cvs tag=RELENG_7_EOL

и после этого запускаем
csup ports-supfile

ZFS: С чего начать

Вообще, это нужно делать первой заметкой, но мне ещё до заведения блога приходилось общаться с zfs. А тут спросили "что почитать"...
Спрашивали в контексте nexenta, поэтому будет ещё 3 линк

1. Совсем введение, что это вообще такое
http://ru.wikipedia.org/wiki/ZFS

2. Основная дока
Oracle Solaris ZFS Administration Guide
(можно поискать в печатном виде)

3. ZFS for Dummies

4. http://docs.oracle.com/cd/E19253-01/820-0836/index.html (русская версия)

четверг, 21 марта 2013 г.

proxmox: quick start

proxmox это система виртуализации, которая умеет как полную виртуализацию (HVM), так и контейнерную (openVZ). Увы, паравиртуалицазию (PV) оно не умеет, что частично компенсируется контейнерами. Для PV нужен xen. Впрочем, за счёт pv-ops для свежих версий линукса эта проблема не так актуальна.

Простая установка действительно простая: качаем ISO с офсайта (VE версия), и грузимся с него
Внимание! В системе должен быть только 1 диск, который будет целиком отдан под систему, никаких запросов о разбиении диска не будет!
Сама установка элементарна: вводим страну, выбираем таймзону, проверяем имя узла, настройки сети, задаём почту и пароль для рута... Вроде и всё.
После перезагрузки обращаемся браузером или через ssh на тот айпи, который был присвоен системе, это будет написано на экране даже без логина в систему, по http можно без указания порта, перекинет куда надо автоматом. Логин root, пароль тот, что вводили при установке.

четверг, 14 марта 2013 г.

ispmanager: зачем root задаётся через переменную

Обнаружилось на новом сервере, что в nginx панель пишет так:
server {
    ...
    set $root_path /var/www/...
    location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
        root $root_path;
        ...
    }
}

"Используется для определения владельца домена. Пользователи начали ломать location'ы своими плагинами и менять root. Как результат, доменов в панели нет."
http://forum.ispsystem.com/ru/showthread.php?p=127025#post127025

При этом, на старом сервере формат записи всё тот же, root задаётся напрямую в location без всяких переменных.

среда, 13 марта 2013 г.

sublime text 2

Пара интересных линков

Bit rot

Есть такой эффект bit rot - самопроизвольное изменение данных, даже если с ними не работали.
"Bit rot, also known as bit decay, data rot, or data decay, is a colloquial computing term for the gradual decay of storage media or a (sometimes jocular) explanation for the degradation of a software program over time, even if ‘nothing has changed"
http://en.wikipedia.org/wiki/Bit_rot#Decay_of_storage_media

RAID-5 write hole и ZFS

У Raid-5 есть достаточно серьёзная проблема, которая называется write hole - при записи данных и отключении питания может получиться, что на дисках данные отличаются.

"RAID-5 (and other data/parity schemes such as RAID-4, RAID-6, even-odd, and Row Diagonal Parity) never quite delivered on the RAID promise -- and can't -- due to a fatal flaw known as the RAID-5 write hole. Whenever you update the data in a RAID stripe you must also update the parity, so that all disks XOR to zero -- it's that equation that allows you to reconstruct data when a disk fails. The problem is that there's no way to update two or more disks atomically, so RAID stripes can become damaged during a crash or power outage."
https://blogs.oracle.com/bonwick/entry/raid_z

У zfs этой проблемы нет, поскольку там совсем другие принципы - Copy-on-Write и данные не перезаписываются, плюс встроенное версионирование. Да, иногда и у ZFS бывают проблемы, но они гораздо реже, а за счёт того, что все данные имеют чексумму, система автоматически может обнаружить и зачастую исправить сбой в данных. Это особенно актуально на бытовом железе.

И ещё немного про raid-z
https://blogs.oracle.com/ahl/entry/what_is_raid_z
http://www.stableit.ru/2010/08/raid-z.html

Основные недостатки ZFS -- требуется больше памяти и дикое падение производительности при заполнении пула более чем на 50-85%, смотря какой объём пула.

nginx: Why Is High Concurrency Important?

Кого интересует устройство nginx, есть довольно подробное описание.
http://www.aosabook.org/en/nginx.html

вторник, 12 марта 2013 г.

Определяем текущий shell

Универсальные варианты, работает и в bash и csh
# echo $SHELL
Показывает шелл, который установлен "по умолчанию". Вызов вложенного шелла эту переменную уже не меняет.
Можно менять, например setenv SHELL /dev/null (на примере csh), так хорошо разыгрывать друзей можно.

Более действенный метод
# ps aux|grep $$
тут уже "не скрыться".

вторник, 5 марта 2013 г.

bitrix: мифическая "оценка производительности"

Многим (да и мне) долгое время было непонятно, что это за "оценка производительности", как она считается и на что влияет.
Оказывается, всё элементарно.

"Эта цифра - есть величина, обратная времени исполнения ядра продукта [среднему на 10 измерений].

Т.е. на основе приведенной картинки можно сказать, что публичная страница сайта с пустым шаблоном (например, версия для печати), с пустой рабочей областью будет создаваться за 1/40,32 или 0,0248 сек.

Обратите внимание, мы получили "Среднее время отклика".

Если говорить проще, то сервер сгенерирует 40 [пустых, но с подключением ядра] страниц в секунду.

А значит, она не вычисляется на основе "попугаев", приведенных ниже относительно файловой системы, работы базы, сессий и почты. Эти цифры нужны для того, чтобы помочь системному администратору найти узкое место (если такое есть). Оценка производительности всегда обратна величине среднего времени отклика. "
http://dev.1c-bitrix.ru/community/blogs/howto/2450.php

Снимаем статистику с php ускорителей

Снимаем статистику с php ускорителей
  • APC
  • XCache
  • ZendOptimizer/Zend Guard Loader
А в принципе и всё.. Есть ещё eAccelerator, но "пациент скорее мёртв".

Mikrotik Metarouter

http://wiki.mikrotik.com/wiki/Metarouter
Виртуализация для микротика, можно на 1 роутере запустить несколько псевдо-роутеров или мини-линух OpenWRT.
Но куча подводных камней, начиная с того, что работает оно не на всех моделях + есть давно известные баги, по всей вероятности аппаратные.


MetaRouter is a new feature in RouterOS 4.0 beta 1 and RouterOS v3.21
Currently MetaRouter can be used on
RB400, RB700 series, RB900 series, RB2011 boards
Listed PPC boards: RB1000, RB1100, RB1100AH and RB800.

При этом

Issues and possible workarounds for MetaROUTER feature on RouterBOARDs with MIPS-BE architecture
Random freezing
Only listed routers are affected by this issue: RB450G, RB750G, RB435G, RB493G
...

PPC
Issues and possible workarounds for MetaROUTER feature on RouterBOARDs with PPC architecture
Not enough resources
Only listed routers are affected: RB1100AH

Плюс в  pc-based версиях есть xen (до версии 4.4) и kvm
http://wiki.mikrotik.com/wiki/Manual:Virtualization

понедельник, 4 марта 2013 г.

nginx: [emerg] the size 10485760 of shared memory zone "perserver" conflicts with already declared size 0 in ...


[emerg] the size 10485760 of shared memory zone "perserver" conflicts with already declared size 0 in ...

Проблема может быть как с proxy_cache_path, так и многими другими вариантами, даже limit_zone.
Описание этих моментов должно быть до использования, в частности
http://www.yongbok.net/blog/?p=324

proxy_pass http://127.0.0.1:8000;
proxy_cache_path /tmp/cache levels=1:2 keys_zone=tmpcache:10m inactive=30m max_size=2g;
---
неправильно,

proxy_cache_path /tmp/cache levels=1:2 keys_zone=tmpcache:10m inactive=30m max_size=2g;
proxy_pass http://127.0.0.1:8000;
---
правильно.

Вариант еще: определение limit_zone после его использования.

Вообще, баги у nginx с подключением внешних файлов в conf.d и подобных вариантах, приводящие к некорректной работе, к сожалению не редкость. Что сильно усложняется тем, что нет вывода итоговой конфигурации.

nginx: ограничить количество подключений на сервер

Задача ограничить подключения с 1 айпи - тема весьма популярная, но иногда бывает нужно ограничить всем клиентам.

http://nginx.org/ru/docs/http/ngx_http_limit_conn_module.html#limit_conn

воскресенье, 3 марта 2013 г.

apache+nginx, появление внутреннего порта в адресе

Связка apache+nginx, появление внутреннего порта в адресе.
Проблема была замечена исключительно с debian: при обращении к странице вида site.ru/about и внутренним редиректом на site.ru/about/ (добавление слэша в конец) вдруг появляется внутренный порт, и адрес становится например site.ru:8080/about/
Есть предположения о причинах, но если проблема не в основных настройках системы (уже было описано тут: http://dragonflybsd.blogspot.ru/2011/08/apachenginx.html), то наиболее простой фикс: в nginx правим переменную $host
proxy_set_header Host $host:80;
при этом должен стоять mod_rpaf (без выставленного X-Forvarded-for), с правильным RPAFproxy_ips.

Также был замечен вариант с
proxy_set_header X-Server-Address $server_addr;
но мной не проверялось.

помним про proxy_redirect

Invalid command 'RPAFheader', perhaps misspelled or defined by a module not included in the server configuration

Была обнаружена очередная бага дебиляна, связанная с древностью их софта.
Invalid command 'RPAFheader', perhaps misspelled or defined by a module not included in the server configuration
И это дебилян 6!
Дело в том, что опция появилась в rpaf версии 0.6, а это 2+ года уже прошло.

Если эта опция нужна -- есть несколько костылей вроде хитрого макроса (?)
http://www.rootdamnit.eu/2012/09/24/varnish-and-apache-rpaf-invalid-command-rpafheader/
http://serverfault.com/questions/340500/varnish-forward-client-ip-address-to-backend
или сборки свежего модуля

#apt-get install apache2-prefork-dev
а после этого собирать из исходников mod_rpaf для Apache2

http://blog.dd0s.ru/2012/10/02/debian-6-apache2-mod_rpaf-nginx-invalid-command-rpafheader.htm

вторник, 26 февраля 2013 г.

memcached + unix socket

Для примера - debian 6, bitrix, memcached
Для начала, apt-get install memcached php5-memcache

Теперь в /etc/memcached.conf
-s /var/run/memcached/memcached.sock
-a 0755
выставляем путь к сокету и права на него в 0755. Сам каталог /var/run/memcached/ надо создать и поставить владельцем nobody (задано в конфиге выше)

Запускаем.
/etc/init.d/memcached start

проверяем
netstat -an|grep sock
должен появиться наш сокет. При этом |grep 11211 уже ничего не покажет - похоже, мемкэш умеет или только сокеты, или только через порт.

Теперь диагностика. Можно проверить, что происходит, как через сокет, так и порт.
порт:
echo "flush_all" | nc 127.0.0.1 11211
echo "stats" | nc 127.0.0.1 11211

сокет:
echo 'stats' | nc -U /var/run/memcached/memcached.sock
Работает не везде, в дебиан 6 говорит, что не знает ключа -U

По линку ниже есть вариант через питон.

PS для битрикса вписываем в конфиг  bitrix/php_interface/dbconn.php
define("BX_MEMCACHE_HOST", "127.0.0.1");
define("BX_MEMCACHE_PORT", "11211");
=== или ===

define("BX_MEMCACHE_HOST", "unix:///path/to/memcached.sock");
define("BX_MEMCACHE_PORT", "0");


линки
http://community.webfaction.com/questions/7275/how-to-communicate-with-memcached-socket-via-shell

Mercurial vs Git

Ещё раз о «Mercurial против Git» (с картинками)
Сходство и различие между Mercurial и Git
Проект Xen перешёл с Mercurial на Git

Ну и как всегда, 80% полезной инфы там в комментах.

Ставим redmine в debian 6

В очередной раз насилуем redmine (или он нас), ставим на 6 версию. И если с центось 5 это вообще труба, с дебиан 6 уже попроще.
Ставить мы будем "правильно", без ручных make install, поскольку это линукс.

пятница, 15 февраля 2013 г.

watch во FreeBSD и linux

Во FreeBSD есть удобная утилита watch
watch -- snoop on another tty line linux

Позволяет подключиться к чужой консоли, чтобы смотреть, что там делается (бывает нужно для поддержки или наблюдения за новым/подозрительным сотрудником), в том числе вмешиваться в работу (watch -W pts/0). Работает в том числе для ssh подключений, но можно мониторить и serial порты. Использует ядерный модуль snp, но при необходимости программа загрузит его сама.

В линуксе watch делает несколько другую работу, запускает команду с заданной периодичностью.
Итак, аналоги в линуксе, вариант 1:
ttysnoop — snoop on a user's tty
Есть такое описание:
ttysnoop - allows you to spy on telnet+serial connections

Остаётся только вопрос с его запуском и подключением к сессиям. 

Для подключений по ssh надо сделать UseLogin yes в конфиг + пересобрать sshd с
./configure --use-login=/bin/ttysnoops (или /usr/sbin/)
Также можно попробовать вписать вместо /bin/login

Вариант 2 -- screen. Или просим всех работать через него, или прописываем его пользователям как шелл.

Вариант 3 -- найти/сделать PAM модуль.

Есть conspy - virtual console spy tool, но оно только для tty.
Можно посмотреть snoop, но оно давно не обновлялось, и на свежих ядрах надо патчить.

По всей вероятности, самым правильным вариантом будет написать модуль, аналог snp, и протащить его в ядро, а сделать обёртку уже не так сложно будет.

А если во фре нужен аналог линуксового watch - ставим sysutils/cmdwatch

Если кто может чего добавить - пишите в комменты.

линки
http://nuerd.blogspot.ru/2012/07/how-to-install-ttysnoop-with-ssh.html
http://www.ljpoisk.ru/archive/8060040.html