Home

Tags

Replica set for mongodb

2012-04-02 mongodb replica replicaset

Пример настройки реплики для mongodb с авторизацией

1. Секретный ключ для авторизации
Генерируем секретный ключ-файл file.key и закрываем к нему доступ
Местоположение файла может быть любым

dd if=/dev/random of=/var/local/file.key bs=40 count=1
chmod 400 /var/local/file.key
sudo chown mongodb:mongodb /var/local/file.key

Копируем этот ключ на все ноды (серверы).

2. Конфигурируем ноду
Настраиваем /etc/mongodb.conf, выбираем любое имя реплики (replica1)
Нужно добавить параметры:
auth = true
replSet = replica1
keyFile = /var/local/file.key

И перезапускаем mongodb
sudo service mongodb stop
sudo service mongodb start

Настраиваем это на каждой ноде.

3. Инициализация реплики и подключение нод.
Заходим на одну ноду
mongo --host host1

Инициализируем реплику и подключаем ноды
config = {_id: 'replica1', members: [
                          {_id: 0, host: 'localhost:27017'},
                          {_id: 1, host: 'host2:27017'}]
           }
rs.initiate(config)

Добавить ноду можно командой rs.add()
rs.add({ "_id" : 3,
    "host" : "host3:27017",
    "votes" : 0,
    "priority" : 0
}

Возможные параметры ноды
При установленных параметрах "votes"=0 и "priority"=0, нода не будет претендовать быть мастер-нодой.

Готово.