トップ OSS紹介 Rook

Rook

NRIのOpenStandiaが提供するRook最新情報

バージョンアップ情報

Rook情報

Rookとは

Rookは、分散ストレージシステムを使用する上で発生するストレージ管理者のタスク(デプロイメント、ブートストラップ、コンフィグレーション、プロビジョニング、スケーリング、アップグレード、マイグレーション、障害の復旧、モニタリング、リソース管理)を自動化するソフトウェアです。
サービスの提供にはKubernetesプラットフォームの機能を利用し、Kubernetes Operator for Cephを介してサービスを行います。
また、Rookは2018年1月29日にCloud Native Computing Foundation(CNCF)に参加し、Graduated projectとして認定されています。

主な機能

Helmチャート

Rookは、Cephストレージ向けに次のHelmチャートを公開しています。

  • Rook Ceph Operator
    Cephオペレーターを起動し、Ceph CR(カスタムリソース)監視を行います。
  • Rook Ceph Cluster
    Cephクラスターを起動し、オペレーターがクラスターを構成するために使用するCeph CRを作成します。

Helmチャートは、デプロイとアップグレードを簡素化することを目的としています。マニフェストを直接作成することで、Helmを使用しないRookリソースの構成も完全にサポートされます。

ブロックストレージ(RBD)

ブロックストレージを使用すると、単一のポッドでストレージをマウントできます。
本機能を利用して、複数のCephクラスター間でRBDイメージの非同期なレプリケーションを作成し、障害に備えることができます。
また、モードによってレプリケーションの作成方法をジャーナルベースかスナップショットベースから選択できます。

ファイルシステムストレージ(CephFS)

共有ファイルシステムとも呼ばれ、複数のポッドからの読み取り/書き込みを許可してマウントすることができます。
共有ファイルシステムを使用してクラスター化できるアプリケーションに役立ちます。
また、スナップショットをリモートのCephFSファイルシステムに非同期で複製するミラーリングが可能です。

オブジェクトストレージ(RGW)

S3 APIをストレージクラスターに公開し、アプリケーションがデータを送受信出来るようにします。
RookにはオブジェクトストアをKubernetesにデプロイするか、外部のRGWサービスに接続する機能があります。
また、バケットの新規作成と、既存のバケットへのアクセスを以下の2つのカスタムリソースによってサポートしています。

  • Object Bucket Claim
    Object Bucket Claim (OBC) は、Bucket (新規または既存) を要求するカスタムリソースで、Custom Resource Definition (CRD) によって記述されます。
  • Object Bucket
    Object Bucket (OB) は、Bucket がプロビジョニングされた際に自動的に生成されるカスタムリソースです。これはグローバルリソースであり、通常、管理者以外のユーザは見ることができず、Bucket に固有の情報を含んでいます。OBは、OB CRDによって記述されます。

NFS

NFSストレージは、複数のポッドからの読み取り/書き込み権限でマウントできます。これは、既存のRookクラスターを活用して、NFSクライアント接続を前提とするレガシーアプリケーションに役立ちます。
このようなアプリケーションは、Kubernetesに移行されていないか、まだPVCをサポートしていない場合があります。
Rook NFSストレージは、Kubernetestクラスター内からPVC経由で同じネットワークファイルシステムストレージへのアクセスを提供すると同時に、Kubernetesクラスター内外のクライアントからの直接接続によるアクセスも提供することが可能です。

モニタリング

Rookには全体の健全性やCephデーモンの状態 、デーモンログ表示などCephクラスターの状態の概要を把握するための便利なツールとして、ダッシュボードが備わっています。この機能はCephCluster CRD の設定で有効にすることが可能です。

カスタムリソース定義(CRD)

カスタムリソース定義(CRD)を介してストレージクラスターを作成及びカスタマイズできます。クラスターを作成するには、以下の4つの異なるモードがあります。

  • Hostストレージクラスター
    hostパスとrawデバイスからストレージを消費します
  • PVCストレージクラスター
    RookがPVCを介してストレージを消費するために使用するストレージクラスを指定することにより、Rookの下にストレージを動的にプロビジョニングします。
  • Stretched ストレージクラスター
    Cepth monsを3つのゾーンに分散し、ストレージは2つのゾーンでのみ構成されます。
  • External Ceph ストレージクラスター
    K8sアプリケーションを外部Cephクラスターに接続します。

また、ストレージプール、共有ファイルシステム、オブジェクトストアについてもCRDを介して作成することが可能です。

主な特徴

Rookには次のような特徴があります。

  • シンプルで信頼性の高い自動ストレージ管理
  • ストレージクラスターのハイパースケール化またはハイパーコンパージ化
  • データの分散と複製を効率的に行い、障害時の損失を最小限に抑える
  • オープンソースのCephストレージの管理
  • データセンターで簡単にエラスティック・ストレージを実現できる
  • コモディティハードウェアでのワークロードの最適化

動作環境

Rookは最小バージョンを満たし、Rookに必要な権限が付与されている限り、既存のKubernetesクラスターにインストールすることができます。
Cephオペレーターを使用する場合、Kubernetes v1.19以降がサポートされており、クラスターの構成には以下のローカルストレージオプションのうち、最低でも一つが必要です。

  • 未使用のデバイス(パーティションやフォーマットされたファイルシステムがない)
  • 未使用のパーティション(フォーマットされたファイルシステムがない)
  • LVM論理ボリューム(フォーマットされたファイルシステムがない)
  • ブロックモードのストレージクラスから利用可能な永続ボリューム

Rookのライセンス

RookはApache License, Version2.0の下でリリースされているオープンソースソフトウェアです。
営利、非営利を問わず、だれでも自由かつ無償で利用・改変することができるほか、ライセンスのコピーの提供や変更内容の告知など、特定の条件を満たすことで再配布も認められています。

参考情報

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • containerd
    サポート対象

    containerd

    コンテナーディー。コンテナのライフサイクルを管理するシンプルで堅牢なコンテナランタイムです。

  • Kubernetes
    サポート対象

    Kubernetes

    クーバネティス。Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。

  • Docker
    サポート対象

    Docker

    ドッカー。ソフトウェアコンテナを用いたアプリケーションのデプロイメントを自動化する仮想化オープンソースソフトウェアです。

  • Ceph

    Ceph

    セフ。分散オブジェクトストレージ機能を提供する、オープンソースのストレージソフトウェアです。

オープンソースに関する様々な課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。