описание создание файловера mysql с фильтром запросов
1.строим мастер-мастер репликацию
кроме стандартного mysql сервера ставим mysql-proxy и heartbeat
в конфиге my.cnf обязательные параметры
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
old_passwords=1
port=3307 # на стандартном 3306 будет слушать mysql-proxy
log-bin # писать обязательно бинарные логи
server-id=2 #у каждой ноды свой номер
[mysql.server]
user=mysql
basedir=/var/lib
запускаем обе ноды и сервера баз на них
пусть будет node1 192.168.50.151
и node2 192.168.50.152
шаг первый
сделаем node1 master а node2 slave
на каждой назначаем пользователя для репликаций
grant replication slave on *.* to 'replication_user'@192.168.50.152 identified
by 'replication_password';
192.168.50.152 - нода которая будет slave относительно данной
узнаем с какого файла и с какой операции реплицировать
show master status;
пример вывода:
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| mysqld-bin.000009 | 411 | | |
+-------------------+----------+--------------+------------------+
на slave ноде назначаем мастер сервер
change master to master_host='192.168.50.151', master_user
= 'replication_user', master_password = 'replication_password', master_port =
3307, master_log_file = 'mysqld-bin.000009', master_log_pos = 411 ;
запускаем репликацию на slave запускаем
slave start;
проверяем все лиработает
show slave status\G;
основные записи
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
если хоть одна No то ищем почему сервера не могут общаться (файрвол,пароли и
пр.)
На данный момент у нас одна нода ведущая, вторая читает бинарный лог операций и
совершает их у себя.
второй шаг - делаем так что б одновременно node1 была и master для node2 и
slave для node2
операции те же - данные немного меняются
grant replication slave on *.* to 'replication_user'@192.168.50.151 identified
by 'replication_password';
change master to master_host='192.168.50.152', master_user
= 'replication_user', master_password = 'replication_password', master_port =
3307, master_log_file = 'mysqld-bin.000002', master_log_pos = 411 ;
flush privileges;
slave start;
и обязательно проверяем
show slave status/G;
2. mysql-proxy
тут все просто
mysql-proxy --proxy-lua-script=/root/big_query_filter.lua\
--proxy-address=:3306\
--proxy-backend-addresses=/var/lib/mysql/mysql.sock\ #локальную базу через
сокет потому как быстрее на 10% , в 0.6 версии не работало потому пришлось все гонять через lo
--proxy-read-only-backend-addresses=192.168.50.152:3307\ база на другой ноде
только для чтения
--pid-file=/var/run/mysql-proxy.pid
--daemon
скрипт big_query_filter.lua просто не пускает запросы с более чем 500
символами возвращая ошибку с комментарием
3. heartbeat
ставим heartbeat
задаем метод аутентификации /etc/ha.d/authkeys
auth 3
3 md5 secret_password
конфиг /etc/ha.d/ha.cf
logfile /var/log/ha-log
logfacility local0
keepalive 1 # интервал между проверками
deadtime 10 # время через которое вторая нода подхватит ip первой
warntime 4 # предупреждение чере 4 сек
udpport 694
bcast eth1
auto_failback on
node node1
node node2
описание ресурсов которые проверяются /etc/ha.d/haresources
mysql1 IPaddr::192.168.50.151/24/eth1
в случае отказа 192.168.50.151 ее адресс алиасом цепляется к второй ноде через
10сек(можно и меньше)
добивать отказавшую ноду не вижу смысла
ввод в строй отказавшей ноды руками - что б данные не потерялись
прикреплена файлы скриптов запуска mysql-proxy и скрипта big_query_filter.lua
понедельник, 26 января 2009 г.
четверг, 4 декабря 2008 г.
Cobbler продолжение
Cobbler не ограничивается ролью загрузчика, можно настроить взаимодействие его с dhcp и dns. А также есть у него простенький веб интерфейс - который ,на мой взгляд, страшнее консольки.
cobbler system add --name= --mac= --profile=<выбраный_profile> --ip= <>
синхронизируем конфигурацию dhcpd c cobbler
cobbler sync
Если dhcpd находится на том же сервере что и cobbler то по умолчанию перезапустится. За это в конфиге отвечают строки restart_dhcp: 1
Все - теперь к определенным мак адресам привязаны ip которые мы назначили Редактировать можно так
cobbler system edit --name= --mac= --profile=<выбраный_profile> --ip=<новый_ip_adress>
Редактируем /etc/cobbler/named.template вписывая наши данные
Открываем файл /etc/cobbler/settings , находим такие параметры manage_forward_zones и manage_reverse_zones - это соответственно прямая и обратная зона.
Конфиг пишется на yaml, он и в rails используется.
Вот что примерно должно получится
manage_forward_zones:
- 'adenin.ru'
manage_reverse_zones:
- '10.20.4'
Для нашей зоны adenin.ru нужно в папке /etc/cobbler/zome_templates (если ее нет - создайте) создать файл adenin.ru , файл называется так же как и прямая зона , или зоны, в manage_forward_zones.
И самое важное, каждой системе в необходимо задать hostname вида node1.adenin.ru
cobbler system edit --name=node1 --hostname=node1.adenin.ru
и выполняем
cobbler sync
Bind перезапустится автоматом.
Web интерфейс
Настраиваем интерфейс после настройки всех служб и синхронизации с репозиторием. Смотри в /etc/cobbler/modules.conf Аутентификация по файлу. (еще варианты запретить для всех:"authn_denyall", использовать spacewalk: "authn_spacewalk" - пользователь с правами администратора на RHN/spacewalk может залогиниться используя теже лоигн и пароль , но необходимо прописать в /etc/cobbler/settings строчку "spacewalk_url: "http://сервер_spacewalk/rpc/api" , аутентификацию проводит apache и kerberos : "authn_passthru", использовать ldap: "authn_ldap" , тестирование - логин и пароль "testing" :"authn_testing", если все выше перечиленное не устраивает то можно и самому написать модель аутентификации) [authentication]
module = authn_configfile
Авторизацию разрешить всем (можно также использовать authz_configfile - т.е. только тем кто перечислен в файле, либо authz_ownership - пользователям перечисленным в users.conf и добавить пренадлежность объектов к определенному хозяину, либо опять написать свой модуль ) [authorization]
module = authz_allowall
Взаимодействие cobbler с dhcpd
Используем стандартный сервер isc-dhcp . В /etc/cobbler/settings разрешаем администрировать dhcpd manage_dhcp: 1 В файл /etc/cobbler/dhcp.template вносим изменения (если нужно) Теперь вносим новую систему cobbler system add --name=
синхронизируем конфигурацию dhcpd c cobbler
cobbler sync
Если dhcpd находится на том же сервере что и cobbler то по умолчанию перезапустится. За это в конфиге отвечают строки restart_dhcp: 1
Все - теперь к определенным мак адресам привязаны ip которые мы назначили Редактировать можно так
cobbler system edit --name=
Взаимодействие cobbler с bind
Включаем редактирование конфигов bind manage_dns: 1Редактируем /etc/cobbler/named.template вписывая наши данные
Открываем файл /etc/cobbler/settings , находим такие параметры manage_forward_zones и manage_reverse_zones - это соответственно прямая и обратная зона.
Конфиг пишется на yaml, он и в rails используется.
Вот что примерно должно получится
manage_forward_zones:
- 'adenin.ru'
manage_reverse_zones:
- '10.20.4'
Для нашей зоны adenin.ru нужно в папке /etc/cobbler/zome_templates (если ее нет - создайте) создать файл adenin.ru , файл называется так же как и прямая зона , или зоны, в manage_forward_zones.
И самое важное, каждой системе в необходимо задать hostname вида node1.adenin.ru
cobbler system edit --name=node1 --hostname=node1.adenin.ru
и выполняем
cobbler sync
Bind перезапустится автоматом.
Подключение репозиториев с обновлениями
Необходимо получить url резотирия для нашей архитектуры и дистрибутива
Например для fedora9
ftp://dispenser.yandex.net/fedora/linux/updates/9/x86_64.newkey/
Подсмотел в /etc/yum.repos.d/fedora-updates-newkey.repo
Включаем его
cobbler repo add --mirror=ftp://dispenser.yandex.net/fedora/linux/updates/9/x86_64.newkey/ --name=f9_x86_64_update_newkeys
И выполняем синхронизацию
cobbler reposync
Теперь добавляем профиль который будет использовать список репозиториев включающий нужные нам
Например для fedora9
ftp://dispenser.yandex.net/fedora/linux/updates/9/x86_64.newkey/
Подсмотел в /etc/yum.repos.d/fedora-updates-newkey.repo
Включаем его
cobbler repo add --mirror=ftp://dispenser.yandex.net/fedora/linux/updates/9/x86_64.newkey/ --name=f9_x86_64_update_newkeys
И выполняем синхронизацию
cobbler reposync
Теперь добавляем профиль который будет использовать список репозиториев включающий нужные нам
cobbler profile add --name=f9-x86_64_test --repos="список имен репозиториев" --distro=F9-x86_64
Что б после установки система использовала для обновления наш репозиторий вписыавем в файл /etc/cobbler/settings
yum_post_install_mirror: 1
В крон вписываем задание обновляться и наслаждаемся всегда свежим локальным репозиторием
Кстати - так же можно создать репозиторий для debian-based дистрибутивов, только добавляем аргумент
--breed=apt
He can try forex trading platform by a proffessional team, because it's perfect in use.
SoftAge suggest macintosh programming for customers' wants
CARMANI CB400
SoftAge suggest macintosh programming for customers' wants
CARMANI CB400
понедельник, 1 декабря 2008 г.
cobbler
Cobbler
Часть первая - о установке.
Рассмотрим вариант с сетевой установкойИ так - у нас есть сеть и компьютер на который необходимо по сети установить ОС(называть его будем клиентом). Сервер с которого будет устанавливаться (просто сервер).
Устанавливаем на машину с которой будет производиться установка cobbler и необходимые пакеты.
yum install cobbler dhcp httpd syslinux tftp-server -y
dhcp
Первая служба к которой обратится клиент будет dhcp - потому настроим его.
Вот простейший рабочий конфиг.
ddns-update-style none;
ignore client-updates;
use-host-decl-names on;
authoritative;
set vendorclass = option vendor-class-identifier;
# указываем свою сеть
subnet 10.20.4.0 netmask 255.255.255.0 {
# задаем роутер по умолчанию
option routers 10.20.4.1;
# маска подсети
option subnet-mask 255.255.240.0;
# сервер днс
option domain-name-servers 10.20.4.1;
# часовой пояс
option time-offset -18000; #EST
# диапазон адресов которые будем раздавать по dhcp
# в нашем случае от 10.20.4.2 до 10.20.4.100
pool {
range dynamic-bootp 10.20.4.2 10.20.4.100;
# время аренды адреса по умолчанию
default-lease-time 86400;
# максимальное время аренды адреса
max-lease-time 86400;
}
# сервер с которого попытаться загрузиться
next-server 10.20.4.1;
# файл который скачать по tftp протоколы с сервера загрузки
filename "pxelinux.0";
# разрешаем загрузку
allow bootp;
allow booting;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
}
Если несколько сетевых интерфейсов то в файле /etc/sysconfig/dhcpd указываем
какой из них слушать DHCPDARGS=eth1
Запускаем dhcpd сервер
service dhcpd start
tftp
Следом за dhcpd клиент воспользуется tftp сервером что б скачать файл pxe
который в свою очередь уже будет скачивать ядро(функция его основная но не
единственная)
tftp-server будет запускаться через xinetd - для этого в файле /etc/xinetd.d/tftp
в строке disable поставьте значение no.
disable = no
и перезапустите xinetd
service xinetd restart
cobbler
проверим все ли настройки выполнены необходимые для cobbler
cobbler check
Скорее всего он попросит запустить httpd cobblerd и
подредактировать шаблоны kickstart файлов заменив хеш пароля по умолчания на ваш хеш
теперь необходима сама устанавливаемая операционная система
Если она у нас на dvd диске
монтируем диск в /home/os
mount /dev/dvd-hdb /home/os
и забираем все файлы указывая название --name=F9 откуда
берем файлы --mirror=/home/os
и архитектуру процессора --arch=x86_64
cobbler import --name=F9 --mirror=/home/os --arch=x86_64
Еще один вариант - синхронизировать с официальном сервером, например используем сервер яндекса
cobbler import --name=F10 --mirror=rsync://mirror.yandex.ru/fedora/linux/releases/10
/Fedora/x86_64/os --arch=x86_64
И еще один вариант - не использовать синхронизацию - мы просто укажем где есть весь набор пакетов
cobbler import --name=F9 --mirror=/home/os --arch=x86_64 --available-as=nfs://10.20.4.1:/home/os
и настроить nfs
после того как синхронизация завершится
нужно настроить в kickstart файле источник установки.
в нашем случае это http://10.20.4.1/cobbler/ks_mirror/F9-x86_64/
Узнать можно вызвав синхронизацию снова и найти строку
http://@@http_server@@/cobbler/ks_mirror/config/F9-x86_64-0.repo
где @@http_server@@ адресс сервера
по ссылке расположен файл конфигурации репозитория - его можно прописать
для использования локального репозитория предоставляемого cobbler
там же указан адрес папки со всеми файлами - вот его и пишем как источник установки
После того как написан kickstart файл (http://fedoraproject.org/wiki/Anaconda/Kickstart) добавим
клиента
cobbler system add --name=system1 --profile=F9-x86_64 --mac=<мак адрес машины>
--ip=--hostname=<имя машины> --kickstart=/root/ks.system1.cfg
Параметров на самом деле много - даже определенные поля kickstart файла можно задать
персонально для каждого клиента
Посмотреть список профилей можно с помощью команды koan --server=10.20.4.1 --list=profiles
(подробней о koan в след.раз)
Теперь указываем в биосе клиента,что загружаемся в первую очередь с сетевой карточки используя
pxe.
Если kickstart файл написан правильно то все загрузится и установится самостоятельно.
Подписаться на:
Сообщения (Atom)