OpenStack で運用する
Private Cloud の泥臭い (リアルな) 話
グリー株式会社 インフラストラクチャ本部
大山 裕泰 (オオヤマ ヒロヤス)
CEDEC 2015- 20150827
自己紹介
オオヤマ ヒロヤス
大山 裕泰
開発
- オリジナルカーネル OnixOS 開発
2008 年下期 IPA 未踏事業採択 (スーパークリエータ認定)
- OpenFlow Controller JAXON Author
- OpenFlow Controller Trema Contributor
http://www.noxrepo.org/2012/03/335
著書
- 次世代ネットワーク制御技術 OpenFlow入門
[著者 石井秀治, 大山裕泰, 河合栄治]
[発行 株式会社KADOKAWA アスキー・メディアワークス]
登壇
- JANOG33: ゴチャゴチャネットワークの可視化・OAM (高嶋隆一, 大山裕泰, 高橋正和)
- JANOG34: DCネットワークの新時代? -ホワイトボックススイッチの利用可否-
(石田渉, 大山裕泰)
オオヤマ ヒロヤス
大山 裕泰
開発環境用 Private Cloud の話
概要編
目的 / 特徴
* エンジニア向け開発環境の提供
- OpenStack (Juno) を利用
Service Quality
Functionality/Agility
AWS
オンプレミス環境
個人用開発マシン
従来の開発環境基盤
かつての開発環境基盤
* XCP -> XenServer
- インスタンスの運用を運用者が実施
- 社内で運用できる人がわずか
- 保守的な運用
* 物理マシン
- 管理コストが高い
- サポートなし
OpenStack 導入による変化
* 運用コストの低減 / デリバリータイムの短縮
- インスタンスの運用をユーザがオンデマンドで実施
* 管理コストの低減
- 誰がどのリソースをどれだけ使っている (使える) か
システマチックに管理可能
(そもそも)
OpenStack とは?
概要
* クラウド環境を作るための OpenSource Software (OSS)
- 特定のベンダーに依存しない運営体制 (OpenStack Foundation)
- 協賛・サポート企業を含め 500 社が参画
( Intel, HP, IBM, Rackspace, Redhat, SUSE, AT&T, Canonical 他多数 )
* 国内の多くの企業が OpenStack を積極採用
- Fujitsu, NTT Com, GMO, Yahoo! Japan, Rakuten, GREE 他多数
[出典] So, What is the Core of OpenStack? より
利用している部分
全体像
主なコンポーネント
* nova
- 仮想マシンリソースの管理を行うソフトウェアコンポーネント
- Amazon EC2, S3 と API 互換を持つ
* keystone
- OpenStack の統合認証機構
- 各コンポーネントに対して HTTP 経由での認証インターフェイスを提供
- LDAP を含む様々な認証手法をサポート
* glance
- 全てのデータアセット (主にインスタンスのイメージ) を管理するコンポーネント
主なコンポーネント
* neutron
- NaaS (Network as a Service) を実現するコンポーネント
- 仮想 L2 / L3 ネットワークの管理・構築を行う
- その他 SDN, SecurityGroup 等をサポート
* cinder
- BlockStorage Service を提供するコンポーネント
- VM インスタンスに対して仮想 BlockStorage デバイスを提供する
- バックエンドのストレージシステムをユーザに対して抽象化
* horizon
- ダッシュボードクライアント (WEB UI) を提供するコンポーネント
Private Cloud の
環境 / 構築手法について
システム概要
* ハードウェア
- (ほぼ) 全ての機器を社内資産から流用
- 激安で Private Cloud 環境を構築
機材に掛けたコスト
+
Controller (Master)
Nova, Neutron(Server), Glance, Cinder
Horizon, RabbitMQ, MySQL, ...
Controller (Slave)
Nova, Neutron(Server), Glance, Cinder
Horizon, RabbitMQ, MySQL, ...
VRRP
Network (Master)
Neutron (L3-Agent, DHCP-Agent,
Metadata-Agent)
Network (Slave)
Neutron (L3-Agent, DHCP-Agent,
Metadata-Agent)
Compute NodeCompute NodeCompute NodeCompute Node
Monitoring (sensu)
Monitoring (sensu)
* ソフトウェア / サーバ構成
- OpenStack (Juno) を使用
- 2014/10 リリース。最新版は Kilo (2015/05 リリース)
システム概要
chef によるプロビジョニング
* The Environment Cookbook Pattern に基づいた手法
- 複数の組織・チームによる cookbook 開発のための手法として注目
- cookbook を複数のレイヤに分割。コードの可読性 / 再利用性が向上
Environment
Wrapper
Application
WrapperWrapper
ApplicationApplication
Base
chef によるプロビジョニング
* The Environment Cookbook Pattern に基づいた手法
- 複数の組織・チームによる cookbook 開発のための手法として注目
- cookbook を複数のレイヤに分割。コードの可読性 / 再利用性が向上
Environment
Wrapper
Application
WrapperWrapper
ApplicationApplication
Base
* 各コンポーネント / アプリケーション毎に存在
* コンポーネントを構築する処理のみ記述する
(但し、他のサーバと関連する処理は行わない)
chef によるプロビジョニング
* The Environment Cookbook Pattern に基づいた手法
- 複数の組織・チームによる cookbook 開発のための手法として注目
- cookbook を複数のレイヤに分割。コードの可読性 / 再利用性が向上
Wrapper
Application
WrapperWrapper
ApplicationApplication
Base
* Application cookbook 毎に存在
* Application に特化した Attributes を記述
Environment
chef によるプロビジョニング
* The Environment Cookbook Pattern に基づいた手法
- 複数の組織・チームによる cookbook 開発のための手法として注目
- cookbook を複数のレイヤに分割。コードの可読性 / 再利用性が向上
Environment
Wrapper
Application
Wrapper
ApplicationApplication
Base
* システムに一つだけ存在し、役割毎にレシピを記述
* Wrapper cookbook を呼び出す処理 のみ を記述
* システム全体の Attributes を記述
Wrapper
chef によるプロビジョニング
* The Environment Cookbook Pattern に基づいた手法
- 複数の組織・チームによる cookbook 開発のための手法として注目
- cookbook を複数のレイヤに分割。コードの可読性 / 再利用性が向上
Wrapper
Application
Wrapper
ApplicationApplication
Base
* システムに一つだけ存在
* 全ての環境に共通な設定を記述
Environment
Wrapper
運用設計について
テナント設計
* テナント (Tenannt)
- リソース (CPU, Memory, Storage, Network, ... ) を管理する存在
* 個人アカウント毎にテナントを作成
- リソース制限等の管理を個人毎に行うため
Quota 設定
* 特定のユーザによるシステムリソースの枯渇問題の回避
* ユーザ毎にリソースの上限を個別に変更
- 多くのリソースを必要とするユーザには、多くを割り当て
多くのリソースを必要としないユーザには、少ないリソースを割り当てる
* テナントに対して、各種リソースの上限値を設定
- CPU コア数
- Floating IP アドレス数
- BlockStorage 容量
HostAggregate
* 異なるスペックのサーバリソースを効率的に利用
- 各サーバの種類毎に VM の収容設計を実施
物理マシンのリソースキャパシティ
← 仮想マシンの消費リソース
HostAggregate
* 異なるスペックのサーバリソースを効率的に利用
- 各サーバの種類毎に VM の収容設計を実施
Resource Fragment
HostAggregate
* 異なるスペックのサーバリソースを効率的に利用
- 各サーバの種類毎に VM の収容設計を実施
物理マシン
仮想マシン
c4m32s30
c8m64s60
c12m4s30
c24m8s60
c1m2s10
c2m4s20
c(コア数) m(メモリサイズ[GB]) s(ストレージサイズ)
HA cHA bHA a
HostAggregate
* 異なるスペックのサーバリソースを効率的に利用
- 各サーバの種類毎に VM の収容設計を実施
物理マシン
仮想マシン
c4m32s30
c8m64s60
c12m4s30
c24m8s60
c1m2s10
c2m4s20
BlockStorage
* 高可用性で大容量のストレージの提供
- ダッシュボードから ボリュームの切出し / アタッチ / デタッチ を実施
- インスタンスからはブロックデバイスとして認識される
/dev/vdb
裏セグ for BlockStorage
* BlockStorage のトラフィックを分離させる
- FlexLink により裏セグ帯域を 4Gbps に拡張
BlockStorage 用ネットワークセグメント
データトラフィック用ネットワークセグメント
グリーの Private Cloud での
オリジナルカスタマイズ
DNS 連携
* インスタンスにドメイン名を設定したい
* 実現方法
- cloud-init にレコード登録処理を仕込むやり方
- Neutron l3-plugin にレコード登録/削除処理を仕込むやり方 (GREE 方式)
- designate を使うやり方
DNS 連携 [1/3]
* ネットワーク構成
- シングルフラットネットワーク / DHCP による IP アドレスの割り当て
DHCP サーバ
OpenStack インスタンス
DNS 連携 [1/3]
* 制約 / 特徴
- インスタンスが起動するまで IP アドレスがわからない
* 実現方法
- インスタンス起動時に実行される処理機構 (cloud-init) に
レコード登録処理を追加する
DNS
依頼 作成
登録
DHCP サーバ
IP アドレス
取得
DNS 連携 (GREE 方式) [2/3]
* ネットワーク構成
- Network Node を用いた (OpenStack Networking) 構成
* 特徴
- Floating IP アドレスを用いてインスタンスにアクセスする
External Network
Tenant Network
IPaddr: A
(Floating IP Address)
OpenStack
インスタンス
DHCP サーバ
IPaddr: A
Neutron
PowerDNS
dns-auto-register
L3GREEPlugin
PowerDNS SDK
Aレコードの登録/削除
CNAMEレコードの登録/削除
DNS 連携 (GREE 方式) [2/3]
Amazon Route53
API Call
* Designate を使用
- DNSaaS を提供する OpenStack プロジェクト (Incubated プロジェクト)
- MiniDNS が DNS プロトコル (NOTIFY, AXFR) を喋ってサーバと連携
- スケーラブルな機構。eBay / PayPal で採用 (*1)
DNS 連携 [3/3]
(*1) Adopting Designate for Managing Mission Critical eBay/PayPal DNS, OepnStack Summit 2015
DNS 連携 [3/3]
Neutron
Designate
dashboard
Designate
Sink
any DNS
miniDNS
AXFR
運用について
- トラブル編:過去に遭遇したトラブルなど -
過去に遭遇したトラブル - 1
* 突然、あらゆる操作がエラーになる問題
- 現象:突然コントローラがあらゆる操作を受け付けなくなる
- 原因:コントローラノードのストレージが れる
ユーザがスナップショットを大量に取得
- 教訓:全ての機能を提供するのではなく、必要な機能を提供する
Controller Node
(glance)
image snapshot
過去に遭遇したトラブル - 2
* のアプリケーションエラー問題
- 現象:オブジェクトの生成に失敗する
- 現象:mmap に失敗する
- 現象:発生しない VM もある
- 原因:ホストでメモリエラーが発生していた
- 教訓:物理監視大切!
過去に遭遇したトラブル - 3
* VM が時々起動しない問題
- 現象1:特定の物理ホスト群に対するインスタンスの起動が たまに 失敗
- 現象2:現象1 が再現するホスト群とそうでないホスト群が存在
HA bHA a
物理マシン
仮想マシン c8m64s60 c24m8s60
よく再現する 全く再現しない
過去に遭遇したトラブル - 3
* VM が時々起動しない問題
- 現象1:特定の物理ホスト群に対するインスタンスの起動が たまに 失敗
- 現象2:現象1 が再現するホスト群とそうでないホスト群が存在
HA bHA a
物理マシン
仮想マシン c8m64s60 c24m8s60
よく再現する 全く再現しない
過去に遭遇したトラブル - 3
(*1) https://bugs.launchpad.net/nova/+bug/1333654
Neutron Server Compute Node
network-vif-plugged
* VM が時々起動しない問題
- 現象:特定の物理ホスト群に対するインスタンスの起動が たまに 失敗
- 原因:neutron-server から送られるイベント network-vif-plugged" を
compute ノードが取りこぼす (*1)
過去に遭遇したトラブル - 3
(*1) https://bugs.launchpad.net/nova/+bug/1333654
Neutron Server Compute Node
network-vif-plugged
* VM が時々起動しない問題
- 現象:特定の物理ホスト群に対するインスタンスの起動が たまに 失敗
- 原因:neutron-server から送られるイベント network-vif-plugged" を
compute ノードが取りこぼす (*1)
過去に遭遇したトラブル - 3
* VM が起動するまでの処理の仕組み
- イメージファイルの取得 (Glance)
- ボリュームの参照 (Cinder)
- ポート / セキュリティグループの設定 (Neutron-server)
過去に遭遇したトラブル - 3
(*1) https://bugs.launchpad.net/nova/+bug/1333654
Neutron Server Compute Node
network-vif-plugged
network-vif-unplugged
* network-vif-plugged イベントを取りこぼす原因
- ほぼ同時にインスタンスの作成・削除を実施した際に実施される
複数のイベントを同時に送る実装の問題 (*1)
過去に遭遇したトラブル - 3
* VM が時々起動しない問題
- 現象1:特定の物理ホスト群に対するインスタンスの起動が たまに 失敗
- 現象2:現象1 が再現するホスト群とそうでないホスト群が存在
HA bHA a
物理マシン
仮想マシン c8m64s60 c24m8s60
よく再現する 全く再現しない
過去に遭遇したトラブル - 3
* ホストスケジューラの仕組み (*1)
- Filtering :起動できるホストの選定
- Weighting:起動するホストの重み付け
(*1) 詳細:ホストスケジューラの仕組み - GREE Engineers' Blog
(出典:OpenStack Developer Manual -Filter Scheduler-)
振り返り / さいごに
振り返り
* OpenStack は誰もが簡単に使えるものでもない
- 機能開発においてはエンジニアリングスキルが求められる
- 安定運用においては運用スキル・ナレッジが求められる
(上記を満たす組織環境において)
* 高機能・柔軟な IaaS クラウド環境が獲得可能
- 国内外の OpenStack 利用企業において共通している
- 多彩な要件に対して柔軟に対応可能
さいごに
* 腕っこきのエンジニアを擁する企業さまへ
- OpenStack により高機能・安定・柔軟な IaaS クラウド環境を構築し
インフラ基盤を Next Level に成長させてみませんか
* これまで支えてくれた開発 / 運用コミュニティの方々へ感謝
- OpenStack ユーザ会の方々
- 企業の垣根を越えてさまざまな情報を共有してくれた方々
- VALinux さん, CTC さん, 楽天さん (などなど)

