olemskoi.ru

Архив тега ‘CentOS Linux’

MySQL 5 to MySQL 4.1 downgrade on Plesk (перепечатка)

Комментариев нет

Для сборки mysql на потребуется установить:

yum install gcc ncurses-devel gcc-c++

берем тарбол mysql-4.1.22, распаковываем, собираем и ставим в /opt/mysql-4.1.22 дефолтная кодировка mysql будет cp1251

wget http://www.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-4.1/mysql-4.1.22.tar.gz
tar zxf mysql-4.1.22.tar.gz
cd mysql-4.1.22
./configure --with-charset=cp1251 --with-collation=cp1251_general_ci \
                --with-extra-charset=all --prefix=/opt/mysql-4.1.22 \
                --without-docs --without-man --without-bench
make && make install

теперь остановим mysql5 установленный панелью Plesk и заменим инитскрипт

/etc/init.d/mysqld stop
gzip /etc/init.d/mysqld
cp /opt/mysql-4.1.22/share/mysql/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start

После запуска mysql 4.1 проверим работоспособность mysql

mysql -uadmin -p`cat  /etc/psa/.psa.shadow`
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 4.1.22

В панели плеск root не используется, суперпользователь имеет логин admin а пароль совпадает с паролем от входа в панель, если вы его забыли или не знаете, подсмотреть его можно в файле /etc/psa/.psa.shadow

installing CentOS from USB pen drive (перепечатка)

Комментариев нет

Понадобилось у становить CentOS на машину которая не умеет загружаться по сети и не оказалось под рукой CD-ROM. Создаем загрузочную флешку для установки CentOS

вставляем флешку в usb порт, появляется новое устройство /dev/sdd теперь запустим fdisk

fdisk /dev/sdd

удалим все разделы создадим:
/dev/sdd1 размером 15 MB
/dev/sdd2 всё остальное пространство

/dev/sdd1 нужно сделть Bootable, т.е. загрузочным и переходим к установке:
wget http://mirror.yandex.ru/centos/5.4/os/i386/images/diskboot.img
dd if=diskboot.img of=/dev/sdd1

если размер USB диска позволяет, то форматируем /dev/sdd2 в ext3
mkfs.ext3 /dev/sdd2
и копируем в этот раздел содержимое установочного диска.

теперь можно начать установку с USB диска и выбрать установка с диска указав второй раздел или указать локальный http репозиторий для установки

php memcache and memcached on CentOS 5 and up (перепечатка)

Комментариев нет

The first thing we should do is install rpmforge repo if still not, you can use this HOWTO.

the next step is installing memcached and libmemcache

yum install libmemcache memcached -y

starting memcached:

memcached -d -m 256 -l 127.0.0.1 -p 11211 -u nobody

you can add a line above to /etc/rc.local to start memcached daemon at system startup

now we will install memcache php extension

wget http://pecl.php.net/get/memcache-2.1.2.tgz
tar -xvf memcache-2.1.2.tgz && cd memcache-2.1.2
phpize && ./configure --enable-memcache && make && make install
echo "extension=memcache.so" >> `php -i | grep "Loaded Configuration File" | awk '{print $5}'`

and restart apache: /etc/init.d/httpd restart

and now the task is done. enjoy it!

PS: sorry for terrible english.

Tekram DC-395UW under CentOS (перепечатка)

Комментариев нет

Из штатов приехала коробка с SCSI дисками для HP-шных серверов, соответственно возникла необходимость прочекать их все перед тем как везти в датацентр. В закромах нашелся древний контроллер Tekram DC-395UW, SCSI кабель 68-ми пиновый и заранее купленный переходник на LVD 80 pin. В биосе контроллера диски прекрасно видятся, но при попытке установить CentOS на диски воткнутые в контроллер, anaconda в упор не видит дисков.

CD/DVD привода под рукой не оказалось, а вынимать из другой машины было лень, т.ч. установку выполнял по сети, загрузив машину по pxe+tftp. На машине с поднятым апачем делаем:

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/

