LVM 出来ることを試していくシリーズ
LVMでボリュームを切り出して使う。
今回は、大きなディスクから、小さなディスクを作ってみる。
LVM的に表現すれば、VGから複数のLVを生み出す。この作業になります。
LVM でボリュームを分割する
LVM でLV(論理ボリューム)を切り出して使うことの特徴について。
/dev/sda
からパーティション切出しと、似ていますが全然違います。LVMはデバイスマッパー(ディスクの仮想化みたなもの?)なので、パーティションより低レイヤになります。つまり、LVとは可変長のハードディスク
だと思っていたらいいと思う。パーティションだと、並び順を意識して容量を変更していきますが、LVMでは不要です。
今回試すこと
LV から複数のLVを切り出して、その中にパーティションを作る。
PV / VG を作る
ぱぱっと実験用のLVMのVGを作っておきます。
$ sudo pvcreate /dev/sdc1 $ sudo vgcreate sample01 /dev/sdc1 $ sudo vgs VG #PV #LV #SN Attr VSize VFree acid 1 3 0 wz--n- 223.57g 128.57g sample01 1 1 0 wz--n- 150.00g 150.00g
一つ目のLV を作成します。
一つ目は lv01
という名前で、VG の空き容量の20% を割当ててみます。
$ sudo lvcreate -n lv01 -l 20%FREE sample01 Logical volume "lv01" created $ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv01 sample01 -wi-a----- 30.00g
二つ目のLVを作成
二つ目は、容量を30GBで指定して作成してみます。
$ sudo lvcreate -n lv02 -L 30GB sample01 Logical volume "lv02" created $ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv01 sample01 -wi-a----- 30.00g lv02 sample01 -wi-a----- 30.00g
lv01 の容量を増量します。
lvexntend を使って、容量を増加させることが出来ます。vg の空き容量から割当てられます。
$ sudo lvextend -l +20%FREE sample01/lv01 Size of logical volume sample01/lv01 changed from 30.00 GiB (7679 extents) to 48.00 GiB (12287 extents). Logical volume lv01 successfully resized
ここの動作がディスクのパーティションを作成時との、場合と大きな違いです。
今回は20%を空き容量から割当ててパーティションに追加しました。
もしディスクのパーティションで容量を分割している場合だと、こんなに手軽に容量追加は出来ないでしょう。
ディスクパーティションを切っていた場合。
もし以下のようにパーティションを割っていた場合を考えてみましょう。
- /dev/sdc
- /dev/sdc1 30%
- /dev/sdc2 30G
- 60%未使用
パーティションを移動のために、まず /dev/sdc2 を後退させ、次に /dev/sdc1 を拡張します。さらにファイルシステムをリサイズし、終わったら確保した空き容量に/dev/sdc1を拡張する必要があります。これはパーティションのファイルシステム開始位置を決めないといけないのですごく面倒です。パーティションの移動って面倒なんですよね。dd でパーティションを一旦未使用領域に移せば作業の工数的には楽です。しかし時間がもったいないです。resize2fs とfdisk でパーティションを移動もいいのですが、不便ですよね。
パーティションの場合利用容量に正比例して必要時間が増えていきます。一方でLVMを使ったLV作成・追加では時間がほぼゼロです。これがLVMのLVとVGで管理と、パーティション管理する場合の違いと言えるでしょう。
まとめ LV によるPE分割のメリット
/home, /var
など容量の読めないものでも扱いやすい。- 容量が必要になっても大丈夫
- 時間はかからない。
- とりあえず分けておいてあとで考えられる。
- LVは可変長サイズ・ハードディスク
また、次のようなことも出来ます。
- LV上にパーティションを更に作ることが出来る。
- thin pool も出来る
拡張と縮小は別に書きます。