Я пытаюсь осуществить репликацию MongoDB, состоящую из 4-х узлов в виде виртуальных машин,MongoDB replicaSet конфигурация - странное поведение
информации: Я использую VirtualBox, и v.machines общается друг с другом Повсеместно хост-только адаптер. Коммуникация протестирована, а узел ervery может пинговать другие узлы.
это выход rs.conf() команды:
rs0:PRIMARY> rs.conf()
{
"_id" : "rs0",
"version" : 4,
"members" : [
{
"_id" : 0,
"host" : "192.168.56.1:27017"
},
{
"_id" : 1,
"host" : "192.168.56.101:27018"
},
{
"_id" : 2,
"host" : "192.168.56.102:27019"
},
{
"_id" : 3,
"host" : "192.168.56.103:27020"
}
]
}
это выход команды rs.status()
rs0:PRIMARY> rs.status()
{
"set" : "rs0",
"date" : ISODate("2013-12-14T16:09:36Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "192.168.56.1:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 3207,
"optime" : Timestamp(1387034904, 1),
"optimeDate" : ISODate("2013-12-14T15:28:24Z"),
"self" : true
},
{
"_id" : 1,
"name" : "192.168.56.101:27018",
"health" : 1,
"state" : 6,
"stateStr" : "UNKNOWN",
"uptime" : 2542,
"optime" : Timestamp(0, 0),
"optimeDate" : ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat" : ISODate("2013-12-14T16:09:35Z"),
"lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
"pingMs" : 1,
"lastHeartbeatMessage" : "still initializing"
},
{
"_id" : 2,
"name" : "192.168.56.102:27019",
"health" : 1,
"state" : 6,
"stateStr" : "UNKNOWN",
"uptime" : 2497,
"optime" : Timestamp(0, 0),
"optimeDate" : ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat" : ISODate("2013-12-14T16:09:35Z"),
"lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
"pingMs" : 0,
"lastHeartbeatMessage" : "still initializing"
},
{
"_id" : 3,
"name" : "192.168.56.103:27020",
"health" : 1,
"state" : 6,
"stateStr" : "UNKNOWN",
"uptime" : 2472,
"optime" : Timestamp(0, 0),
"optimeDate" : ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat" : ISODate("2013-12-14T16:09:36Z"),
"lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
"pingMs" : 1,
"lastHeartbeatMessage" : "still initializing"
}
],
"ok" : 1
}
из последней команды Кажется, replicaSet все еще инициализирует, но, глядя на 4 экземпляра mongod, я не знаю, похоже, что здесь что-то не работает должным образом.
Им интересно, почему все узлы пытаются связаться только с основным экземпляром, игнорируя охер? И почему, когда соединение принимается, он пытается снова связаться с одним и тем же узлом, не выполнив этого, потому что он говорит, что «Не могу загрузить конфигурацию еще» .. Мне действительно нужна толчка для понимания проблемы, если это необходимо вывод команды или информация вообще, просто дайте мне знать, я опубликую их.
заранее спасибо за любую помощь
Хотя вы проверили сетевое соединение с помощью ping, попытались ли вы подключить серверы в обоих направлениях? Я имею в виду, вы должны иметь возможность подключаться с одного сервера к оболочке всех других серверов. Возможно, ваш брандмауэр блокирует соединения. – rubenfa
Если узел не видит первичный, то это похоже на постоянное инициирование выборов. Без первичного набора реплик не считается согласованным.Каждый узел должен быть зарегистрирован в основном в настоящее время и должен иметь возможность получать информацию из этого основного, даже если он продолжает синхронизировать с вторичным. – Sammaye
@rubenfa: вы имеете в виду подключение к istances на пути «mongo --port 27019», нет, я не пытался его попробовать, я думал, что pinging было в порядке, я постараюсь скоро проверить этот путь – lese