はじめに
2019年2月に、Ceph の時期バージョン(version 14.x; リリース名: Nautilus)がリリースされる予定です。本ドキュメントではリリースに先駆け、Ceph Day Berlin にて講演されていた Ceph の最新情報についてまとめます。
参考資料
- What's New In Ceph
- https://www.slideshare.net/Inktank_Ceph/ceph-day-berlin-whats-new-in-ceph
- 2018年11月 Ceph Day Berlin
- Sage Weil氏 講演資料
最近の、Ceph の大きな取り組み
- Management and Usability
- Container platforms
- Performance
- Multi- and hybrid cloud
Management and Usability (0)
- Balancer Plugin (Luminous-)
- http://docs.ceph.com/docs/mimic/mgr/balancer/
- OSD毎の Disk 利用率を自動的に最適化し、偏りを小さくする
- crush-compat (<Luminous)
- Luminous 未満の OSD で利用可能
- 新たに導入されたパラメタを自動調整することで、PG配置の最適化を実現
- upmap (Luminous-)
- 新たに導入された upmap の機能を用いて、PGのマッピングを個別に移動することで最適化を実現
- weight-set と比べて、きめ細かい制御ができる反面、従来のバージョンとは互換性がないため混在できない
- crush-compat (<Luminous)
Management and Usability (1)
- Configuration の簡素化
- HDD /SSD 等に合わせた tuning の自動化 (Luminous-)
- Memory size に合わせた tuning の自動化
- pg_num tuning の自動化
- pg_num を小さくすることもできるようになる
- Telemetry plugin
- http://docs.ceph.com/docs/master/mgr/telemetry/
- Cluster の Anonymous data を Ceph project に自動送信
- Opt-in で自動的に電話通知する仕掛けも用意される模様
Management and Usability (2)
- Crash plugin
- http://docs.ceph.com/docs/master/mgr/crash/
- Crash dump を一元的に管理できる
- Insights plugin
- http://docs.ceph.com/docs/master/mgr/insights/
- 色々 CLI を叩かなくても、このコマンド1発で cluster の健全性に関する情報を収集できる
- Diskprediction plugin
- http://docs.ceph.com/docs/master/mgr/diskprediction/
- https://www.prophetstor.com/jp/disk-health-prediction-for-ceph-mimic/
- https://www.slideshare.net/Inktank_Ceph/ceph-day-berlin-disk-health-prediction-and-resource-allocation-for-ceph-by-using-machine-learning
- Disk が故障する前に、予防交換できることを目指している
- 将来的には、prediction に基づき自動evacuationが実行できるようになる模様
- Local predictor だと 70% accuracy と低いため、production利用だと ProphetStor のクラウドサービスと接続する Cloud predictor を使う必要があるかもしれない
Management and Usability (3.1)
- Dashboard plugin
- http://docs.ceph.com/docs/master/mgr/dashboard/
- Ceph の運用に必須の metric が、出力できるようになった (Mimic)
- 殆どの metric が見られるようになる (Nautilus)
- Orchestrator Plugin[後述] の操作が出来るようになる (Nautilus-)
- Nautilus の UI はこちらを参照
Management and Usability (3.2)




Management and Usability (4)
- Orchestrator Sandwich の概要

