bundle - 将 3 个以上的 OpenDaylight 控制器连接到 mininet 拓扑
问题描述
我想问一下我已经根据这个 https://docs.opendaylight.org/en/stable-magnesium/getting-started-guide/clustering.html创建了一个集群
我想验证它是否有效,有人可以帮我怎么做吗?
它还能够将这个集群或这 3 个控制器连接到一个 mininet 拓扑吗?还是做不到?
编辑我想问一下为什么 不是所有的捆绑包都是活动的?会不会有什么问题?
解决方案
我不确定您是否可以在 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
推荐阅读
- python - 如何在python中检查bsc binance地址余额?
- python - pybind 中的私有模块函数
- keycloak - 如何在外部邮件模板中为 Keycloak 用户更新配置文件生成和使用登录操作令牌
- python-3.x - 熊猫:如何使 value_counts() 超过阈值
- python - nn.Linear 的多维工作
- json - 如何根据 id 将 spark 数据框列的所有唯一值合并为单行并将列转换为 json 格式
- regex - 在 TerraForm 资源中使用正则表达式
- react-native - 如何更改反应原生 APK 名称
- node.js - 渲染后下载图片表单node.js
- php - 如何使用数据库中的数据填充我的 html 下拉菜单?