首页 > 解决方案 > 将 3 个以上的 OpenDaylight 控制器连接到 mininet 拓扑

问题描述

我想问一下我已经根据这个 https://docs.opendaylight.org/en/stable-magnesium/getting-started-guide/clustering.html创建了一个集群

我想验证它是否有效,有人可以帮我怎么做吗?

它还能够将这个集群或这 3 个控制器连接到一个 mininet 拓扑吗?还是做不到?

编辑我想问一下为什么 不是所有的捆绑包都是活动的?会不会有什么问题?

标签: bundlecluster-computingmininetopendaylight

解决方案


我不确定您是否可以在 mininet 命令行上指定多个控制器,但值得一试。否则,您可以尝试像此人在这篇文章中解释的那样在 mininet .py 配置文件中设置控制器。

要验证集群是否正常工作,有很多方法,但您可以尝试一些休息调用来检查事物的状态。我们在上游 CSIT 测试中有一些示例。如果您安装了 odl-jolokia 功能,您可以发送一个 GET 到:

jolokia/read/org.opendaylight.controller:Category=Shards,name=member-1-shard-default-config,type=DistributedConfigDatastore

这是检查配置数据存储的默认分片状态。你会得到一些像这样的输出:

content={
 "request": {
  "mbean": "org.opendaylight.controller:Category=Shards,name=member-1-shard-default-config,type=DistributedConfigDatastore",
  "type": "read"
 },
 "status": 200,
 "timestamp": 1588524930,
 "value": {
  "AbortTransactionsCount": 0,
  "CommitIndex": 70,
  "CommittedTransactionsCount": 0,
  "CurrentTerm": 7,
  "FailedReadTransactionsCount": 0,
  "FailedTransactionsCount": 0,
  "FollowerInfo": [],
  "FollowerInitialSyncStatus": true,
  "InMemoryJournalDataSize": 33,
  "InMemoryJournalLogSize": 1,
  "LastApplied": 70,
  "LastCommittedTransactionTime": "1970-01-01 00:00:00.000",
  "LastIndex": 70,
  "LastLeadershipChangeTime": "2020-05-03 16:54:45.034",
  "LastLogIndex": 70,
  "LastLogTerm": 7,
  "LastTerm": 7,
  "Leader": "member-2-shard-default-config",
  "LeadershipChangeCount": 1,
  "PeerAddresses": "member-3-shard-default-config: akka.tcp://opendaylight-cluster-data@10.30.170.119:2550/user/shardmanager-config/member-3-shard-default-config, member-2-shard-default-config: akka.tcp://opendaylight-cluster-data@10.30.170.113:2550/user/shardmanager-config/member-2-shard-default-config",
  "PeerVotingStates": "member-3-shard-default-config: true, member-2-shard-default-config: true",
  "PendingTxCommitQueueSize": 0,
  "RaftState": "Follower",
  "ReadOnlyTransactionCount": 0,
  "ReadWriteTransactionCount": 0,
  "ReplicatedToAllIndex": 69,
  "ShardName": "member-1-shard-default-config",
  "SnapshotCaptureInitiated": false,
  "SnapshotIndex": 69,
  "SnapshotTerm": 7,
  "StatRetrievalError": null,
  "StatRetrievalTime": "557.3 \u03bcs",
  "TxCohortCacheSize": 0,
  "VotedFor": "member-2-shard-default-config",
  "Voting": true
 }
}

那里有很多信息,但是 raftstate 说 Follower,所以你知道这个节点是两个追随者之一。一个节点将成为领导者。

我们检查的另一件事是同步状态以确保它是“真实的”。使用此 URI:

    jolokia/read/org.opendaylight.controller:Category=ShardManager,name=shard-manager-operational,type=DistributedOperationalDatastore

示例输出


推荐阅读