Назад | Перейти на главную страницу

Mongodb sharding - сценарий инициализации для процесса mongos?

Я запускал mongodb как набор реплик и недавно попытался перейти на сегментированный кластер.

Одна вещь, в которой я немного не уверен, - это то, как мне начать процесс монго. Раньше я использовал 10gen rpms при установке mongodb, который устанавливал сценарий init.d для службы mongod. Я бы хотел, чтобы монго работали аналогичным образом, но я не уверен, как мне это делать на самом деле. Это случай написания собственного сценария инициализации?

Я использую Debian 6 и Mongodb 2.4

[Я ранее публиковал этот вопрос в группе mongodb google, но копирую здесь, так как не получил никакого ответа - я тоже добавлю сюда ответы]

Вы связали соответствующий официальный запрос в своем ответе и СЕРВЕР-3748 действительно объясняет некоторые причины, по которым они в настоящее время не существуют.

Основная причина в том, что вы не можете начать mongos без включенного и работающего хотя бы одного сервера конфигурации, в противном случае он откажется запускаться, что делает его плохим кандидатом для сценария инициализации (внешние зависимости). Как правило, вы хотите, чтобы службы не запускались, когда нет хорошего способа проверить причину сбоя.

Однако все равно было бы полезно дать людям сценарий, а не заставлять их изменять / писать его самостоятельно, поэтому проблема Jira существует.

Я бы порекомендовал сделать это, основывая любой скрипт на существующем mongod сценарий инициализации и просто измените его, чтобы заменить mongod с участием mongos где это уместно. Вот текущая версия этого скрипта для Debian:

https://github.com/mongodb/mongo/blob/master/debian/init.d

Что вам нужно будет изменить:

> DAEMON=/usr/bin/mongos
> DESC=mongos-router
> 
> NAME=mongos
> 
> CONF=/etc/mongos.conf 
> PIDFILE=/var/run/$NAME.pid 
> ENABLE_MONGODB=yes

Преимущество этого после того, как вы установили пакет 10gen, состоит в том, что пользователи уже будут настроены, и у вас есть mongod скрипт для справки по системе.

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

Как только вы подтвердите с помощью тестирования, что у вас есть скрипт, работающий так, как вы хотите, вы можете добавить его навсегда с помощью update-rc.d

Хм, похоже, есть открытый тикет, запрашивающий именно это, так что я предполагаю, что он не предоставляется официально. Я обновлю этот ответ, если найду какой-либо пользовательский сценарий или напишу свой собственный.

https://jira.mongodb.org/browse/SERVER-3748