openstack trove 技術解説

27
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Upload: toru-makabe

Post on 15-Jul-2015

1.892 views

Category:

Technology


3 download

TRANSCRIPT

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

•自己紹介• 真壁徹 (まかべ とおる)

• HP クラウドチーフテクノロジスト

• Japan OpenStack User Groupボードメンバー

• 2015年執筆活動• IT Media TechTarget連載“エンタープライズ

のためのOpenStack検討ガイド”

• http://techtarget.itmedia.co.jp/tt/news/1501/21/news04.html

• 翔泳社“OpenStackクラウドインテグレーションオープンソースクラウドによるサービス構築入門”

• http://www.shoeisha.co.jp/book/detail/9784798139784

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

• OpenStack Trove 前提知識・豆知識• アーキテクチャー• 機能• Kiloでのアップデート項目• デモ

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Troveのミッション

https://wiki.openstack.org/wiki/Trove

The OpenStack Open Source Database as a Service Mission: To provide scalable and reliable Cloud Database as a Service provisioning functionality for both relational and non-relational database engines, and to continue to improve its fully-featured and extensible open source framework.

超訳: いろんなDBがあるけど、それらに共通で使えるような、プロビジョニング機能を提供したいね!!

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Datastore

“Datastore”

TroveはOpenStack “DB as a Service”プロジェクトではありますが、対応するデータ管理ソフトウェアを”Datastore”と表現しています。

「それって”DB”なん?」という不毛な論争を避けるためだと思います。

MySQL

PostgreSQL

Redis

Cassandra

MongoDB

Couchbase

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Troveにできること

• Launch インスタンスの起動• Reboot インスタンスの再起動• Terminate インスタンスの削除• Resize インスタンスと記憶域のサイズ変更• Backup バックアップ取得• Restore バックアップからのインスタンス作成• Replication 複製インスタンスの作成• Clustering クラスタ化インスタンスの作成

ここで言うインスタンス = Compute Instance + Datastore Instance

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Datastoreによって機能に凸凹があります

Feature MySQL Redis Cassandra MongoDB PostgreSQL Couchbase

Launch ✔ ✔ ✔ ✔ ✔ ✔

Reboot ✔ ✔ ✔ ✔ ✔ ✔

Terminate ✔ ✔ ✔ ✔ ✔ ✔

Resize ✔ ✔ ✔ ✔ ✔ ✔

Backup ✔ ✔ ✔** ✔ ✔ ✔

Restore ✔ ✔ ✔** ✔ ✔ ✔

Replication ✔ - - - ✔** -

Clustering - ✔** ✔** ✔ - ✔**

API Matrix

https://wiki.openstack.org/wiki/Trove/DatastoreCompatibilityMatrix

** = Datastore supports it -- but it is currently Work in Progress in Trove.(Datastore自身にその機能はあるが、まだ現在はTroveを通じて使うことができないもの)

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

語源と読み方

Trove: Originally in the phrase treasure trove, from Anglo-Norman tresor trové (“found treasure”), where the past participle trové was interpreted in English as a noun.

http://ejje.weblio.jp/content/trove

http://en.wiktionary.org/wiki/trove

“Treasure”とくっつけて、「宝の山」として使われることが多い模様。

読み方は「トローブ」としましょう。本格派は「トウローブ」で。

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Troveの歴史

• 黎明期(~Havana)

• Project “Red Dwarf”としてHPやRackspaceが立ち上げ、自社サービスで採用

• 大人の都合により改名

• 育成期(Havana~Icehouse)

• Incubation宣言し、Integratedプロジェクトを目指す

• 本格化(Icehouse~)

• IcehouseでIntegratedプロジェクトに昇格

• Junoでレプリケーションやクラスターに対応し、いよいよ本格化

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Troveの開発に貢献している企業、組織

http://stackalytics.com/ (Metric: Commit, Release: Kilo, Date: 2015/04/01)

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

よく聞かれること

“Trove上のDBやOSって、ガチでチューニングできますか?

いろいろできないと困るんですけど”

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

いいんだよ、

細けぇ事は

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

要件に合わせて使い分ける要件が細かい 楽したい、速く作りたい

設計 DB管理者に相談 テンプレート化

プロビジョニング(Compute Instance)

プロジェクトによる アプリ開発者がセルフサービス

プロビジョニング(DB)

DB管理者が実施 アプリ開発者がセルフサービス

運用 プロジェクト個別 基盤で標準化

チューニング OS、DBレベルでパラメータチューニング

DBレベルでパラメーターチューニングもしくはインスタンスのリサイズ

Nova/Ironic上にDB構築 Troveでやっちゃう

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

