User Tools

Site Tools


Sidebar


Tags Cloud
start

Last updates

Включение поддержки HTTPS для серверов с self-signed сертификатом после изменений в LWP 6

Добавить в .pl-скрипт:

$ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS} = "Net::SSL";
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;

$ENV{HTTPS_VERSION} = '3';
$ENV{HTTPS_DEBUG} = 0;

2013/09/25 16:21 · kyxap

Безопасное обновление ядра через ssh в Debian

Во избежание потенциальных проблем с удаленным обновлением ядра, я пользуюсь механизмом fallback, реализованном в grub уже довольно давно.
В данном случае используется grub2, принятый по умолчанию в Debian Wheezy.

Обязательные элементы конфига загрузчика:

GRUB_DEFAULT=saved
GRUB_CMDLINE_LINUX_DEFAULT="panic=30"

В случае kernel panic сервер будет автоматически возвращен в последнее стабильное ядро. Мой конфиг загрузчика:

# grep ^[^#] /etc/default/grub
GRUB_DEFAULT=saved
GRUB_TIMEOUT=15
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on panic=30"
GRUB_CMDLINE_LINUX=""
GRUB_DISABLE_OS_PROBER=true

Просматриваем доступные загрузчику ядра:

# grub-mkconfig 2>/dev/null | perl -ne 'print "$1\n" if m/^menuentry.+?'\''(.+?)'\''/'
Debian GNU/Linux, with Linux 3.11.0-031100rc5-generic
Debian GNU/Linux, with Linux 2.6.32-23-pve

Текущее ядро - стабильное, при проблемах мы вернемся именно в него:

# uname -rs
Linux 2.6.32-23-pve

Выставляем его в fallback:

# grub-set-default 'Debian GNU/Linux, with Linux 2.6.32-23-pve'

Ядро 3.11-rc5 является релиз-кандидатом, но в нем на данный момент наиболее полно реализована поддержка новых чипсетов под процессоры Haswell.
Команда grub-reboot разрешит загрузиться этому ядру только один раз. Реальной перезагрузки не произойдет.

# grub-reboot 'Debian GNU/Linux, with Linux 3.11.0-031100rc5-generic'

Инсталляции Debian, произведенные не через debian-installer, зачастую не содержат в себе post-hook на перегенерацию initrd.
Поэтому выполняем его вручную:

# update-initramfs -k all -u

Обновляем конфиг загрузчика:

# update-grub2

Перезагружаем сервер в новое ядро:

# reboot

В случае успешной загрузки нового ядра сообщаем grub'у что теперь будем использовать обновленную версию:

# grub-set-default 'Debian GNU/Linux, with Linux 3.11.0-031100rc5-generic'
2013/08/16 23:37 · kyxap

Установка групп пакетов в Debian Wheezy (minimal => standard)

Все просто.

apt-get install tasksel
aptitude install ~pstandard ~prequired ~pimportant -F%p
2013/08/06 10:56 · kyxap

Откат c testing до stable на примере Debian Wheezy 7.1

/etc/apt/apt.conf не должен содержать в себе упоминаний APT::Default-Release

/etc/apt/sources.list

deb http://mirror.yandex.ru/debian/ wheezy main contrib non-free
deb http://mirror.yandex.ru/debian/ jessie main contrib non-free  
deb http://security.debian.org/ jessie/updates main contrib non-free


Для отката с testing до stable достаточно внести в /etc/apt/preferences следующие записи:

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

Package: *
Pin: release a=testing
Pin-Priority: 900

Package: *
Pin: release a=unstable
Pin-Priority: 800

Package: *
Pin: release o=Debian
Pin-Priority: -1

Если команда apt-cache policy выдает правильные приоритеты, то поочередно выполняем apt-get upgrade и apt-get dist-upgrade, после чего мы остаемся на ветке stable.
Теперь можем добавить в /etc/apt/apt.conf строку APT::Default-Release "wheezy";

2013/07/25 18:48 · kyxap

Установка из исходников php 5.2 на Debian Wheezy 7

