Биллинговая система Nodeny
01 Ноября 2024, 02:38:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 [2] 3
  Печать  
Автор Тема: NoDeny High Availability Service (NoDeny Кластер)  (Прочитано 18377 раз)
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #15 : 18 Марта 2011, 02:22:56 »

Ядро биллинга ка кбы не учавствует в процессе авторизации, оно только дает команду на выключение.

Авторизация идет двумя способами, классический через ключик, посредством сервера авторизации и
новый рекомендуемый через радиус.
Основная проблема при авторизации на слейв базе будет в том. что сервер доступа noserver.pl  не увидет авторизованных клиентов и соотвественно не пустит их в интернет.
Поэтому как бы лучше все таки делать репликацию мастер мастер, что бы авторизация распространялась на всех участников репликации, с которой у же сервер доступа сможет выпустить клиента в интернет.
Записан
blackjack
NoDeny
Старожил
*

Карма: 24
Offline Offline

Сообщений: 352


Просмотр профиля Email
« Ответ #16 : 18 Марта 2011, 19:25:07 »

при репликации мастер мастер, постоянно вылазят косяки с дупликейт записями, вследствие хранимых процедур и триггеров
Записан
Rico-X
NoDeny
Старожил
*

Карма: 7
Offline Offline

Сообщений: 349


Просмотр профиля
« Ответ #17 : 18 Марта 2011, 20:13:13 »

Есть такое дело и carp падает переодически. По этому использую мастер-слейф, если что можно руками за пару минут переключить и не париться.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4789



Просмотр профиля
« Ответ #18 : 19 Марта 2011, 00:21:50 »

при репликации мастер мастер, постоянно вылазят косяки с дупликейт записями, вследствие хранимых процедур и триггеров
процитируй ошибку какую-нить
Записан
Andrey Zentavr
NoDeny
Старожил
*

Карма: 29
Offline Offline

Сообщений: 301



Просмотр профиля
« Ответ #19 : 19 Марта 2011, 01:31:08 »

при репликации мастер мастер, постоянно вылазят косяки с дупликейт записями, вследствие хранимых процедур и триггеров
Можно конфиг обоих MySQL серваков?

может поможет такой финт:
ServerA:
Код:
### Rackspace MySQL 4.1/5.0 Verbose Configuration File v1.1
###
### This is a base configuration file containing the most frequently used
### settings with reasonably defined default values for configuring and
### tuning MySQL. Note that these settings can likely be further tuned
### in order to get optimum performance from MySQL based upon the database
### configuration and hardware platform.
###
### While the settings provided are likely sufficient for most situations, an
### exhaustive list of settings (with descriptions) can be found at:
###
### For MySQL 4.1:
### http://dev.mysql.com/doc/refman/4.1/en/server-system-variables.html
### For MySQL 5.0:
### http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html
###
### Further configuration file examples (with and without comments) can be
### found in @@@mysql_server_docdir@@@.
###
### Take care to only add/remove/change a setting if you are comfortable
### doing so! For Rackspace customers, if you have any questions or concerns,
### please contact the MySQL Database Services Team. Be aware that some work
### performed by this team can involve additional billable fees.

[mysqld]

# __________________
#< General Settings >
# ------------------
#        \   ^__^
#         \  (oo)\_______
#            (__)\       )\/\
#                ||----w |
#                ||     ||

# Misc Settings
# -------------
datadir=/var/lib/mysql
#tmpdir=/var/lib/mysqltmp
socket=/var/lib/mysql/mysql.sock
skip-locking
#skip-name-resolve
table_cache=2048
thread_cache_size=16
back_log=100
max_connect_errors=10000
open-files-limit=20000
interactive_timeout=600
wait_timeout=600
#max_connections=200

# Set this to change the way MySQL handles validation, data
# conversion, etc. Be careful with this setting as it can
# cause unexpected results and horribly break some applications!
# Note, too, that it can be set per-session and can be hard set
# in stored procedures.
#sql_mode=TRADITIONAL

# Slow Query Log Settings
# -----------------------
#log-slow-queries=/var/lib/mysqllogs/slow-log
#long_query_time=2
#log-queries-not-using-indexes

