ベアメタルからクラウドへ:OpenStack Cinder の紹介

Auto Draft

今日は、最後の OpenStack コンポーネントである Cinder を紹介します。Cinder は一般的な OpenStack デプロイメントで提供されるサービスであり、OpenStack のコアプロジェクトの一つでもあります。Cinder がどのようなサービスを提供し、そのアーキテクチャがどのようになっているのかを一緒に見ていきましょう。

Cinder とは何ですか?

公式ドキュメント(公式ドキュメント)では次のように述べられています:

Cinder は OpenStack のブロックストレージサービスであり、Nova 仮想マシン、Ironic ベアメタル、コンテナなどにボリュームを提供するために使用されます。

Cinder は、ハードディスクを提供するサービスと考えることができます。API を提供することで、インスタンスにディスクをマウントし、ストレージ空間を提供できるようにします。単にハードディスクへのブロックストレージを提供するだけでなく、Cinder はボリュームスナップショットやバックアップ機能も提供しており、同時にボリュームタイプを利用して異なるバックエンドやストレージ空間を管理することも可能です。

Cinder 自体の設計目標は以下の通りです:

  • マイクロサービスベースのアーキテクチャ:開発者が新機能を迅速に追加可能
  • 高可用性:非常に高いワークロードまで拡張可能
  • 耐障害性:プロセスを分離することで連鎖的な故障を防止
  • 回復性:管理者が問題の発見、調整、解決を容易に行える
  • オープン標準:コミュニティ主導のAPIのリファレンス実装となる

Cinder のアーキテクチャ

Cinder は以下のコンポーネントで構成されています:

cinder-api

フロントエンドの API 処理を担当し、ユーザーのリクエストを cinder-volume に送信します。

cinder-volume

Cinder のコアコンポーネントであり、cinder-api や cinder-scheduler などのプロセスとメッセージキューを介して直接やり取りします。cinder-volume は、cinder-api に送信された読み書きリクエストを処理し、Cinder の状態を維持する役割を担います。また、異なるドライバーを介して、さまざまなストレージバックエンドと連携することができます。

cinder-scheduler デーモン

nova-scheduler と同様に、ボリュームを提供するのに最も適したストレージプロバイダーを選択する役割を担います。

cinder-backup デーモン

cinder-backup デーモンは、Cinder ボリュームのバックアップサービスを提供する役割を担います。cinder-volume と同様に、異なるドライバーを介してさまざまなストレージバックエンドと連携できます。

メッセージキュー

Cinder サービス内部の各コンポーネント間の通信は、通常 RabbitMQ などのメッセージキューを介して行われます。

まとめ

本記事では、現在紹介を予定している最後の OpenStack コンポーネントである Cinder について紹介しました。Cinder は VM の永続ボリュームストレージサービスを提供します。OpenStack で VM サービスを提供する上で必須のコンポーネントではありませんが、ほとんどの OpenStack デプロイメントで Cinder サービスが提供されています。また、OpenStack 関連サービスにブロックストレージを提供するだけでなく、Cinder は CSI ドライバーを介して Kubernetes (K8S) に永続ボリュームを提供することも可能です。


著作権表示:特に断りのない限り、本ブログのすべての記事はCC BY-NC-SA 4.0ライセンスの下で提供されています。

コメントを残す