Management and Usability (5)
- 従来の Deploy
- ceph-ansible, kolla-ansible, juju 等、それぞれが独自の Workflow を用意していた
- これからの Deploy (Nautilus-)
- http://docs.ceph.com/docs/master/mgr/orchestrator_cli/
- Ceph が運用管理の抽象レイヤを提供
- Orchestrator Plugin の sub-plugin として ceph-ansible, Rook, DeepSea プラグイン等を用意することで、様々な Workflow に対応
- オペレータは Orchestrator 実装を気にせず、統一した User Interface で Ceph を管理できるようになる
- とても興味深いアプローチ; 他の分散システムにも応用すると面白そう
Management and Usability (6)
- RADOS
- OSD memory stability
- PG log length の制限
- OSD cache消費量を適切に制限
- MSGR2
- Encryption, IPv6, Kerberos authentication
- RBD
- Async mirroring 改善 (Point-in-Time DR with failover/failback, etc.)
- Security namespace
- RADOS pool跨ぎの live image migration
Management and Usability (7)
- Cephfs
- Cephfs-shell: stable (Luminous-)
- Multi-MDS: stable (Mimic-)
- Snapshot: stable (Mimic-)
- RGW
- パフォーマンスの向上
- 認証機能の追加(STS, OPA, Kerberos/AD)
- Pub / Sub API
- Public Cloud との同期 (Mimic-)
- Tiering
Container platform
- Dockerhub にて base image を提供
- Rook, ceph-ansible が利用している
- Rook
- https://rook.io
- Kubernetes 向けの Operator (Ceph の他、 Cassandra 等にも対応)
- コミュニティの活動が活発で、急ピッチで機能追加や安定化が進んでいる
Performance (0)
- Ceph Performance for NVMe
-
https://www.flashmemorysummit.com/English/Collaterals/Proceedings/2018/20180808_SOFT-202-1_Liu.pdf
- Flush Memory Summit 2018
- Latency, IOPS 性能が SSD 等により、大幅に引き上げられたため、Software が Bottle Neck になってきた
- HDD
- Latency >2 ms
- IOPS <500
- SATA NAND SSD
- Latency < 100 us
- IOPS > 25,000
- NVMe NAND SSD
- atency < 100 us
- IOPS > 400,000
- HDD
-
https://www.flashmemorysummit.com/English/Collaterals/Proceedings/2018/20180808_SOFT-202-1_Liu.pdf
Performance (1)
- 今後、Storage Software は、flash や NVMe への十分な対応が必須
- Max IOPS だけでなく、CPU core 毎の IOPS 向上が必要
- HDD は今後、ニッチ市場となる
Performance (2)
- Project Crimson
- Ceph のデータパスを再実装
- Seastar を用いる
- https://www.scylladb.com/2018/10/12/scylla-summit-preview-rebuilding-ceph/
- 現在の主流となっている、NUMA アーキテクチャ で Many Core が実装された場合でも、パフォーマンスをリニアに高めるための toolset
- http://seastar.io
- ScyllaDB (Cassandra API互換のDB) でも Seastar が用いられている
- CPU core 単位で sharding を行い、shared nothing とすることで lock 競合や cache miss, NUMA node跨ぎの通信等のパフォーマンス低下要因を根本的に排除する
Performance (3)
- RADOS
- OpTracker 改善
- Mutex -> std:mutex
- lockdep, misc asserts を prod版のバイナリから排除
- Auth signature check の最適化
- Blustore allocator 改善
- bufferlist 改善
- OpTracker 改善
Multi- and Public cloud (1)
- S3 等の public cloud の価格が、 native storage (Bare Disk + Off-the-shelf server) よりも下回る可能性は低い
- クラウド世代のアプリは、Object Storage を主に使用することになる
- Block (RBD) や File (CephFS)も VM や Legacy server では使われるが、動画や写真等は - Object Storage の方が圧倒的に便利だしコストも低い
- 最近のITインフラは、Public / Private cloud や Data Center を跨いで 様々なリソースが配置されている
Multi- and Public cloud (2)
- Reframe RGW
- 従来
- RGW = Ceph/RADOS Cluster への gateway
- 新しい位置づけ
- RGW = フェデレーションサイト/ゾーン メッシュへの gateway
- Local storage <-> Public cloud, Private cloud
- No local storage <-> Public cloud, Private cloud
- Etc.
- RGW = フェデレーションサイト/ゾーン メッシュへの gateway
- RGW multisite 機能では、既に沢山の機能が実装されている
- 従来
Multi- and Public cloud (3)
- Federation
- ElasticSearch integration
- Riak-CS の yokozuna 的なもの..
- ElasticSearch integration
- Cloud sync (Mimic-)
- S3 等の Public cloud への replication
- Tiering (Nautilus-)
- 個別の object を external cloud storage tier に送信
- Archive (Nautilus-)
- 異なるサイトへの archiving
Multi- and Public cloud (4)
- NooBaa
- https://jp.techcrunch.com/2018/11/28/2018-11-27-red-hat-acquires-hybrid-cloud-data-management-service-noobaa/
- RedHat 社が Multi cloud storage のベンダ、NooBaa を買収
- 近いうちに Ceph 側にも連携機能が実装される可能性が高い
まとめ
- Ceph 最新動向のまとめ
- Management and Usability
- Container platforms
- Performance
- Multi- and hybrid cloud