# Global, Non Engine-Specific Buffers
# -----------------------------------
max_allowed_packet=16M
tmp_table_size=64M
max_heap_table_size=64M

# Generally, it is unwise to set the query cache to be
# larger than 64-128M as this can decrease performance
# since the penalty for flushing the cache can become
# significant.
query_cache_size=32M

# Per-Thread Buffers
# ------------------
sort_buffer_size=1M
read_buffer_size=1M
read_rnd_buffer_size=8M
join_buffer_size=1M

# __________________________
#< Engine Specific Settings >
# --------------------------
#        \   ^__^
#         \  (oo)\_______
#            (__)\       )\/\
#                ||----w |
#                ||     ||

# Set this to force MySQL to use a particular engine / table-type
# for new tables. This setting can still be overridden by specifying
# the engine explicitly in the CREATE TABLE statement.
#default-storage-engine=InnoDB

# MyISAM
# ------

# Not sure what to set this to?
# Try running a 'du -sch /var/lib/mysql/*/*.MYI'
# This will give you a good estiamte on the size of all the MyISAM indexes.
# (The buffer may not need to set that high, however)
key_buffer_size=64M

# This setting controls the size of the buffer that is allocated when
# sorting MyISAM indexes during a REPAIR TABLE or when creating indexes
# with CREATE INDEX or ALTER TABLE.
myisam_sort_buffer_size=64M

# InnoDB
# ------
# Note: While most settings in MySQL can be set at run-time, InnoDB
# variables require restarting MySQL to apply.

# If the customer already has InnoDB tables and wants to change the
# size of the InnoDB tablespace and InnoDB logs, then:
# 1. Run a full backup with mysqldump
# 2. Stop MySQL
# 3. Move current ibdata and ib_logfiles out of /var/lib/mysql
# 4. Uncomment the below innodb_data_file_path and innodb_log_file_size
# 5. Start MySQL (it will recreate new InnoDB files)
# 6. Restore data from backup
#innodb_data_file_path=ibdata1:2000M;ibdata2:10M:autoextend
#innodb_log_file_size=100M

# InnoDB loves RAM. For customers using mostly InnoDB, consider setting
# this variable somewhat liberally. Do make sure the server is 64-bit,
# however, if you plan on setting it above 1.5-2GB.
innodb_buffer_pool_size=16M

#innodb_additional_mem_pool_size=20M

# innodb_file_per_table can be useful in certain cases
# but be aware that it does not scale well with a
# large number of tables!
#innodb_file_per_table=1

# Somewhat equivalent to table_cache for InnoDB
# when using innodb_file_per_table.
#innodb_open_files=1024

# If you are not sure what to set this two, the
# following formula can offer up a rough idea:
# (number of cpus * number of disks * 2)
#innodb_thread_concurrency=16

# _____________________________
#< Replication/Backup Settings >
# -----------------------------
#        \   ^__^
#         \  (oo)\_______
#            (__)\       )\/\
#                ||----w |
#                ||     ||

server-id=2

# Master Side
master-host=10.0.0.1
master-user=replication
master-password=Sf8kClPs
master-port=3306

replicate-same-server-id=0

# It may be wise to include the server-name or an easy identifier
# to the server in these logs, such as 'log-bin=/var/lib/mysqllogs/db1-bin-log'
log-bin=/var/lib/mysqllogs/bin-log
log-bin-index=/var/lib/mysqllogs/bin-log.index
relay-log=/var/lib/mysqllogs/relay-log
relay-log-index=/var/lib/mysqllogs/relay-log.index

# MySQL 5.0+ Only
expire_logs_days=14

# This is usually only needed when setting up chained replication.
log-slave-updates

# Enable this to make replication more resilient against server
# crashes and restarts, but can cause higher I/O on the server.
#sync_binlog=1

# If the server is a standard MySQL slave, it would be wise
# to enable read-only mode to prevent stray writes that could
# break replication
# read_only=1

# MySQL 5.0+ Only
# Uncomment the following when enabling multi-master replication
# Do NOT uncomment these unless you know exactly what you are doing!
auto_increment_increment=10
auto_increment_offset=2

## databases
replicate-do-db = nodeny
replicate-do-db = repdb
replicate-ignore-db=mysql
replicate-ignore-db=test

