OpenStackで実現する 分散ストレージ「Swift」と プライベートクラウド

Similar documents
概要 ここでは先程デモを行った OpenStack の中で仮想マシンのデータがどのように管理されているかをご紹介致します OpenStack の中でデータがどのように配置され 管理されているかを知ることは 可用性を検討する上で非常に重要になります 2

AWS Deck Template

OpenStack運用実践によるエンタープライズ適用に向けた課題と今後について~ベアメタルサービスの現状とDesign Summitでの討議状況~

PowerPoint プレゼンテーション

JOSUG 9th Study openstack Open source software to build public and private clouds. 第 9 回動かして学ぶ! OpenStack とクラウドを支える技術 テキスト : ( これと

FUJITSU Cloud Service for OSS 「コンテナサービス」 ご紹介資料

Color

Presentation Template Koji Komatsu

2

141121StartOpenStack.pptx

2013年『STSSスキルコミュニティ』 テーマ別Kickoff資料

1

SIOS Protection Suite for Linux v9.3.2 AWS Direct Connect 接続クイックスタートガイド 2019 年 4 月

Yahoo! JAPANにおけるOpenStack on Kubernetes導入までの道のり

Congress Deep Dive

PRESENTATION TITLE - By [Author Name] [ id]

Cisco ACIとOpenStack連携と今後の展望 ネットワンシステムズ 株式会社 荒牧 大樹様

使用する前に

スライド 1

スライド 1

ネットワークの匠が語る!OpenStackのサードパーティ連携と勘所

OpenStack 環境における Container as a Service の提供と課題 株式会社サイバーエージェント アドテク本部 技術戦略室 Central Infrastructure Agency 青山 真也

PowerPoint Presentation

Microsoft PowerPoint - OSDT2013-NTTDATA.pptx

PassSureExam Best Exam Questions & Valid Exam Torrent & Pass for Sure

OpenStack (IceHouse) 向け動作環境 / ( 1) UFSM37-E UFSM37-H UFSM37-E UFSM37-H UFSM37-E UFSM37-H istorage M100 UFSM

ServerView RAID Manager VMware vSphere ESXi 6 インストールガイド

FUJITSU Software Systemwalker Centric Manager Lite Edition V13.5 機能紹介資料

ServerView RAID Manager VMware vSphere ESXi 5 インストールガイド

自己紹介 元木顕弘 某電気系メーカの研究所に所属 IPルータ 広域 Ethernet 装置 迷惑メールフィルタなどの開発をやっていました 最近は OpenStack, OpenFlow 周りで活動しています Linux JM Project 皆さん日本語マニュア

CLUSTERPROXSingleServerSafe SingleServerSafe ご紹介 2007 年 10 月

Microsoft PowerPoint - VMware Lab Manager製品資料 ppt

CLUSTERPRO MC ProcessSaver 1.2 for Windows 導入ガイド 第 4 版 2014 年 3 月 日本電気株式会社

Dell Red Hat OpenStack - Version Dell Inc.

KSforWindowsServerのご紹介

Microsoft Word - 楽天㇯ㅩ㇦ㅛIaaSㇵㅼã…fiã‡¹ä»Łæ§Ÿ.doc

改版履歴 Ver. 日付履歴 1.0 版 2014/5/30 目次 0 はじめに 本文中の記号について Windows Server Failover Cluster をインストールするための準備 Windows Server Failover

目次 1 VirtualBoot for Hyper-V とは バックアップを実行するマシンの設定 確認すべきこと SPX によるバックアップ VirtualBoot for Hyper-V を実行するマシンの設定 確

_mokuji_2nd.indd

サーバセキュリティサービス 導入手順書 Deep Security 9.5SP1 (Windows) プロキシ経由編

「実践」OpenStack IRONIC

IBM i インターネットセミナー IBM i 区画を簡単キャプチャー & デプロイ - PowerVC のご紹介 - はじめに 仮想化技術が進み IBM i 環境の構築方法の選択肢も広がってきています IBM i の環境構築方法としては 以下のような方法があります 導入メディアを順次読み込ませて導

Microsoft Word - ssVPN MacOS クライアントマニュアル_120版.doc

ServerView RAID Manager VMware vSphere ESXi 5 インストールガイド

ライフサイクル管理 Systemwalker Centric Manager カタログ

延命セキュリティ製品 製品名お客様の想定対象 OS McAfee Embedded Control 特定の業務で利用する物理 PC 仮想 PC や Server 2003 Server 2003 ホワイトリスト型 Trend Micro Safe Lock 特定の業務で利用するスタンドアロン PC

10年オンプレで運用したmixiをAWSに移行した10の理由

目次 1. Serverspec とは 1.1. Serverspecとは 1.2. Serverspecで出来る事 2. セットアップ 2.1. 必要なもの 2.2. インストール 3. デモ 3.1. デモ環境について 3.2. テスト対象サーバーの登録 3.3. サンプルテストの中身 3.4.

内容環境... 3 対応 OS の変更... 3 関連アプリケーションの追加... 4 機能追加... 5 グラフ機能... 5 稼働率... 8 サービス一括削除 自動復旧エスカレーションコマンド AWS カスタムメトリックス監視 NRPE 任意監視... 11

Microsoft Word - クライアントのインストールと接続設定

サーバセキュリティサービスアップグレード手順書 Deep Security 9.6SP1 (Windows) NEC 第 1 版 2017/08/23

目次 1. 本書の役割 Windows Agent サポート OS とエディション サポート言語 Agent 稼働前提条件 Azure SDK リリース済み Windows Agent のサポート

OpenStack最新情報セミナー(2015年12月) ライトニングトーク大会 資料

<4D F736F F F696E74202D204F70656E B82C9928D96DA C C682B582C D495082F D

R80.10_FireWall_Config_Guide_Rev1

FUJITSU Cloud Service for OSS 「ソフトウェア カフェテリア」 ご紹介資料

Acronis Backup 12.5 Advanced NetAppスナップショット連携

CLUSTERPRO MC ProcessSaver 2.3 for Windows 導入ガイド 第 5 版 2018 年 6 月 日本電気株式会社

プロダクト仕様書 ECS

IBM i のスマート・デバイス活用【HATSのiPhone / iPadサポート編】

HyConnect/ オープンパブリックトライアルサービスサービス仕様書 2016 年 1 月 13 日 本トライアルサービスは全て無料で利用可能です 1. リージョンについて本トライアルサービスでは 仮想システムを東日本リージョン 1 東日本リージョン 2 西日本リージョン 1 の 3 リージョン

OpenStack Data Prosessing as a Service(DPaaS) Saharaを試す

Server and Cloud Platform template

マネージドクラウド with bit-drive 仮想マシンサービス 管理者マニュアル [ 管理者さま向け ] 2018 年 10 月 15 日 Version 3.0 bit- drive 2018/10/15 Version 3.0 マネージドクラウド with bit-drive 仮想マシン

まえがき 2011 年 11 月 1 日 ver1.0 [ 初版 ] 本手順書では vcenter サーバが管理する仮想コンピュータを Acronis Backup & Recovery 11 エージェント for ESX(i)( バーチャルアプライアンス ) を用いてバックアップする手順をご紹介し

PowerPoint プレゼンテーション

Mobile Access簡易設定ガイド

Microsoft Word - nvsi_050090jp_oracle10g_vlm.doc

Microsoft Word - nvsi_090200jp_r1_nvbsvr_mscs.doc

改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2

スライド 1

TFTP serverの実装

動作環境 WebSAM Storage VASA Provider 2.4 istorage M110 istorage M310 istorage M310F 対象ディスクア istorage M510 istorage M710 istorage M710F レイ ストレージ制御ソフトリビジョン

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

Veeam_Corporate_Template_16x9

アジェンダ はクラウド上でも十分使えます 1. の概要 とは の導入事例 で利用される構成 2. をクラウドで使う クラウドサービスの分類 Amazon Web Services による構成例 2

vmGuardian 30

OpenAM 9.5 インストールガイド オープンソース ソリューション テクノロジ ( 株 ) 更新日 : 2013 年 7 月 19 日 リビジョン : 1.8

スライド 1

スライド 1

PowerPoint プレゼンテーション

サービス仕様 1. 提供機能一覧楽天クラウド IaaS では以下の機能をユーザに対し提供します 機能名 1 管理コンソール 2 仮想マシン 概要 ユーザが楽天クラウド IaaS の各機能を操作するための Web インターフェースです 以下の全ての機能を操作できます ユーザが占有でき

FUJITSU Cloud Service for OSS 「システム監視サービス」ご紹介資料

LightSwitch で申請システム Windows ストアアプリで受付システムを構築してみた 情報政策グループ技術職員金森浩治 1. はじめに総合情報基盤センターでは 仮想サーバホスティングサービスや ソフトウェアライセンス貸与といった さまざまなエンドユーザ向けサービスを行っている 上記のよう

K5移行サービス ご紹介資料

R76/Gaia ブリッジ構成設定ガイド

提案書

音声認識サーバのインストールと設定

クラスタ構築手順書

proventia_site_protector_sp8_sysreq

システムインテグレータのIPv6対応

PowerPoint Presentation

HP Device Managerご紹介資料

スライド 1

Agenda 1. 今回のバージョンアップについて a. バージョンアップ概要 b. バージョンアップ目的 c. 新バージョンのシステム要件に関する注意事項 d. 現行バージョンのサポート期間 2. 対応プラットフォームの追加 3. 新機能の追加および機能強化 2

OS と Starter Pack の対応 (Express5800/R110j-1 向け ) OS と Starter Pack について Express5800/R110j-1 ( 以下サーバ本体製品 ) では Starter Pack のバージョンによってサポート可能な OS が決まります シ

新製品 Arcserve Backup r17.5 のご紹介 (SP1 対応版 ) Arcserve Japan Rev. 1.4

Cisco HyperFlex セットアップ概要

intra-mart Accel Platform — OData for SAP HANA セットアップガイド   初版  

PowerPoint プレゼンテーション

Transcription:

OSC2014 Spring OpenStack の概要および OpenStack によるクラウド活用法のご紹介 2014 年 2 月 28 日 日本ヒューレット パッカード株式会社テクノロジーコンサルティング事業統括デリバリー統括本部オープンソース部惣道哲也

Agenda 1. OpenStack とは 2. OpenStack が動作する仕組み OpenStack を構成するコンポーネント ブロックストレージ cinder とオブジェクトストレージ swift の違いと使い分け neutron により実現できるネットワーク構成 Havana リリースの新機能 ceilometer heat の概要 3. OpenStack によるクラウド活用法について Appendix 検証時に発生したトラブルとその対処 プライベートクラウド検証のための PoC 環境の構成例 2

1. OpenStack とは

OpenStack が注目される背景 仮想化からクラウドへの IT 基盤の進化 仮想化による IT 基盤統合 IT 基盤のクラウドサービス化 VM VM VM VM VM サイロ型 IT 基盤 得られる効果 仮想化技術を活用した IT 基盤統合と標準化 リソース稼働率の向上 運用作業の標準化 システムコストの最適化 IT 基盤のクラウドサービス化 IT リソースを サービスメニュー化して迅速に提供 セルフポータルの提供による管理業務の自動化 4 クラウド IT 基盤を構築できるソフトウェアのニーズが拡大

クラウド IT 基盤とは IT リソースの サービス化 + 標準化 + 自動化 実装手段として 仮想化 技術を利用することが多いが 仮想化 は必須ではない サービス化 利用者は IT 基盤の内部構造を意識しない 使いたいときに使いたい分を利用する 使い終わった後に資産 在庫として残らない 標準化 次のような条件を共通メニューとして揃える マシンリソース要件 (OSイメージ CPU メモリ ストレージ ネットワーク等 ) 利用条件 (SLA セキュリティ等) 申請方法 運用管理等のプロセス 自動化 利用申請やリソース払い出しなどの管理タスクをポータルや API で自動化 IT 基盤の利用者のメリット 要求に応じたスペックの仮想サーバやストレージをすぐに利用できる IT 基盤の管理者のメリット 利用者ごとの個別対応が不要 運用の効率化と管理の向上 ヘルプデスクの負荷軽減 統合によるコスト削減効果 5

OpenStack とは クラウド IT 基盤の標準を目指しているオープンソースのクラウド基盤ソフトウェア クラウド基盤ソフトウェアを開発する OSS プロジェクト http://www.openstack.org/ 運営体制 非営利団体である OpenStack Foundation が運営 HP RedHat SUSE Canonical AT&T Cisco IBM DELL RackSpace NEC Intel VMware EMC Yahoo! などが参加 Linux Foundation モデルに類似 IT インフラのライフサイクルを管理 サーバ ストレージ ネットワークリソースの生成 割当 返却 再利用 API によるハードウェアのソフトウェア化 異なる利用者の仮想マシンを同一物理サーバ上で利用できるマルチテナント対応 実装言語はpython 内部でLinuxの各コマンドを呼び出すことで 環境構築 管理を実現 kvm/qemu, lvm, iscsi, iptables, openvswitch, ip netns,. 6

OpenStack 開発の経緯 NASA Nebula (IaaS 基盤 ) 2009 年独自のクラウドプラットフォームを開発 運営 2010/7 OpenStack RackSpace Cloud Files ( ファイルホスティング ) ロードマップ 2008 年独自のクラウドファイルホスティングサービスを開発 運営 現状 最新版 次期リリース予定 Austin Bexer Cactus Diable Essex Folsom Grizzly Havana IceHouse 2010/10 2011/2 2011/4 2011/10 2012/4 2012/9 2013/4 2013/10 2014/4 7

OpenStack 導入事例 国内外問わず導入事例が多く 商用サービスとしての利用も増えている 1 パブリッククラウドサービス向け用途 HP (HP Cloud Services www.hpcloud.com) 数千台の物理マシンと PByte クラスストレージシステムが複数 DC にて稼働 RackSpace GMO ( お名前.com VPS) Korea Telecom ( オブジェクトストレージ swift の商用サービス ) 2 商用サービス 社内サービス基盤向け用途 PayPal 可用性に妥協することなく すばやくスケールする能力 という要件を満たすため それまで 80,000 台の VMWare で稼働していたプラットフォームを OpenStack にリプレースすると発表 (http://www.openstack.org/user-stories/paypal/agility-with-stability/) Yahoo! 開発環境 Hadoop/Storm クラスタ また商用サービス ( ピーク時の突発対応 ) で利用 サイバーエージェント Ameba 基盤を OpenStack 上に構築 3 研究 学術機関向け用途 CERN 国立情報学研究所 8

HP の OpenStack への取り組み 3 パターンのご要望それぞれにお応えしたい 1 OpenStack を使いこなしたい HP Cloud Service Automation HP Operations Orchestration HP CloudSystem Matrix HP Cloud OS for HP Moonshot HP Cloud OS 搭載製品 (HP Cloud System など ) OpenStack Network Plug-in / Storage Driver 対応ハードウェア OpenStack 対応オーケストレーター OpenStack API HP Cloud Services (Public) HP Enterprise Cloud Services OpenStack ベースのクラウドサービス HP 3PAR HP Lefthand HP VAN SDN Controller 2 OpenStack で 3 IaaSを作りたい OpenStack の IaaS を使いたい 9

この章のまとめ OpenStack とは クラウド IT 基盤とは IT リソースの サービス化 標準化 自動化 を実現するもの クラウド IT 基盤の標準を目指すオープンソースのクラウド基盤ソフトウェア = OpenStack すでに商用でも活用されており 国内外で導入事例も増えてきている HP でも さまざまなお客様の要望に応じるために パブリッククラウドの HP Cloud Services や HP Cloud OS 搭載製品などを提供しており いずれも基盤技術として OpenStack を採用しています 10

2. OpenStack が動作する仕組み

OpenStack の構成コントローラノード 利用者 利用者はシステム内部の仕組みを知らなくとも 使いたいときに欲しいスペックのマシンがすぐ利用できる SSH など通常の サーバアクセス ポータル画面へのアクセス コンピュートノード VM VM VM VM 制御 VM ディスクをマウント ストレージノード ( ブロックストレージ ) Cinder VM 管理者 ポータルの管理画面から 事前に利用者が使うメニューや VM イメージを登録しておく ポータル画面または REST API 経由でのシステム利用要求を受け付け OpenStack 全体の制御をおこなう 認証処理 VM の生成 起動 停止など ) ネットワーク割当 管理 ストレージの割当 管理 コントローラの指示により VM の起動 停止を行う VM 起動後はシステム利用者は SSH などを使い直接 VM へアクセスすることができる コントローラの指示により ディスクボリュームを作成し iscsi ディスクとして VM に提供する REST API ストレージノード ( オブジェクトストレージ ) Swift REST API でアクセスして 画像ファイルやログファイルなどをファイル単位で格納して保存する VM ゲストが起動していなくても利用可能 12 proxy server swift server

OpenStack のコンポーネント システム利用者 GUI リクエスト SSH など通常の サーバアクセス REST API コントローラノード VM VM Horizon VM VM Portal 画面サービス Nova コンピュートノード コントローラ (API 要求受付 起動処理 ) VM VM 環境全体のリソース計測 認証サービス 認証 VM 起動指示 Ceilometer リソース計測テンプレートを利サービス用したデプロイ Nova VM Keystone NW 割当指示 イメージ 割当指示 コンピュートノードサービス VM Neutron ネットワーク管理サービス VM へネットワーク割り当て (IP アドレス払い出し等 ) Heat デプロイサービス Glance VMイメージ管理サービス 指定された VM イメージを使って起動 REST API ブロックストレージ ボリューム割当指示 Cinder ブロックストレージサービス VM へボリューム割当 Cinder ブロックストレージサービス オブジェクトストレージ 13 proxy server swift server Swift オブジェクトストレージサービス

ブロックストレージ cinder とオブジェクトストレージ swift それぞれの違いと使い分け コンピュートノード 利用者 SSHなど通常のサーバアクセス VM VM VM VM VM VM REST API ディスクをマウント ブロックストレージ Cinder 通常のファイルシステムとして利用可能 OS からマウントして ブロック単位でアクセスする ログ出力など頻繁に更新されるデータの格納に向いている REST API を利用してファイル単位でアクセスする オブジェクトストレージ Swift proxy server swift server HTTP アクセスができるクライアントであればどこからでも REST API でアクセスが可能 アクセス単位はファイル 画像ファイルなど大容量でアクセス頻度が高くないデータ向き 14

Neutron(quantum) の仕組み Neutron 以前のネットワーク構成 クラウド全体で重複した IP の使用はできない テナントごとに利用可能なサブネットが割り当てられる テナントごとの通信トラフィックは VLAN により別テナントとは分離される テナント = 利用者をグループ化した概念 VM やネットワークの管理単位となる ポータルメニューでは プロジェクト という用語も出てくるが全く同じ意味 ネットワーク構成の制御はテナントユーザにはできない (API がサポートされていない ) switch Compute node 1 Compute node 2 vlan 101 eth0 vlan 102 vlan 101 eth0 vlan 102 dnsmasq br101 10.0.1.1 dnsmasq br102 10.0.2.1 dnsmasq br101 10.0.1.4 dnsmasq br102 10.0.2.4 VM1 VM2 VM1 VM2 VM3 VM4 VM3 VM4 10.0.1.2 10.0.1.3 10.0.2.2 10.0.2.3 10.0.1.5 10.0.1.6 10.0.2.5 10.0.2.6 15 テナント A は 10.0.1.0/24 を割り当て テナントBは10.0.2.0/24を割り当て

External Network (15.30.0.0/22) Private Network (10.0.1.0/24) Private Network (10.0.1.0/24) Neutron(quantum) の仕組み Neutron から可能になったネットワーク構成 各テナントは専用の内部ルータを持ち 任意のネットワークアドレスをアサインすることができる 他テナントと内部ネットワークのIPアドレスが重複していても良い (network namespaceで実現 ) 各テナントはneutron APIを使い テナント利用者が内部ネットワーク構成を自由に設定可能 Tenant A 15.30.0.2 router 10.0.1.1 VM1 15.30.0.4 (floating IP) 10.0.1.3 (private IP) API 発行による NW 構成が可能 Router 作成 Subnet 作成など router 15.30.0.1 dnsmasq VM2 15.30.0.5 (floating IP) 10.0.1.4 (private IP) 10.0.1.2 IPアドレスレンジが重複していても良い Tenant B 15.30.0.3 15.30.0.6 (floating IP) router VM1 10.0.1.3 (private IP) 10.0.1.1 dnsmasq 15.30.0.7 (floating IP) VM2 10.0.1.4 (private IP) 10.0.1.2 API 発行による NW 構成が可能 Router 作成 Subnet 作成など 16

Neutron(quantum) の仕組み Network namespace とは? Linux kernelで実装されているネットワーク仮想化の機能 1つのhost 内で独立したネットワーク環境を作成できます 各 network namespaceはそれぞれ以下のリソースを持ちます ネットワークインターフェース ルーティングテーブル iptables Neutronでは1つのhost 内での仮想マシン 仮想ネットワークを分離する目的で利用されます 各 namespace 間でIPアドレスが重複していても良い namespace1 NIC routing table iptables namespace2 NIC routing table iptables namespacex NIC routing table iptables 注意 各 ns へのアクセス方法 global namespace(host OS) から ping などを打っても届かないため 以下のように ns 名を指定して実行する必要があります Linux global namespace NIC routing table iptables # ip netns exec <ns 名 > command 17 ハードウェア 例 : # ip netns exec namespace1 ping 10.0.1.1

Private Network (10.0.1.0/24) External Network (15.30.0.0/22) Private Network (10.0.1.0/24) Neutron(quantum) の仕組み Network namespace とは? Neutron では以下の 2 種類の namespace が自動的に作られます qrouter-<uuid> (UUID は作成した router の ID) L3 レベルの router1 つにつき 1 つの namespace が作られる qdhcp-<uuid> (UUID は作成した private network の ID) L2 レベルの private network1 つにつき 1 つの namespace が作られる namespace:qrouter-<uuid> 15.30.0.2 router 10.0.1.1 Tenant A VM1 実際には Floating IP は VM の NIC に割り当てられるのではなく L3 Agent で NAT が行われる 15.30.0.4 (floating IP) 10.0.1.3 (private IP) dnsmasq 10.0.1.2 namespace: qdhcp-<uuid> VM2 15.30.0.5 (floating IP) 10.0.1.4 (private IP) 18 15.30.0.6 Tenant B router 10.0.1.1 VM1 dnsmasq 10.0.1.2 15.30.0.7 (floating IP) 10.0.1.3 (private IP)

tap 2345bcde-fg eth0 br-ex br-int qvo 1234abcd-ef qbr 1234abcd-ef eth0 qg 4567defg-hi qr 3456cdef-gh qvb 1234abcd-ef tap 1234abcd-ef Neutron(quantum) の仕組み Neutron 構成の実装方法 veth ペアや tap デバイスを使い ネットワークを構成しますが 若干理解しづらい点があります 現在 KVM/QEMU は veth が非サポート TAP のみサポートであるため VM 接続用に tap デバイスが必要 Security groupsの実装にiptablesが使われるが 現在 Open vswitchに直接接続されたtapデバイスをiptables で制御することはサポートされておらず workaroundとして 間にLinux Bridgeを挟むことでiptablesを利用できるようにしている Open vswitch IP 15.30.0.2 L3 Agent (router) Iptables による NAT namespace qrouter-5678efgh-xxxx IP 10.0.1.1 Open vswitch Iptables によるフィルタ Linux Bridge 15.30.0.4 (floating IP) 10.0.1.3 (private IP) IP VM1 19 DHCP agent (dnsmasq) DHCP による IP 割り当て namespace qdhcp-6789fghi-yyyy IP 10.0.1.2 veth ペア (IP トンネリング ) tap デバイス (MAC フレームの VM との受渡し ) ( 参考 ) 上記例でのidの名前の付き方の規則 1. 1234abcd-ef はVM1(10.0.1.3) のport UUIDの先頭 10 桁 2. 2345bcde-fg はdnsmasq(10.0.1.2) のport UUIDの先頭 10 桁 3. 3456cdef-gh はL3 Agent(10.0.1.1) のport UUIDの先頭 10 桁 4. 4567defg-hi はL3 Agent(15.30.0.2) のport UUIDの先頭 10 桁 5. 5678efgh-xxxx はrouterのUUID( 全桁 ) 6. 6789fghi-yyyy はprivate networkのuuid( 全桁 )

Havana 新機能のご紹介 : Ceilometer リソース使用量の計測 概要 OpenStack の各コンポーネント (Nova,Swift,Glance, Cinder 等 ) のリソース計測を実行する 使い方の例 従量課金に必要なリソース消費量情報の取得 リソース消費量が設定した閾値を超えた際に ユーザが設定したアクションを実行 Heatと連携して 設定したリソース消費量を超えた際にインスタンスを追加で起動する ( オートスケール ) 取得できるリソースの例 vcpu 数 メモリ量 HDDの使用量 ネットワークの流量 イメージの利用サイズ 20

Havana 新機能のご紹介 : Heat VM/ ネットワーク等各種リソースの一括設定 設定 概要 VM の作成やネットワークの設定等の情報をまとめてテンプレートに記述しておく それを利用してクラウド上に自動で一括デプロイを行う テンプレートは AWS CloudFormation と互換性がある 使い方の例 開発環境のシステム構成をテンプレートに記述しておき それとまったく同じシステム構成を別環境に再現する Chef/Puppet と連携してミドルウェアの導入 設定までを自動化する インスタンス生成 NW 設定 :Heat テンプレートで記述 ミドルウェアの導入 設定 :Chef/Puppet レシピに記述 21

この章のまとめ OpenStack が動作する仕組み OpenStack は 制御用のノードと VM ストレージ NW 等の各リソースを提供するノードから構成 Cinder と swift の違いと使い分け ブロックストレージ cinder は 通常のファイルシステムとして OS からマウントしてアクセスする ログ出力など参照 更新のアクセス頻度が高いデータに向いている オブジェクトストレージ swift は HTTP アクセスができるクライアントであればどこからでもアクセスが可能 画像データなど大容量でアクセス頻度が高くないデータに向いている Neutronで実現できるようになったことと仕組みについて network namespaceを使用して 複数テナントでお互いに干渉しないネットワークを構成できる DHCP agent(dnsmasq) はprivate network 内でのIPアドレスを割り当てる L3 agent( 内部ルータ ) は外部ネットワーク (FloatingIP) とprivate network 間のをNATを行う 各テナントごとに2つ (DHCP agent/l3 agent) のnamespaceが自動的に生成される テナント内部ではUUID 名のついたさまざまなtap/vethデバイスが生成されている Havanaリリースでは リソース使用量の計測を行うCeilometerと VM/NWの一括設定 生成を行うHeatが利用できるようになった 22

3. OpenStack の活用例

OpenStack の活用によるインフラ設計 構築 運用の変化 クラウド時代の新しい考え方へ オンプレを前提とした方法とは異なる考え方の登場 例 :CPUやメモリのサイジングは事前に行わず 必要に応じて容易にスケールアップが可能 いくつかの例をOpenStackでの実装方法と合わせてご紹介します 24

1 カスタマイズした OS イメージによるサーバ複製 起動可能ボリューム の利用 概要 自分たちの用途にあわせた OS やミドルウェア アプリケーションの導入 設定を行って その状態をボリュームとして保存する メリット スケールアウトするときなど 同じ状態のサーバが一度に大量に必要な場合に 一からセットアップする必要がなくすぐに利用することができる Web サーバ用ボリューム DB サーバ用ボリュームなど用途ごとに用意しておくと楽 CPU 数 メモリサイズ等のフレーバーは起動時に自由に選択できる 実装方法 1. Imageメニューから ボリューム作成 で起動可能ボリュームを作成 カスタマイズ前の状態 2. Instanceの起動メニューで ボリュームから起動 を選び 上記ボリュームを指定する このとき インスタンスのルートディスクにこのボリューム (/dev/vda) がアタッチされている状態 3. OS 設定やミドルウェアの導入 設定などを自分たちの用途に合わせてカスタマイズする 4. インスタンスを終了 (Terminate) する カスタマイズが完了した状態 25

1 カスタマイズした OS イメージによるサーバ複製 利用方法の例 イメージから ボリュームの作成 を実行して 起動可能ボリュームを作成しておく インスタンス起動時に ボリュームから起動 を選んで起動する 26

2 スナップショットを使ったデータ領域のバックアップ 迅速で安全なバックアップの実現 概要 ある時点でのデータ領域用ファイルシステムのスナップショットを作成する メリット スナップショットの作成自体は短時間で完了する 例としてデータベースのデータ領域全体のオンラインバックアップ等が可能 実装方法 1. バックアップ対象となるファイルシステムの一貫性を確保するため スナップショット取得前に MySQL の書き込みロックおよびファイルシステムのフリーズを行う 2. cinder snapshot-create コマンドを使って 対象ボリュームのスナップショットを取得 3. スナップショット取得完了後 ファイルシステムのアンフリーズおよび MySQL のアンロックを行う MySQL のデータ領域をバックアップする手順の例 # ssh vm1 mysql uroot -ppassword-e FLUSH TABLES WITH READ LOCK; " # ssh vm1 xfs_freeze f /mnt/data # cinder snapshot-create --force True snap-vol data-vol # ssh vm1 xfs_freeze u /mnt/data # ssh vm1 mysql uroot -ppassword-e UNLOCK TABLES; " 27

2 スナップショットを使ったデータ領域のバックアップ 迅速で安全なバックアップの実現 ファイルシステムのフリーズとは ゲストのファイルシステムの dirty バッファの内容はメモリ上にありバックアップされない データ整合性を確保するため ファイルシステムのフリーズを行ってからスナップショットを取得する フリーズを行えば I/O が止まり メモリ上の dirty バッファがすべて書き出されることが保証される フリーズをサポートするファイルシステムは XFS( Linux カーネル 2.6.29 以降であれば ext3,ext4 も可 ) RHEL であれば 6.5 以降からは ext3,ext4 でも利用できる バックアップにおける注意点 インスタンスにボリュームがアタッチされている場合は cinder コマンドに --force True オプションをつける必要がある 取得済スナップショットはそのままにせず これを元にしたボリュームを作成しておく 取得済スナップショットはバックアップ元のボリュームに依存しており このボリュームが破損するとデータが参照できなくなるため 環境による差異等もあるため 事前に十分な検証を実施してください 28

3Heat テンプレートを使ったサーバ群の自動起動 複雑な環境もミスなく効率よく構築 概要 Heat テンプレートに立ち上げるサーバやネットワークなどのリソースを記述しておき Heat コマンドもしくは GUI からシステム環境全体を一括で自動起動する 終了時も一度にシステム環境全体を破棄できる メリット 手順書ベースの運用と比較して 操作ミスがなく 短時間で環境構築ができる 検証環境で確認した環境と同一の環境が容易に本番環境にも構築できる テンプレートはテキストベースのため gitなどを使って共同開発 バージョン管理が可能 実装方法 1. Heatテンプレートのフォーマットを記載する 新規作成 もしくは 既存環境のフォーマットがあれば再利用する 2. テンプレート名を指定してHeat 起動コマンドを実行 このときパラメータを渡すことができるので 状況により CPU 数を変えたりすることも可能 3. 利用後は テンプレート名を指定してHeat 終了コマンドを実行 29

3Heat テンプレートを使ったサーバ群の自動起動 複雑な環境もミスなく効率よく構築 Heat テンプレートのみを使うか 他のツールと連携するか? 単純な構成であれば 1.Heat テンプレートのみ でも良いが ある程度複雑な構成になると テンプレート記載量が増え管理が煩雑になってくるため 2. 他ツールとの連携 がおすすめ 1. Heatテンプレートだけを使い すべての設定情報を記載 Heatテンプレートファイルがメンテナンス対象 記載内容の例 CPU/ メモリ等のHWリソース NW 構成 インストールパッケージ 設定ファイル その他カスタムスクリプトの実行 30 2. ミドルウェア アプリケーション領域はChef,Puppetなどのツールと連携 Chefと連携した場合の例 Chefテンプレートに 導入アプリ ミドルウェアの情報 設定を記載 Heatテンプレートに HWリソース NW 構成およびchef-soloのインストール 実行までを記載 Heat 起動時のオプションとして Chefテンプレートファイル名を渡す ( さらに serverspec などを利用すれば構築環境の正しさを自動テストすることも可能 )

3Heat テンプレートを使ったサーバ群の自動起動 複雑な環境もミスなく効率よく構築 2. 他ツールとの連携 の例 :Chef(Chef-solo) との連携を記載した Heat テンプレートの例 31 resources: server1: type: OS::Nova::Server properties: name: Server1 image: { get_param: image } flavor: { get_param: flavor } key_name: { get_param: key_name } networks: - port: { get_resource: server1_port } user_data: { "Fn::Base64" : { "Fn::Join" : ["", [ "#!/bin/bash -v n", "curl -L https://www.opscode.com/chef/install.sh bash n", ]]}} "wget -O /tmp/chef-repo.tar.gz http://10.0.0.1/chef/web-chef-repo.tar.gz n", "tar zxvf chef-repo.tar.gz -C /home/sodo/ n", cd /home/sodo/chef-repo n "chef-solo -c.chef/solo.rb -j.chef/node.json n" Heatで任意のコードを実行できる ここではbashスクリプトでchefインストールおよびchefレシピを実行 chef-solo インストーラファイルの取得およびインストール このサーバの設定を記載した Chef レシピファイルセット ( 後述 ) Chef-solo の実行例これによりレシピに記載した設定が反映される

3Heat テンプレートを使ったサーバ群の自動起動 複雑な環境もミスなく効率よく構築 Chef-solo でパッケージインストールを記載する例 最低で 3 ファイル記載すれば OK $ cat /home/sodo/chef-repo/.chef/solo.rb file_cache_path "/home/sodo/chef-repo" cookbook_path "/home/sodo/chef-repo/cookbooks #http_proxy http://10.0.0.1 :8080/ $ cat /home/sodo/chef-repo/.chef/node.json { "run_list": [ "recipe[install_packages]" ] } Chef-Solo の設定を記述 (cookbook のパスなど ) このノードで実行する内容を記述ここではレシピの実行を指示 32 $ cat /home/sodo/chef-repo/cookbooks/install_packages/recipes/default.rb # # Cookbook Name:: install_packages # Recipe:: default # %w(apache2 php5 libapache2-mod-php5).each do pkg package pkg do action :install end end レシピの内容を記述 OS 設定やパッケージ導入などが可能サービス自動起動なども指示できる

この章のまとめ OpenStack を活用したインフラ設計 構築 運用の考え方 本章では OpenStack を活用したいくつかの例を紹介した 1. 同じ構成のサーバを再利用 または スケールアウト型配備をする場合 カスタマイズした起動可能ボリュームを作っておくと良い (glance の利用 ) 2. データ格納用ボリュームのスナップショットを利用することで アプリケーションをほぼ止めずにバックアップを取得 (cinder の利用 ) 3. 複数のサーバやネットワーク構成などをすべてテンプレートに記載して 迅速でオペミスのない構築が可能になる 環境 の共同開発やバージョン管理が実現できる (heat の利用 ) 33

Thank you

Appendix. 検証時に発生したトラブルとその対処

1. インスタンス起動時にメタデータの取得に失敗する 発生事象の内容 インスタンスを起動し 起動に成功 ただしインスタンス起動時のログに以下のようなエラーメッセージが出力される util.py[warning]: http://169.254.169.254/2009-04-04/metadata/instanceid failed [0/120s]: http error [500] Ping の疎通確認において以下の状況となった VNC コンソール経由でインスタンスにログインし インスタンスから 169.254.169.254 へ ping を発行する : 疎通 NG インスタンス起動時のメタデータ取得について 169.254.169.254 は各インスタンスのホスト名や FloatingIP の情報などのメタデータを提供するホストの IP アドレス 各インスタンスは起動時にこの IP アドレスへアクセスして HTTP GET で情報を取得する 原因 Compute ノードの以下の kernel parameter の設定ミス ip_forward=0 対処 36 ip_forward=1 と設定を変更

2. Cinder ボリュームのアタッチに失敗する 1 発生事象の内容 Cinder でボリュームを作成する 作成したボリュームをインスタンスに接続するが 接続エラーが発生 原因 iscsi に関連する以下 2 種類のソフトウェアを両方インストールしていた tgtd Iscsid docs.openstack.org のインストールマニュアルには両方インストールする旨の記述があるが 実際にはどちらか一方のみインストールする必要がある 対処 tgtd のみをインストールしたところ 正常に接続できた 37

2. Cinder ボリュームのアタッチに失敗する 2 発生事象の内容 Cinder でボリュームを作成する 作成したボリュームをインスタンスに接続するが 接続エラーが発生 原因 Ubuntu13.10 では default で apparmor が有効化されており iscsi に関する通信が apparmor により reject されていた ログメッセージの例 Nov 6 19:29:40 havana01 kernel: [ 2038.003136] type=1400 audit(1383733780.198:54): apparmor="denied" operation="open" parent=1 profile="libvirt-c3468db6-1397-4c82-a2f4-0e54462bd5fd" name="/dev/sdb" pid=13362 comm="qemu-system-x86" requested_mask="r" denied_mask="r" fsuid=113 ouid=113 対処 以下のように apparmor を無効化することで接続が成功した $ sudo ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/ $ sudo ln -s /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper /etc/apparmor.d/disable/ $ sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.libvirtd $ sudo apparmor_parser -R /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper $ sudo service apparmor restart 38

3. Horizon の GUI から外部ネットワークが作成できない 発生事象の内容 Horizon の GUI を使い プライベートネットワーク ルータは作成できたが 外部ネットワークを作成する画面が見つからなかった 原因 テナントの Member 権限では外部ネットワークの作成はできない Admin 権限のユーザでログインすると 外部ネットワークの作成が可能になる 対処 まず Admin 権限のユーザでログインし 外部ネットワークを作成する 次に Member 権限のユーザでログインし 残りのタスクを実施する 内部ネットワーク サブネットの作成 ルータの作成 インターフェース設定 外部接続用ゲートウェイ設定 39

4. 複数台構成で Compute ノード /Network ノード間の tunnel 作成に失敗する 発生事象の内容 Contoller ノード Compute ノード Network ノードからなる 3 台構成を構築 VM インスタンスからアクセスを行った際に tunnel 作成に失敗した旨のエラーが発生 ovsctl show コマンドで確認したところ br-tun ブリッジが存在していない 原因 Network ノード Compute ノードの /etc/neutron/neutron.conf にて local_ip の設定漏れ 対処 Network ノード Compute ノードの /etc/neutron/neutron.conf にて local_ip の設定を追記 なお Contoller ノードは GRE tunnel を利用しないため設定は不要 40

5. インスタンスから外部ネットワークへ接続できない 発生事象の内容 インスタンスを作成する FloatingIPをインスタンスへ付与する インスタンス上から外部インターネット上のURLへアクセスするが 接続に失敗する FQDNでアクセスすると接続に失敗する IPアドレスを指定してアクセスした場合は接続に成功する 原因 名前解決するための DNS サーバの設定を行っていない 対処 private subnet の設定オプションとして DNS サーバを指定する必要がある さらに 社内のイントラネットなどに構築した場合 HTTP プロキシの設定も必要 41

Appendix. プライベートクラウド検証のための PoC 環境の構成例

プライベートクラウド検証のための PoC 環境の構成例 PoC 環境の構成例 利用したい機能を選択 組み合わせてプライベートクラウドの検証を行うことができます 弊社で検証した PoC 環境の構成の例と それぞれの主な検証目的 No 構成例主な検証目的 1 1 台のノードによる Poc 環境 (Swift なし ) OpenStack の基本的な機能検証 特に Havana 新機能の検証 2 3 台のノードによる PoC 環境 (Swift なし ) 将来的な可用性 拡張性を考慮した追加構成のための基礎検証 追加構成の例 Compute ノードの追加 (4 台目 ) Controller ノードから DB の外だし 3 Swift 検証用 Poc 環境 オブジェクトストレージもを利用するための検証 43

11 台のノードによる PoC 環境の構成例 (Swift なし ) ソフトウェアスタック OS 上に追加パッケージを導入し さらにHavanaリリースのパッケージを導入する Swift 以外を全て構成 (Swiftも同居可能だが 今回は別構成とした) 各機能コンポーネントの基本機能検証用 Havana Ceilometer Heat Horizon Cinder Glance Keystone OpenStack コンポーネント (Havana リリース ) Nova Neutron MySQL Rabbit MQ KVM/ Qemu LVM netns open vswitch OS に追加するパッケージ Ubuntu 12.04LTS HP ProLiant DL380 Gen8 OS ハードウェア 44

23 台のノードによる PoC 環境の構成例 (Swift なし ) ソフトウェアスタック 管理用 ネットワーク VM Hostの役割で分離する ネットワーク構成にも注意が必要 ( 後述 ) Computeノードを1 台追加する ControllerノードからDBを外だしするなどの追加検証も行える Havana Ceilometer (agent 以外 ) Heat Horizon Glance Nova (compute 以外 ) Cinder Keystone Neutron (server のみ ) Neutron - DHCP Agent - L3 Agent(Router) - L2 Agent Ceilometer (agent) Neutron (L2 Agent) Nova (compute) MySQL Rabbit MQ LVM netns openvswitch KVM/ QEMU netns openvs witch Ubuntu 12.04LTS HP ProLiant DL380 Gen8 Ubuntu 12.04LTS HP ProLiant DL380 Gen8 Ubuntu 12.04LTS HP ProLiant DL380 Gen8 45 Controller ノード Network ノード Compute ノード

23 台のノードによる PoC 環境の構成例 (Swift なし ) Neutron 構成で使われる 4 種類のネットワーク Management Network クラウド内部で全ノードが通信するための管理ネットワーク (DB queue 認証などで利用 ) Data Network Compute Node/Network Node 間で VM 同士が通信をするためのネットワーク (neutron のプラグイン実装に応じて VLAN や GRE tunnel などの通信を行う ) External Network インスタンスがインターネットなど外部環境と通信するための外部ネットワーク (floating IP はこのレンジからアサインされる ) API Network Nova API や neutron API などの OpenStack API へアクセスするためのネットワーク 46

3Swift 検証用 PoC 環境の構成例 ソフトウェアスタック 別ノードにSwiftを導入 Swiftノードは4 台構成 (proxy1 台 +ストレージノード3 台 ( レプリカ数 :3)) Havana Ceilometer Heat Havana(Swift) Horizon Glance Nova Cinder Keystone Neutron Swift Proxy Swift (account/ container /object) Swift (account/ container /object) Swift (account/ container /object) MySQL Rabbit MQ KVM/ Qemu LVM netns open vswitch memcac hed Ubuntu 12.04LTS Ubuntu 12.04LTS Ubuntu 12.04LTS Ubuntu 12.04LTS Ubuntu 12.04LTS HP ProLiant DL380 Gen8 HP DL380 HP DL380 HP DL380 HP DL380 47

Thank you