Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
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...
Próxima SlideShare
Cargando en…5
×

TripleOの光と闇

5.751 visualizaciones

Publicado el

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

Publicado en: Tecnología
  • Sé el primero en comentar

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 できるようになりました!

×