теперь начинаем установку системы на машине с контроллером. Если установка в text режиме, то на этапе когда диски не от дедектились (пустой список дисков) жмем Alt+F2 и переходим в консольку:

wget http://192.168.12.200/dc395x.ko
modprobe dc395x.ko
mknod /dev/sda

теперь Alt+f1 обратно к anaconda и жмем «добавить диск» или что-то в этом духе, будет предложено добавить iSCSI таргет, набиваем какой-нибудь левый ip и добавляем. iSCSI конечно не добавится, но анаконда перечитает список дисков и отобразит наш scsi диск. далее продолжаем установку в удобном нам виде.

Кстати первую часть можно выполнять на той же машине куда ставится система.

PS: контроллер гавно, но проверить диски он дал возможность.

OpenVZ: резервное копирование и клонирование контейнеров (перепечатка)

Комментариев нет

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

Расскажу как реализовать его проще всего, на примере CentOS 5.3

[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

Согласно хелпу был написан простой скриптик для резервного копирования.

[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"`/

данный скрипт будет создавать в папке /vz/dump/ папку с текущей датой и в нее складывать дампы, пожатые в tgz, контейнеров. И слать уведомление на your@mail.com
скриптик этот нужно закинуть в крон, сам его допилить слегка для того чтобы убивались старые бакапы (man find).

для восстановления следует использовать vzdump с ключиком –restore
отсюда вытекает возможность клонировать контейнер.

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

в версии 1.2 восстановление делается так:
vzrestore /vz/vzdump-110.tgz 130

таким образом мы сделали копию контейнера 110 с VID 120, сменили ему ip и хостнейм. По тому же принципу накладываются новые ограничения.

возможные проблемы:

[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

это лечится с помощью:

modprobe vzcpt

еще одна:

[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.

лечится так:

[root@vm1 ~]# cp -r /usr/share/perl5/PVE/ /usr/lib/perl5/5.8.8/

Если возникли вопросы или нужна помощь, буду рад помочь.

vzrst module is not loaded on the destination node (перепечатка)

Комментариев нет

понадобилось мигрировать OpenVZ контейнер с одной физической машины на другую. Номер контейнера 140 используем vzmigrate

[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

идем на destanation машину и смотрим, есть у нас там vzrst или нет

[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

нету, ну так мы поставим, не проблема :)

[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

ну вот собственна и всё, снова запускаем миграцию на соурс:

[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

теперь идем на таргет сервер и проверяем

[root@root ~]# vzlist -a
      CTID      NPROC STATUS  IP_ADDR         HOSTNAME
       140        104 running 91.195.xxx.xxx  hostname.ru

всё, наш контейнер без даунтаймов мигрировал на другой сервер.

перенаправление почты пользователя root (перепечатка)

Комментариев нет

В linux системные отчеты от того же LogWatch складываются пользователю root в /var/spool/mail/root

но можно перенаправить их на ваш привычный ящик электронной почты, для этого в файле /etc/aliases отыщите строчку:

# Person who should get root's mail
#root:          marc

и замените на (вместо user@server.tld укажите свой имэйл):

# Person who should get root's mail
root:           user@server.tld

затем перекомпилируем базу алиасов:

cd /etc; newaliases

должно появиться сообщение вроде этого: /etc/aliases: 77 aliases, longest 28 bytes, 797 bytes total

как нагнать траф? (перепечатка)

Комментариев нет

Возникла типичная для многих ситуация, на одном из серверов в одном из ДЦ оказалось что входящего трафа больше чем исходящего. причем нехватает пару терабайт исходящего.

ничего страшного :) /dev/urandom безлимитный, осталось только выбрать ДЦ и сервер на который можно его перегнать. А перегонять будем так:

cat /dev/urandom | ssh server 'cat > /traff'

время от времени (по крону например) на принимающем сервере будем обнулять файлик traff

> /traff

пока писал, пришла в голову мысль, что можно передавать сразу в /dev/null

cat /dev/urandom | ssh server 'cat > /dev/null'