LVMで新規ボリュームグループに論理ボリュームを作成
最終更新日:2020/11/22 | 公開日:2013/03/31
目次
概要
2台目のハードディスクを増設し、LVMで新しいボリュームを作成します。 既存のボリュームには影響を出さずに、拡張する方法です。
拡張範囲
ディスクの拡張範囲は以下の通りです。
構成
サーバ構成
OSバージョン
Red Hat Enterprise Linux 6.4 64bit
拡張手順
パーティションの作成
増設したハードディスクが /dev/sdb として認識されるので、 全領域を1つのプライマリパーティション /dev/sdb1 として作成します。 パーティションはLVM用のシステムタイプに変更します。
# fdisk -l Disk /dev/sda: 34.4 GB, 34359738368 bytes 255 heads, 63 sectors/track, 4177 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00083f40 Device Boot Start End Blocks Id System /dev/sda1 * 1 13 102400 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 13 4178 33451008 8e Linux LVM Disk /dev/sdb: 17.2 GB, 17179869184 bytes ←このデバイスが追加された 255 heads, 63 sectors/track, 2088 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 (以下省略) # 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 0x4d4de011. 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) WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): p Disk /dev/sdb: 17.2 GB, 17179869184 bytes 255 heads, 63 sectors/track, 2088 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x4d4de011 Device Boot Start End Blocks Id System ←パーティションは表示されない Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-2088, default 1): ←何も入力せずにリターン Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-2088, default 2088): ←何も入力せずにリターン Using default value 2088 Command (m for help): t Selected partition 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): p Disk /dev/sdb: 17.2 GB, 17179869184 bytes 255 heads, 63 sectors/track, 2088 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x4d4de011 Device Boot Start End Blocks Id System /dev/sdb1 1 2088 16771828+ 8e Linux LVM ←作成したパーティションが表示される Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
物理ボリュームの初期化
作成したパーティション /dev/sdb1 をLVMの物理ボリュームとして初期化します。
# pvscan
PV /dev/sda2 VG VolGroup00 lvm2 [31.90 GiB / 9.90 GiB free]
Total: 1 [31.90 GiB] / in use: 1 [31.90 GiB] / in no VG: 0 [0 ]
# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
# pvscan
PV /dev/sda2 VG VolGroup00 lvm2 [31.90 GiB / 9.90 GiB free]
PV /dev/sdb1 lvm2 [15.99 GiB] ←追加されたことを確認
Total: 2 [47.89 GiB] / in use: 1 [31.90 GiB] / in no VG: 1 [15.99 GiB]
ボリュームグループの作成
LVMの物理ボリュームを元に新規のボリュームグループを作成します。
# vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 31.90 GiB
PE Size 4.00 MiB
Total PE 8166
Alloc PE / Size 5632 / 22.00 GiB
Free PE / Size 2534 / 9.90 GiB
VG UUID 42KD42-JpFM-rGw0-0NwI-jsa5-rgYx-zXWuxP
# vgcreate VolGroup01 /dev/sdb1
Volume group "VolGroup01" successfully created
# vgdisplay
--- Volume group ---
VG Name VolGroup01 ←追加されたことを確認
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 15.99 GiB
PE Size 4.00 MiB
Total PE 4094
Alloc PE / Size 0 / 0
Free PE / Size 4094 / 15.99 GiB
VG UUID g2AhjA-fHdG-tpDD-WMes-yTfc-k3UF-ca2Tdk
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 31.90 GiB
PE Size 4.00 MiB
Total PE 8166
Alloc PE / Size 5632 / 22.00 GiB
Free PE / Size 2534 / 9.90 GiB
VG UUID 42KD42-JpFM-rGw0-0NwI-jsa5-rgYx-zXWuxP
論理ボリュームの作成
作成したボリュームグループ VolGroup01 から論理ボリューム LogVol00 を作成します。 ボリュームグループの空きサイズを全て論理ボリューム LogVol00 に割り当てます。
# vgdisplay -v VolGroup01 Using volume group(s) on command line Finding volume group "VolGroup01" --- Volume group --- VG Name VolGroup01 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 15.99 GiB ←ボリュームグループのサイズは15.99GB PE Size 4.00 MiB Total PE 4094 Alloc PE / Size 0 / 0 ←割り当て済みサイズは0GB Free PE / Size 4094 / 15.99 GiB ←空きサイズは15.99GB VG UUID g2AhjA-fHdG-tpDD-WMes-yTfc-k3UF-ca2Tdk --- Physical volumes --- PV Name /dev/sdb1 PV UUID bOlN0r-CchY-aHia-8Kn6-Uxdx-cYeD-CNZTD2 PV Status allocatable Total PE / Free PE 4094 / 4094 # lvcreate -L 15.99G -n LogVol00 VolGroup01 Rounding up size to full physical extent 15.99 GiB Logical volume "LogVol00" created # vgdisplay -v VolGroup01 Using volume group(s) on command line Finding volume group "VolGroup01" --- Volume group --- VG Name VolGroup01 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 15.99 GiB PE Size 4.00 MiB Total PE 4094 Alloc PE / Size 4094 / 15.99 GiB ←割り当て済みサイズが15.99GBに増加 Free PE / Size 0 / 0 ←空きサイズが0GBに減少 VG UUID g2AhjA-fHdG-tpDD-WMes-yTfc-k3UF-ca2Tdk --- Logical volume --- LV Path /dev/VolGroup01/LogVol00 ←論理ボリュームが作成された LV Name LogVol00 VG Name VolGroup01 LV UUID nrJeFX-HRxz-tjOd-IVq9-0exM-9Pen-GnSISS LV Write Access read/write LV Creation host, time linuxtest, 2013-03-26 01:28:10 +0900 LV Status available # open 0 LV Size 15.99 GiB Current LE 4094 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:3 --- Physical volumes --- PV Name /dev/sdb1 PV UUID bOlN0r-CchY-aHia-8Kn6-Uxdx-cYeD-CNZTD2 PV Status allocatable Total PE / Free PE 4094 / 0
上では作成する論理ボリュームのサイズを指定して作成しましたが、 以下のようにエクステント数を指定して作成して作成することもできます。 どちらの場合も作成される論理ボリュームは同じです。
# lvcreate -l 4094 -n LogVol00 VolGroup01 Logical volume "LogVol00" created
ファイルシステムの作成
作成した論理ボリュームを ext4 ファイルシステムでフォーマットします。
# mkfs.ext4 /dev/VolGroup01/LogVol00 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1048576 inodes, 4192256 blocks 209612 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 128 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Writing inode tables: 0/128 1/128 2/128 3/128 4/128 5/128 6/128 7/128 8/128 9/128 10/128 11/128 12/128 13/128 14/128 15/128 16/128 17/128 18/128 19/128 20/128 21/128 22/128 23/128 24/128 25/128 26/128 27/128 28/128 29/128 30/128 31/128 32/128 33/128 34/128 35/128 36/128 37/128 38/128 39/128 40/128 41/128 42/128 43/128 44/128 45/128 46/128 47/128 48/128 49/128 50/128 51/128 52/128 53/128 54/128 55/128 56/128 57/128 58/128 59/128 60/128 61/128 62/128 63/128 64/128 65/128 66/128 67/128 68/128 69/128 70/128 71/128 72/128 73/128 74/128 75/128 76/128 77/128 78/128 79/128 80/128 81/128 82/128 83/128 84/128 85/128 86/128 87/128 88/128 89/128 90/128 91/128 92/128 93/128 94/128 95/128 96/128 97/128 98/128 99/128100/128101/128102/128103/128104/128105/128106/128107/128108/128109/128110/128111/128112/128113/128114/128115/128116/128117/128118/128119/128120/128121/128122/128123/128124/128125/128126/128127/128done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 31 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
マウント
フォーマットした論理ボリュームを /data ディレクトリにマウントします。
# mkdir /data
# mount -t ext4 /dev/VolGroup01/LogVol00 /data
# mount
/dev/mapper/VolGroup00-LogVol00 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,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/VolGroup00-LogVol02 on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/VolGroup01-LogVol00 on /data type ext4 (rw) ←マウントされたことを確認
自動マウント設定
mount コマンドでマウントしただけだと、Linuxを再起動するとアンマウントされた状態に戻ってしまいます。 再起動後も自動的にマウントされるように fstab ファイルに定義を記述します。
# cd /etc/ # vi fstab
ファイル名:/etc/fstab
/dev/mapper/VolGroup00-LogVol00 / ext4 defaults 1 1
UUID=17c9ae07-1e4b-44ab-b026-6df017b17012 /boot ext4 defaults 1 2
/dev/mapper/VolGroup00-LogVol02 /var ext4 defaults 1 2
/dev/mapper/VolGroup01-LogVol00 /data ext4 defaults 1 2 ←この行を追加
/dev/mapper/VolGroup00-LogVol01 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0