・本稿環境
仮想マシンで検証する場合、仮想ハードディスクを一台追加してください。本稿では追加されたハードディスクは/dev/sdbとして扱います。
◇LVM利用手順
・パーテーションの設定
以下の手順でパーテーションを作成します
[root@STR1 ~]# gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.7
Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present
Creating new GPT entries in memory.
Command (? for help): n
Partition number (1-128, default 1): 1
First sector (34-62914526, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-62914526, default = 62914526) or {+-}size{KMGTP}:
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300): 8300
Changed type of partition to 'Linux filesystem'
Command (? for help): p
Disk /dev/sdb: 62914560 sectors, 30.0 GiB
Model: VBOX HARDDISK
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): A65D22B8-364B-43AB-8824-39827BCF7447
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 62914526
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 2048 62914526 30.0 GiB 8300 Linux filesystem
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
・物理ボリューム作成
[root@STR1 ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
・ボリュームグループの作成
[root@STR1 ~]# vgcreate test-vg /dev/sdb1
Volume group "test-vg" successfully created
・論理ボリュームの作成
[root@STR1 ~]# lvcreate -L 5G -n Lv01 test-vg
Logical volume "Lv01" created.
・ファイルシステムを作成し、マウント
[root@STR1 ~]# mkfs.xfs /dev/test-vg/Lv01
meta-data=/dev/test-vg/Lv01 isize=512 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1
data = bsize=4096 blocks=1310720, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@STR1 ~]# mkdir /data
[root@STR1 ~]# mount /dev/test-vg/Lv01 /data/
[root@STR1 ~]# df -HT /data/
ファイルシス タイプ サイズ 使用 残り 使用% マウント位置
/dev/mapper/test--vg-Lv01 xfs 5.4G 72M 5.3G 2% /data
・論理ボリュームとファイルシステムの拡張
例として論理ボリュームを3G拡張してみます。
[root@STR1 ~]# lvextend -L +3G /dev/test-vg/Lv01
Size of logical volume test-vg/Lv01 changed from 5.00 GiB (1280 extents) to 8.00 GiB (2048 extents).
Logical volume test-vg/Lv01 successfully resized.
引き続き、論理ボリュームサイズに合わせファイルシステムを拡張します。
[root@STR1 ~]# xfs_growfs /data/
meta-data=/dev/mapper/test--vg-Lv01 isize=512 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1
data = bsize=4096 blocks=1310720, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 1310720 to 2097152
以下のコマンドでボリュームサイズが拡張されている事を確認します。
[root@STR1 ~]# df -HT /data/
ファイルシス タイプ サイズ 使用 残り 使用% マウント位置
/dev/mapper/test--vg-Lv01 xfs 8.6G 94M 8.5G 2% /data
約3G追加された事が確認出来ました。
・スナップショットのテスト
テスト用のlvm-test.txtファイルを作成します。
[root@STR1 ~]# echo "Hello LVM." > /data/lvm-test.txt
[root@STR1 ~]# ls /data/
lvm-test.txt
[root@STR1 ~]# cat /data/lvm-test.txt
Hello LVM.
・スナップショット作成
[root@STR1 ~]#[root@STR1 ~]# lvcreate --snapshot -L 500M -n snap /dev/test-vg/Lv01
Logical volume "snap" created.
元のボリュームと、使用されているスナップショットボリュームの現在の割合を表示します。
[root@STR1 ~]# lvs -a -o +devices
Devices file sys_wwid t10.ATA_____VBOX_HARDDISK___________________________VB70946409-7f454173_ PVID YMm8eCIR5SkuO0JofNsHEDPihSr1HncN last seen on /dev/sda2 not found.
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
Lv01 test-vg owi-aos--- 8.00g /dev/sdb1(0)
snap test-vg swi-a-s--- 500.00m Lv01 0.00 /dev/sdb1(2048)
・テスト用ファイルの削除
テスト用に作成したlvm-test.txtを削除します。
[root@STR1 ~]# rm -rf /data/lvm-test.txt
[root@STR1 ~]# ls /data/
#何も表示されない事を確認します。
・スナップショットのマージ
dataディレクトリをアンマウント後、スナップショットをマージします。
[root@STR1 ~]# umount /data
[root@STR1 ~]# lvconvert --merge /dev/test-vg/snap
Merging of volume test-vg/snap started.
test-vg/Lv01: Merged: 100.00%
マージ後、マウントを行い、削除したlvm-test.txtが元に戻っている事を確認します。
[root@STR1 ~]# mount /dev/test-vg/Lv01 /data/
[root@STR1 ~]# ls /data/
lvm-test.txt
[root@STR1 ~]# cat /data/lvm-test.txt
Hello LVM.