# _________________
#< Script Settings >
# -----------------
#        \   ^__^
#         \  (oo)\_______
#            (__)\       )\/\
#                ||----w |
#                ||     ||
# (You probably do not need to change these)

[mysql.server]
user=mysql
#basedir=/var/lib

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
open-files-limit=65535

ServerB:
Код:
### Rackspace MySQL 4.1/5.0 Verbose Configuration File v1.1
###
### This is a base configuration file containing the most frequently used
### settings with reasonably defined default values for configuring and
### tuning MySQL. Note that these settings can likely be further tuned
### in order to get optimum performance from MySQL based upon the database
### configuration and hardware platform.
###
### While the settings provided are likely sufficient for most situations, an
### exhaustive list of settings (with descriptions) can be found at:
###
### For MySQL 4.1:
### http://dev.mysql.com/doc/refman/4.1/en/server-system-variables.html
### For MySQL 5.0:
### http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html
###
### Further configuration file examples (with and without comments) can be
### found in @@@mysql_server_docdir@@@.
###
### Take care to only add/remove/change a setting if you are comfortable
### doing so! For Rackspace customers, if you have any questions or concerns,
### please contact the MySQL Database Services Team. Be aware that some work
### performed by this team can involve additional billable fees.

[mysqld]

# __________________
#< General Settings >
# ------------------
#        \   ^__^
#         \  (oo)\_______
#            (__)\       )\/\
#                ||----w |
#                ||     ||

# Misc Settings
# -------------
datadir=/var/lib/mysql
#tmpdir=/var/lib/mysqltmp
socket=/var/lib/mysql/mysql.sock
skip-locking
#skip-name-resolve
table_cache=2048
thread_cache_size=16
back_log=100
max_connect_errors=10000
open-files-limit=20000
interactive_timeout=600
wait_timeout=600
#max_connections=200

# Set this to change the way MySQL handles validation, data
# conversion, etc. Be careful with this setting as it can
# cause unexpected results and horribly break some applications!
# Note, too, that it can be set per-session and can be hard set
# in stored procedures.
#sql_mode=TRADITIONAL

# Slow Query Log Settings
# -----------------------
#log-slow-queries=/var/lib/mysqllogs/slow-log
#long_query_time=2
#log-queries-not-using-indexes

# Global, Non Engine-Specific Buffers
# -----------------------------------
max_allowed_packet=16M
tmp_table_size=64M
max_heap_table_size=64M

# Generally, it is unwise to set the query cache to be
# larger than 64-128M as this can decrease performance
# since the penalty for flushing the cache can become
# significant.
query_cache_size=32M

# Per-Thread Buffers
# ------------------
sort_buffer_size=1M
read_buffer_size=1M
read_rnd_buffer_size=8M
join_buffer_size=1M

# __________________________
#< Engine Specific Settings >
# --------------------------
#        \   ^__^
#         \  (oo)\_______
#            (__)\       )\/\
#                ||----w |
#                ||     ||

# Set this to force MySQL to use a particular engine / table-type
# for new tables. This setting can still be overridden by specifying
# the engine explicitly in the CREATE TABLE statement.
#default-storage-engine=InnoDB

# MyISAM
# ------

# Not sure what to set this to?
# Try running a 'du -sch /var/lib/mysql/*/*.MYI'
# This will give you a good estiamte on the size of all the MyISAM indexes.
# (The buffer may not need to set that high, however)
key_buffer_size=64M

# This setting controls the size of the buffer that is allocated when
# sorting MyISAM indexes during a REPAIR TABLE or when creating indexes
# with CREATE INDEX or ALTER TABLE.
myisam_sort_buffer_size=64M

# InnoDB
# ------
# Note: While most settings in MySQL can be set at run-time, InnoDB
# variables require restarting MySQL to apply.

# If the customer already has InnoDB tables and wants to change the
# size of the InnoDB tablespace and InnoDB logs, then:
# 1. Run a full backup with mysqldump
# 2. Stop MySQL
# 3. Move current ibdata and ib_logfiles out of /var/lib/mysql
# 4. Uncomment the below innodb_data_file_path and innodb_log_file_size
# 5. Start MySQL (it will recreate new InnoDB files)
# 6. Restore data from backup
#innodb_data_file_path=ibdata1:2000M;ibdata2:10M:autoextend
#innodb_log_file_size=100M

