Tekram DC-395UW under CentOS
Запись создана 15 декабря, 2009
Из штатов приехала коробка с SCSI дисками для HP-шных серверов, соответственно возникла необходимость прочекать их все перед тем как везти в датацентр. В закромах нашелся древний контроллер Tekram DC-395UW, SCSI кабель 68-ми пиновый и заранее купленный переходник на LVD 80 pin. В биосе контроллера диски прекрасно видятся, но при попытке установить CentOS на диски воткнутые в контроллер, anaconda в упор не видит дисков.
CD/DVD привода под рукой не оказалось, а вынимать из другой машины было лень, т.ч. установку выполнял по сети, загрузив машину по pxe+tftp. На машине с поднятым апачем делаем:
[cc lang=»bash»]
rpm2cpio kernel-2.6.18-128.el5.i686.rpm| cpio -idmuv —no-absolute-filenames
find . | grep 395
cp ./lib/modules/2.6.18-128.el5/kernel/drivers/scsi/dc395x.ko /var/lib/www/
[/cc]
теперь начинаем установку системы на машине с контроллером. Если установка в text режиме, то на этапе когда диски не от дедектились (пустой список дисков) жмем Alt+F2 и переходим в консольку:
[cc lang=»bash»]
wget http://192.168.12.200/dc395x.ko
modprobe dc395x.ko
mknod /dev/sda
[/cc]
теперь Alt+f1 обратно к anaconda и жмем «добавить диск» или что-то в этом духе, будет предложено добавить iSCSI таргет, набиваем какой-нибудь левый ip и добавляем. iSCSI конечно не добавится, но анаконда перечитает список дисков и отобразит наш scsi диск. далее продолжаем установку в удобном нам виде.
Кстати первую часть можно выполнять на той же машине куда ставится система.
PS: контроллер гавно, но проверить диски он дал возможность.
» Запись из раздела CentOS Linux | Комментировать
OpenVZ: резервное копирование и клонирование контейнеров
Запись создана 20 октября, 2009
В последние несколько месяцев активно работаю с OpenVZ. Соответственно вопрос который возникает после того как система развернута, это резервное копирование.
Расскажу как реализовать его проще всего, на примере CentOS 5.3
[cc lang=»bash»]
[root@root ~]# yum install cstream perl-LockFile-Simple
[root@root ~]# rpm -Uvh http://www.proxmox.com/cms_proxmox/cms/upload/vzdump/vzdump-1.1-2.noarch.rpm
[root@root ~]# rpm -Uvh http://www.proxmox.com/cms_proxmox/cms/upload/vzdump/vzdump-1.2-4.noarch.rpm
[root@root ~]# vzdump —help
Unknown option: help
usage: /usr/sbin/vzdump OPTIONS [—all | VPSID]
—exclude VPSID exclude VPSID (assumes —all)
—exclude-path REGEX exclude certain files/directories
—stdexcludes exclude temorary files and logs
—compress compress dump file (gzip)
—dumpdir DIR store resulting files in DIR
—tmpdir DIR store temporary files in DIR
—mailto EMAIL send notification mail to EMAIL.
—quiet be quiet.
—stop stop/start VPS if running
—suspend suspend/resume VPS when running
—snapshot use LVM snapshot when running
—size MB LVM snapshot size
—node CID only run on pve cluster node CID
—lockwait MINUTES maximal time to wait for the global lock
—stopwait MINUTES maximal time to wait until a VM is stopped
—bwlimit KBPS limit I/O bandwidth; KBytes per second
—restore FILENAME restore FILENAME
[/cc]
Согласно хелпу был написан простой скриптик для резервного копирования.
[cc lang=»bash»]
[root@root ~]# cat /bin/backup.sh
#!/bin/bash
mkdir /vz/dump/`date «+%Y%m%d»`
/usr/sbin/vzdump —suspend —compress —exclude-path /tmp/ —all —mailto your@mail.com —dumpdir /vz/dump/`date «+%Y%m%d»`/
[/cc]
данный скрипт будет создавать в папке /vz/dump/ папку с текущей датой и в нее складывать дампы, пожатые в tgz, контейнеров. И слать уведомление на your@mail.com
скриптик этот нужно закинуть в крон, сам его допилить слегка для того чтобы убивались старые бакапы (man find).
для восстановления следует использовать vzdump с ключиком —restore
отсюда вытекает возможность клонировать контейнер.
[cc lang=»bash»]
vzdump —compress —suspend 110
vzdump —restore /vz/dump/vzdump-110.tgz 120
vzctl set 120 —hostname newhostname.com —save
vzctl set 120 —ipdel 192.168.0.110 —save
vzctl set 120 —ipadd 192.168.0.120 —save
vzctl start 120
[/cc]
в версии 1.2 восстановление делается так:
vzrestore /vz/vzdump-110.tgz 130
таким образом мы сделали копию контейнера 110 с VID 120, сменили ему ip и хостнейм. По тому же принципу накладываются новые ограничения.
возможные проблемы:
[cc lang=»bash»]
[root@server ~]# vzdump —compress —suspend —dumpdir /backup/ —tmpdir /backup/tmp/ 120
……………..
Nov 19 20:10:51 INFO: Error: No checkpointing support, unable to open /proc/cpt: No such file or directory
Nov 19 20:14:34 ERROR: Backup of VM 120 failed — command ‘/usr/sbin/vzctl chkpnt 120 —suspend’ failed with exit code 16
[/cc]
это лечится с помощью:
[cc lang=»bash»]modprobe vzcpt[/cc]
еще одна:
[cc lang=»bash»]
[root@vm1 ~]# vzdump —help
Can’t locate PVE/VZDump.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/sbin/vzdump line 27.
BEGIN failed—compilation aborted at /usr/sbin/vzdump line 27.
[/cc]
лечится так:
[cc lang=»bash»]
[root@vm1 ~]# cp -r /usr/share/perl5/PVE/ /usr/lib/perl5/5.8.8/
[/cc]
Если возникли вопросы или нужна помощь, буду рад помочь.
» Запись из раздела CentOS Linux, OpenVZ | 3 комментария
qmail smart relaying
Запись создана 8 сентября, 2009
в одной из статей я описывал как настроить рлеинг исходящей почты через другой сервер. сейчас опишу как это сделать если используется Qmail.
[cc lang=»bash»]echo «:mxr.domain.com» > /var/qmail/control/smtproutes[/cc]
где mxr.domain.com это наш релей.
после чего делаем рестарт qmail. например /etc/init.d/qmaild restart
» Запись из раздела Несортированное | Комментировать
vzrst module is not loaded on the destination node
Запись создана 5 августа, 2009
понадобилось мигрировать OpenVZ контейнер с одной физической машины на другую. Номер контейнера 140 используем vzmigrate
[cc lang=»bash»]
[root@s24 ~]# vzmigrate —online 91.195.xxx.xxx 140
OPT:—online
OPT:91.195.xxx.xxx
Starting online migration of CT 140 to 91.195.xxx.xxx
Error: vzrst module is not loaded on the destination node
Error: Can’t continue online migration
[/cc]
идем на destanation машину и смотрим, есть у нас там vzrst или нет
[cc lang=»bash»]
[root@root ~]# lsmod | grep vz
vzethdev 16524 0
vzdquota 43800 1 [permanent]
vznetdev 21512 2
vzmon 49548 3 vzethdev,vznetdev
vzdev 7556 4 vzethdev,vzdquota,vznetdev,vzmon
ipv6 288668 32 vzmon,ip6t_REJECT
[/cc]
нету, ну так мы поставим, не проблема :)
[cc lang=»bash»]
[root@root ~]# modprobe vzrst
[root@root ~]# modprobe vzcpt
[root@root ~]# lsmod | grep vz
vzcpt 115492 0
vzrst 142740 0
ip_nat 22032 1 vzrst
ip_conntrack 60228 3 vzcpt,vzrst,ip_nat
vzethdev 16524 0
vzdquota 43800 1 [permanent]
vznetdev 21512 2
vzmon 49548 5 vzcpt,vzrst,vzethdev,vznetdev
vzdev 7556 4 vzethdev,vzdquota,vznetdev,vzmon
ipv6 288668 36 vzcpt,vzrst,vzmon,ip6t_REJECT
[/cc]
ну вот собственна и всё, снова запускаем миграцию на соурс:
[cc lang=»bash»]
[root@s24 ~]# vzmigrate —online 91.195.xxx.xxx 140
OPT:—online
OPT:91.195.xxx.xxx
Starting online migration of CT 140 to 91.195.xxx.xx
Preparing remote node
Initializing remote quota
Syncing private
Live migrating container…
Syncing 2nd level quota
Cleanup
[/cc]
теперь идем на таргет сервер и проверяем
[cc lang=»bash»]
[root@root ~]# vzlist -a
CTID NPROC STATUS IP_ADDR HOSTNAME
140 104 running 91.195.xxx.xxx hostname.ru
[/cc]
всё, наш контейнер без даунтаймов мигрировал на другой сервер.
» Запись из раздела CentOS Linux, OpenVZ, virtualization | Комментировать
flashing cisco 7912 to SIP
Запись создана 28 июля, 2009
В офисе после скачка напряжения, один из айпифонов Cisco 7912 сдох. Внешне это выгладело так: дисплей не горит, но горит кнопка speaker.
Судя по tcpdump телефон таки шлет запросы к dhcp, этим и воспользуемся.
в /etc/dhcpd.conf добавим пару строчек (полностью конфиг приведу ниже):
[cc lang=»bash»]
option option-150 code 150 = ip-address;
option option-150 192.168.11.200;
[/cc]
где 192.168.12.200 айпишник tftp сервера. Самое интересное в том что без этих строчек айпифоны прошились на SIP прошивку с SCCP без проблем. Ну да ладно..
на 192.168.12.200 в папку /tftpboot кладем сами файлы прошивки
CP7912080001SIP060412A.sbin и cp7912r.zup
по сути это один и тот же файл просто их два с разными именами. файлы можно найти на thepiratbay или могу выслать кому надо.
https://itblog.su/downloads/CP7912080001SIP060412A.sbin
https://itblog.su/downloads/cp7912r.zup
Теперь телефон в ребут по питанию и при старте он должен ожить. Опять таки самое смешное в том что после перепрошивки настройки не похерились.
PS: а еще есть психи которые выпаивают флешку и на программаторе заливают прошивку. т.ч. если не помогает описнный способ, можно попытаться найти одного из них :)
этим же методом перешивается Cisco 7912 с прошивки SCCP на SIP
Читать дальше
» Запись из раздела VoIP | 4 комментария
перенаправление почты пользователя root
Запись создана 28 июля, 2009
В linux системные отчеты от того же LogWatch складываются пользователю root в /var/spool/mail/root
но можно перенаправить их на ваш привычный ящик электронной почты, для этого в файле /etc/aliases отыщите строчку:
[cc lang=»bash»]
# Person who should get root’s mail
#root: marc
[/cc]
и замените на (вместо user@server.tld укажите свой имэйл):
[cc lang=»bash»]
# Person who should get root’s mail
root: user@server.tld
[/cc]
затем перекомпилируем базу алиасов:
[cc lang=»bash»]
cd /etc; newaliases
[/cc]
должно появиться сообщение вроде этого: /etc/aliases: 77 aliases, longest 28 bytes, 797 bytes total
» Запись из раздела CentOS Linux | 3 комментария
как нагнать траф?
Запись создана 28 июля, 2009
Возникла типичная для многих ситуация, на одном из серверов в одном из ДЦ оказалось что входящего трафа больше чем исходящего. причем нехватает пару терабайт исходящего.
ничего страшного :) /dev/urandom безлимитный, осталось только выбрать ДЦ и сервер на который можно его перегнать. А перегонять будем так:
[cc lang=»bash»]
cat /dev/urandom | ssh server ‘cat > /traff’
[/cc]
время от времени (по крону например) на принимающем сервере будем обнулять файлик traff
[cc lang=»bash»]
> /traff
[/cc]
пока писал, пришла в голову мысль, что можно передавать сразу в /dev/null
[cc lang=»bash»]
cat /dev/urandom | ssh server ‘cat > /dev/null’
[/cc]
» Запись из раздела CentOS Linux, FreeBSD, Unix | 8 комментариев
HyperVM Installation
Запись создана 11 июля, 2009
Компания LxLabs разработала удобную панель управления виртуальными машинами, и назвала её HyperVM.
HyperVM ставится на свежеустановленный сервер и позволяет создавать и управлять виртуальными машинами VPS/VDS на базе популярных систем виртуализации OpenVZ (Open Virtuozzo) или Xen.
OpenVZ наиболее прост (для него впринципе и панель то не нужна вовсе), XEN более сложная технология но более «навороченная» в технологическом плане.
Для простоты понимания не искушенного человека опишу для чего вам может понадобится виртуализация, в частности HyperVM. Простая ситуация, вы вебстудия, у вас есть сервер на котором вы размещаете сайты клиентов. и в определенный момент нагрузка от отдельных проектов клиентских начинает шкалить мешая остальным. Можно просто выгнать клиента, и потерять деньги которые клиент платит или же выделить ему отдельное пространство с жесткими лимитами по расходу процессорных ресурсов, расхода физической памяти и прочим. Тут на помощь приходит вирутализация, вы просто создаете отдельную виртуальную машину и ставите на нее лимиты так чтобы остальным проектам не создавались помехи.
Или, у вас есть достаточно производительный сервер который покупали с запасом или взяли в аренду по очень выгодной цене. Но нагрузить его вы не можете и на 30% в пиках, т.е. сервер простаивает на 70% все время. Тут опять таки приходит на помощь виртуализация, создаем несколько или одну виртуальную машину и сдаем её в аренду например. таким образом Вы можете отбить часть расходов на содержание сервера.
Или, один из частых случаев с которым я сталкиваюсь. Два друга которым нужен выделенный сервер, вместо двух слабеньких, берут один достаточно мощный сервер (тем самым экономя в деньгах и получая больше) и делят его ровно пополам.
Или же компания разработчиков делит сервер на несколько виртуалок «продакшн», «препродакшн», «девелопмент», «репозитарии и SVN».
Вариантов очень много, широкий простор для фантазии.
Прямо сейчас я поднимаю виртуализацию по двум заказам на разных серверах, по тому и решил описать этот процесс ввиде лога.
[cc lang=»bash»]
[root@CentOS-53-32-minimal ~]# screen
[root@CentOS-53-32-minimal ~]# setenforce 0
setenforce: SELinux is disabled
[root@CentOS-53-32-minimal ~]# cat /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing — SELinux security policy is enforced.
# permissive — SELinux prints warnings instead of enforcing.
# disabled — SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted — Only targeted network daemons are protected.
# strict — Full SELinux protection.
SELINUXTYPE=targeted
[root@CentOS-53-32-minimal ~]# wget http://download.lxlabs.com/download/hypervm/production/hypervm-install-master.sh
[root@CentOS-53-32-minimal ~]# sh ./hypervm-install-master.sh —virtualization-type=openvz
[/cc]
После чего начинается процесс установки, который может занять до нескольких часов. В основном время установки зависит от ширины канала, по тому как выкачиваются крупные пресеты операционных систем.
теперь необходимо поправить /etc/grub.conf, заменив ‘default=1’ на ‘default=0’ и перезагрузить сервер.
после перезагрузки сервера заходите в панель управления http://machine-name:8888 (machine-name замените на ip адрес сервера) и всё что Вам нужно для начала работы это добавить ip пул, планы ограничений ресурсов и создать виртуальные машины.
если что-то не получается или вы хотите заказать установку HyperVM, обращайтесь — всегда помогу.
» Запись из раздела CentOS Linux, OpenVZ, virtualization, Несортированное | 11 комментариев
память в Proliant HP DL-365 G1 (R01)
Запись создана 27 мая, 2009
Небольшая заметка, чтобы не забыть. В сервер HP Proliant DL-365 G1 (R01) подходит идеально Kingston KVR667D2S4P5/1G
» Запись из раздела Несортированное | Комментировать
Setting timezone in CentOS
Запись создана 14 мая, 2009
Если Вы берете сервер где-то в европе, то наверняка временная зона там не MSD (Москва).
Семнить timezone просто:
[cc lang=»bash»]
[root@mx ~]# date
Wed May 13 23:10:23 PDT 2009
[root@mx ~]# rm -rf /etc/localtime
[root@mx ~]# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
[root@mx ~]# date
Thu May 14 10:13:03 MSD 2009
[/cc]
» Запись из раздела CentOS Linux | 9 комментариев