検索
連載

まずストレージ仮想化の仕組みをおさらいしようストレージ仮想化の体系的理解(1)(2/2 ページ)

広義ではRAIDもストレージ仮想化の1つだ。だが、過去数年にわたり、それよりも上位レイヤのさまざまな仮想化が、ブロックストレージやNASに実装されるようになってきた。クラウド化の進行とともに注目が高まるスケールアウト型ストレージも、ストレージ仮想化の一形態だ。本連載では、ストレージの世界で一般化する仮想化について、体系的に説明する

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

3. ディスクの仮想化の概要

 それでは、前節のSNIAの分類に沿って、下位レイヤの仮想化技術から一つ一つ解説していこう。まずはDisk Virtualization(ディスクの仮想化)である。

 ディスクの仮想化は一番下のレイヤに属するストレージ仮想化であり、ハードディスク内部の物理的構造を抽象化し、論理的なリソースとして上位レイヤに提供する技術だ。

 具体的には、ハードディスクの内部にはファームウェアが動作しており、このファームウェアがディスクの仮想化を行っている。ハードディスクの内部で物理的な位置を指定するためには、その物理的構成に従い、シリンダ、ヘッダ、セクタというパラメータを指定する必要があるが、ファームウェアはこれらを隠蔽し、論理的なブロックの連続体という形でアクセスできるようにする。こうすれば、アクセスする際にはその物理的構成を考慮する必要はなく、ブロックのアドレスであるLBA(Logical Block Address)を指定するだけでよいという仕組みだ。

 また、ディスクのファームウェアが行う仮想化には、もう1つ重要な機能がある。それは、セクタエラーの隠蔽である。SSD(Solid State Drive)でも似たような処理が行われるが、ほとんどのハードディスクは予備領域を隠し持っていて、もしセクタでエラーが発生した場合にはその領域と入れ替えるような処理を行っている。これらの処理は上位レイヤからは隠蔽されている。

図2 ディスクの仮想化
図2 ディスクの仮想化

4. ブロックの仮想化の概要

 ディスクの仮想化によってハードディスクの物理構成が隠蔽されたとしても、それをそのままボリュームとして使おうとすると色々な問題がある。例えば、ディスクを超えるサイズのボリュームを設定できないし、ハードディスクに障害が起きた場合にアクセスが止まってしまう。

 そういった問題を解決する、1つ上層の仮想化技術がブロックの仮想化である。ブロックの仮想化は、ディスク(もしくは下位のブロックストレージ)の物理的な制限を隠蔽して論理的なボリュームを作り出し、それらをファイルシステムやデータベースのような上位レイヤに提供する。

 ブロックの仮想化はディスクの仮想化と違ってさまざまな種類があり、いろいろな場所に実装されている。以下の図を参照いただきたい。これは、ストレージのアーキテクチャを説明するためにSNIAが作成したモデルで、ブロックの仮想化が、ホスト、ネットワーク、デバイス(ストレージ装置)というさまざまな場所に実装が可能であることを示している。

図3 SNIAによる共有ストレージのモデル(出所:SNIA)
図3 SNIAによる共有ストレージのモデル(出所:SNIA)

 以下、ブロックの仮想化の代表例をいくつか見ていこう。

RAID

 RAIDは、ブロックの仮想化でも一番下のレイヤに属する技術で、複数の物理ディスクを仮想化して論理的な1つのボリュームを作り出す。物理的なディスク構成は上位レイヤからは隠蔽され、単なる1つのボリュームに見える。

 RAIDにはいくつかの種類があり、そのそれぞれが異なる付加価値を持っている。RAID1やRAID5など、ミラーリングやパリティを使うRAIDタイプを選べば、ディスクの故障を上位レイヤから隠蔽することができる(厳密に言うと、障害時には若干の性能低下があるので、性能的には完全に透過ではないが、システムがオンラインであり続けるという意味で故障は隠蔽されている)。データをストライピングするRAID0やRAID10を選べば、性能向上を図ることができる。

 RAIDはいろいろな場所に実装が可能だ。ストレージ装置内のストレージコントローラに実装されるケースもあれば、ソフトウェアRAIDやRAIDカードという形でホストに実装される場合もある。

論理ボリュームマネージャ

 論理ボリュームマネージャは、ホスト側のオペレーティングシステム上に実装されるブロック仮想化の技術だ。具体的には、下位のブロックストレージを統合して大きなストレージプールを作り、そこから任意のサイズの論理ボリュームを切り出して上位レイヤに提供することができる。通常、論理ボリュームのサイズは自由に変更することができる。

 ディスクの物理的制限を克服するための技術がRAIDだとすれば、論理ボリュームマネージャはボリュームをより柔軟に作り出すことにフォーカスした技術だと言えるだろう。その目的が異なるため、RAIDと論理ボリュームマネージャは組み合わせて使われることが多い(ただ、論理ボリュームマネージャの多くはソフトウェアRAID機能を持っているため、そちらを使う場合には外部のRAIDは必要ない)。

ブロックストレージ仮想化アプライアンス

 ブロックストレージ仮想化アプライアンスは、ネットワーク上に配置される、ストレージ装置レベルのブロック仮想化の仕組みだ。ホストとストレージデバイスの中間に位置し、その通信を中継する傍らブロックの仮想化を行うという動きになる。

 仮想化アプライアンスの長所は(これは後述するスケールアウト型ストレージも同じだが)、ホストから独立しているので、複数のホストに対して仮想化ストレージを集中管理で提供できるところだ。論理ボリュームマネージャは、単一ホストから見た場合には使い勝手の良いブロック仮想化技術なのだが、ホストが複数ある場合はそのそれぞれで個別に設定を行わなければならないという欠点がある。複数のホストに対する仮想化ストレージを管理する場合には、仮想化アプライアンス(もしくは後述するスケールアウト型ストレージ)の方が管理のし易さという面で優れている。

 仮想化アプライアンスのもう1つの特徴は、ストレージデバイスから独立しているため、異機種混在環境で利用できるということである。例えば、A社のストレージ装置とB社のストレージ装置を組み合わせて仮想化し、その間でオンラインでデータ移行したりするというようなことが可能だ。この特性を生かして、ストレージ装置をリプレースする時などに使われることが多い。

スケールアウト型ブロックストレージ

 スケールアウト型ブロックストレージは、デバイス側に実装される、ストレージ装置レベルのブロック仮想化の仕組みだ。この方式では、1台1台のストレージ装置はそれ自体ブロックストレージとして動く機能を備えながらも、台数が複数になると相互に連携して論理的な1つのシステムとして動く。上位レイヤには、あたかも1つのストレージ装置が動いているかのように見える。

 スケールアウト型ストレージの特徴は、スケーラビリティに優れているところだ。前述した仮想化アプライアンスは仮想化処理が一箇所に集中してしまうので(そこがボトルネックになりやすいので)、性能面での拡張性があまり無い。スケールアウト型ストレージは仮想化処理を分散できるので、大規模な構成に拡張しやすい。

 また、仮想化アプライアンスに比べると、スケールアウト型ストレージはレイヤが1つ減る分、信頼性設計やシステム管理が容易になるという利点もある。

5. 次回以降の予定

 今回の記事では、ストレージ仮想化のメリットと種類、そしてディスク仮想化・ブロック仮想化の概要について解説した。

 次回以降では、スケールアウト型ブロックストレージなどのブロック仮想化技術の新しいトレンドを掘り下げるとともに、今回説明できなかったファイルシステムの仮想化技術などについて解説を行っていく予定だ。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る