LVMとは
物理ボリューム(パーティション)
パーティションであり、Linuxではsda1やsdb2など
ボリュームグループ
物理ボリュームはボリュームグループに統合され、論理ボリュームへ割り当てるディスク領域のプールが作成される。
論理ボリューム
ボリュームグループから切り出した仮想的なパーティション領域。従来のパーティションと同じようにファイルシステムを作って利用可能です。
- LVMを利用する流れ
-
物理ディスクから物理ボリューム(パーティション)を作成
(sda1、sdb1、sdc1) -
物理ボリュームのシステムタイプを、83(Linux)から8e (LVM)に変更
-
ボリュームグループを作成(Vol-00)
-
論理ボリュームを作成(LogicVol-01)
-
論理ボリュームをmount(/mnt/lvm)
LVMのの機能
-
リニアボリューム
-
複数の物理ボリュームの領域を 1 つの論理ボリュームに統合します。
例えば:
60GB ディスクが 2 つある場合、120GB の論理ボリュームを作成できます。 -
通常データは設定した順番に書き込まれます。
PV1 ⇒ PV2 -
論理ボリュームを構成している物理ボリュームは同じサイズである必要はありません。
-
必要に応じて容量が追加できることでオブジェクトストレージみたいものです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/229933/c5b0d8d2-740a-e73c-7793-8d75b5313881.png)
-
ストライプ化 ボリューム
-
単一ディスクでのデータ格納とは対照的に、複数のディスクにわたってデータを分散させる手段です。そしてストライプ化では、I/O は並行して実行されますので効率を改善することができます。
-
以下の図では、3 つの物理ボリューム全体にデータがストライプ化されている状態を示しています。
データの 1 番目のストライプは PV1 に書き込まれます。
データの 2 番目のストライプは PV2 に書き込まれます。
データの 3 番目のストライプは PV3 に書き込まれます。
データの 4 番目のストライプは PV1 に書き込まれます。 -
ミラー化 ボリューム
-
ミラーはデータの同一コピーを異なるデバイスに維持します。データが 1 つ目のデバイスに書き込まれると、2 つ目のデバイスにも書き込まれ、データのミラー化が行われます。この重複保存は、デバイス障害に対する保護になります。
-
ミラー化した際、同一の物理ボリュームを使用せずに異なる物理ボリュームを使用した場合、利用できるのは容量の小さな物理ボリュームのサイズとなります。 1GBディスクと2GBディスクをミラー化した場合の使用可能な容量は1GBになります。
-
実際に各サーバでLVMのスナップショットとミラー化を利用せずにVMwareやStorageなどがスナップショットとミラー化をサポートするので、集中的に管理した方がいいです
-
スナップショット
-
論理ボリュームのシンプロビジョニング(thin provisioning)が可能になりました。スナップショットは、ある瞬間のファイルシステムのイメージを保持したものです。
-
スナップショットは全データを複製するのではなく、元のデータへのリンク情報というポインタだけを残したものであるため、スナップショット領域はデータ元よりも格段に少ない容量で済み、元データが大きい場合もスナップショット作成処理は数秒で完了します。元のデータに変更が加えられた場合は、スナップショット領域に変更前のデータが退避されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/229933/4d043e6a-98a8-8221-45c7-8cc12146a733.png)
LVMでストライプ化論理ボリュームをテスト
-
I/O効率を改善することがでるので今回LVMでストライプ化のテストを実施します。
テスト目的: -
二つの2Tパーティションから4TBのLVM論理パーティションを組み立てて、
ストライプできるか確認します。 -
MBR標準で2T 以上のパーティションが作成できない問題を解決します。
-
CentOSバージョンとパーティションテーブルを確認
CentOSバージョン:6.10
パーティションテーブル:msdos ➞ MBR標準です。 -
操作する対象のsdb、sdcを確認
-
ボリュームグループを作成
-
論理ボリュームを作成
オプション:
-n lv-data 論理ボリューム名を指定
-l 100%FREE 空き容量を全て使うことができる
-i2 ストライプするボリューム数(2)を指定
-vg-data どのボリュームグループか名前を指定 -
ストライプを確認
lvdisplay 論理ボリュームの情報を表示
m 論理ボリュームのマッピングの情報を表示 -
実際に論理ボリュームをmountし、データを作成してI/Oテスト
ddで8GB のデータを作成して、I/Oテスト
bs ブロックデータのサイズを指定
count ブロックデータの数を指定