コンピュータストレージにおいて論理ボリューム管理LVM )は、従来のパーティション分割方式よりも柔軟な大容量ストレージデバイス上の領域割り当て方式を提供します。特に、ボリュームマネージャは、パーティション(または一般的にはブロックデバイス)を連結、ストライプ化、あるいはその他の方法で結合し、管理者がシステムの使用を中断することなく、サイズを変更したり移動したりできる、より大きな仮想パーティションを作成できます。

ボリューム管理は、ストレージ仮想化の多くの形式のうちの 1 つに過ぎません。ボリューム管理の実装は、オペレーティング システム(OS)のデバイス ドライバースタック内のレイヤーで行われます(ストレージ デバイス内やネットワーク内ではありません)。

デザイン

[編集]
Linux 論理ボリュームマネージャ (LVM) v1

ほとんどのボリュームマネージャ実装は、同じ基本設計を共有しています。これらは物理ボリューム(PV)から始まります。物理ボリュームは、ハードディスク、ハードディスクパーティション、または外部ストレージデバイスの論理ユニット番号(LUN)のいずれかです。ボリューム管理では、各PVは物理エクステント(PE)と呼ばれるチャンクのシーケンスで構成されていると扱います。一部のボリュームマネージャ(HP-UXやLinuxなど)ではPEのサイズは均一ですが、その他のボリュームマネージャ( Veritasなど)ではPEのサイズは可変で、自由に分割および結合できます。

通常、PEは論理エクステント(LE)に1対1でマッピングされます。ミラーリングでは、複数のPEが各LEにマッピングされます。これらのPEは、物理ボリュームグループ(PVG)から抽出されます。PVGは、 RAID 1アレイのハードディスクと同様に動作する、同じサイズのボリューム(PV)の集合です。PVGは通常、最大限の冗長性を確保するために、異なるディスクまたはデータバス上に配置されます

システムはLEをボリュームグループ(VG)にプールします。プールされたLEは、論理ボリュームLV)と呼ばれる仮想ディスクパーティションに連結できます。システムはLVをディスクパーティションと同様にrawブロックデバイスとして使用し、マウント可能なファイルシステムを作成したり、スワップストレージとして使用したりできます。

ストライプ化された LV は、異なる PV から各連続 LE を割り当てます。LE のサイズに応じて、複数の PV の読み取りスループットを組み合わせることで、大規模な連続読み取りのパフォーマンスを向上させることができます。

