読者です 読者をやめる 読者になる 読者になる

それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

LVMでボリュームを切り出して使う - 使い方とメリット

linux lvm

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は可変長サイズ・ハードディスク

また、次のようなことも出来ます。

拡張と縮小は別に書きます。

広告を非表示にする