# InnoDB loves RAM. For customers using mostly InnoDB, consider setting
# this variable somewhat liberally. Do make sure the server is 64-bit,
# however, if you plan on setting it above 1.5-2GB.
innodb_buffer_pool_size=16M

#innodb_additional_mem_pool_size=20M

# innodb_file_per_table can be useful in certain cases
# but be aware that it does not scale well with a
# large number of tables!
#innodb_file_per_table=1

# Somewhat equivalent to table_cache for InnoDB
# when using innodb_file_per_table.
#innodb_open_files=1024

# If you are not sure what to set this two, the
# following formula can offer up a rough idea:
# (number of cpus * number of disks * 2)
#innodb_thread_concurrency=16

# _____________________________
#< Replication/Backup Settings >
# -----------------------------
#        \   ^__^
#         \  (oo)\_______
#            (__)\       )\/\
#                ||----w |
#                ||     ||

server-id=1

# Master Side
master-host=10.0.0.2
master-user=replication
master-password=4wi3k78J
master-port=3306

replicate-same-server-id=0

# It may be wise to include the server-name or an easy identifier
# to the server in these logs, such as 'log-bin=/var/lib/mysqllogs/db1-bin-log'
log-bin=/var/lib/mysqllogs/bin-log
log-bin-index=/var/lib/mysqllogs/bin-log.index
relay-log=/var/lib/mysqllogs/relay-log
relay-log-index=/var/lib/mysqllogs/relay-log.index

# MySQL 5.0+ Only
expire_logs_days=14

# This is usually only needed when setting up chained replication.
log-slave-updates

# Enable this to make replication more resilient against server
# crashes and restarts, but can cause higher I/O on the server.
#sync_binlog=1

# If the server is a standard MySQL slave, it would be wise
# to enable read-only mode to prevent stray writes that could
# break replication
# read_only=1

# MySQL 5.0+ Only
# Uncomment the following when enabling multi-master replication
# Do NOT uncomment these unless you know exactly what you are doing!
auto_increment_increment=10
auto_increment_offset=1

## databases
replicate-do-db = nodeny
replicate-do-db = repdb
replicate-ignore-db=mysql
replicate-ignore-db=test


# _________________
#< Script Settings >
# -----------------
#        \   ^__^
#         \  (oo)\_______
#            (__)\       )\/\
#                ||----w |
#                ||     ||
# (You probably do not need to change these)

[mysql.server]
user=mysql
#basedir=/var/lib

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
open-files-limit=65535

Именно вся прелесть в настройках для автоинкремента:
на одной ноде
Код:
auto_increment_increment=10
auto_increment_offset=1

и второй ноде
Код:
auto_increment_increment=10
auto_increment_offset=2
Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #20 : 20 Марта 2011, 12:54:57 »

Четные айди на одном мастере,  нечетные на другом при добалвении записей никто не отменял!!!
Записан
Rico-X
NoDeny
Старожил
*

Карма: 7
Offline Offline

Сообщений: 349


Просмотр профиля
« Ответ #21 : 20 Марта 2011, 14:56:27 »

При такой настройке вылазит бок при генерации карт оплаты, так что инкременты приходится вернуть на исходные.
Записан
Andrey Zentavr
NoDeny
Старожил
*

Карма: 29
Offline Offline

Сообщений: 301



Просмотр профиля
« Ответ #22 : 21 Марта 2011, 01:00:16 »

Четные айди на одном мастере,  нечетные на другом при добалвении записей никто не отменял!!!

Ну как бы именно про это и пост
Записан
Andrey Zentavr
NoDeny
Старожил
*

Карма: 29
Offline Offline

Сообщений: 301



Просмотр профиля
« Ответ #23 : 21 Марта 2011, 01:01:50 »

При такой настройке вылазит бок при генерации карт оплаты, так что инкременты приходится вернуть на исходные.
Какой собственно бок вылазит?? Я понимаю тот, когда простыня карт в настройках биллинга отображается? Веселый
Да, есть такое.. Я когда с UTM5 переносил карточки - намучался с этим.
Записан
Rico-X
NoDeny
Старожил
*

