LinuxのLVMの概要と表示コマンド

LinuxのLVMの概要と設定内容を表示するコマンドについてまとめました。

※目次をクリックすると目次の下部にコンテンツが表示されます。

LVM(Logical Volume Manager)の概要、メリット
・ボリューム管理によって物理ストレージ上に抽象化レイヤが作成され、論理ストレージボリュームを作成できる。
 
・論理ボリュームが作成されると物理ディスクのサイズに制限されない。
 
・ハードウェアストレージ設定はソフトウェアには表示されないので、アプリケーションを停止したりファイルシステムをアンマウントせずに、サイズ変更や移動が可能になる。
 
・ディスクとパーティションを1つの論理ボリュームに集約する事が出来る。ファイルシステムを複数のディスクに渡って拡張する事が出来る。
 
・基になるディスクデバイスを再フォーマットしたり再パーティションせずに、論理ボリュームを拡大・縮小できる。
 
・システムがアクティブな時でもデータを移動したり再配置したり出来る。
 
・ディスクのストライプ化、ミラー化ができる。
 
・一貫性のあるバックアップのためのデバイススナップショットを取ったり、実際のデータに影響を及ぼすことなく変更の効果をテストすることが出来る。

物理ボリューム(PV)、ボリュームグループ(VG)、論理ボリューム(LV)
●物理ボリューム(PV)
 
・論理ボリュームの配下の物理ストレージユニットは、パーティションあるいはディスク全体などのブロックデバイス。
 
・上記デバイスは物理ボリュームとして初期化される。
 
●ボリュームグループ(VG)と論理ボリューム(LV)
 
・論理ボリュームを作成するために、物理ボリュームはボリュームグループに統合される。
これによってディスク領域のプールが作成され、そこから論理ボリュームが割り当てられる。
これは、ディスクがパーティションに分割される方法に類似している。
 
・論理ボリュームはファイルシステムやアプリケーション(データベース)からアクセスされて使用される。

LVMのエクステントとは?
pvdisplay、vgdisplay、lvdisplayコマンドなどで各ボリュームの状態を表示するとPEやLEといった単位のサイズを使って量が表示されます。PEやVEの”E”はエクステントを表しています。このエクステントについて確認しました。
 
・ボリュームグループ内で、割当て可能なディスク領域は”エクステント”と呼ばれる固定サイズの単位に分割される。
 
・1エクステントが割当て可能な領域の最小単位。
 
・物理ボリューム内では、エクステントは物理エクステント(PE)と呼ばれる。
 
・論理ボリュームは物理エスクテントと同サイズの論理エクステント(LE)を割り当てることができる。
 そのため、エクステントは、ボリュームグループ内のすべての論理ボリュームで同じサイズになる。
 
・ボリュームグループは論理エクステントを物理エクステントにマッピングする。

物理ボリュームを表示
①ブロックデバイスのスキャン lvmdiskscan
・物理ボリュームとして使用可能なブロックデバイスをスキャン。

# lvmdiskscan
  /dev/ram0             [      16.00 MiB]
  /dev/root             [      17.54 GiB]
  /dev/ram1             [      16.00 MiB]
  /dev/vda1             [     500.00 MiB]
  /dev/VolGroup/lv_swap [       1.97 GiB]
  /dev/ram2             [      16.00 MiB]
  /dev/vda2             [      19.51 GiB] LVM physical volume
  /dev/ram3             [      16.00 MiB]
   :
  /dev/ram15            [      16.00 MiB]
  /dev/vdb              [     180.00 GiB]
  3 disks
  17 partitions
  0 LVM physical volume whole disks
  1 LVM physical volume
 
(物理ボリュームのみ表示)
# lvmdiskscan -l
  WARNING: only considering LVM devices
  /dev/vda2             [      19.51 GiB] LVM physical volume
  0 LVM physical volume whole disks
  1 LVM physical volume

 
②pvsコマンド
・物理ボリューム情報を設定可能な形式で提供して、1つの物理ボリュームにつき1行ずつ表示。

# pvs
  PV         VG       Fmt  Attr PSize  PFree
  /dev/vda2  VolGroup lvm2 a--  19.51g    0

 
③pvdisplay
・各物理ボリュームについて複数行の詳細出力

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/vda2
  VG Name               VolGroup
  PV Size               19.51 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              4994
  Free PE               0
  Allocated PE          4994
  PV UUID               55BE・・・・

(各項目の説明)
PV Name
 * physical volume device name