アーキテクチャー

Trove Other OpenStack Components

NovaAPI

Task Manager

Conductor(*)

MessageBus

DBKeystoneNeutronGlance

Compute InstanceDatastore

SwiftSwift Container

Datastore Backup

Agent

CinderCinder Volume

Datastore data

コントロール 実体

(*)Datastoreのステータスを管理し、Task Managerへ提供する。以前はAgentが直接Trove DBとやりとりしていた。

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Horizon GUIから使えます、が

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

GUI使ってうれしいのは、3回目まで

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

CLIのほうが、機能豊富 (1/2)

• trove backup-{copy, create, delete, list, list-instance, show}• trove cluster-{create, delete, instances, list, show}• trove configuration-{attach, create, default, delete, detach, instances, list,

parameter-list, parameter-show, patch, show, update}• trove create• trove database-{create, delete, list}• trove datastore-{list, show, version-list, version-show}• trove delete• trove detach-replica• trove eject-replica-source• trove flavor-{list, show}• trove limit-list

http://docs.openstack.org/cli-reference/content/troveclient_commands.html

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

CLIのほうが、機能豊富 (2/2)

• trove list• trove metadata-{create, delete, edit, list, show, update}• trove promote-to-replica-source• trove resize-{instance, volume}• trove restart• trove root-{enable, show}• trove secgroup-{add-rule, delete-rule, list, show}• trove show• trove update• trove user-{create, delete, grant-access, list, revoke-access, show, show-

access, update-attributes}

http://docs.openstack.org/cli-reference/content/troveclient_commands.html

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

“trove create” 作成関連CLIusage: trove create <name> <flavor_id>

[--size <size>][--databases <databases> [<databases> ...]][--users <users> [<users> ...]] [--backup <backup>][--availability_zone <availability_zone>][--datastore <datastore>][--datastore_version <datastore_version>][--nic <net-id=net-uuid,v4-fixed-ip=ip-addr,port-id=port-uuid>][--configuration <configuration>][--replica_of <source_instance>] [--replica_count <count>]

• Compute Instance、Datastore Instanceともに作成• バックアップから作成できる• 既に起動しているインスタンスのレプリカを作成できる

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

“trove configuration-xxx” 設定関連CLIusage: trove configuration-create <name> <values>

[--datastore <datastore>][--datastore_version <datastore_version>][--description <description>]

usage: trove configuration-parameter-list <datastore_version>[--datastore <datastore>]

usage: trove configuration-patch <configuration_group> <values>

• Datastoreで設定可能なパラメーターを <values>で指定• (例) trove configuration-create conf1 '{"max_connections" : 500}' --datastore mysql

• 同じ設定を使い回すことができる、設定を統一できる• patchコマンドでパラメーターの追加、更新が可能

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

“trove configuration-parameter-list”実行例(例) MySQL 5.5で設定可能なパラメーターを取得

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

“trove backup-xxx”バックアップ関連CLIusage: trove backup-create <instance> <name>

[--description <description>] [--parent <parent>]

usage: trove backup-copy <name> <backup>[--region <region>] [--description <description>]

usage: trove backup-list [--limit <limit>] [--datastore <datastore>]

usage: trove backup-list-instance [--limit <limit>] <instance>

• バックアップデータはSwiftに保存される• --parent指定で増分バックアップ• copy機能で別リージョンへバックアップをコピーできる (Swiftがマルチリー

ジョン構成であれば)

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

“trove cluster-xxx”クラスター関連CLIusage: trove cluster-create <name> <datastore> <datastore_version>

[--instance <flavor_id=flavor_id,volume=volume>]

usage: trove cluster-delete <cluster>

usage: trove cluster-list [--limit <limit>] [--marker <ID>]

usage: trove cluster-show <cluster>

• Troveクラスター機能に対応したDatastoreのクラスターを作成• JunoではMongoDBのみ• --instanceオプションを複数並べることで、台数を指定

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Kiloでの主要アップデート項目

• Replication v2• manual failover, slave count, and incremental snapshot

• HP Vertica• 新Datastore• Clustering対応

• IBM DB2• 新Datastore

• CouchDB• 新Datastore

https://blueprints.launchpad.net/trove/kilo

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

まとめ

• TroveはいろんなDatastoreの操作、管理を標準化する• Datastoreの専門家でなくても、楽に使えるようにする• Computeインスタンスを自由にいじることはできない• Datastoreによって、機能に凸凹がある

• 使いたいDatastoreで、できることを確認しましょう• GUIで機能を判断しないで、CLIも見るべし

• 意外に、いろんなことができます

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.