Карма: 7
Offline Offline

Сообщений: 349


Просмотр профиля
« Ответ #24 : 25 Марта 2011, 15:46:33 »

Бок в том, что то сгенерит одну карту и вылетет с ошибкой, то кинет целую простыню, то нагенерит кучу карт с одним номером, уже не помню всех вариаций с пол года назад было, потом плюнул и сделал мастер-слейф репликацию+ ежедневный бэкап как мастера так и слейва, благо падение базы не такое частое событие, чтоб нельзя было руками переткнуть. Ну и простенький скрипт на баше набросал, который у меня меняет мастер и слейф местами, так что хоть с мобильника его запускай, юзал 1 раз (выгорел бп на мастере) время простоя менее 10 минут, не особо критично при том что сателиты продолжали работать и уже авторизировавшиеся пользователи связи не потеряли.
Записан
Demeo
NoDeny
Постоялец
*

Карма: 6
Offline Offline

Сообщений: 204


Просмотр профиля Email
« Ответ #25 : 18 Ноября 2011, 20:43:42 »

Как раз сейчас есть необходимость в распределении нагрузки на 2 сервера с фейловером. CARP, я так понял, самый простой вариант. Если не юзать карт, еще какие-нибудь траблы могут быть при мастер-мастер репликации? Может кто поделится своим рабочим вариантом?

Юзаем pppoe авторизацию - два сервера не будут помехой? И какой тогда интерфейс писать в конфиге mpd - локальный или carp?

А если объединить в carp внешние интерфейсы - проблемы будут? Или лучше взять еще один IP? Но тогда будут отваливаться всякие там авторизации по IP
« Последнее редактирование: 18 Ноября 2011, 20:48:25 от Demeo » Записан
Rico-X
NoDeny
Старожил
*

Карма: 7
Offline Offline

Сообщений: 349


Просмотр профиля
« Ответ #26 : 19 Ноября 2011, 17:01:44 »

Иногда происходит разсинхронизация баз данных. Может стоит просто вынести отдельно pppoe авторизаторы оставив базу на отдельном сервере? Сателитов можно наплодить сколько угодно для снятия нагрузки. Carp иногда сбоит и самопроизвольно отваливается, с чем связано не выявил. Система мастер-мастер поработала в тестовом режиме пару месяцев, но так как случались сбои в работе перевел на мастер-слейф, что в разы стабильней, а вместо carp использовал банальный алиас, который при необходимости применялся на "живом" сервере отдельным скриптом привязанным к мониторингу.
Записан
Demeo
NoDeny
Постоялец
*

Карма: 6
Offline Offline

Сообщений: 204


Просмотр профиля Email
« Ответ #27 : 20 Ноября 2011, 00:28:39 »

Скриптом, к сожалению, не получится распределить нагрузку на рррое-сервера. А CARP дает как бы рапределение+фейловер
Записан
Rico-X
NoDeny
Старожил
*

Карма: 7
Offline Offline

Сообщений: 349


Просмотр профиля
« Ответ #28 : 20 Ноября 2011, 10:30:03 »

А можно мне открыть страшную тайну ЗАЧЕМ распределять нагрузку на pppoe сервера какими-то левыми средствами если несколько pppoe серверов запущенных в одной сети сами "из коробки" распределяют нагрузку между собой. Какой первый ответил, тот и подцепил пользователь, первым отвечает менее нагруженный, что не так?
Записан
Андрій
NoDeny
Старожил
*

Карма: 3
Offline Offline

Сообщений: 294


Просмотр профиля
« Ответ #29 : 20 Ноября 2011, 11:41:01 »

А можно мне открыть страшную тайну ЗАЧЕМ распределять нагрузку на pppoe сервера какими-то левыми средствами если несколько pppoe серверов запущенных в одной сети сами "из коробки" распределяют нагрузку между собой. Какой первый ответил, тот и подцепил пользователь, первым отвечает менее нагруженный, что не так?

в такому варіанті є шанс що під одним логіном підключаться два користувача на різні сателіти
Записан
Страниц: 1 [2] 3
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!