CEDEC2015_OpenStack で運用する Private Cloud の泥臭い(リアル)な話

  • 1.
    OpenStack で運用する Private Cloudの泥臭い (リアルな) 話 グリー株式会社 インフラストラクチャ本部 大山 裕泰 (オオヤマ ヒロヤス) CEDEC 2015- 20150827
  • 2.
  • 3.
    オオヤマ ヒロヤス 大山 裕泰 開発 -オリジナルカーネル OnixOS 開発 2008 年下期 IPA 未踏事業採択 (スーパークリエータ認定) - OpenFlow Controller JAXON Author - OpenFlow Controller Trema Contributor http://www.noxrepo.org/2012/03/335
  • 4.
    著書 - 次世代ネットワーク制御技術 OpenFlow入門 [著者 石井秀治,大山裕泰, 河合栄治] [発行 株式会社KADOKAWA アスキー・メディアワークス] 登壇 - JANOG33: ゴチャゴチャネットワークの可視化・OAM (高嶋隆一, 大山裕泰, 高橋正和) - JANOG34: DCネットワークの新時代? -ホワイトボックススイッチの利用可否- (石田渉, 大山裕泰) オオヤマ ヒロヤス 大山 裕泰
  • 5.
  • 6.
    目的 / 特徴 *エンジニア向け開発環境の提供 - OpenStack (Juno) を利用 Service Quality Functionality/Agility AWS オンプレミス環境 個人用開発マシン 従来の開発環境基盤
  • 7.
    かつての開発環境基盤 * XCP ->XenServer - インスタンスの運用を運用者が実施 - 社内で運用できる人がわずか - 保守的な運用 * 物理マシン - 管理コストが高い - サポートなし
  • 8.
    OpenStack 導入による変化 * 運用コストの低減/ デリバリータイムの短縮 - インスタンスの運用をユーザがオンデマンドで実施 * 管理コストの低減 - 誰がどのリソースをどれだけ使っている (使える) か システマチックに管理可能
  • 9.
  • 10.
    概要 * クラウド環境を作るための OpenSourceSoftware (OSS) - 特定のベンダーに依存しない運営体制 (OpenStack Foundation) - 協賛・サポート企業を含め 500 社が参画 ( Intel, HP, IBM, Rackspace, Redhat, SUSE, AT&T, Canonical 他多数 ) * 国内の多くの企業が OpenStack を積極採用 - Fujitsu, NTT Com, GMO, Yahoo! Japan, Rakuten, GREE 他多数
  • 11.
    [出典] So, Whatis the Core of OpenStack? より 利用している部分 全体像
  • 12.
    主なコンポーネント * nova - 仮想マシンリソースの管理を行うソフトウェアコンポーネント -Amazon EC2, S3 と API 互換を持つ * keystone - OpenStack の統合認証機構 - 各コンポーネントに対して HTTP 経由での認証インターフェイスを提供 - LDAP を含む様々な認証手法をサポート * glance - 全てのデータアセット (主にインスタンスのイメージ) を管理するコンポーネント
  • 13.
    主なコンポーネント * neutron - NaaS(Network as a Service) を実現するコンポーネント - 仮想 L2 / L3 ネットワークの管理・構築を行う - その他 SDN, SecurityGroup 等をサポート * cinder - BlockStorage Service を提供するコンポーネント - VM インスタンスに対して仮想 BlockStorage デバイスを提供する - バックエンドのストレージシステムをユーザに対して抽象化 * horizon - ダッシュボードクライアント (WEB UI) を提供するコンポーネント
  • 14.
    Private Cloud の 環境/ 構築手法について
  • 15.
    システム概要 * ハードウェア - (ほぼ)全ての機器を社内資産から流用 - 激安で Private Cloud 環境を構築 機材に掛けたコスト +
  • 16.
    Controller (Master) Nova, Neutron(Server),Glance, Cinder Horizon, RabbitMQ, MySQL, ... Controller (Slave) Nova, Neutron(Server), Glance, Cinder Horizon, RabbitMQ, MySQL, ... VRRP Network (Master) Neutron (L3-Agent, DHCP-Agent, Metadata-Agent) Network (Slave) Neutron (L3-Agent, DHCP-Agent, Metadata-Agent) Compute NodeCompute NodeCompute NodeCompute Node Monitoring (sensu) Monitoring (sensu) * ソフトウェア / サーバ構成 - OpenStack (Juno) を使用 - 2014/10 リリース。最新版は Kilo (2015/05 リリース) システム概要
  • 17.
    chef によるプロビジョニング * TheEnvironment Cookbook Pattern に基づいた手法 - 複数の組織・チームによる cookbook 開発のための手法として注目 - cookbook を複数のレイヤに分割。コードの可読性 / 再利用性が向上 Environment Wrapper Application WrapperWrapper ApplicationApplication Base
  • 18.
    chef によるプロビジョニング * TheEnvironment Cookbook Pattern に基づいた手法 - 複数の組織・チームによる cookbook 開発のための手法として注目 - cookbook を複数のレイヤに分割。コードの可読性 / 再利用性が向上 Environment Wrapper Application WrapperWrapper ApplicationApplication Base * 各コンポーネント / アプリケーション毎に存在 * コンポーネントを構築する処理のみ記述する (但し、他のサーバと関連する処理は行わない)
  • 19.
    chef によるプロビジョニング * TheEnvironment Cookbook Pattern に基づいた手法 - 複数の組織・チームによる cookbook 開発のための手法として注目 - cookbook を複数のレイヤに分割。コードの可読性 / 再利用性が向上 Wrapper Application WrapperWrapper ApplicationApplication Base * Application cookbook 毎に存在 * Application に特化した Attributes を記述 Environment
  • 20.
    chef によるプロビジョニング * TheEnvironment Cookbook Pattern に基づいた手法 - 複数の組織・チームによる cookbook 開発のための手法として注目 - cookbook を複数のレイヤに分割。コードの可読性 / 再利用性が向上 Environment Wrapper Application Wrapper ApplicationApplication Base * システムに一つだけ存在し、役割毎にレシピを記述 * Wrapper cookbook を呼び出す処理 のみ を記述 * システム全体の Attributes を記述 Wrapper
  • 21.
    chef によるプロビジョニング * TheEnvironment Cookbook Pattern に基づいた手法 - 複数の組織・チームによる cookbook 開発のための手法として注目 - cookbook を複数のレイヤに分割。コードの可読性 / 再利用性が向上 Wrapper Application Wrapper ApplicationApplication Base * システムに一つだけ存在 * 全ての環境に共通な設定を記述 Environment Wrapper
  • 22.
  • 23.
    テナント設計 * テナント (Tenannt) -リソース (CPU, Memory, Storage, Network, ... ) を管理する存在 * 個人アカウント毎にテナントを作成 - リソース制限等の管理を個人毎に行うため
  • 24.
    Quota 設定 * 特定のユーザによるシステムリソースの枯渇問題の回避 *ユーザ毎にリソースの上限を個別に変更 - 多くのリソースを必要とするユーザには、多くを割り当て 多くのリソースを必要としないユーザには、少ないリソースを割り当てる * テナントに対して、各種リソースの上限値を設定 - CPU コア数 - Floating IP アドレス数 - BlockStorage 容量
  • 25.
    HostAggregate * 異なるスペックのサーバリソースを効率的に利用 - 各サーバの種類毎にVM の収容設計を実施 物理マシンのリソースキャパシティ ← 仮想マシンの消費リソース
  • 26.
  • 27.
    HostAggregate * 異なるスペックのサーバリソースを効率的に利用 - 各サーバの種類毎にVM の収容設計を実施 物理マシン 仮想マシン c4m32s30 c8m64s60 c12m4s30 c24m8s60 c1m2s10 c2m4s20 c(コア数) m(メモリサイズ[GB]) s(ストレージサイズ)
  • 28.
    HA cHA bHAa HostAggregate * 異なるスペックのサーバリソースを効率的に利用 - 各サーバの種類毎に VM の収容設計を実施 物理マシン 仮想マシン c4m32s30 c8m64s60 c12m4s30 c24m8s60 c1m2s10 c2m4s20
  • 29.
    BlockStorage * 高可用性で大容量のストレージの提供 - ダッシュボードからボリュームの切出し / アタッチ / デタッチ を実施 - インスタンスからはブロックデバイスとして認識される /dev/vdb
  • 30.
    裏セグ for BlockStorage *BlockStorage のトラフィックを分離させる - FlexLink により裏セグ帯域を 4Gbps に拡張 BlockStorage 用ネットワークセグメント データトラフィック用ネットワークセグメント
  • 31.
    グリーの Private Cloudでの オリジナルカスタマイズ
  • 32.
    DNS 連携 * インスタンスにドメイン名を設定したい *実現方法 - cloud-init にレコード登録処理を仕込むやり方 - Neutron l3-plugin にレコード登録/削除処理を仕込むやり方 (GREE 方式) - designate を使うやり方
  • 33.
    DNS 連携 [1/3] *ネットワーク構成 - シングルフラットネットワーク / DHCP による IP アドレスの割り当て DHCP サーバ OpenStack インスタンス
  • 34.
    DNS 連携 [1/3] *制約 / 特徴 - インスタンスが起動するまで IP アドレスがわからない * 実現方法 - インスタンス起動時に実行される処理機構 (cloud-init) に レコード登録処理を追加する DNS 依頼 作成 登録 DHCP サーバ IP アドレス 取得
  • 35.
    DNS 連携 (GREE方式) [2/3] * ネットワーク構成 - Network Node を用いた (OpenStack Networking) 構成 * 特徴 - Floating IP アドレスを用いてインスタンスにアクセスする External Network Tenant Network IPaddr: A (Floating IP Address) OpenStack インスタンス DHCP サーバ IPaddr: A
  • 36.
  • 37.
    * Designate を使用 -DNSaaS を提供する OpenStack プロジェクト (Incubated プロジェクト) - MiniDNS が DNS プロトコル (NOTIFY, AXFR) を喋ってサーバと連携 - スケーラブルな機構。eBay / PayPal で採用 (*1) DNS 連携 [3/3] (*1) Adopting Designate for Managing Mission Critical eBay/PayPal DNS, OepnStack Summit 2015
  • 38.
  • 39.
  • 40.
    過去に遭遇したトラブル - 1 *突然、あらゆる操作がエラーになる問題 - 現象:突然コントローラがあらゆる操作を受け付けなくなる - 原因:コントローラノードのストレージが れる ユーザがスナップショットを大量に取得 - 教訓:全ての機能を提供するのではなく、必要な機能を提供する Controller Node (glance) image snapshot
  • 41.
    過去に遭遇したトラブル - 2 *のアプリケーションエラー問題 - 現象:オブジェクトの生成に失敗する - 現象:mmap に失敗する - 現象:発生しない VM もある - 原因:ホストでメモリエラーが発生していた - 教訓:物理監視大切!
  • 42.
    過去に遭遇したトラブル - 3 *VM が時々起動しない問題 - 現象1:特定の物理ホスト群に対するインスタンスの起動が たまに 失敗 - 現象2:現象1 が再現するホスト群とそうでないホスト群が存在 HA bHA a 物理マシン 仮想マシン c8m64s60 c24m8s60 よく再現する 全く再現しない
  • 43.
    過去に遭遇したトラブル - 3 *VM が時々起動しない問題 - 現象1:特定の物理ホスト群に対するインスタンスの起動が たまに 失敗 - 現象2:現象1 が再現するホスト群とそうでないホスト群が存在 HA bHA a 物理マシン 仮想マシン c8m64s60 c24m8s60 よく再現する 全く再現しない
  • 44.
    過去に遭遇したトラブル - 3 (*1)https://bugs.launchpad.net/nova/+bug/1333654 Neutron Server Compute Node network-vif-plugged * VM が時々起動しない問題 - 現象:特定の物理ホスト群に対するインスタンスの起動が たまに 失敗 - 原因:neutron-server から送られるイベント network-vif-plugged" を compute ノードが取りこぼす (*1)
  • 45.
    過去に遭遇したトラブル - 3 (*1)https://bugs.launchpad.net/nova/+bug/1333654 Neutron Server Compute Node network-vif-plugged * VM が時々起動しない問題 - 現象:特定の物理ホスト群に対するインスタンスの起動が たまに 失敗 - 原因:neutron-server から送られるイベント network-vif-plugged" を compute ノードが取りこぼす (*1)
  • 46.
    過去に遭遇したトラブル - 3 *VM が起動するまでの処理の仕組み - イメージファイルの取得 (Glance) - ボリュームの参照 (Cinder) - ポート / セキュリティグループの設定 (Neutron-server)
  • 47.
    過去に遭遇したトラブル - 3 (*1)https://bugs.launchpad.net/nova/+bug/1333654 Neutron Server Compute Node network-vif-plugged network-vif-unplugged * network-vif-plugged イベントを取りこぼす原因 - ほぼ同時にインスタンスの作成・削除を実施した際に実施される 複数のイベントを同時に送る実装の問題 (*1)
  • 48.
    過去に遭遇したトラブル - 3 *VM が時々起動しない問題 - 現象1:特定の物理ホスト群に対するインスタンスの起動が たまに 失敗 - 現象2:現象1 が再現するホスト群とそうでないホスト群が存在 HA bHA a 物理マシン 仮想マシン c8m64s60 c24m8s60 よく再現する 全く再現しない
  • 49.
    過去に遭遇したトラブル - 3 *ホストスケジューラの仕組み (*1) - Filtering :起動できるホストの選定 - Weighting:起動するホストの重み付け (*1) 詳細:ホストスケジューラの仕組み - GREE Engineers' Blog (出典:OpenStack Developer Manual -Filter Scheduler-)
  • 50.
  • 51.
    振り返り * OpenStack は誰もが簡単に使えるものでもない -機能開発においてはエンジニアリングスキルが求められる - 安定運用においては運用スキル・ナレッジが求められる (上記を満たす組織環境において) * 高機能・柔軟な IaaS クラウド環境が獲得可能 - 国内外の OpenStack 利用企業において共通している - 多彩な要件に対して柔軟に対応可能
  • 52.
    さいごに * 腕っこきのエンジニアを擁する企業さまへ - OpenStackにより高機能・安定・柔軟な IaaS クラウド環境を構築し インフラ基盤を Next Level に成長させてみませんか * これまで支えてくれた開発 / 運用コミュニティの方々へ感謝 - OpenStack ユーザ会の方々 - 企業の垣根を越えてさまざまな情報を共有してくれた方々 - VALinux さん, CTC さん, 楽天さん (などなど)