Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
1
TripleOの光と闇
2016-05-25
Manabu Ori
日本OpenStackユーザ会 第27回勉強会
2
自己紹介
● 名前: 織 学 (おり まなぶ)
● 所属: レッドハット
● @orimanabu
3
目次
● TripleOとは
– TripleOの歴史
– TripleOでできること
– overcloud構築の流れ
● TripleOの光
● TripleOの闇
※ 本資料の情報は、2016年5月25日時点のものです
4
TripleOとは
5
今日はインストーラ特集ということで...
● Red Hat系ディストリビューション用OpenStackディスト
リビューション
– RDO
– RHOSP (Red Hat OpenStack Platform)
● で使えるインストーラ...
6
今日はインストーラ特集ということで...
● Red Hat系ディストリビューション用OpenStackディスト
リビューション
– RDO
– RHOSP (Red Hat OpenStack Platform)
● で使えるインストーラ...
7
TripleOとは (1)
● OpenStack On OpenStack
– OpenStackを使ってOpenStack環境を作ろう!
● 具体的には...
– まず小さいOpenStack環境を作る (インストーラ
ノード)
● u...
8
TripleOとは (2)
● 複数コンポーネントを組み合わせて実現
– Ironic + Nova
– Heat
– TripleO Heat Template (THT)
– DiskImage Builder
– os-xxx-con...
9
TripleOとHeat (1)
● TripleOでは、HeatでovercloudのOpenStack
設定を行います
● Heatの機能をフル活用
– Nested Resource
– Resource Group
– Softwa...
10
TripleOとHeat (2)
● Nested Resource
11
TripleOとHeat (3)
● Software Configuration
12
TripleOとHeat (4)
● Resource Group
13
TripleOとHeat (5)
● コントローラノードのリソース
14
TripleOとHeat (6)
● コントローラ全体のリソース
15
TripleOの歴史
● 元々HP主導で開発
– Helion 1.x
– RHOSP7 (OSP-director)
● HPがHelion 2.xでTripleOを捨てる
– Ansibleベースのインストーラに乗り換え
● Trip...
16
TripleOでできること
● そこそこ柔軟なネットワーク構成
– Internal API, Storage, Storage Management, Tenant, External
● 複数NICと各ネットワークのマッピング
● N...
17
典型的なネットワーク構成
18
overcloud構築の流れ (1)
● undercloud構築
– 手動でOSインストール
– python-tripleoclientのインストール
– undercloud.confの作成
– undercloudインストール実行...
19
overcloud構築の流れ (2)
● overcloud定義
– overcloudノードの定義
– overcloudノードのディスカバー
– overcloudノードのタグ付け
● 手動、自動
– TripleO Heat Tem...
20
overcloudノードの定義
● json手書き
– CPU数
– メモリ
– ディスク
– 電源制御方法
– PXEブート用NICのMACアドレス
{
"nodes": [
{
"arch": "x86_64",
"cpu": "2"...
21
overcloudノードのディスカバー
● ハードウェア情報の収集
– ディスカバー用のPXEイメージで起動
● 設定しておくと、ディスカバー時に自動的にベ
ンチマークを流してパフォーマンス実測値も同
時に収集可能
– sysbench使...
22
自動タグ付け
● 自動タグ付けのルー
ルを書く
● ルールのimport
● ディスカバリ実行
[
{
"description": "Fail introspection for unexpected nodes",
"conditio...
23
Heatテンプレート作成
● ネットワーク定義
resource_registry:
OS::TripleO::BlockStorage::Net::SoftwareConfig: /home/stack/templates/nic-co...
24
Heatテンプレート作成
● ノードごとのNIC定義
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
properties:
group: os-apply-con...
25
Heatテンプレート作成
● ストレージ定義
parameter_defaults:
#### BACKEND SELECTION ####
## Whether to enable iscsi backend for Cinder.
C...
26
overcloud構築
● コマンド一発
$ openstack overcloud deploy 
--templates /usr/share/openstack-tripleo-heat-templates 
--ntp-serve...
27
TripleOの光
28
TripleOの光
● OpenStack基盤の管理をOpenStack APIでできる
– いろいろ自動化しやすい
– AnsibleのDynamic Inventoryとか活用
● Tempestの準備もやってくれる
● コントローラ...
29
コントローラノードの冗長化
● コントローラノードの構成
– 全てのコントローラ系プロセスがコントローラノー
ドで動く
● サービスごとにノードをわけるのは、現時点では不可能
– HAProxyで負荷分散
● VIPはTHTで定義したネッ...
30
コントローラノードの冗長化
31
TripleOの光
● Cephの自動構成
– 3台冗長化コントローラ上でmonが動く
– osdノードは独立したノードが必要
● コンピュートノードとosdノードの同居は開発中 (のは
ず)
● Swift Objectノードの外出し
...
32
TripleOの光
● 他のプロジェクトの品質向上に貢献
Ironic Puppet
OpenStack
Heat http://stackalytics.com/
NewtonのCommitランキング (2016-05-25時点)
33
他製品との連携
● コントローラ用Load Balancerの外出し
– デフォルトはコントローラ上で動くHAProxy
● Cinder
– Dell Storage Center
– Dell Equal Logic
– NetApp...
34
TripleOの闇
35
GUIがない
● 当初、Tusker UIというWebインターフェースがあった
→Tusker消滅
– http://lists.openstack.org/pipermail/openstack-dev/2013-September/0...
36
TripleOの闇
● Heatリソースでかすぎ...
$ heat stack-list
+--------------------------------------+------------+-----------------+--...
37
38
39
40
TripleOの闇
● Heatリソースでかすぎ...
41
TripleOの闇
● Heatリソースでかすぎ...
42
43
44
TripleOの闇
● OSを手動で入れた後にOpenStack設定をする
のは不可
● confファイルの設定変更はTHT経由が推奨
● 個々のパッケージのアップデートもTripleOか
ら実施するのが推奨
● というか誤ってheat ...
45
TripleOの闇
● IPアドレスが決め打ちできない
– どのノードがどの番号のホスト名になるかわからない
– どのホスト名にどのアドレスがつくかわからない
● 魔法
– Nova filter: TripleOCapabilities...
Nächste SlideShare
Wird geladen in …5
×

TripleOの光と闇

7.256 Aufrufe

Veröffentlicht am

日本OpenStackユーザ会 第27回勉強会

Veröffentlicht in: Technologie
  • This is your last chance to grab all 16,000 plans at this discount price. I've been told that Ted will only extend this offer until midnight tonight and this offer will NOT be repeated again. ✱✱✱ https://t.cn/A62Ye5eM
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • Follow the link, new dating source: ❶❶❶ http://bit.ly/2F7hN3u ❶❶❶
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • Dating direct: ❤❤❤ http://bit.ly/2F7hN3u ❤❤❤
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

TripleOの光と闇

  1. 1. 1 TripleOの光と闇 2016-05-25 Manabu Ori 日本OpenStackユーザ会 第27回勉強会
  2. 2. 2 自己紹介 ● 名前: 織 学 (おり まなぶ) ● 所属: レッドハット ● @orimanabu
  3. 3. 3 目次 ● TripleOとは – TripleOの歴史 – TripleOでできること – overcloud構築の流れ ● TripleOの光 ● TripleOの闇 ※ 本資料の情報は、2016年5月25日時点のものです
  4. 4. 4 TripleOとは
  5. 5. 5 今日はインストーラ特集ということで... ● Red Hat系ディストリビューション用OpenStackディスト リビューション – RDO – RHOSP (Red Hat OpenStack Platform) ● で使えるインストーラには下記があります – Packstack – (Foreman Installer) – TripleO (旧RDO Manager、製品版はOSP-director) ● 今日はTripleOについてご紹介します Fedora RHEL CentOS RDO RHEL OSP RDO Manager RHEL OSP director upstream downstream
  6. 6. 6 今日はインストーラ特集ということで... ● Red Hat系ディストリビューション用OpenStackディスト リビューション – RDO – RHOSP (Red Hat OpenStack Platform) ● で使えるインストーラには下記があります – Packstack – (Foreman Installer) – TripleO (旧RDO Manager、製品版はOSP-director) ● 今日はTripleOについてご紹介します Fedora RHEL CentOS RDO RHEL OSP RDO Manager RHEL OSP director upstream downstream TripleO
  7. 7. 7 TripleOとは (1) ● OpenStack On OpenStack – OpenStackを使ってOpenStack環境を作ろう! ● 具体的には... – まず小さいOpenStack環境を作る (インストーラ ノード) ● undercloud – undercloudを使って大きいOpenStack環境を作る ● overcloud
  8. 8. 8 TripleOとは (2) ● 複数コンポーネントを組み合わせて実現 – Ironic + Nova – Heat – TripleO Heat Template (THT) – DiskImage Builder – os-xxx-config ● os-collect-config, os-apply-config, os-refresh-config, os-net- config, os-disk-config, os-cloud-config
  9. 9. 9 TripleOとHeat (1) ● TripleOでは、HeatでovercloudのOpenStack 設定を行います ● Heatの機能をフル活用 – Nested Resource – Resource Group – Software Configuration
  10. 10. 10 TripleOとHeat (2) ● Nested Resource
  11. 11. 11 TripleOとHeat (3) ● Software Configuration
  12. 12. 12 TripleOとHeat (4) ● Resource Group
  13. 13. 13 TripleOとHeat (5) ● コントローラノードのリソース
  14. 14. 14 TripleOとHeat (6) ● コントローラ全体のリソース
  15. 15. 15 TripleOの歴史 ● 元々HP主導で開発 – Helion 1.x – RHOSP7 (OSP-director) ● HPがHelion 2.xでTripleOを捨てる – Ansibleベースのインストーラに乗り換え ● TripleO使ってるのってRDO Managerだけじゃね? ● じゃRDO Managerを "TripleO" と呼ぼう! https://www.rdoproject.org/blog/2016/02/rdo-manager-is-now-tripleo/
  16. 16. 16 TripleOでできること ● そこそこ柔軟なネットワーク構成 – Internal API, Storage, Storage Management, Tenant, External ● 複数NICと各ネットワークのマッピング ● NICの冗長化 – Linux bonding – OVS bonding ● コントローラの冗長化 ● Cephセットアップ – TripleOでCephも構築 – 手動構築した外部Cephとの接続設定 ● Third party driver/plugin integration
  17. 17. 17 典型的なネットワーク構成
  18. 18. 18 overcloud構築の流れ (1) ● undercloud構築 – 手動でOSインストール – python-tripleoclientのインストール – undercloud.confの作成 – undercloudインストール実行 ● イメージの作成 ● イメージの登録 $ openstack undercloud install $ openstack overcloud image build --all $ openstack overcloud image upload
  19. 19. 19 overcloud構築の流れ (2) ● overcloud定義 – overcloudノードの定義 – overcloudノードのディスカバー – overcloudノードのタグ付け ● 手動、自動 – TripleO Heat Templateの作成 ● overcloud構築
  20. 20. 20 overcloudノードの定義 ● json手書き – CPU数 – メモリ – ディスク – 電源制御方法 – PXEブート用NICのMACアドレス { "nodes": [ { "arch": "x86_64", "cpu": "2" "memory": "5120", "disk": "40", "pm_type": "pxe_ipmitool", "pm_addr": "IPMI_IP_ADDR", "pm_user": "IPMI_USER", "pm_password": "IPMI_PASSWORD", "mac": [ "52:54:00:06:22:11" ], }, (略) ] } $ openstack baremetal import --json ~/instackenv.json $ openstack baremetal configure boot
  21. 21. 21 overcloudノードのディスカバー ● ハードウェア情報の収集 – ディスカバー用のPXEイメージで起動 ● 設定しておくと、ディスカバー時に自動的にベ ンチマークを流してパフォーマンス実測値も同 時に収集可能 – sysbench使用 $ openstack baremetal introspection bulk start $ ironic node-set-maintenance [NODE UUID] true $ openstack baremetal introspection start [NODE UUID] $ ironic node-set-maintenance [NODE UUID] false ● 1台ずつディスカバー実行 ● 全台同時にディスカバー実行
  22. 22. 22 自動タグ付け ● 自動タグ付けのルー ルを書く ● ルールのimport ● ディスカバリ実行 [ { "description": "Fail introspection for unexpected nodes", "conditions": [ { "op": "lt", "field": "memory_mb", "value": 4096 } ], "actions": [ { "action": "fail", "message": "Memory too low, expected at least 4 GiB" } ] }, { "description": "Assign profile for object storage", "conditions": [ { "op": "ge", "field": "local_gb", "value": 1024 } ], "actions": [ { "action": "set-capability", "name": "profile", "value": "swift-storage" } ] } ] $ openstack baremetal introspection rule import rules.json $ openstack baremetal introspection bulk start $ openstack baremetal profiles list
  23. 23. 23 Heatテンプレート作成 ● ネットワーク定義 resource_registry: OS::TripleO::BlockStorage::Net::SoftwareConfig: /home/stack/templates/nic-configs/cinder-storage.yaml OS::TripleO::Compute::Net::SoftwareConfig: /home/stack/templates/nic-configs/compute.yaml OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/templates/nic-configs/controller.yaml OS::TripleO::ObjectStorage::Net::SoftwareConfig: /home/stack/templates/nic-configs/swift-storage.yaml OS::TripleO::CephStorage::Net::SoftwareConfig: /home/stack/templates/nic-configs/ceph-storage.yaml parameter_defaults: InternalApiNetCidr: 172.16.201.0/24 TenantNetCidr: 172.16.202.0/24 StorageNetCidr: 172.16.203.0/24 StorageMgmtNetCidr: 172.16.204.0/24 ExternalNetCidr: 10.1.1.0/24 InternalApiAllocationPools: [{'start': '172.16.201.210', 'end': '172.16.201.240'}] TenantAllocationPools: [{'start': '172.16.202.210', 'end': '172.16.202.240'}] StorageAllocationPools: [{'start': '172.16.203.210', 'end': '172.16.203.240'}] StorageMgmtAllocationPools: [{'start': '172.16.204.210', 'end': '172.16.204.240'}] # Leave room for floating IPs in the External allocation pool ExternalAllocationPools: [{'start': '10.1.1.210', 'end': '10.1.1.240'}] # Set to the router gateway on the external network ExternalInterfaceDefaultRoute: 10.1.1.1 # Gateway router for the provisioning network (or Undercloud IP) ControlPlaneDefaultRoute: 10.0.9.254 # The IP address of the EC2 metadata server. Generally the IP of the Undercloud EC2MetadataIp: 10.0.9.200 # Define the DNS servers (maximum 2) for the overcloud nodes DnsServers: ["10.0.250.25","10.0.200.25"] InternalApiNetworkVlanID: 201 TenantNetworkVlanID: 202 StorageNetworkVlanID: 203 StorageMgmtNetworkVlanID: 204 ExternalNetworkVlanID: 100 # Set to "br-ex" if using floating IPs on native VLAN on bridge br-ex NeutronExternalNetworkBridge: "''" # Customize bonding options if required BondInterfaceOvsOptions: "bond_mode=active-backup"
  24. 24. 24 Heatテンプレート作成 ● ノードごとのNIC定義 resources: OsNetConfigImpl: type: OS::Heat::StructuredConfig properties: group: os-apply-config config: os_net_config: network_config: - type: interface name: nic1 use_dhcp: false addresses: - ip_netmask: list_join: - '/' - - {get_param: ControlPlaneIp} - {get_param: ControlPlaneSubnetCidr} routes: - ip_netmask: 169.254.169.254/32 next_hop: {get_param: EC2MetadataIp} - type: interface name: nic2 use_dhcp: false defroute: false - type: interface name: nic3 use_dhcp: false defroute: false - type: ovs_bridge name: {get_input: bridge_name} dns_servers: {get_param: DnsServers} members: - type: ovs_bond name: bond1 ovs_options: {get_param: BondInterfaceOvsOptions} members: - type: interface name: nic4 primary: true - type: interface name: nic5 - type: vlan device: bond1 vlan_id: {get_param: ExternalNetworkVlanID} addresses: - ip_netmask: {get_param: ExternalIpSubnet} routes: - default: true next_hop: {get_param: ExternalInterfaceDefaultRoute} - type: vlan device: bond1 vlan_id: {get_param: InternalApiNetworkVlanID} addresses: - ip_netmask: {get_param: InternalApiIpSubnet} - type: vlan device: bond1
  25. 25. 25 Heatテンプレート作成 ● ストレージ定義 parameter_defaults: #### BACKEND SELECTION #### ## Whether to enable iscsi backend for Cinder. CinderEnableIscsiBackend: false ## Whether to enable rbd (Ceph) backend for Cinder. CinderEnableRbdBackend: true ## Whether to enable NFS backend for Cinder. # CinderEnableNfsBackend: false ## Whether to enable rbd (Ceph) backend for Nova ephemeral storage. NovaEnableRbdBackend: true ## Glance backend can be either 'rbd' (Ceph), 'swift' or 'file'. GlanceBackend: rbd #### CINDER NFS SETTINGS #### ## NFS mount options # CinderNfsMountOptions: '' ## NFS mount point, e.g. '192.168.122.1:/export/cinder' # CinderNfsServers: '' #### GLANCE FILE BACKEND PACEMAKER SETTINGS (used for mounting NFS) #### ## Whether to make Glance 'file' backend a mount managed by Pacemaker # GlanceFilePcmkManage: false ## File system type of the mount # GlanceFilePcmkFstype: nfs ## Pacemaker mount point, e.g. '192.168.122.1:/export/glance' for NFS # GlanceFilePcmkDevice: '' ## Options for the mount managed by Pacemaker # GlanceFilePcmkOptions: '' #### CEPH SETTINGS #### ExtraConfig: ceph::profile::params::osd_pool_default_size: 1 ceph::profile::params::osds: '/dev/vdc': journal: '/dev/vdb' '/dev/vdd': journal: '/dev/vdb' '/dev/vde': journal: '/dev/vdb'
  26. 26. 26 overcloud構築 ● コマンド一発 $ openstack overcloud deploy --templates /usr/share/openstack-tripleo-heat-templates --ntp-server 10.0.9.10 --libvirt-type kvm --control-scale 3 --compute-scale 2 --ceph-storage-scale 1 --control-flavor control --compute-flavor compute --ceph-storage-flavor ceph-storage --neutron-tunnel-types vxlan --neutron-network-type vxlan -e ~/templates/storage-environment.yaml -e ~/templates/network-isolation-static.yaml -e ~/templates/network-environment.yaml -e ~/templates/timezone.yaml -e ~/templates/all.yaml
  27. 27. 27 TripleOの光
  28. 28. 28 TripleOの光 ● OpenStack基盤の管理をOpenStack APIでできる – いろいろ自動化しやすい – AnsibleのDynamic Inventoryとか活用 ● Tempestの準備もやってくれる ● コントローラの冗長化ができる ● ノード追加が楽 – 追加可能: computeノード、cephノード ● 追加ノードを定義→ディスカバー→デプロイ再実行 – 削除可能: computeノード
  29. 29. 29 コントローラノードの冗長化 ● コントローラノードの構成 – 全てのコントローラ系プロセスがコントローラノー ドで動く ● サービスごとにノードをわけるのは、現時点では不可能 – HAProxyで負荷分散 ● VIPはTHTで定義したネットワークごとにひとつ ● 冗長化 – 3台構成、shared nothing – Pacemaker使用 – RabbitMQ Mirrored Queue – MariaDB Galera Cluster
  30. 30. 30 コントローラノードの冗長化
  31. 31. 31 TripleOの光 ● Cephの自動構成 – 3台冗長化コントローラ上でmonが動く – osdノードは独立したノードが必要 ● コンピュートノードとosdノードの同居は開発中 (のは ず) ● Swift Objectノードの外出し ● Block Storageノードの外出し
  32. 32. 32 TripleOの光 ● 他のプロジェクトの品質向上に貢献 Ironic Puppet OpenStack Heat http://stackalytics.com/ NewtonのCommitランキング (2016-05-25時点)
  33. 33. 33 他製品との連携 ● コントローラ用Load Balancerの外出し – デフォルトはコントローラ上で動くHAProxy ● Cinder – Dell Storage Center – Dell Equal Logic – NetApp ● Neutron – ML2 BigSwitch – ML2 Cisco Nexus 1000V – ML2 Cisco Nexus UCS Manager – MidoNet – Nuage – OpenContrail
  34. 34. 34 TripleOの闇
  35. 35. 35 GUIがない ● 当初、Tusker UIというWebインターフェースがあった →Tusker消滅 – http://lists.openstack.org/pipermail/openstack-dev/2013-September/0 15296.html – http://lists.openstack.org/pipermail/openstack-dev/2013-September/0 15599.html ● TripleO GUIは鋭意開発中 – https://www.youtube.com/watch?v=Jjw4LwcywLE – https://www.youtube.com/watch?v=1Lc04DKGxCg
  36. 36. 36 TripleOの闇 ● Heatリソースでかすぎ... $ heat stack-list +--------------------------------------+------------+-----------------+---------------------+--------------+ | id | stack_name | stack_status | creation_time | updated_time | +--------------------------------------+------------+-----------------+---------------------+--------------+ | 4e279875-5498-4c32-a2eb-fc339fc86395 | overcloud | CREATE_COMPLETE | 2016-05-24T01:46:54 | None | +--------------------------------------+------------+-----------------+---------------------+--------------+ $ heat stack-list --show-nested | wc -l 185
  37. 37. 37
  38. 38. 38
  39. 39. 39
  40. 40. 40 TripleOの闇 ● Heatリソースでかすぎ...
  41. 41. 41 TripleOの闇 ● Heatリソースでかすぎ...
  42. 42. 42
  43. 43. 43
  44. 44. 44 TripleOの闇 ● OSを手動で入れた後にOpenStack設定をする のは不可 ● confファイルの設定変更はTHT経由が推奨 ● 個々のパッケージのアップデートもTripleOか ら実施するのが推奨 ● というか誤ってheat stack deleteすると... – policy.json is your friend "stacks:delete": "rule:deny_everybody"
  45. 45. 45 TripleOの闇 ● IPアドレスが決め打ちできない – どのノードがどの番号のホスト名になるかわからない – どのホスト名にどのアドレスがつくかわからない ● 魔法 – Nova filter: TripleOCapabilitiesFilter できるようになりました!

×