LinstorでDRBD SDSを構築・管理
今月の気になるオープンソース情報(2018年9月号)
OSS研究室 森 彰吾
今回はLinstorを紹介します。Linstorは、DRBDを使ったSDS(Software Defined Storage)を構築するための管理ツールです。
Linstorに触れる前に、前知識としてSDSについて解説します。SDSは、従来のNASやSANとは異なり、サーバを複数台つなげて実現するストレージです。
SDSの背景
これまでは、冗長化された大容量のストレージが必要になると、専用のストレージ機器の購入が必要でした。このような機器は非常に高価です。一方でSDSは、通常のサーバハードウェアを利用して実現するストレージです。専用の機器が不要なため、低コストなハードを選択することができます。
今まで次のようなシステムのストレージ機器は、専用ストレージを購入することが一般的でした。
- 仮想基盤のストレージ
- VMware vSphere
- OpenStack
- Kubernetes
- 大容量かつ性能が求められるNAS/ファイルサーバ
現在では、上記のようなストレージとしてSDSを利用できるようになりつつあります。
SDSのメリット
SDSを利用することで得られるメリットはコストだけではありません。特筆すべきは、拡張性、冗長性、柔軟性です。
まず拡張性ですが、SDSは複数のハードウェアをつなげて実現します。最も単純な場合、1TBのディスクをもつハードウェア3台でSDSを構成すると、3TBの容量を利用できるようになります。また後からハードウェアを追加できるため、容量を増やすことが容易になります。
次に冗長性についてですが、SDSを利用して、1つのデータを複数のハードウェアに複製・分散して保存することができます。この機能により、1台のハードウェアが故障しても、他のハードウェアに残っているデータを利用し続けることができます。また故障したハードウェアを交換して、元の状態に復旧することもできます。
柔軟性という点では、SDSは複数のハードをつなげて1つのストレージに見せるだけでなく、さらに利用するボリュームを切り出して、利用をすることができます。
DRBD SDSの特徴
DRBDではバージョン9からSDSの機能が付与されました。DRBDの場合、一般的なSDSとは若干異なり、仮想環境のバックエンドとしての利用を強く意識して開発されています。
仮想環境のバックエンドとは、つまり仮想マシンのデータを保管するストレージです。昨今の仮想環境は、1台のハードウェアではなく、複数のハードウェア上で仮想マシンが動作する構成が一般的です。これは、1台のハードウェアが故障しても別のハードウェアで仮想マシンを動かすためです。
この仕組みを実現するためには、ストレージに次のような仕組みが必要になります。
- 大きなストレージを仮想マシン毎に切り出して利用できること
- 仮想マシン毎のデータを冗長化できること
- ディスクの実体を持たないホストからも、ネットワーク越しにディスクを利用できること
DRBD SDSは、この仕組みを網羅しています。
またDRBD SDS独自の特徴として、2台のハードウェアで構成できる点があります。一般的なSDS製品は最低でも3台のハードウェアが必要なことが多いため、初期導入コストが高くなりがちです。DRBD SDSは2台から導入できるため、初期導入コストが高くなりがちです。DRBD SDSは2台から導入できるため、導入時のコストを下げることができます。
DRBD SDSの課題と解決策
ところが、DRBD SDSには課題がありました。DRBD SDSを構築する場合、drbdmanageという管理ツールを利用していました。しかしこのツールは、様々な理由で動作が不安定になるという問題を抱えていました。
この問題を解決したのがLinstorです。Linstorは安定的に使えるDRBD SDSの管理ツールとして開発されました。
Linstor独自の特徴
Linstorの特徴は、安定性だけではありません。メンテナンスの容易さや耐障害性も、特徴として上げられます。
一般的なSDSは、管理サービスとストレージサービスが一体になっています。そのため、管理サービスが停止すると、ストレージまで使えなくなるという弱点がありました。
一方で、Linstorは、Linstor自体が停止してもDRBDで構成されたストレージに影響を与えることがありません。この特徴は、Linstorの管理ホストの故障や、システムのメンテナンス時に、ストレージの停止を伴わないという、大きなメリットをもたらします。
デージーネットでは、DRBD SDS/Linstorを利用してKVM仮想環境の冗長化の検証に成功しています。
例えばLinuxで仮想環境を構築する場合、KVMという環境を利用できます。以前までは、KVM上で動く仮想マシンを冗長化するためには、ストレージ製品を利用するか、最低3台必要なSDSを利用する必要がありました。つまりシステムとして巨大で、コストが高くなる傾向にありました。
一方でDRBD SDSは2台構成で構築可能です。 つまりDRBD SDSを使うことで、ハードウェアのコストを抑え、安心して利用できる仮想環境が構築可能になりました。
さらにLinstor/DRBD SDSと連携するOpenStackのドライバも現在開発が進んでいます。今後は、DRBD SDSを使ったクラウド環境・仮想環境が増えて行く可能性があり、注目しています。