На многих веб-серверах установлены php-скрипты, скомпилированные под старую версию Zend.
Из-за этого пришлось собирать php 5.2 на wheezy, что оказалось несколько нетривиальной процедурой.

  • Включаем deb-src в /etc/apt/sources.list
  • Выполняем
# apt-get build-dep php5
  • Тянем и распаковываем архив с исходниками в /opt/src
# mkdir -p /opt/src
# cd /opt/src
# wget http://museum.php.net/php5/php-5.2.17.tar.bz2
# tar xf php-5.2.17.tar.bz2
  • Следует учесть что старый php ничего не знает о новой мультиархитектурной структуре репозитория, потому не может нормально определить пути к библиотекам.
  • Стыдно и некультурно плодить симлинки из /usr/lib/x86_64-linux-gnu в /usr/lib/.

По возможности, избегайте этого, задавая LIBRARY_PATH и libdir при конфигурации

  • В директории с исходными кодами php создаем файл MyConfig.sh, в который записываем следующие строки:
#!/bin/sh
CFLAGS="-O2" LIBRARY_PATH=/usr/lib/x86_64-linux-gnu ./configure  --prefix=/opt/php-5.2.17 \
  --with-libdir=lib/x86_64-linux-gnu \
  --enable-calendar \
  --enable-sysvsem \
  --enable-sysvshm \
  --enable-sysvmsg \
  --with-jpeg-dir \
  --with-mcrypt \
  --with-mysql \
  --with-mysqli \
  --enable-bcmath \
  --with-bz2 \
  --with-gd \
  --with-zlib-dir \
  --with-curl \
  --enable-sockets \
  --with-iconv \
  --enable-mbstring \
  --enable-mbregex \
  --enable-ctype \
  --enable-shmop \
  --enable-wddx \
  --with-freetype-dir \
  --with-xmlrpc \
  --enable-dbase \
  --with-mime-magic \
  --with-mhash \
  --with-gettext \
  --with-pear \
  --with-apxs2=/usr/bin/apxs2
  • Возможно, придется доставить некоторые -dev в процессе конфигурации.

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

  • По желанию - после компиляции применить checkinstall для сборки deb-пакета.
  • Устанавливаем Zend Optimizer для php 5.2.
2013/06/12 23:01 · kyxap

Welcome to your new DokuWiki

Congratulations, your wiki is now up and running. Here are a few more tips to get you started.

Enjoy your work with DokuWiki,
– the developers

Create your first pages

Your wiki needs to have a start page. As long as it doesn't exist, this link will be red: Last updates.

Go on, follow that link and create the page. If you need help with using the syntax you can always refer to the syntax page.

You might also want to use a sidebar. To create it, just edit the Tags Cloud page. Everything in that page will be shown in a margin column on the side. Read our FAQ on sidebars to learn more.

Please be aware that not all templates support sidebars.

Customize your Wiki

Once you're comfortable with creating and editing pages you might want to have a look at the configuration settings (be sure to login as superuser first).

You may also want to see what plugins and templates are available at DokuWiki.org to extend the functionality and looks of your DokuWiki installation.

Join the Community

DokuWiki is an Open Source project that thrives through user contributions. A good way to stay informed on what's going on and to get useful tips in using DokuWiki is subscribing to the newsletter.

The DokuWiki User Forum is an excellent way to get in contact with other DokuWiki users and is just one of the many ways to get support.

Of course we'd be more than happy to have you getting involved with DokuWiki.

2013/06/12 22:07

Техническое задание на подготовку и оптимизацию сервера с аппаратным raid10 из N x 3Tb (до 16TB) CentOS 6.x

Максимальный размер fs, который поддерживает ext4 - 16TB, в связи с чем на 16TB+ массивах приходится использовать btrfs.

Операционная система:
Linux CentOS 6.x amd64 последней версии

Роль сервера:
хранилище

Описание хранимых данных:
10% файлы по 5-7 Mb, 90% файлы 0.5-5Gb

