2017年11月12日日曜日

Oracle OpenStack R3 の Fully Extended の様子。

Oracle OpenStack R3 では、5種類のノードの役割(グループ)が存在します。
compute、control、database、network、storage の5つで、
ハイパーバイザが所属する compute グループは独立させる必要がありますが、
それ以外は、ノード配置を分割することができます。

Oracle OpenStackInstallation and Deployment Guide for Release 3.0
2.2 Using Groups to Deploy Services
https://docs.oracle.com/cd/E78305_01/E78304/html/start-groups.html

最小構成だと、下記のような3ノード構成なります。
compute 以外の各グループは 2台以上のノードが必要ですが、
複数のグループをまとめて配置することができます。
  • 1台目: control、database、network、storage
  • 2台目: control、database、network、storage
  • 3台目: compute

そして、下記のようにグループをすべて別ノードに割り当てる、
Fully Extended な構成にすることもできます。
  • ノード1、2: control
  • ノード3、4: database
  • ノード5、6: network
  • ノード7、8: storage
  • ノード9~: compute
ということで、ためしに Fully Extended 構成でデプロイしてみました。

今回のグループ構成です。
[gowatana@os-master-01 ~]$ kollacli group listhosts
+----------+---------------------------------------------------+
| Group    | Hosts                                             |
+----------+---------------------------------------------------+
| compute  | [os-host-01.go-lab.jp,os-host-02.go-lab.jp]       |
| control  | [os-ctlr-01.go-lab.jp,os-ctlr-02.go-lab.jp]       |
| database | [os-db-01.go-lab.jp,os-db-02.go-lab.jp]           |
| network  | [os-nw-01.go-lab.jp,os-nw-02.go-lab.jp]           |
| storage  | [os-storage-01.go-lab.jp,os-storage-02.go-lab.jp] |
+----------+---------------------------------------------------+

各ノードの Docker コンテナを見てみる。
Compute Node は Oracle VM Server で、それ以外は Oracle Linux です。

Control Node #1



Control Node #2



Database Node #1 & #2



Network Node #1 & #2



Storage Node #1 & #2



Compute Node #1 & #2 (Oracle VM Server)



OpenStack の Horizon Dashboard のシステム構成から見てみる。

サービス
kolla_internal_address / kolla_internal_vip_address で指定した
VIP アドレスが使用されています。



コンピュート サービス



ブロックストレージ サービス



ネットワーク エージェント



オーケストレーション サービス



Kolla でのグループ構成。
Oracle OpenStack では 基本的に kolla のグループ / サービス構成を
変更することはないのではないかと思いますが、
せっかくなので情報を見ておこうと思います。
出力があまりに横に長いため、JSON 出力にして jq で整形表示しています。

group ごとのサービス
[gowatana@os-master-01 ~]$ kollacli group listservices -f json | jq
[
  {
    "Group": "compute",
    "Services": [
      "ceilometer-compute",
      "iscsid",
      "multipathd"
    ]
  },
  {
    "Group": "control",
    "Services": [
      "aodh",
      "ceilometer",
      "ceph",
      "cinder",
      "elasticsearch",
      "glance",
      "haproxy",
      "heat",
      "horizon",
      "ironic",
      "keystone",
      "kibana",
      "magnum",
      "manila",
      "mariadb",
      "memcached",
      "mistral",
      "mongodb",
      "murano",
      "mysqlcluster",
      "neutron-server",
      "nova",
      "rabbitmq",
      "swift",
      "tempest",
      "watcher"
    ]
  },
  {
    "Group": "database",
    "Services": [
      "mysqlcluster-ndb"
    ]
  },
  {
    "Group": "network",
    "Services": [
      "neutron"
    ]
  },
  {
    "Group": "storage",
    "Services": [
      "ceph-osd",
      "cinder-backup",
      "cinder-volume",
      "iscsid",
      "manila-share",
      "swift-account-server",
      "swift-container-server",
      "swift-object-server"
    ]
  }
]

