LinuxのLVMの概要と設定内容を表示するコマンドについてまとめました。
※目次をクリックすると目次の下部にコンテンツが表示されます。
- 1.LVM(Logical Volume Manager)の概要、メリット
- 2.物理ボリューム(PV)、ボリュームグループ(VG)、論理ボリューム(LV)
- 3.LVMのエクステントとは?
- 4.物理ボリュームを表示
- 5.ボリュームグループを表示
- 6.論理ボリュームを表示
- 7.dfコマンドと論理ボリュームの関係
・論理ボリュームが作成されると物理ディスクのサイズに制限されない。
・ハードウェアストレージ設定はソフトウェアには表示されないので、アプリケーションを停止したりファイルシステムをアンマウントせずに、サイズ変更や移動が可能になる。
・ディスクとパーティションを1つの論理ボリュームに集約する事が出来る。ファイルシステムを複数のディスクに渡って拡張する事が出来る。
・基になるディスクデバイスを再フォーマットしたり再パーティションせずに、論理ボリュームを拡大・縮小できる。
・システムがアクティブな時でもデータを移動したり再配置したり出来る。
・ディスクのストライプ化、ミラー化ができる。
・一貫性のあるバックアップのためのデバイススナップショットを取ったり、実際のデータに影響を及ぼすことなく変更の効果をテストすることが出来る。
・論理ボリュームの配下の物理ストレージユニットは、パーティションあるいはディスク全体などのブロックデバイス。
・上記デバイスは物理ボリュームとして初期化される。
●ボリュームグループ(VG)と論理ボリューム(LV)
・論理ボリュームを作成するために、物理ボリュームはボリュームグループに統合される。
これによってディスク領域のプールが作成され、そこから論理ボリュームが割り当てられる。
これは、ディスクがパーティションに分割される方法に類似している。
・論理ボリュームはファイルシステムやアプリケーション(データベース)からアクセスされて使用される。
・ボリュームグループ内で、割当て可能なディスク領域は”エクステント”と呼ばれる固定サイズの単位に分割される。
・1エクステントが割当て可能な領域の最小単位。
・物理ボリューム内では、エクステントは物理エクステント(PE)と呼ばれる。
・論理ボリュームは物理エスクテントと同サイズの論理エクステント(LE)を割り当てることができる。
そのため、エクステントは、ボリュームグループ内のすべての論理ボリュームで同じサイズになる。
・ボリュームグループは論理エクステントを物理エクステントにマッピングする。
・物理ボリュームとして使用可能なブロックデバイスをスキャン。
# 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 --- 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 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コマンドの出力内容
# 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になっています。
-
システム管理
- CentOSのブートの流れ、ランレベルの指定
- CentOS6のrc.sysinitスクリプトの処理内容の概要
- procファイルシステムの概要
- sysctlコマンドでカーネルパラメータの参照、変更
- cron、anacronで自動定期実行
- at、batchコマンドの概要
- CentOS6のシステムログ
- rsyslogの設定方法
- システムログのローテート設定
- CentOSのハードウェア情報を表示するコマンド
- CentOSでパーティション、スワップ、ディスク情報を確認
- LinuxのLVMの概要と表示コマンド
- ボリュームグループ、論理ボリューム作成、ファイルシステム作成、マウント設定、物理ボリュームを追加
- CentOSで論理ボリューム、ext4ファイルシステムを拡張
- CentOSのLVMでボリュームグループから物理ボリュームを削除
- WindowsからCentOS6にリモートデスクトップする手順
- viエディタの使用方法
- HTMLのマニュアルをLinuxのターミナル画面上で読む
- findコマンドで直近に更新されたファイルを調べる方法
- Linuxでディスク使用量が多いディレクトリを調べる方法(1)
- Linuxでディスク使用量が多いディレクトリを調べる方法(2)
- psコマンドで全プロセスを表示する方法と表示結果の見方
- プロセス階層、プロセスグループ、セッションを確認するには?
- psコマンドでスレッドに関する情報を表示するには?
- netstat、nmapを使ってリッスンポートを確認する方法
- vmstatコマンドでシステムの状況をモニター
- シェル変数と環境変数の違い
- CentOSのユーザー環境設定ファイル(bashrc、profile)
- 日本語設定、シェル環境設定
- umaskはどこで設定されている?
- CentOS6の各種ネットワーク設定ファイルとインタフェース制御スクリプト
- CentOS6のTCPラッパーの概要と設定方法
- LinuxのNetworkManagerプロセスの概要
- CentOS6のユーザー管理の概要とコマンド操作
- ファイルのパーミッション設定、ディレクトリは要注意
- Linuxでスティッキービットが設定されているか確認する方法
- sudoで特定のコマンドのみをroot権限で実行する
- RHEL6、CentOS6の64ビットサポートとhuge pages
- RHEL6、CentOS6の64ビットサポートとNUMA
Linuxコマンド操作
シェル環境設定
ネットワーク関連
ユーザー管理、権限
64ビットサポート
-
CentOSの概要
- RHEL6、CentOS6の64ビットサポートとhuge pages
- RHEL6、CentOS6の64ビットサポートとNUMA
- CentOS6インストール手順のメモ
- CentOSのブートの流れ、ランレベルの指定
- procファイルシステムの概要
- sysctlコマンドでカーネルパラメータの参照、変更
- CentOS6の各種ネットワーク設定ファイルとインタフェース制御スクリプト
- cron、anacronで自動定期実行
- at、batchコマンドの概要
- CentOS6のシステムログ
- rsyslogの設定方法
- システムログのローテート設定の確認
- CentOSのハードウェア情報を表示するコマンド
- CentOSでパーティション、スワップ、ディスク情報を確認
- LinuxのLVMの概要と表示コマンド
- ボリュームグループ、論理ボリューム作成、ファイルシステム作成、マウント設定、物理ボリュームを追加
- CentOSで論理ボリューム、ext4ファイルシステムを拡張
- CentOSのLVMでボリュームグループから物理ボリュームを削除
- WindowsからCentOS6にリモートデスクトップする手順
- viエディタの使用方法
- HTMLのマニュアルをLinuxのターミナル画面上で読む
- findコマンドで直近に更新されたファイルを調べる方法
- Linuxでディスク使用量が多いディレクトリを調べる方法(1)
- Linuxでディスク使用量が多いディレクトリを調べる方法(2)
- ディスク使用量が多いディレクトリを抽出するbashスクリプト
- psコマンドで全プロセスを表示する方法と表示結果の見方
- プロセス階層、プロセスグループ、セッションを確認するには?
- psコマンドでスレッドに関する情報を表示するには?
- netstat、nmapを使ってリッスンポートを確認する方法
- 日本語設定、シェル環境設定
- CentOSのユーザー環境設定ファイル(bashrc、profile)
- umaskはどこで設定されている?
- シェル変数と環境変数の違い
- CentOSのネットワークフィルタリング設定を一から行う
- CentOS6のTCPラッパーの概要と設定方法
- CentOS6のユーザー管理の概要とコマンド操作
- ファイルのパーミッション設定、ディレクトリは要注意
- Linuxでスティッキービットが設定されているか確認する方法
- sudoで特定のコマンドのみをroot権限で実行する
システム管理
Linuxコマンド操作
シェル環境設定
ネットワーク関連
ユーザー管理、権限