Japan IBM Storage User Group

ストレージをプール化するか分けて使うか

By Keitaro Imai posted Thu June 11, 2020 04:24 AM

  
複数のHDDやSDDがある場合に、それらを1つのプールとして束ねるのか、個別に分けて使うのか判断に悩む場合があるかと思います。
簡単に、10本で1つのRAID Arrayが構成されており、それが10個あり、サーバーが10台あるケースを例にして考えてみましょう(以下、図1と図2のようなケース)。

図1.
図1のメリットは、RAID Arrayが各々分かれているので、サーバー単位で容量、パフォーマンスが分かれてお互いの干渉を得にくいという点です。
逆にデメリットとしては、分けて使っているがためにRAID Arrayのパフォーマンス、容量の上限があり、サーバーにもっとパフォーマンスや容量が欲しい、といった場合に融通がし辛いと言うデメリットがあります(ストレージ的には他のArrayから融通すれば可能ですが、設計方針やお客様のポリシーなどは崩れますね)。また、それに合わせてサーバーの容量、パフォーマンスをより厳密に把握しておかないと行けないため、設計、監視も含めた負担が増えることになります。
更に、各々のサーバーが全く均等のパフォーマンスと容量ということは通常ありません。10使うところもあれば、5であったり3であるところもあるかもしれません。その場合に、5や7余っているところは無駄になります。それを他のサーバーに使えれば良いですが、それを使って良いのかというところにまた頭を悩ませることになります。


図2.
図2のメリットは図1のデメリットと逆ですが、設計や容量監視の負担が減る点です。全部まとめてプール化してしまえばいいので考える必要すらありません。また、パフォーマンスと容量をフルで使えるため、無駄が減り、効率化が出来ます。
デメリットとしては、特にパフォーマンスの面でしょうが、あるサーバーの負荷が高くなっている場合に他のサーバーが遅くなる可能性があるというデメリットがあります。
と、どちらも一長一短のように思えますが、イマイの見解としては後者のプール化の方法を推奨します。理由としては、個別に分ける方法は個々のサーバーや、RAIDの設計及び監視の負担が高すぎるという点と、大概の環境においてはプール化のデメリットが見られないということです。だいたい、全部のサーバーが同時に同じ時間帯にビジーということは少なく、図2の場合、1つのサーバーから見ると図1よりも10倍のパフォーマンスを出せるメリットがあります。
サーバーごとに分けないと気持ち悪い、どこにデータがあるか分からない、みたいなDASDの昔ながらの思想を引きずっている方もいますがちょっと時代遅れ感はありますね。そもそもどこにデータがどこにあるか分からないのは、ディスク1本だってRAIDだって同じですw
プール化して、パフォーマンスが足りない、容量が足りないとなった場合はもともとの見積もりが甘かったか業務負荷が増えたなどでしょう。その場合は、プールにディスクを追加すれば良いという形になります。DS8000やSVCではEasyTierの機能により追加したRAID Arrayに自動で既存のボリュームを再配置して均等化してくれる機能があります。
なお、以下のAIXの様に例えばVGとして複数のRAID Arrayをサーバー側でプール化して使用するというのであればこの限りではありません。
ただ、複数のサーバーの場合は結局プール化でしょうね。

#storage-pool
#RAID
0 comments
3 views

Permalink