サービスごとのサブサービス
[gowatana@os-master-01 ~]$ kollacli service list -f json | jq
[
  {
    "Service": "aodh",
    "Sub-Services": [
      "aodh-api",
      "aodh-evaluator",
      "aodh-listener",
      "aodh-notifier"
    ]
  },
  {
    "Service": "ceilometer",
    "Sub-Services": [
      "ceilometer-api",
      "ceilometer-central",
      "ceilometer-notification",
      "ceilometer-collector",
      "ceilometer-compute"
    ]
  },
  {
    "Service": "ceph",
    "Sub-Services": [
      "ceph-mon",
      "ceph-rgw",
      "ceph-osd"
    ]
  },
  {
    "Service": "cinder",
    "Sub-Services": [
      "cinder-api",
      "cinder-backup",
      "cinder-scheduler",
      "cinder-volume"
    ]
  },
  {
    "Service": "elasticsearch",
    "Sub-Services": []
  },
  {
    "Service": "glance",
    "Sub-Services": [
      "glance-api",
      "glance-registry"
    ]
  },
  {
    "Service": "haproxy",
    "Sub-Services": []
  },
  {
    "Service": "heat",
    "Sub-Services": [
      "heat-api",
      "heat-api-cfn",
      "heat-engine"
    ]
  },
  {
    "Service": "horizon",
    "Sub-Services": []
  },
  {
    "Service": "ironic",
    "Sub-Services": [
      "ironic-api",
      "ironic-conductor",
      "ironic-inspector",
      "ironic-pxe"
    ]
  },
  {
    "Service": "iscsid",
    "Sub-Services": []
  },
  {
    "Service": "keystone",
    "Sub-Services": []
  },
  {
    "Service": "kibana",
    "Sub-Services": []
  },
  {
    "Service": "magnum",
    "Sub-Services": [
      "magnum-api",
      "magnum-conductor"
    ]
  },
  {
    "Service": "manila",
    "Sub-Services": [
      "manila-api",
      "manila-scheduler",
      "manila-share"
    ]
  },
  {
    "Service": "mariadb",
    "Sub-Services": []
  },
  {
    "Service": "memcached",
    "Sub-Services": []
  },
  {
    "Service": "mistral",
    "Sub-Services": [
      "mistral-api",
      "mistral-executor",
      "mistral-engine"
    ]
  },
  {
    "Service": "mongodb",
    "Sub-Services": []
  },
  {
    "Service": "multipathd",
    "Sub-Services": []
  },
  {
    "Service": "murano",
    "Sub-Services": [
      "murano-api",
      "murano-engine"
    ]
  },
  {
    "Service": "mysqlcluster",
    "Sub-Services": [
      "mysqlcluster-mgmt",
      "mysqlcluster-api",
      "mysqlcluster-ndb"
    ]
  },
  {
    "Service": "neutron",
    "Sub-Services": [
      "neutron-server",
      "neutron-dhcp-agent",
      "neutron-l3-agent",
      "neutron-lbaas-agent",
      "neutron-metadata-agent",
      "neutron-vpnaas-agent"
    ]
  },
  {
    "Service": "nova",
    "Sub-Services": [
      "nova-api",
      "nova-conductor",
      "nova-consoleauth",
      "nova-novncproxy",
      "nova-scheduler",
      "nova-spicehtml5proxy",
      "nova-compute-ironic"
    ]
  },
  {
    "Service": "rabbitmq",
    "Sub-Services": []
  },
  {
    "Service": "swift",
    "Sub-Services": [
      "swift-proxy-server",
      "swift-account-server",
      "swift-container-server",
      "swift-object-server"
    ]
  },
  {
    "Service": "tempest",
    "Sub-Services": []
  },
  {
    "Service": "tgtd",
    "Sub-Services": []
  },
  {
    "Service": "watcher",
    "Sub-Services": [
      "watcher-api",
      "watcher-engine",
      "watcher-applier"
    ]
  }
]

各ノードのシステム要件が大きくてラボ環境ではなかなかこの構成にできないので、
記念のメモとして残してみました。

以上、OpenStack R3 の Fully Extended 構成の様子でした。

0 件のコメント:

コメントを投稿