VG Name
 * volume group name
PV Size
 * physical volume size
Allocatable
 * physical volume (not) allocatable
PE Size
 * physical extent size
Total PE
 * total number of physical extents
Free PE
 * free number of physical extents
Allocated PE
 * allocated number of physical extents
PV UUID
 
④pvscan
・物理ボリューム用にシステム内のサポートされたすべてのLVMブロックデバイスをスキャン

# pvscan
  PV /dev/vda2   VG VolGroup   lvm2 [19.51 GiB / 0    free]
  Total: 1 [19.51 GiB] / in use: 1 [19.51 GiB] / in no VG: 0 [0   ]

ボリュームグループを表示
①vgdisplay

# vgdisplay
  --- Volume group ---
  VG Name               VolGroup
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               19.51 GiB
  PE Size               4.00 MiB
  Total PE              4994
  Alloc PE / Size       4994 / 19.51 GiB
  Free  PE / Size       0 / 0
  VG UUID

(各項目の説明)
MAX LV
 maximum number of logical volumes
Cur LV
 current number of logical volumes
Open LV
 open count of all logical volumes in this volume group
Max PV
 maximum number of physical volumes
Cur PV
 current number of physical volumes
Act PV
 actual number of physical volumes
VG Size
 size of volume group
PE Size
 physical extent size
Total PE
 total number of physical extents for this volume group
Alloc PE / Size
 allocated number of physical extents for this volume group
Free PE / Size
 free number of physical extents for this volume group
VG UUID
 
②vgscanとキャッシュファイル
・vgscanコマンドは、システム内のすべてのディスクデバイスをスキャンし、LVM物理ボリュームとボリュームグループを検索し、この時に/etc/lvm/cache/ディレクトリ内に”.cache”という名前でLVM キャッシュファイルが構築されて、現在のLVMデバイスの一覧を管理する。

# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup" using metadata type lvm2

・vgscanコマンドは、LVMによってシステムの起動時、vgcreateコマンド実行時、不整合が検出された場合などに自動的に実行される。
 
・/etc/lvm/lvm.confファイル内でフィルターを定義することで特定デバイスのスキャンを避けるように設定する事もできる。

論理ボリュームを表示
①lvscan

# lvscan
  ACTIVE            '/dev/VolGroup/lv_root' [17.54 GiB] inherit
  ACTIVE            '/dev/VolGroup/lv_swap' [1.97 GiB] inherit

 
②lvs

# lvs
  LV      VG       Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
  lv_root VolGroup -wi-ao---- 17.54g                                            
  lv_swap VolGroup -wi-ao----  1.97g

 
③lvdisplay

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/VolGroup/lv_root
  LV Name                lv_root
  VG Name                VolGroup
  LV UUID                13vAsX-pKPr-umeE-Xe6R-2ErC-Pr8j-owoiUX
  LV Write Access        read/write
  LV Creation host, time ,
  LV Status              available
  # open                 1
  LV Size                17.54 GiB
  Current LE             4490
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

dfコマンドと論理ボリュームの関係
上記LVM関連の表示コマンドの表示結果とディスク使用量を表示するdfコマンドとの関係を確認しました。
 
①dfコマンドの出力内容

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  9.8G  6.6G  60% /
tmpfs                 939M     0  939M   0% /dev/shm
/dev/vda1             485M  118M  342M  26% /boot
/dev/vdb              178G  188M  168G   1% /data

・マウントポイントの”/”が”/dev/mapper/VolGroup-lv_root”となっているのでLVMが構成されている事が分かります。
 
※実ディスク(SCSI、SATA)の場合は、ディスクが/dev/sdxで表示され、VPS環境の仮想ディスクの場合は、/dev/vdxでネーミングされています。
 
②論理ボリューム、ボリュームグループを確認

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/VolGroup/lv_root
  LV Name                lv_root
  VG Name                VolGroup

→論理ボリューム名がlv_rootでボリュームグループ名がVolGroupです。
 
③物理ボリュームを確認

# pvs
  PV         VG       Fmt  Attr PSize  PFree
  /dev/vda2  VolGroup lvm2 a--  19.51g    0

→物理ボリュームが/dev/vda2である事が分かります。
 
④ファイルシステムの確認
mountコマンドでファイルシステムを確認

# mount
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/vda1 on /boot type ext4 (rw)
/dev/vdb on /data type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/boot、/、/dataは、ext4になっています。

関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください