Задавайте вопросы, мы ответим
Вы не зашли.
Решил в очередной раз в конторе поднять кластер мускуля.
Что надо - отказоустойчивый кластер на двух серверах, ну, типа как зеркало.
Дано - два сервера в одном датацентре, на обоих поднял по ноде, запустил менеджмент ноду на одном из серверов, в другом дата-центре запустил еще одну менеджмент ноду, на всякий случай. Количество реплик у меня равно 1.
Но при попытке затушить из админке одной из нод система ругается что кластер может упасть, если прибивать руками ноду - то кластер на самом деле падает. Что я делаю не так? Мне надо что бы в случае если падает одна нода - все бы работало дальше.
Вот мой конфиг, с учетом того, что я его даже еще пока и не начал тюнить:
[NDBD DEFAULT]
NoOfReplicas=1
DataMemory=80M # How much memory to allocate for data storage
IndexMemory=18M # How much memory to allocate for index storage
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
[ndb_mgmd]
hostname=10.25.4.33
[ndb_mgmd]
hostname=10.25.2.117
[NDBD]
HostName = 10.25.4.33
DataDir=/home/db/mysql-cluster
BackupDataDir=/home/db/mysql-cluster/backup
DataMemory=1024M
[NDBD]
HostName = 10.25.4.43
DataDir=/home/db/mysql-cluster
BackupDataDir=/home/db/mysql-cluster/backup
DataMemory=2048M
Отредактированно ginger22 (28.04.2009 14:10:33)
Неактивен
Кластер нельзя поднять на двух серверах.
Самый простой способ это понять такой. Представьте себе кластер из трех машинок. Если одна
из них теряет связь с двумя другими, но две другие по прежнему друг друга видят, то кластер
выживает: считается, что одна из машинок отцепилась, и ничего в этом страшного нет.
В случае же с двумя машинками, получается, что каждая из них считает, что она «отцепилась
от основного кластера». В результате, куска кластера, который «остался жив» — нету.
Неактивен
Я для этого и поднимаю две менеджмент ноды, одна из которых будет в другом датацентре, а вторая в этом же датацентре но на третьем сервере.
Неактивен
а так вообщем то я разобрался, реплик надо было делать не 1 а 2.
Единственное что меня стало напрягать - так это то что менеджмент нода криво пишет свои файлы при работе.
поясню - откуда ее запускаешь, туда она и пишет.
Вот к примеру мой скрипт для запуска во FreeBSD:
#!/bin/sh
#
# PROVIDE: mysql-cluster
# REQUIRE: DAEMON
# KEYWORD: shutdown
#
# DO NOT CHANGE THESE DEFAULT VALUES HERE
# SET THEM IN THE /etc/rc.conf FILE
#
ndb_mgmd_enable=${ndb_mgmd_enable-"NO"}
ndb_mgmd_flags=${ndb_mgmd_flags-""}
ndb_mgmd_pidfile=${ndb_mgmd_pidfile-"/var/lib/mysql-cluster/ndb_4.pid"}
. /etc/rc.subr
name="ndb_mgmd"
rcvar=`set_rcvar`
command="/usr/local/libexec/ndb_mgmd"
load_rc_config $name
pidfile="${ndb_mgmd_pidfile}"
start_cmd="echo \"Starting ${name}.\"; /usr/bin/nice -5 ${command} ${ndb_mgmd_flags} ${command_args}"
run_rc_command "$1"
иногда пишет прямо в каталог /usr/local/etc/rc.d, иногда в свой родной каталог /var/lib/mysql-cluster
закономерности так и не нашел. А с описанием pid файла вообще непонятно, как она ему id циферку иногда присваивает, такое чувство что рандомно.
Вот мой новый конфиг:
[NDBD DEFAULT]
NoOfReplicas=2
DataMemory=80M # How much memory to allocate for data storage
IndexMemory=18M # How much memory to allocate for index storage
DataDir=/home/db/mysql-cluster
BackupDataDir=/home/db/mysql-cluster/backup
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
[ndb_mgmd]
id=3
hostname=10.25.4.108
[ndb_mgmd]
id=4
hostname=10.25.2.117
[NDBD]
id=1
HostName = 10.25.4.33
DataMemory=1024M
[NDBD]
id=2
HostName = 10.25.4.43
DataMemory=2048M
[MYSQLD]
id=5
[MYSQLD]
id=6
Неактивен
В новом конфиге 4 машинки, а не 2
По поводу файликов — напишу свое традиционное отношение к FreeBSD. FreeBSD не умеет готовить
MySQL. Они делают плохие скрипты, они плохо собирают сервер из портов. Если хотите запустить
MySQL на FreeBSD, берите официальные исходники с официального сервера, и собирайте их
самостоятельно
Неактивен