Рейд-контроллер:
Просьба сразу обновить firmware на raid-контроллере до последней версии, предварительно сохранив копию заводской прошивки.
Убедиться что не будет проблем с HDD firmware и данной моделью контроллера. При необходимости обновить прошивку и на дисках.
Если у рейд-контроллера есть возможность отправки почтовых извещений о проблемах - настроить ее.
Совместимость дисков: http://www.adaptec.com/en-us/_common/compatibility/

IPMI:
Если есть возможность - крайне желательно подключить ipmi-интерфейс в dedicated порт и выделить отдельный IP.
Если внешнее подключение невозможно и если позволяют стойки - соединить порт ipmi-интерфейса SOHO-свитчом с 2nd NIC любого из серверов.
Очень важно чтобы ipmi-интерфейс не работал в shared режиме через сетевые интерфейсы сервера. Иначе при аппаратных проблемах сервер будет полностью недоступен.
Так же следует обновить прошивку IPMI-интерфейса, т.к. у Supermicro очень часто бывают проблемы с удаленной работой через консоль IPMI.

Система:
лучше если это будет программный mdadm-рейд на 2 диска, подключенных к материнской плате, а не к контроллеру
т.к. надо оставить возможность загружаться в ОС вне зависимости от состояния контроллера

Swap:
не использовать вообще

Корневая файловая система:
единым разделом /dev/md0 подмонтировать в /
файловая система ext3 или ext4
никаких отдельных разделов создавать не следует
опции монтирования в /etc/fstab оставить по-умолчанию
флаги fs так же можно оставить по-умолчанию

Приложения:
огромная просьба ставить всё нужное из официального репозитория, не собирая ничего из исходников

RAID10:
  Расчет приблизительной производительности рейда
  http://www.wesworld.net/raidcalculator.html
  Расчет размера stride
  http://busybox.net/~aldot/mkfs_stride.html

Важно
1. обеспечить автоматический failover при сбоях дисков
2. обеспечить максимальную скорость перестройки массива
3. минимизировать потери дискового пространства

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

Создание RAID10 для 24 дисков:
  raid10 на 20 диска + 2 диска установить в hotspare
  stripe size установить в максимальное значение 4096K

Файловая система ext4:
На массиве будут храниться файлы с размером >4Mb, что позволяет выставить размер блока fs в максимальные 64k.
По этой же причине нет нужды в большом количестве инод, поэтому можно уменьшить их общее количество для освобождения зарезервированного места.
Это делается при запуске mkfs.ext4 изменением соотношения количества инод к количеству байт с 1 иноды к 16384 байтам на 1 иноду к 32768 байтам.

Так же при создании файловой системы ext4 необходимо задать правильный размер stride и stripe-width.

stride или размер шага - это количество блоков, которые должны быть прочитаны или записаны на диск перед переходом к следующему.
Выставление этого параметра позволяет равномерно распределять метаданные по массиву, не позволяя им скапливаться на одном диске.
Если этого не сделать, то в будущем возможно значительное уменьшение скорости работы с RAID-массивом.
  Stride size = Stripe Size / Block Size
  
stripe width или ширина полосы - параметр, позволяющий задать ширину страйпа в блоках fs.
Правильное выставление этого параметра выравнивает файловую систему относительно границ дисков,
позволяя избавиться от традиционного недостатка RAID-массивов с контролем четности - операций read-modify-write.
Формула расчета stripe width для raid10: 
  Stripe width = Stride size * ( Raid10 Disk Members / 2)

Команда для создания файловой системы на raid10 с размером stripe в 4096k:
  mkfs.ext4 /dev/raid10 –b 65536 -i 32768 –E stride=64,stripe-width=704

Освобождение зарезервированных под суперпользователя блоков, отключение автоматического запуска fsck:
  tune2fs -i 0 -m 0 -c 0

Точка монтирования raid10:
/home

Опции монтирования raid10:
  noatime,nodiratime,errors=remount-ro
  так же в /etc/fstab два последних поля - fs_freq и fs_passno - должны быть выставлены в 0.
  
start.txt · Last modified: 2016/09/22 01:27 by kyxap