本記事は、私自身のメモのために
「LVMで論理ボリュームの作成、拡張、縮小、複製」
http://qiita.com/TsutomuNakamura/items/93c6333c8dd32aeb197a
のサイトをそのまま記事としたものであることをご了承ください。
複数の物理ボリュームがあり、その上に複数のボリュームグループを作成することができ、その上に複数の論理ボリュームを作成することができます。
複数の物理ボリュームを使用する場合、その上に作成される論理ボリュームは、1 つの物理ボリュームよりも大きい領域を割り当てることができるようになります(ただし、その論理ボリュームは物理ボリュームの総数の容量を越えることはできません)。
上記の図では、未使用領域が存在しますが、その未使用領域は後ほど容量が追加で必要になった論理ボリュームに割り当てることもできます。
今回の例ではlvg-share というボリュームグループを作成し、その上に/dev/lvg-share/files, /dev/lvg-share/media, /dev/lvg-share/work 論理ボリュームを作成していきます。
1 現状デバイスの確認及びパーテーションの作成
① FDISK -L コマンドで、現在のデバイスの状態を確認します。
/dev/sdb 〜 /dev/sde デバイスはまだパーティションが作成されていないことがわかります。
fdiskコマンドによる設定例
$ sudo fdisk -l
Disk /dev/sdb: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units # sectors of 1 * 512 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn’t contain a valid partition table
Disk /dev/sda: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders, total 167772160 sectors
Units # sectors of 1 * 512 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002e29c
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 159385599 79691776 83 Linux
/dev/sda2 159387646 167770111 4191233 5 Extended
/dev/sda5 159387648 167770111 4191232 82 Linux swap / Solaris
Disk /dev/sdd: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units # sectors of 1 * 512 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdd doesn’t contain a valid partition table
Disk /dev/sde: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units # sectors of 1 * 512 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sde doesn’t contain a valid partition table
Disk /dev/sdc: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units # sectors of 1 * 512 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdc doesn’t contain a valid partition table
② /DEV/SDB 〜 /DEV/SDE に対して/DEV/SDB1 〜 /DEV/SDE1 という形でパーティションを作成していきます。
それぞれのパーティションのサイズは10 GB ととします。 まずは、fdisk コマンドを使用して/dev/sdb デバイスにLVM ボリュームを作成します。
$ sudo fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x995af6e7.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won’t be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): m
Command action
a toggle a bootable flag
〜省略〜
x extra functionality (experts only)
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
Using default value 1
First sector (2048-83886079, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-83886079, default 83886079): +10G
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): L
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
〜省略〜
1e Hidden W95 FAT1 80 Old Minix
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
パーティションが作成されたことを確認します。
$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 42.9 GB, 42949672960 bytes
139 heads, 49 sectors/track, 12316 cylinders, total 83886080 sectors
Units # sectors of 1 * 512 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x995af6e7
Device Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 8e Linux LVM
③ これを、/DEV/SDC〜/DEV/SDE/にも行います。
2 論理ボリュームの作成
① LVMボリュームの作成
$ sudo pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Physical volume “/dev/sdb1” successfully created
Physical volume “/dev/sdc1” successfully created
Physical volume “/dev/sdd1” successfully created
Physical volume “/dev/sde1” successfully created
② PVDISPLAY コマンドで確認します。
$ sudo pvdisplay
“/dev/sdb1” is a new physical volume of “10.00 GiB”
— NEW Physical volume —
PV Name /dev/sdb1
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID dCvzjO-R0Tv-voXT-Me8v-q0ss-A5lI-ojbJTQ
“/dev/sdc1” is a new physical volume of “10.00 GiB”
— NEW Physical volume —
PV Name /dev/sdc1
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID fxLbYc-4nOT-YKEB-Zzeh-L4pt-QiLa-eSEwdK
“/dev/sdd1” is a new physical volume of “10.00 GiB”
— NEW Physical volume —
PV Name /dev/sdd1
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID SkmklQ-s3Si-lC2b-hQNa-nOIt-uXnb-1uGs5W
“/dev/sde1” is a new physical volume of “10.00 GiB”
— NEW Physical volume —
PV Name /dev/sde1
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 5TkFOl-wXHc-u6vg-ryfY-WefK-4ftc-UkwPLg
3 ボリュームグループを作成する
① VGCREATE コマンドを使用してLVG-SHARE ボリュームグループを作成します。
$ sudo vgcreate lvg-share /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 Volume group "lvg-share" successfully created
②VGDISPLAY, VGSCAN コマンドで、ボリュームグループを確認します。
$ sudo vgdisplay --- Volume group --- VG Name lvg-share System ID Format lvm2 〜省略〜 VG Size 39.98 GiB PE Size 4.00 MiB Total PE 10236 Alloc PE / Size 0 / 0 Free PE / Size 10236 / 39.98 GiB VG UUID rnFwhI-ybWH-el9e-NIgK-3vOY-hO8L-sehg7c $ sudo vgscan Reading all physical volumes. This may take a while... Found volume group "lvg-share" using metadata type lvm2
4 論理ボリュームグループをリネーム・削除する。
① リネーム
$ sudo vgrename <変更前論理ボリュームグループ名> <変更後論理ボリュームグループ名>
② 削除
$ sudo vgremove <論理ボリュームグループ名>
5 論理ボリュームを作成する
割り当て
論理ボリューム名 | 容量 |
---|---|
public | 18GB |
media | 8GB |
document | 6GB |
① LVCREATE コマンドを使用して、論理ボリュームを作成していきます。
$ sudo lvcreate --name public --size 18GB lvg-share Logical volume "public" created $ sudo lvcreate --name media --size 8GB lvg-share Logical volume "media" created $ sudo lvcreate --name document --size 6GB lvg-share Logical volume "document" created
② LVDISPLAY で確認してみます。
$ sudo lvdisplay --- Logical volume --- LV Path /dev/lvg-share/public LV Name public VG Name lvg-share LV UUID IVnPIB-hJCA-PD7o-jcpe-Et9I-zVZb-eQbcTu 〜省略〜 LV Size 18.00 GiB 〜省略〜 --- Logical volume --- LV Path /dev/lvg-share/media LV Name media VG Name lvg-share LV UUID t9tpLc-0ddp-CnmH-BVoA-HEFr-Q1dq-M4x1Bj 〜省略〜 LV Size 8.00 GiB 〜省略〜 --- Logical volume --- LV Path /dev/lvg-share/document LV Name document VG Name lvg-share LV UUID ERAqAq-vzZF-AQev-tTS0-gAJo-BnPq-MjUrf2 〜省略〜 LV Size 6.00 GiB 〜省略〜 $ sudo lvscan ACTIVE '/dev/lvg-share/public' [18.00 GiB] inherit ACTIVE '/dev/lvg-share/media' [8.00 GiB] inherit ACTIVE '/dev/lvg-share/document' [6.00 GiB] inherit
6 論理ボリュームの名称変更・削除・拡張・縮小
① 名称変更
$ sudo lvrename <変更前論理ボリューム名> <変更後論理ボリューム名>
② 削除
$ sudo lvremove <論理ボリュームパス>
③ 拡張
$ sudo lvextend -L<サイズ> <論理ボリュームパス>
例(+1GBdocument論理ボリューム容量を拡張する)
$ sudo lvextend -L+1G /dev/lvg-share/hoge
④ 縮小
$ sudo lvreduce -L <サイズ> <論理ボリュームパス>
例(document論理ボリューム容量を6GBに縮小する)
$ sudo lvreduce -L 6G /dev/sdz
7 ファイルシステムを作成する。
ここまでの手順で作成された論理ボリュームにファイルシステムを作成します。
まず、/dev/lvg-share/public
論理ボリュームにext4
ファイルシステムを作成します。
今回は、ファイルシステムを次のように割り当てていきます。
- ファイルシステム構成
論理デバイスファイルシステム/dev/lvg-share/publicext4/dev/lvg-share/mediaXFS/dev/lvg-share/documentReiserFS
public論理デバイスにext4ファイルシステムを作成する
$ sudo mkfs.ext4 /dev/lvg-share/public mke2fs 1.42.9 (4-Feb-2014) Filesystem label= OS type: Linux 〜省略〜 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
8 論理ボリュームをマウントする
ファイルシステムを作成したら、論理ボリュームをマウントし、df -h
コマンドで状態を確認してみましょう。
$ sudo mkdir /mnt/{public,media,document} $ sudo mount /dev/lvg-share/public /mnt/public $ sudo mount /dev/lvg-share/media /mnt/media $ sudo mount /dev/lvg-share/document /mnt/document $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 75G 1.2G 70G 2% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 2.0G 4.0K 2.0G 1% /dev tmpfs 394M 3.1M 391M 1% /run none 5.0M 0 5.0M 0% /run/lock none 2.0G 0 2.0G 0% /run/shm none 100M 0 100M 0% /run/user /dev/mapper/lvg--share-public 18G 44M 17G 1% /mnt/public /dev/mapper/lvg--share-media 8.0G 33M 8.0G 1% /mnt/media /dev/mapper/lvg--share-document 7.0G 33M 7.0G 1% /mnt/document
新しく作成した論理ボリュームがマウントできていることが確認出来ました。
この論理ボリュームをマウントした領域は、通常通りファイルを保存することができます。
また、通常のボリュームと同様にfstab に記述してOS 起動時に、自動的にマウントさせることもできるようになります。
$ sudo blkid | grep /dev/mapper /dev/mapper/lvg--share-public: UUID#"e184b6b8-ed2f-470b-a08b-f45637623ad4" TYPE"ext4" /dev/mapper/lvg--share-media: UUID#"ace4c3d3-12e3-43bb-8dfc-8fd0f9b73684" TYPE"xfs" /dev/mapper/lvg--share-document: UUID#"e56e8e90-46b1-4900-a447-33939e4a098f" TYPE"reiserfs" $ sudo cp -ip /etc/fstab /etc/fstab.org $ sudo vim /etc/fstab
以下のように記述します。
/etc/fstab
UUID="e184b6b8-ed2f-470b-a08b-f45637623ad4" /mnt/public ext4 defaults 0 0 UUID="ace4c3d3-12e3-43bb-8dfc-8fd0f9b73684" /mnt/media xfs defaults 0 0 UUID="e56e8e90-46b1-4900-a447-33939e4a098f" /mnt/document reiserfs defaults 0 0
fstab に記述したら、マウントのテストをしてみましょう。
$ sudo umount /mnt/{public,media,document} $ sudo mount -a $ echo $? 0
エラーなく実行できたら、OS を再起動して確認してみましょう。
$ sudo shutdown -r now # ...再起動後 $ df -h ※出力結果については省略
fstab
に記述したデバイスが問題なくマウントできていることが確認できると思います。
コメント