コンピュータ ストレージでは、論理ボリューム管理( LVM) は、従来のパーティションスキームよりも柔軟に、ボリュームを保存するための大容量ストレージデバイス上のスペースを割り当てる方法を提供します。特に、ボリューム マネージャーは、パーティション (または一般にブロック デバイス) を連結、ストライプ化、またはその他の方法で結合して、管理者がシステムの使用を中断することなく、サイズを変更したり移動したりできる、より大きな仮想パーティションを作成できます。
ボリューム管理は、ストレージ仮想化の多くの形式のうちの 1 つにすぎません。ボリューム管理の実装は、ストレージ デバイス内やネットワーク内ではなく、オペレーティング システム(OS)のデバイス ドライバー スタックのレイヤーで行われます。
デザイン

ほとんどのボリューム マネージャ実装は、同じ基本設計を共有しています。これらは物理ボリューム(PV)から始まります。物理ボリュームは、ハード ディスク、ハード ディスクパーティション、または外部ストレージ デバイスの論理ユニット番号 (LUN)のいずれかです。ボリューム管理では、各 PV が物理エクステント(PE)と呼ばれる一連のチャンクで構成されているものとして扱われます。一部のボリューム マネージャ (HP-UX や Linux のものなど) の PE のサイズは均一ですが、その他のボリューム マネージャ ( Veritasのものなど) の PE のサイズは可変で、自由に分割および結合できます。
通常、PE は論理エクステント(LE)に 1 対 1 でマッピングします。ミラーリングでは、複数の PE が各 LE にマッピングされます。これらの PE は、 RAID1 アレイのハード ディスクと同様に動作する、同じサイズの PV のセットである物理ボリューム グループ(PVG) から取得されます。PVG は通常、最大限の冗長性を確保するために、異なるディスクまたはデータ バス上に存在するようにレイアウトされます。
システムは LE をボリューム グループ(VG) にプールします。プールされた LE は、論理ボリュームまたはLVと呼ばれる仮想ディスク パーティションに連結できます。システムは、ディスク パーティションと同様に LV を rawブロック デバイスとして使用し、マウント可能なファイル システムを作成したり、スワップストレージとして使用したりできます。
ストライプ化された LV は、異なる PV から各連続 LE を割り当てます。LE のサイズに応じて、複数の PV の読み取りスループットを組み合わせることで、大規模な連続読み取りのパフォーマンスを向上させることができます。
管理者は、LV を拡張 (LE をさらに連結) したり、縮小 (LE をプールに戻す) したりできます。連結された LE は連続している必要はありません。これにより、すでに割り当てられている LE を移動せずに LV を拡張できます。一部のボリューム マネージャでは、オンライン中に LV をどちらの方向にもサイズ変更できます。LV のサイズを変更しても、その LV 上のファイル システムのサイズが変わるわけではありません。単に、LV を含む領域のサイズが変わるだけです。オンラインでサイズを変更できるファイル システムは、アプリケーションを中断することなく、システムがオンザフライでストレージを調整できるため、推奨されます。
PV と LV は、異なる VG 間で共有したり、異なる VG にまたがったりすることはできません (ただし、一部のボリューム マネージャーでは、同じホスト上の VG 間で自由に移動できる場合があります)。これにより、管理者は VG をオンラインにしたり、オフラインにしたり、単一の管理単位としてホスト システム間で移動したりすることが簡単にできます。
VG は、新しい PV を吸収してストレージ プールを拡大したり、PV から撤退して縮小したりできます。これには、すでに割り当てられている LE を PV から移動することが含まれる場合があります。ほとんどのボリューム マネージャーは、この移動をオンラインで実行できます。基盤となるハードウェアがホットプラグ可能な場合、エンジニアはシステムのダウンタイムなしでストレージをアップグレードまたは交換できます。
コンセプト
ハイブリッドボリューム
ハイブリッド ボリュームとは、2 つの別々の物理ボリュームを意図的にかつ不透明に使用するボリュームです。たとえば、ワークロードがランダム シークで構成されている場合、頻繁に使用されるデータや最近書き込まれたデータを永続的に保存するために SSD を使用し、めったに必要のないデータを長期保存するために大容量の回転式磁気メディアを使用する場合があります。Linux では、この目的でbcacheまたはdm-cache を使用できますが、 OS X ではFusion Drive を使用できます。ZFS は、管理者がマルチレベルの読み取り/書き込みキャッシュを構成できるようにすることで、 ファイル システムレベルでもこの機能を実装します。
ハイブリッド ボリュームは、ソリッド ステート ストレージと回転磁気メディアを組み合わせた ハイブリッド ドライブと同様の概念を備えています。
スナップショット
一部のボリューム マネージャでは、各 LE にコピー オン ライトを適用してスナップショットを実装します。この方式では、ボリューム マネージャは、書き込みの直前に LE をコピー オン ライト テーブルにコピーします。これにより、LV の古いバージョンであるスナップショットが保存されます。スナップショットは、後で現在の LV の上にコピー オン ライト テーブルをオーバーレイすることで再構築できます。ボリューム管理がシン プロビジョニングと破棄の両方をサポートしていない限り、元のボリュームの LE に書き込まれると、その LE はスナップショット ボリュームに永久に保存されます。スナップショット ボリュームが元のボリュームより小さくなっていた場合 (これは一般的な方法です)、スナップショットが操作不能になる可能性があります。
スナップショットは、ビジー状態のデータベースからテーブル ファイルなどの揮発性データの一貫性のあるバージョンをバックアップする場合や、1 回の操作で大規模な変更 (オペレーティング システムのアップグレードなど) をロールバックする場合に役立ちます。スナップショットには、ストレージを静止状態にするのと同様の効果があり、Microsoft Windows のシャドウ コピー(VSS) サービス に似ています。
一部の Linux ベースのLive CDでは、スナップショットを使用して、読み取り専用の光ディスクへの読み取り/書き込みアクセスをシミュレートします。
実装
デメリット
基盤となるストレージ デバイスが PE を連続して割り当てていない場合、論理ボリュームは外部フラグメンテーションの影響を受ける可能性があります。これにより、磁気ディスクやその他の回転メディアなどのシーク速度の遅いメディアでの I/O パフォーマンスが低下する可能性があります。ただし、固定サイズの PE を使用するボリューム マネージャーは、通常、これらのシークのコスト を分散するためにPE を比較的大きくします (たとえば、 Linux LVM はデフォルトで 4 MB を使用します)。
Core Storageや Linux LVMなどのボリューム管理のみの実装では、ボリューム管理をファイル システムから分離して抽象化すると、特定のファイルまたはディレクトリのストレージを簡単に決定できなくなります。たとえば、特定のディレクトリ (ファイル システム全体ではない) を高速ストレージに永続的に移動する場合、ファイル システムのレイアウトと基礎となるボリューム管理レイヤーの両方を走査する必要があります。たとえば、Linux では、ファイル システム内のファイルの内容のオフセットを手動で決定し、次にpvmoveエクステント (およびそのファイルに関連しないデータ) を高速ストレージに手動で移動する必要があります。ボリューム管理とファイル管理を別々のサブシステムとして実装するのではなく、同じサブシステム内に実装すると、理論的にはプロセス全体が簡単になります。
注記
- ^ ボリュームマネージャが LV を拡張して VG 内の任意の PV にまたがることを許可するかどうかを示します。
- ^ JFS2 スナップショット
- ^ AIX 5.1
- ^ UFS スナップショット
- ^ サードパーティ製品。Windows および多くのUnix 系OSで利用可能
- ^ Windows Server 2003以降
参照
参考文献
- ^ ab Juan Romero Pardines (2007/2008); David Gwynne (2006). 「arcmsr — Areca Technology Corporation SATA/SAS RAID コントローラー」。NetBSDカーネルインターフェース マニュアル。NetBSD 。
{{cite web}}: CS1 maint: numeric names: authors list (link) - ^ abcde フアン・ロメロ・パルディネス (2007/2008);デヴィッド・グウィン (2006)。 「arcmsr.c § arc_bio_volops」。BSD 相互参照。NetBSD。
{{cite web}}: CS1 maint: numeric names: authors list (link) - ^ The NetBSD Foundation, Inc. (1998); Carnegie-Mellon University (1995). 「raid — RAIDframe ディスク ドライバー」. NetBSD カーネル インターフェイス マニュアル. NetBSD .
{{cite web}}: CS1 maint: numeric names: authors list (link) - ^ The NetBSD Foundation, Inc. (1998); Carnegie-Mellon University (1995). 「raidctl — RAIDframe ディスク ドライバーの構成ユーティリティ」. NetBSD システム管理者マニュアル. NetBSD .
{{cite web}}: CS1 maint: numeric names: authors list (link) - ^ Marco Peereboom、Todd T. Fries (2007)。「softraid — ソフトウェア RAID」。デバイスドライバー マニュアル。OpenBSD 。
- 「softraid — ソフトウェア RAID」。OpenBSD マニュアル ページ サーバー。
- ^ 「MSDN ブログ - Windows 8 の構築: 拡張性、回復力、効率性のためのストレージの仮想化」。Blogs.MSDN.com。
- ^ 「Stratis Storage」. Stratis-storage.github.io . 2019年8月5日閲覧。
- ^ 「Stratis Software Design: バージョン 1.0.0∗」(PDF)。2018年9月27日。 2019年8月5日閲覧。
- ^ 「man page diskutil section 8」。ManPagez.com 。2011年10月6日閲覧。
出典
- Lewis, AJ、論理ボリューム マネージャー HOWTO。
- HP-UX 11: lvm(7) マニュアル ページ、Hewlett-Packard、1996。
- Vanel, Laurent; van der Knaap, Ronald (2000)、AIX 論理ボリューム マネージャー A から Z: 入門と概念(PDF)、IBM Redbooks。
- Veritas Volume Manager 3.1 管理者ガイド(PDF)、Hewlett-Packard、2001。
- XVM ボリューム マネージャ管理ガイド、Silicon Graphics、1999 年、2016 年 3 月 3 日にオリジナルからアーカイブ、2020 年 3 月 17 日に取得。
- Solaris Volume Manager Administration Guide、Sun Microsystems、2003、2007-07-15 にオリジナルからアーカイブ、2007-07-09に取得。
- Shadowcopy (2003)、Windows LDM と Veritas Volume Manager の比較マトリックス(PDF)、Symantec Corporation
- クリス・ギブソン (2010)、AIX 6.1 での JFS2 スナップショットの使用、IBM。
