无法将独立 mongoDB 转换为副本集:连接超时

Can't convert standalone mongoDB to Replica Set: Connection timed out

Mongo 3.2.8

我正在尝试将副本 (M2) 添加到我的独立 MongoDB(M1)。

我正在使用以下脚本:

M2: /usr/bin/mongod --dbpath /var/lib/mongodb --quiet --replSet "rs0"

M1: /usr/bin/mongod --dbpath /var/lib/mongodb --quiet --replSet "rs0"

mongo

rs.initiate()

rs.status()

{
    "set" : "rs0",
    "date" : ISODate("2016-09-22T18:13:04.380Z"),
    "myState" : 1,
    "term" : NumberLong(8),
    "heartbeatIntervalMillis" : NumberLong(2000),
    "members" : [
        {
            "_id" : 0,
            "name" : "67.221.191.2:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 992,
            "optime" : {
                "ts" : Timestamp(1474567982, 34308),
                "t" : NumberLong(8)
            },
            "optimeDate" : ISODate("2016-09-22T18:13:02Z"),
            "electionTime" : Timestamp(1474566993, 1),
            "electionDate" : ISODate("2016-09-22T17:56:33Z"),
            "configVersion" : 294102,
            "self" : true
        }
    ],
    "ok" : 1
}

rs.conf()

{
    "_id" : "rs0",
    "version" : 294102,
    "protocolVersion" : NumberLong(1),
    "members" : [
        {
            "_id" : 0,
            "host" : "67.221.191.2:27017",
            "arbiterOnly" : false,
            "buildIndexes" : true,
            "hidden" : false,
            "priority" : 2,
            "tags" : {

            },
            "slaveDelay" : NumberLong(0),
            "votes" : 1
        }
    ],
    "settings" : {
        "chainingAllowed" : true,
        "heartbeatIntervalMillis" : 2000,
        "heartbeatTimeoutSecs" : 10,
        "electionTimeoutMillis" : 10000,
        "getLastErrorModes" : {

        },
        "getLastErrorDefaults" : {
            "w" : 1,
            "wtimeout" : 0
        },
        "replicaSetId" : ObjectId("57e3e4380a1f48aa77b6a6f0")
    }
}

将M2添加到副本集后

mongo

rs.add("209.205.218.42:27017")

我有以下 M2 服务器问题:

2016-09-22T13:36:43.750-0400 I REPL     [ReplicationExecutor] Error in heartbeat request to 67.221.191.2:27017; HostUnreachable: Connection timed out
2016-09-22T13:36:43.750-0400 I ASIO     [NetworkInterfaceASIO-Replication-0] Connecting to 67.221.191.2:27017
2016-09-22T13:36:50.757-0400 I ASIO     [NetworkInterfaceASIO-Replication-0] Failed to connect to 67.221.191.2:27017 - HostUnreachable: Connection timed out

你能说说为什么会这样吗?


一些附加信息:

在 M1 中,日志中没有任何有趣的内容。只是没有投票就不能成为主要的信息,所以它变成了次要的

添加副本后,我在 M1 上得到以下结果:

rs.status()

{
    "set" : "rs0",
    "date" : ISODate("2016-09-22T18:53:08.501Z"),
    "myState" : 2,
    "term" : NumberLong(8),
    "heartbeatIntervalMillis" : NumberLong(2000),
    "members" : [
        {
            "_id" : 0,
            "name" : "67.221.191.2:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 3396,
            "optime" : {
                "ts" : Timestamp(1474570214, 27),
                "t" : NumberLong(8)
            },
            "optimeDate" : ISODate("2016-09-22T18:50:14Z"),
            "infoMessage" : "could not find member to sync from",
            "configVersion" : 294103,
            "self" : true
        },
        {
            "_id" : 1,
            "name" : "209.205.219.42:27017",
            "health" : 1,
            "state" : 0,
            "stateStr" : "STARTUP",
            "uptime" : 172,
            "optime" : {
                "ts" : Timestamp(0, 0),
                "t" : NumberLong(-1)
            },
            "optimeDate" : ISODate("1970-01-01T00:00:00Z"),
            "lastHeartbeat" : ISODate("2016-09-22T18:53:06.447Z"),
            "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
            "pingMs" : NumberLong(0),
            "configVersion" : -2
        }
    ],
    "ok" : 1
}

我不擅长解决网络问题任何建议表示赞赏。

1) M1@ubuntu:~# tcpdump dst 主机 67.221.191.2

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eno1, link-type EN10MB (Ethernet), capture size 262144 bytes
14:50:40.242522 IP ubuntu.27017 > 67.221.191.2.53638: Flags [P.], seq 1253499623:1253499895, ack 528146942, win 59, options [nop,nop,TS val 9778205 ecr 1369701227], length 272
14:50:40.242629 IP ubuntu.27017 > 67.221.191.2.53638: Flags [P.], seq 272:544, ack 1, win 59, options [nop,nop,TS val 9778205 ecr 1369701227], length 272

2) 我的 tmp 文件夹中有以下文件:

mongodb-27017.sock

删除此文件不会改变任何内容

填写免费询问任何额外信息

这是防火墙引起的网络问题。要按规范列出所有活动的 iptables 规则,运行 带有 -S 选项的 iptables 命令

sudo iptables -S