На серверах lb01 и lb02 устанавливается Nginx для балансировки нагрузки (распределения запросов клиентов на пару Web-серверов(серверов приложений app01 и app02)), а также для отказоустойчивости. При выходе со строя одного из lb-ов второй из них автоматически становится активным сервером(цепляет на себя VIP(Virtual IP) на который прописаны сайты в ДНС) Это достигается за счет настроенного KeepAlived на […]
Архивы рубрики ‘Centos’
Установка и настройка отказоустойчивого балансировщика нагрузки на основе Nginx+Keepalived (Горизонтальное масштабирование на уровне приложений модели OSI) на Centos
Установка и настройка отказоустойчивого балансировщика нагрузки на основе Keepalived в качестве одного из типов реализации LVS(Linux Virtual Server) (Горизонтальное масштабирование на транспортном уровне модели OSI) на Centos
Существует много решений на основе 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
Структурная схема кластера На серверах lb01 и lb02 устанавливается Haproxy для балансировки нагрузки (распределения запросов клиентов на пару Web-серверов(серверов приложений app01 и app02)), а также для отказоустойчивости. При выходе со строя одного из lb-ов второй из них автоматически становится активным сервером(цепляет на себя VIP(Virtual IP) на который прописаны сайты в ДНС) Это достигается за счет […]
Установка и настройка mysql-mmm-кластера(MySQL Master-Master replication Manager) на Centos
Инструмент управления тиражированием с несколькими основными репликами (MultiMaster replication Manager) использует для репликации традиционный механизм “master-slave”. Он работает на основе набора серверов MySQL с, как минимум, двумя основными репликами с набором подчиненных реплик, а также с выделенным узлом мониторинга. Поверх этого набора узлов настраивается пул IP-адресов, который MMM может динамически перемещать от узла к узлу, […]
Синхронизация сайтов(папок) между серверами с помощью rsync
Например, необходимо получить копию сайтов(папок)/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
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
Генерируем свой репозитарий 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
Настройка 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
Определить интенсивность ввода/вывода на каждый том 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 — полезные мелочи
Оптимизация параметров 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 открытых файла). Текущее использование открытых файлов можно узнать так: […]