Метка: linux
-
Зависающие lvm-снапшоты
Периодически при бэкапах у меня подвисали lvm-снапшоты, при попытке их удаления после окончания копирования вылезало что-то вроде:
Unable to deactivate open srv01-backup-cow (253:4) Failed to resume hb. libdevmapper exiting with 1 device(s) still suspended.После этого нельзя было ни удалить снапшот, ни сделать что-либо, затрагивающее lvm, все процессы просто повисали в состоянии D. Приходилось перегружать сервер через ресет или /proc/sysrq-trigger, увы.
К счастью, теперь я знаю, как можно избавиться и от процессов в D, и от ненужного ребута 🙂 Всего лишь пара команд и сервер продолжает работать как ни в чем не бывало.
dmsetup resume /dev/mapper/srv01-root dmsetup remove /dev/mapper/srv01-root-real
-
первый день yandex-root-2015
0. проблемы вылезли с запуском виртуалки у двоих из трех членов нашей команды: в hyper-v почему-то диск виделся как fd0. работали с одной, запущеной в kvm, причем с virtio драйвером диска она так же стартовать не хотела. вход на виртуалку получить было несложно через init=/bin/sh
1. ssl
первая сложность — понять тот момент, что нужен ссл-сервер со своим сертификатом, а не тем, что приложен к заданию.
при подписывании своего сертификата могла возникнуть ошибка с тем, что не совпадают subj у ca и подписываемого сертификата, лечилось заменой string_mask в конфиге с utf8only на pkix.
так же в системе была установлена поломанная версия openssl, в связи с этим ни апач, ни нжинкс не стартовали, лечится установкой пакета из репозитория.
конфиг ссл-вхоста написать, думаю, может каждый.2. MariaDB repair
сложностей не вызывает, поставить пакет из репозитория, добавить в skip-grant-tables режиме нужного пользователя, создать от него временную таблицу, подсунуть frm от этой таблицы в нужную.
во время проверки создается правило ната на ип 192.168…, достаточно добавить его, например, на lo интерфейс.3. Binary
поставить mono и strace, запускать бинарник через strace и ставить нужные либы до победного.
4. Mongo
поставить mongodb и mongodb-tools, запустить монго с данными из задачи, сдампить его, после этого можно этот монго отключить (не знаю, возможно, можно было преобразовать его).
затем запустить 2 шарда в своих каталогах и на своих портах (мы использовали 10001 и 10002), запустить конфигдб и монгос, собрать кластер, сделать в нем бд, загрузить в нее дамп и создать шарденую коллекцию по ключу _id, далее достаточно дождаться отработки балансировщика.5. Strange protocol
самая стремная задача 🙁
реально ничего особенного, работает по ПРОТОКОЛУ enet, который живет по адресу http://enet.bespin.org/, именно в этом протоколе надо было делать эхо-сервер, а не просто в udp.6. File
файл цепляется через лупбек, это будет lvm-раздел с 2 btrfs subvolume, на втором искомый файл.
7. MariaDB tuning
достаточно создать ключи на колонки hits и size, проблема только в том, что /tmp подмонтирован в tmpfs, на которой по умолчанию места всего 256М, решается либо отмонтированием tmpfs, либо правкой переменной tmpdir.
8. HG
операция называется delete large file from history, делается через convert старого репа в новый с исключением 2.scm.gz, *.gz исключать нельзя, далее просто hg serve -d в каталоге нового репа.
9. Strange file
тут два слова: immutable file. sapienti sat.
в итоге заняли 22 место 🙁 надо было внимательнее читать дамп в strange protocol.
-
smartctl и HP SmartArray P410
Впервые столкнулся с контроллером, который обслуживается драйвером hpsa. Пришлось помучиться с доступом к информации о состоянии дисков. В итоге оказалось, что к дискам нужно обращаться следующим образом:
smartctl -a /dev/sda -d sat+cciss,Х
-
HW RAID в Debian
Обнаружил полезный для владельцев железных рейд-контроллеров репозиторий Debian/Ubuntu, который так и называется HWraid.
Подключается оч. просто, например, для Squeeze нужно добавить в /etc/apt/sources.list:
deb http://hwraid.le-vert.net/debian squeeze main
Ключ для подписи, увы, авторы не прилагают, т.ч. просто используем -y —force-yes при установке пакета.
-
Установка redmine на Debian Squeeze
Попросили сделать хост с редмайном для нескольких проектов, ставлю на Debian 6. В репах squeeze редмайн какой-то совсем старый, аж версии 1.0.1, а в бекпортах 1.1.2, хочется же последний, поэтому ставить буду из testing (или можно из unstable).
В файле /etc/apt/sources.list добавить строчку для testing:
deb http://ftp.us.debian.org/debian/ testing main contrib non-free
Сделать привязку к squeeze в /etc/apt/preferences или preferences.d, например, так
Package: * Pin: release n=squeeze Pin-Priority: 700 Package: * Pin: release n=wheezy Pin-Priority: -1
Далее установить редмайн командами
apt-get update
apt-get install mysql-server
apt-get install -t wheezy redmine redmine-mysql
Обновить придется половину системы, так что это будет уже не squeeze в чистом виде, но уж если хочется…
Теперь надо выдать через веб только что установленную систему. Есть множество способов это сделать, я использую apache+mod_fcgid
apt-get install apache2 libapache2-mod-fcgid libfcgi-ruby1.8
Создаем сайт для редмайна в /etc/apache2/sites-available/redmine с таким содержимым
SocketPath "/var/run/redmine/sockets/default" <VirtualHost *:80> ServerName redmine.example.com DefaultInitEnv RAILS_RELATIVE_URL_ROOT "" DefaultInitEnv X_DEBIAN_SITEID "default" Alias "/plugin_assets/" /var/cache/redmine/default/plugin_assets/ DocumentRoot /usr/share/redmine/public <Directory "/usr/share/redmine/public"> Options +FollowSymLinks +ExecCGI Order allow,deny Allow from all RewriteEngine On RewriteRule ^$ index.html [QSA] RewriteRule ^([^.]+)$ $1.html [QSA] RewriteCond %{REQUEST_FILENAME} !-f [OR] RewriteCond %{REQUEST_FILENAME} dispatch.fcgi$ RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] </Directory> </VirtualHost>Включаем сайт
a2ensite redmine
и рерайты
a2enmod rewrite
правим права на некоторые каталоги
chown -R www-data /var/run/redmine
перезапустим апач
service apache2 restart
и можно заходить на свежеустановленный редмайн как admin / admin. Не забудьте поставить скин BaseCamp.
-
debian squeeze 6.0.3 openvz template
Странно, что в сети нет явных ссылок на шаблон Debian Squeeze для OpenVZ с нормально обновленными пакетами. Решил выложить у себя, мало ли кому пригодятся.
-
zabbix на Centos 5
Если кому-то нужны готовые rpm для Centos 5.x с заббиксом, взять их можно тут.
-
mod_rpaf и Centos
Недавно обнаружил, что mod_rpaf для Centos можно поставить из репозитория CentALT, жаль, что в состав пакета не включен конфиг, но это не беда.
-
Клонирование линукс-систем
Обычно у меня каждый сервер выходит уникальным, т.к. проекты и цели везде разные, а вот тут столкнулся с тем, что надо развернуть идентичный набор на 20 физических серверов (помочь попросили).
Взял по привычке Clonezilla, которая неплохо себя зарекомендовала при копировании систем на Windows. Странным образом она не только отказалась работать с софтовым рейдом в линуксе (ну это было ожидаемо), но и вообще предложила копировать диски посекторно, что при объеме в 1 ТБ обещало вылиться в 20 часов копирования только одной системы.
Почему так? Непонятно, может я что упустил в Clonezilla? В итоге так и пришлось руками копировать разделы, создавать новый софт-рейд на клоне и копировать все с мастера через ssh+rsync, восстанавливать загрузчик — путь в общем знакомый. Странно, почему такой фигни нет из коробки?
PS: зато узнал, как убить заголовок ненужного md-рейда:
mdadm --zero-superblock /dev/sda (ну или что-то еще)