Upgrade to Pro — share decks privately, control downloads, hide ads and more …

次のGraduated?Rook or TiKV

tzkoba
February 13, 2020

次のGraduated?Rook or TiKV

2020/2/13の #cloudnativejp のLT用スライド、RookとTiKVの簡単な解説です。

tzkoba

February 13, 2020
Tweet

More Decks by tzkoba

Other Decks in Technology

Transcript

  1. 2 最近やっていること • Cloud Native Days Tokyo 2019 “Cloud Native

    Storageが拓く Database on Kubernetesの未来” • July Tech Festa 2019 “Cloud Native 開発者のための Database with Kubernetes” + =∞
  2. 6 Graduatedの基準は色々あるけれど Name contributors stars Code_of_conduct.md ADOPTERS.md Governance.md Kubernetes 2,441

    63k 〇 - - Prometheus 441 29k 〇 - - Envoy 456 12.2k 〇 - 〇 CoreDNS 201 5.6k 〇 〇 〇 Containerd 220 5.2k 〇 〇 - Fluentd 187 8.8k 〇 〇 〇 Jager 128 10.2k 〇 〇 〇 Vitess 203 9.5k 〇 〇 〇 TUF - - - Rook 233 6.8k 〇 〇 〇 TiKV 215 6.8k 〇 • CNCFのCode of Conductを遵守し、セキュリティ監査に合格。 • コミュニティの統治構造が定義されている、などなど。
  3. 9 と思ったら、LTは10分だった!! から、もう少しだけRook • マルチなストレージ・プロバイダに対応した、データストア・ オペレーター。 Storage Provider 種別 ステータス

    概要 Ceph ストレージ Stable 分散ストレージ (Block/File/Object) Cockroach DB DB Alpha OSS版Spannerを目指す分散DB Minio ストレージ Alpha 簡素なオブジェクトストレージ EdgeFS ストレージ Stable Gitに似たGeoスケールのFS Cassandra KVS Alpha NoSQLの代表格、分散KVS NFS FS Alpha 共有ファイルシステム Yugabyte DB DB Alpha PostgreSQL互換の分散DB
  4. 10 AWSと比べると良く分かるかも? Storage Provider AWSでは 説明 Ceph EBS/EFS/S3 • Unified

    SDS Cockroach DB DynamoDB? Aurora? • 分散KVS上のRDB(postgres) Minio S3 • オブジェクトストレージ EdgeFS EBS/EFS/S3 • こちらもUnifiedなSDS Cassandra MCS • re;Invent2019で発表 NFS EFS • ファイルストレージ Yugabyte DB DynamoDB? Aurora? • 分散KVS上のRDB(postgres) • こうして見ると、Rookの競合はクラウドベンダーにも見える。
  5. 11 :Ceph(RBD)をdeployした際の構成例 • Rookは以下の3つのレイヤで構成される。 operator agent/discover agent/discover agent/discover osd osd

    osd mon mon mon CSI csi-provisioner csi-rbdplugin csi-rbdplugin csi-rbdplugin Rook [Orchestration] • Storage Providerの管理 [Storage Provisioning] • CSIドライバが、Podとスト レージの接続を媒介 [Storage Provider] • Block/File/Objectストレージ やデータベースを構成
  6. 13 TiKV: Distrbuted Transactinal key value database • PingCAPが開発している分散KVS。TiDBのストレージになる。 •

    Rustで開発(!)されている。 [Placement Driver] • クラスタのマネージャ。 • Auto-shardingで負荷や データ量を調整する。 [Region] • 複数ノードに跨るレプリカ 単位であり、単一のRaft Groupと同義。 • データストアにはRocksDB が使われている。
  7. 14 Single Raft GroupとMulti Raft Group Region2 Region1 Region2 Region1

    Region2 Region1 Region3 Region3 Region3 • etcdなどは単一Raft グループで構成される 分散KVS。Leaderが ボトルネックとなるが、 2PC不要。 • TiKVなどはマルチRaft グループで、ボトル ネックをなくせるが、 複数グループに跨る更 新に2PCが必要。 • 分散KVSのレプリケーションにはRaftが使われている。 • 想定する規模によって、利用方法に違いがある。
  8. 15 Name 互換OSS 説明 TiDB MySQL MySQL互換のNew SQL (分散SQLデータベース) TiSpark

    Spark Spark IFを提供 Titan Redis Redis IFを提供 TiFlash ‐ TiDBを拡張し、カラムナ・デー タストアを提供する。 TiPrometheus Prometheus Prometheusのストレージに TiKVを利用。まだ開始段階。 世界に広がる Ti ファミリー! • TiKVは分散データストアとしてプラットフォーム化している。