LTN Blog 〜 Lenovo Technology Network 〜

レノボのソリューション・サーバー製品に関する技術情報、お役立ち情報をお届けします

HCIの容量増設時の注意事項について

皆さん、こんにちは レノボ・エンタープライズ・ソリューションズ 小宮です。本日は最近お問い合わせが多いHCIの容量増設時における注意事項について説明したいと思います。

一般的なHCIにおいて、リソースを増やす場合にノードを追加すると思います。ただし、ノードの増設方法によってはリソースを有効的に利用されないこともあります。そのため、今回は容量増設において注意点も含めてお話したいと思います。
(今回は容量は効率的に利用されますが、運用上知っておいた方がよいお話になります)

1.HCIでリソースが少なくなった場合のノード追加

f:id:t_komiya:20190715012214p:plain

HCI環境においてCPU・メモリリソースが不足した場合、ノード増設で対応すると思います。こちらのイメージのようにHCIを構成しているクラスタに対して、ノードを追加することで、リソースは追加されます。ホスト単位で利用可能なリソースは限られるもののクラスタ全体としては、リソースが追加されているので特に問題ありません。また、異機種混在であっても、追加ノードのCPU・メモリリソースだけが多くなるだけで利用する分には問題ありません。(HAなどでリソース不足があった場合、仮想マシンが立ち上がらない場合はありますが、通常利用では問題ありません)

ただし、これがストレージのリソースについて、同様のことが言えるのかどうか説明したいと思います。

2.ストレージ容量を増設するときの場合

f:id:t_komiya:20190715012735p:plain

ストレージ容量を増やす場合、普通に追加作業するだけで問題ないだろうか?

実際に各社のHCIの仕様は様々でありますが、今回はNutanixのアーキテクチャでお話したいと思います。

イメージで記載する分には問題ないように思えますが、Nutanixのストレージの仕様について一度整理してみましょう。

3.データローカリティについて

f:id:t_komiya:20190715013154p:plain

データローカリティについて、お話したいと思います。

データローカリティでホスト上の仮想マシンはホスト上のCVMを経由して、ローカルホスト上のSSDにデータを書き込みます。書き込み後はデータの冗長性を保つために、RF2であれば、他のホストにデータをコピーします。(RF3であれば2つのホストにコピー)

つまり、データをクラスタ内に二つが存在する状態がHCIであるべき姿になるため、これを踏まえて、ノード増設した場合にどのような動きになるのかを整理してみたいと思います。

4.1台しか増設しなかった時のストレージ容量について

f:id:t_komiya:20190715162344p:plain

1台しか増設しなかった場合において、二つのケースが考えられます。

・同一スペックでストレージ容量を増設した場合

・異なるスペックでストレージ容量を増設した場合

 

同一スペックでストレージ容量を増設した場合、Nutanixのクラスタ内で増設したノードの容量も含めてクラスタで管理している容量が大きくなる時に、クラスタ内でデータが再配置されます。この時にクラスタ全体にデータが均等化して配置するようにNutanixが動作します。つまり同一スペックであれば、特に問題なく動作することになりますので、何事もありません。

 

それでは、異なるスペックでストレージ容量を増設した場合はどうなるでしょうか?

例えば、はじめは1Uのラックサーバーで容量を少なく導入したものの、ストレージ容量が足りなくなり、2Uのノードを増設した場合はどうなるでしょうか?

実際に同一スペックで増設した時と同様に2Uノードを追加した場合にもNutanixが均等にデータを再配置を行いますが、異なるスペックの場合、水色の部分も含めて均等にデータを再配置してくれるのでしょうか?

 

5.異なる容量を追加した時のデータの分散について

f:id:t_komiya:20190715162555p:plainNutanix Bibleに異なるスペックを増設した場合の動作について、イメージのように書かれています。NutanixはCuratorにて一定の閾値をもって動作しています。その閾値を超えてデータの均等化がされていないことが判明した場合に、Curatorにて異なるスペックのノードとディスク使用率を見て容量のバランシングを行います。その場合にアクセス頻度が低いデータを他のノードに移動させようとします。これにより、ストレージ容量が大きいノードが増設された場合においても、均等化を図ろうとしてデータの再配置を行います。

異なる容量のノードを増設しても動作上何も問題はありません。

f:id:t_komiya:20190715162947p:plain

ストレージ専用のアプライアンスでも同様のことが言えます。ストレージ専用ノードの場合、ストレージ専用ノードにはCVM以外の仮想マシンは載せてはいけないことになっているため、基本的には他のノードのコールドデータ(アクセス頻度の少ないデータ)がストレージ専用ノードに保存されるようになります。

 

ここで、異なるスペックのノードを増設しても問題ないことはわかったが、容量の大きいノードが障害起きた場合はどうなるのか?について考えてみましょう。

容量のバランシングで容量の大きいノードに一番多くデータが保存されることもあります。その時に、容量の多いノードが障害あった場合に他のノードで容量を受けきれない場合もあります。もちろんこれはサイジング上のお話もあるかと思いますが、基本ルールとして覚えていたほうがよいのは、障害が起きた場合にはデータの受け皿として受け入れられるだけの容量を確保することが重要です。

6.同一スペックのノードを増設時にもう1台購入

f:id:t_komiya:20190715163627p:plain

増設時にもう1台(2台以上)の増設ノードがあれば、障害時も問題なく運用できます。もちろんこれは予算の限りであると思いますが、ストレージ専用アプライアンスを購入した場合にはこの話を理解しておかないと容量だけ足せばよいという意見にもなりかねないため、是非頭に入れておいた方がよいと思います。

 

こちらの内容を理解した上で、将来の増設プランにもうまく対応できると思います。

 

以上、よろしくお願い致します。