管理者は、LV(論理ボリューム)を拡張(LEを連結)したり、LVを縮小(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への書き込み直前に、そのLEをコピーオンライトテーブルにコピーします。これにより、LVの古いバージョンであるスナップショットが保存されます。スナップショットは、後でコピーオンライトテーブルを現在のLVにオーバーレイすることで再構築できます。ボリューム管理がシンプロビジョニングとDiscardの両方をサポートしていない限り、元のボリュームのLEに書き込まれたデータは、スナップショットボリュームに永続的に保存されます。スナップショットボリュームが元のボリュームよりも小さく設定されている場合は(これは一般的な方法です)、スナップショットが操作不能になる可能性があります。

スナップショットは、アクセスの多いデータベースからテーブルファイルなどの揮発性データの一貫性のあるバージョンをバックアップしたり、オペレーティングシステムのアップグレードなどの大規模な変更を1回の操作でロールバックしたりするのに役立ちます。スナップショットは、ストレージを静止状態にするのと同様の効果があり、 Microsoft Windowsのシャドウコピー(VSS)サービスに似ています。

一部の Linux ベースのLive CDでは、スナップショットを使用して、読み取り専用の光ディスクへの読み取り/書き込みアクセスをシミュレートします。

実装

[編集]
ベンダー導入ボリュームマネージャーどこにでも割り当て可能[ a ]スナップショットRAID 0RAID 1RAID 5RAID 10シンプロビジョニング注記
IBMAIX 3.0 (1989)論理ボリュームマネージャはいはい[ b ]はいはいいいえはい[ c ]PEをPP(物理パーティション)、LEをLP(論理パーティション)と呼びます。コピーオンライトスナップショット機構は備えておらず、ミラーペアの一方のボリュームをフリーズすることでスナップショットを作成します。
ヒューレット・パッカードHP-UX 9.0HP 論理ボリュームマネージャはいはいはいはいいいえはい
FreeBSD財団フリーBSDVinum ボリュームマネージャーはいはい[ d ]はいはいはいはいFreeBSD 高速ファイルシステム (UFS) はスナップショットをサポートしています。
FreeBSD財団フリーBSDZFSはいはいはいはいはいはいはい統合ボリューム管理を備えたファイルシステム
NetBSD 財団ネットBSD論理ボリュームマネージャはいいいえはいはいいいえいいえNetBSDバージョン6.0以降は、Linux LVMの独自の再実装をサポートしています。この再実装はBSDライセンスのデバイスマッパードライバーに基づいており、LVMのユーザー空間部分としてLinux lvmツールの移植版を使用しています。NetBSDはRAIDFrameサブシステムが優れているため、LVMでRAID5をサポートする必要はありません。
ネットBSDZFSはいはいはいはいはいはいはい統合ボリューム管理を備えたファイルシステム
NetBSD § 5.0 (2009)bioctl arcmsr [ 1 ]いいえいいえはい[ 2 ]はい[ 2 ]はい[ 2 ]はい[ 2 ]NetBSDのbioctlはハードウェアRAIDのメンテナンスと初期化の両方に使用できますが、初期化(BIOCVOLOPS ioctl経由)は2019年現在、単一のドライバーでのみサポートされています— arcmsr(4)[ 1 ] [ 2 ] ;ソフトウェアRAIDはRAIDframe [ 3 ] [ 4 ]ZFSを通じて別途サポートされています。
OpenBSDプロジェクトOpenBSD 4.2 (2007)bioctlソフトレイド[ 5 ]はいいいえはいはいはいはいOpenBSDのbioctlは、ハードウェアRAIDのメンテナンスだけでなく、ソフトウェアRAIDの初期化とメンテナンスにも使用できます。
システィーナリナックス2.2論理ボリュームマネージャ バージョン 1はいはいはいはいいいえいいえ
IBMリナックス2.4エンタープライズボリューム管理システムはいはいはいはいはいいいえ
システィーナLinux 2.6以降論理ボリュームマネージャ バージョン 2はいはいはいはいはいはいはい
オラクルLinux 2.6以降Btrfsはいはいはいはいはい(安定していない)はい統合ボリューム管理を備えたファイルシステム
シリコングラフィックスIRIXまたはLinuxXVMボリュームマネージャはいはいはいはいはい
サン・マイクロシステムズサンOSSolaris Volume Manager (旧称Solstice DiskSuite )。いいえいいえはいはいはいはいPV をボリューム (RAID0、RAID1、または RAID5 プリミティブと組み合わせてより大きなボリュームにすることができます)、LV をソフト パーティション (ボリューム上の任意の場所に配置できる連続したエクステントですが、複数のボリュームにまたがることはできません)、VG をディスク セットとして参照します。
Solaris 10ZFSはいはいはいはいはいはいはい統合ボリューム管理を備えたファイルシステム
イルモスZFSはいはいはいはいはいはいはい統合ボリューム管理を備えたファイルシステム
ベリタス[ e ]クロスOSVeritas ボリューム マネージャ(VxVM)はいはいはいはいはいはいLV をボリューム、VG をディスク グループと呼びます。サブディスクと呼ばれる可変サイズの PEとプレックスと呼ばれる LE があります
マイクロソフトWindows 2000以降の NT ベースのオペレーティング システム論理ディスクマネージャーはいはい[ f ]はいはいはいいいえいいえPE または LE の概念はありません。RAID0、RAID1、RAID5 のみ、またはディスク パーティションを連結して大きなボリュームにすることしかできません。ファイル システムはボリューム全体にまたがる必要があります。
ウィンドウズ8収納スペース[ 6 ]はいはいいいえはいはいいいえはいRAID1 や RAID5 よりも高レベルのロジック - 複数のストレージ スペースが異なるサイズの複数のディスクにまたがり、ストレージ スペースはミラーリング (少なくとも 2 つのディスク) またはストライプ パリティ (少なくとも 3 つのディスク) によって物理的な障害から回復し、ディスク管理とデータ回復は完全に自動化されます。
ウィンドウズ10収納スペースはいはいはいはいはいはいはいRAID 10はディスクミラーリングと呼ばれる
レッドハットLinux 4.14以降ストラティス[ 7 ]はいはいいいえいいえいいえいいえはい2.0バージョンではRAIDサポートが予定されている[ 8 ]
りんごMac OS X ライオンコアストレージはい[ 9 ]いいえいいえいいえいいえいいえいいえ現在、これは完全なディスク暗号化を可能にするためにLion のFileVault実装で使用されているほか、単なるマルチ PV LVG であるFusion Driveでも使用されています。

スナップショットはTime Machineによって処理され、ソフトウェアベースのRAIDはAppleRAIDによって提供されます。どちらもCore Storageとは別です。

デメリット

[編集]

論理ボリュームは、基盤となるストレージデバイスがPEを連続的に割り当てていない場合、外部フラグメンテーションの影響を受ける可能性があります。これにより、磁気ディスクやその他の回転メディアなど、シーク速度の遅いメディアではI/Oパフォーマンスが低下する可能性があります。しかし、固定サイズのPEを使用するボリュームマネージャは、これらのシークコストを分散させるために、通常、PEを比較的大きく設定します(例えば、 Linux LVMはデフォルトで4MBを使用します)。

Core Storageや Linux LVMなどのボリューム管理のみを行う実装では、ボリューム管理をファイルシステムから分離して抽象化すると、特定のファイルやディレクトリのストレージに関する決定を容易に行うことができなくなります。たとえば、特定のディレクトリ (ファイルシステム全体ではない) をより高速なストレージに永続的に移動する場合、ファイルシステムのレイアウトと、その下にあるボリューム管理層の両方を調べる必要があります。たとえば Linux では、ファイルシステム内でのファイルの内容のオフセットを手動で決定し、次にpvmoveエクステント (およびそのファイルに関連しないデータ) をより高速なストレージに手動で移動する必要があります。ボリューム管理とファイル管理を別々のサブシステムとして実装するのではなく、同じサブシステム内に実装することで、理論上はプロセス全体がよりシンプルになります。

注記

[編集]
  1. ^ ボリュームマネージャが LV を拡張して VG 内の任意の PV にまたがることを許可するかどうかを示します。
  2. ^ JFS2 スナップショット
  3. ^ AIX 5.1
  4. ^ UFSスナップショット
  5. ^ サードパーティ製品。Windows および多くのUnix 系OS
  6. ^ Windows Server 2003以降

参照

[編集]

参考文献

[編集]
  1. ^ a b Juan Romero Pardines (2007/2008); David Gwynne (2006). 「arcmsr — Areca Technology Corporation SATA/SAS RAID コントローラー」 . NetBSD カーネルインターフェースマニュアル. NetBSD .{{cite web}}: CS1 maint: 数値名: 著者リスト (リンク)
  2. ^ a b c d e フアン・ロメロ・パーディネス (2007/2008);デヴィッド・グウィン (2006)。「arcmsr.c § arc_bio_volops」BSD 相互参照NetBSD{{cite web}}: CS1 maint: 数値名: 著者リスト (リンク)
  3. ^ The NetBSD Foundation, Inc. (1998); Carnegie-Mellon University (1995). 「raid — RAIDframe ディスクドライバー」 . NetBSD カーネルインターフェースマニュアル. NetBSD .{{cite web}}: CS1 maint: 数値名: 著者リスト (リンク)
  4. ^ The NetBSD Foundation, Inc. (1998); Carnegie-Mellon University (1995). 「raidctl — RAIDframe ディスクドライバーの設定ユーティリティ」 . NetBSD システム管理者マニュアル. NetBSD .{{cite web}}: CS1 maint: 数値名: 著者リスト (リンク)
  5. ^ Marco Peereboom; Todd T. Fries (2007). 「softraid — ソフトウェアRAID」 .デバイスドライバマニュアル. OpenBSD .
  6. ^ 「 MSDNブログ - Windows 8 の構築: 拡張性、回復力、効率性を実現するためのストレージの仮想化」。Blogs.MSDN.com
  7. ^ "Stratis Storage" . Stratis-storage.github.io . 2019年8月5日閲覧。
  8. ^ 「Stratis ソフトウェア設計: バージョン 1.0.0∗」(PDF) . 2018年9月27日. 2019年8月5日閲覧
  9. ^ 「manページ diskutil セクション8」 . ManPagez.com . 2011年10月6日閲覧

出典

[編集]