На серверах lb01 и lb02 устанавливается Nginx для балансировки нагрузки (распределения запросов клиентов на пару Web-серверов(серверов приложений app01 и app02)), а также для отказоустойчивости. При выходе со строя одного из lb-ов второй из них автоматически становится активным сервером(цепляет на себя VIP(Virtual IP) на который прописаны сайты в ДНС) Это достигается за счет настроенного KeepAlived на […]
Архивы рубрики ‘Centos’
Установка и настройка отказоустойчивого балансировщика нагрузки на основе Nginx+Keepalived (Горизонтальное масштабирование на уровне приложений модели OSI) на Centos
Январь 13th, 2014
Evgeniy Kamenev Установка и настройка отказоустойчивого балансировщика нагрузки на основе Keepalived в качестве одного из типов реализации LVS(Linux Virtual Server) (Горизонтальное масштабирование на транспортном уровне модели OSI) на Centos
Январь 10th, 2014
Evgeniy Kamenev Существует много решений на основе LVS для создания отказоустойчивого кластера Например:
|
1 2 3 4 5 |
Pirnha Ultramonkey Heartbeat+mon Heartbeat+ldirectors Keepalived |
Я выбрал один из них – Keepalived. Linux Virtual Server (LVS) — это набор интегрированных программных компонентов для распределения нагрузки между несколькими реальными серверами. LVS работает на двух одинаково настроенных компьютерах: один из них явлается активным LVS-балансировщик нагрузки, а второй- резервным LVS-балансировщик нагрузки. […]
Установка и настройка отказоустойчивого балансировщика нагрузки на основе Haproxy+Keepalived (Горизонтальное масштабирование на уровне приложений модели OSI) на Centos
Декабрь 28th, 2013
Evgeniy Kamenev Структурная схема кластера На серверах lb01 и lb02 устанавливается Haproxy для балансировки нагрузки (распределения запросов клиентов на пару Web-серверов(серверов приложений app01 и app02)), а также для отказоустойчивости. При выходе со строя одного из lb-ов второй из них автоматически становится активным сервером(цепляет на себя VIP(Virtual IP) на который прописаны сайты в ДНС) Это достигается за счет […]
Установка и настройка mysql-mmm-кластера(MySQL Master-Master replication Manager) на Centos
Декабрь 28th, 2013
Evgeniy Kamenev Инструмент управления тиражированием с несколькими основными репликами (MultiMaster replication Manager) использует для репликации традиционный механизм “master-slave”. Он работает на основе набора серверов MySQL с, как минимум, двумя основными репликами с набором подчиненных реплик, а также с выделенным узлом мониторинга. Поверх этого набора узлов настраивается пул IP-адресов, который MMM может динамически перемещать от узла к узлу, […]
Синхронизация сайтов(папок) между серверами с помощью rsync
Декабрь 18th, 2013
Evgeniy Kamenev Например, необходимо получить копию сайтов(папок)/www/sites/{joomla.lb,wordpress.lb} с первого сервера(192.168.1.110) на второй(192.168.1.111) Или, наоборот, со второго на первый. 1.На втором сервере устанавливаем rsync, генерируем ssh-ключи
|
1 |
[root@centos641vz111 ~]# yum install rsync |
|
1 |
[root@centos641vz111 ~]# mkdir -p /www/sites/ |
|
1 |
[root@centos641vz111 ~]# ssh-keygen -t rsa -b 1024 |
2.Содержимое публичного ключа на втором сервере добавляем в файл /root/.ssh/authorized_keys на первом сервере.
|
1 |
[root@centos641vz111 ~]# cat /root/.ssh/id_rsa.pub |
|
1 |
[root@centos641vz110 ~]# nano /root/.ssh/autorized_keys |
Проверка прав, владельцев для папки .ssh и файла authorized_keys на первом сервере […]
Настройка MySQL-репликации master-master на Centos
Декабрь 18th, 2013
Evgeniy Kamenev
|
1 |
Server1 - 192.168.1.110 centos641vz110.kama.dnsalias.com - первый сервер |
|
1 |
Server2 - 192.168.1.111 centos641vz111.kama.dnsalias.com - второй сервер. |
Второй сервер — зеркало первого, который должен реплицировать все с первого, а также передавать ему свои изменения. Просматриваем все файлы, установленные пакетом Percona-Server
|
1 |
# rpm -ql Percona-Server-server-55-5.5.34-rel32.0.591.rhel6.i686 | less |
Копируем конфиг соответствующий Вашим аппаратным ресурсам
|
1 |
# cp /usr/share/doc/Percona-Server-server-55-5.5.34/my-large.cnf /etc/my.cnf |
|
1 |
# mkdir /var/log/mysql |
|
1 |
# chown -R mysql:mysql /var/log/mysql/ |
Настраиваем репликацию на первом сервере 1.Настраиваем Mysql на первом сервере
|
1 |
# nano /etc/my.cnf |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
pid_file = /var/lib/mysql/centos641vz110.kama.dnsalias.com.pid log_error = /var/log/mysql/centos641vz110.kama.dnsalias.com.err log-bin=/var/log/mysql/centos641vz110-bin.log log-bin-index=/var/log/mysql/centos641vz110-bin.index binlog_format=mixed auto_increment_offset = 1 auto_increment_increment = 2 server-id = 1 relay-log = /var/log/mysql/centos641vz110-relay-bin relay-log-index = /var/log/mysql/centos641vz110-relay-bin.index log-slave-updates = 1 |
Логи смотрим
|
1 |
# tail -f /var/log/mysql/centos641vz110.kama.dnsalias.com.err |
[…]
Установка MariaDB вместо MySQL на Centos
Декабрь 6th, 2013
Evgeniy Kamenev Генерируем свой репозитарий https://downloads.mariadb.org/mariadb/repositories/#mirror=nucleus Создаем репозитарий (например, Centos6 64bit)
|
1 |
# nano /etc/yum.repos.d/MariaDB.repo |
|
1 2 3 4 5 |
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/5.5/centos6-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 |
|
1 |
# yum update |
В процессе обновления конфликтующие библиотеки от mysql будут автоматически замещены Устанавливаем непосредственно сервер и клиент
|
1 |
# yum install MariaDB-server MariaDB-client |
Запускаем MySQL
|
1 |
# /etc/init.d/mysql start |
Проводим базовую настройку
|
1 |
# mysql_secure_installation |
Добавление mysql в автозагрузку
|
1 |
# chkconfig --level 2345 mysql on |
Настройка MySQL-репликации master-slave на Centos
Декабрь 6th, 2013
Evgeniy Kamenev Настройка MySQL-репликации master—slave на Centos
|
1 2 |
Master(192.168.1.39) - centos642.kama.dnsalias.com Slave(192.168.1.50) - centos64raidlvm.kama.dnsalias.com |
На главном сервере(master) 1.В my.cnf в секции [mysqld] включаем ведение двоичного(бинарного) журнала
|
1 |
# nano /etc/my.cnf |
|
1 2 3 4 5 |
[mysqld] server-id = 39 log-bin = centos642-bin relay-log = /var/log/mysql/centos642-relay-bin relay-log-index = /var/log/mysql/centos642-bin.index |
|
1 |
# mkdir /var/log/mysql |
|
1 |
# chown -R mysql:mysql /var/log/mysql/ |
2.Перезапускаем MySQL
|
1 |
# /etc/init.d/mysqld restart |
3. Создаем учетную запись для подключения с Slave сервера. т.е наделяем пользователя repluser подключающегося с подчиненного сервера с паролем replpassword правом читать информацию из двоичных журналов […]
Оценка производительности дисков командой iostat, LVM+iostat
Ноябрь 29th, 2013
Evgeniy Kamenev Определить интенсивность ввода/вывода на каждый том LVM можно с помощью программы iostat (пакет sysstat). Установка iostat на Centos
|
1 |
# yum install sysstat |
Синтаксис
|
1 |
iostat [опции] интервал повторения |
Например: Мониторинг интенсивности ввода-вывода каждые 5 секунд 10 раз
|
1 |
# iostat 5 10 |
Первый блок это измерения за период работы с момента загрузки системы. Остальные за указанный интервал – 5 секунд.
|
1 |
# iostat |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
.................................................... avg-cpu: %user %nice %system %iowait %steal %idle 20.85 0.00 3.47 0.09 0.00 75.59 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 60.25 9.29 1941.96 32164851 6720280692 dm-0 0.86 0.76 3.79 2617103 13098368 dm-2 13.70 1.50 54.08 5193949 187164188 dm-3 9.38 0.72 772.73 2491468 2674082256 dm-4 5.55 0.35 22.05 1194329 76288960 dm-5 187.15 1.79 748.16 6202909 2589050440 dm-6 62.62 2.33 249.83 8072753 864561652 dm-7 0.60 0.13 2.34 435973 8099968 dm-8 3.10 1.30 11.99 4496353 41480328 dm-9 2.32 0.13 9.22 449969 31921020 dm-11 6.19 0.12 24.72 413773 85555332 dm-12 2.72 0.08 10.84 268545 37520504 dm-13 8.06 0.07 32.21 239077 111457668 dm-14 0.01 0.03 0.00 87461 8 |
Для того, чтобы отобразить […]
MySQL — полезные мелочи
Ноябрь 29th, 2013
Evgeniy Kamenev Оптимизация параметров Mysql с помощью скриптов Mysqltuner Mysqlprimer 1. mysqltuner.pl (http://blog.mysqltuner.com/) 2. tuning-primer.sh (http://www.day32.com/MySQL/) Логирование медленных запросов + запросов не использующих индексы
|
1 2 3 4 5 6 7 |
[mysqld] # логгируем запросы длиннее 5 секунд long_query_time = 5 log-slow-queries = /var/log/mysqld-slow-query.log # логгируем запросы, не использующие индексы log-queries-not-using-indexes |
Увеличение количества открытых MySQL файлов Часто при использовании Inndb MySQL открывает очень много файлов и сваливается, т.к. упирается в лимит (1024 открытых файла). Текущее использование открытых файлов можно узнать так: […]

Опубликовано в рубрике
Метки: