Edited at

LVM ディスク増設手順

More than 1 year has passed since last update.


背景

業務でローカルディスクが足りなくなる事象が発生した為、

ディスクの容量追加をしてみました。

LVMだったので、LVMでの増設手順となります。


そもそもLVMって?

LVM(logical volume manager)とは、

複数のディスクをひとつボリュームグループにまとめ、論理ボリューム(LV)として扱うことのできる機能のこと。

論理的にディスクを扱うため、オンラインでの作業も可能ですね!

変更前のLVM構成はこんな感じ!

1.jpeg

今回やることは、上記から、物理デバイス「xvdf1」をLVMグループに追加して、

LVMボリュームも拡張する。手順を記載します。

図にまとめるとこんな感じ!

2.jpeg


前提

 ・増設するディスクはOSでデバイス認識していること。


手順


1. 状態確認


1.1.rootユーザにスイッチする。

$ su -


1.2.増設する物理デバイスを確認する。

# df -h

Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
14G 11G 2.6G 80% /       //容量が足りないボリューム。増設します!
tmpfs 498M 0 498M 0% /dev/shm
/dev/xvda1 477M 47M 406M 11% /boot

# fdisk -l

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x0002e2c8

Device Boot Start End Blocks Id System
/dev/xvda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/xvda2 64 2089 16264192 8e Linux LVM

Disk /dev/mapper/VolGroup-lv_root: 14.9 GB, 14935916544 bytes   //既存LVMボリューム
255 heads, 63 sectors/track, 1815 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

Disk /dev/mapper/VolGroup-lv_swap: 1715 MB, 1715470336 bytes     
255 heads, 63 sectors/track, 208 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

Disk /dev/xvdf: 32.2 GB, 32212254720 bytes        //既存物理デバイス
255 heads, 63 sectors/track, 3916 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


2. 新規追加する物理デバイスのパーティション設定


2.1.新規追加する物理デバイスのfdisk

# fdisk /dev/xvdf

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x7c1bfbf1.
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): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3916, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-3916, default 3916):
Using default value 3916

Command (m for help):
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

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
1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx
5 Extended 42 SFS 86 NTFS volume set da Non-FS data
6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt
9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access
a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT
1e Hidden W95 FAT1
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/xvdf: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, total 62914560 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: 0x7c1bfbf1

Device Boot Start End Blocks Id System
/dev/xvdf1 63 62910539 31455238+ 8e Linux LVM

Command (m for help):
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


2.2.パーティション作成確認

# fdisk -l



Device Boot Start End Blocks Id System
/dev/xvdf1 1 3916 31455238+ 8e Linux LVM

SystemLinux LVMであることが重要です!


3. LVMに物理デバイス増設


3.1.LVMのデバイス状況確認(初期状態確認)

# pvscan

PV /dev/xvda2 VG VolGroup lvm2 [15.51 GiB / 0 free]     //今は1個しかない!
Total: 1 [15.51 GiB] / in use: 1 [15.51 GiB] / in no VG: 0 [0 ]


3.2.LVMに物理デバイス認識

# pvcreate /dev/xvdf1

Physical volume "/dev/xvdf1" successfully created


3.3.LVMにデバイスが認識されたことを確認

# pvscan

PV /dev/xvda2 VG VolGroup lvm2 [15.51 GiB / 0 free]
PV /dev/xvdf1 lvm2 [30.00 GiB]       //認識させた!
Total: 2 [45.51 GiB] / in use: 1 [15.51 GiB] / in no VG: 1 [30.00 GiB] 


3.4.LVMボリュームグループ状態確認

# vgdisplay -v

DEGRADED MODE. Incomplete RAID LVs will be processed.
Finding all volume groups
Finding volume group "VolGroup"
--- Volume group ---
VG Name VolGroup     //LVMのボリュームグループ
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 15.51 GiB
PE Size 4.00 MiB
Total PE 3970
Alloc PE / Size 3970 / 15.51 GiB    //現状のボリュームサイズ
Free PE / Size 0 / 0          
VG UUID 4431gC-stvB-LEil-fhM7-WT2F-y4DG-36Uf6w

--- Logical volume ---
LV Path /dev/VolGroup/lv_root   //LVMボリューム(/)
LV Name lv_root
VG Name VolGroup
LV UUID UTPDa9-4C6b-S0Yk-npmP-HMOM-ZGs0-TctA1e
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2015-03-05 19:27:09 +0900
LV Status available
# open 1
LV Size 13.91 GiB
Current LE 3561
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

--- Logical volume ---
LV Path /dev/VolGroup/lv_swap   //LVMボリューム(swap)
LV Name lv_swap
VG Name VolGroup
LV UUID vlCsmT-W0HL-q3wo-3tWf-jL2A-e2mB-C6zAGl
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2015-03-05 19:27:36 +0900
LV Status available
# open 1
LV Size 1.60 GiB
Current LE 409
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1

--- Physical volumes ---
PV Name /dev/xvda2      //物理デバイス
PV UUID QONnAQ-jouG-UzVx-t4OD-jNFQ-ZEXp-6O30i0
PV Status allocatable
Total PE / Free PE 3970 / 0


3.5.LVMのVolume groupへ物理デバイス追加

# vgextend VolGroup /dev/xvdf1 

Volume group "VolGroup" successfully extended


3.6.LVMの状態確認

# vgdisplay -v

DEGRADED MODE. Incomplete RAID LVs will be processed.
Finding all volume groups
Finding volume group "VolGroup"
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 45.50 GiB
PE Size 4.00 MiB
Total PE 11649
Alloc PE / Size 3970 / 15.51 GiB
Free PE / Size 7679 / 30.00 GiB
VG UUID 4431gC-stvB-LEil-fhM7-WT2F-y4DG-36Uf6w

--- Logical volume ---
LV Path /dev/VolGroup/lv_root
LV Name lv_root
VG Name VolGroup
LV UUID UTPDa9-4C6b-S0Yk-npmP-HMOM-ZGs0-TctA1e
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2015-03-05 19:27:09 +0900
LV Status available
# open 1
LV Size 13.91 GiB
Current LE 3561
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

--- Logical volume ---
LV Path /dev/VolGroup/lv_swap
LV Name lv_swap
VG Name VolGroup
LV UUID vlCsmT-W0HL-q3wo-3tWf-jL2A-e2mB-C6zAGl
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2015-03-05 19:27:36 +0900
LV Status available
# open 1
LV Size 1.60 GiB
Current LE 409
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1

--- Physical volumes ---
PV Name /dev/xvda2
PV UUID QONnAQ-jouG-UzVx-t4OD-jNFQ-ZEXp-6O30i0
PV Status allocatable
Total PE / Free PE 3970 / 0

PV Name /dev/xvdf1              //新規物理デバイス認識
PV UUID Y32Nsg-YHoG-mPvV-EvMx-h5tr-eD3x-t1HwXd
PV Status allocatable
Total PE / Free PE 7679 / 7679


3.7.LVMのボリューム拡張

# lvextend -l +100%FREE /dev/VolGroup/lv_root

Size of logical volume VolGroup/lv_root changed from 13.91 GiB (3561 extents) to 43.91 GiB (11240 extents).
Logical volume lv_root successfully resized


3.8.LVMのボリューム拡張確認 (vgdisplay -v)

# vgdisplay -v 

DEGRADED MODE. Incomplete RAID LVs will be processed.
Finding all volume groups
Finding volume group "VolGroup"
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 45.50 GiB
PE Size 4.00 MiB
Total PE 11649
Alloc PE / Size 11649 / 45.50 GiB      //ディスク増設
Free PE / Size 0 / 0
VG UUID 4431gC-stvB-LEil-fhM7-WT2F-y4DG-36Uf6w

--- Logical volume ---
LV Path /dev/VolGroup/lv_root
LV Name lv_root
VG Name VolGroup
LV UUID UTPDa9-4C6b-S0Yk-npmP-HMOM-ZGs0-TctA1e
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2015-03-05 19:27:09 +0900
LV Status available
# open 1
LV Size 43.91 GiB
Current LE 11240
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

--- Logical volume ---
LV Path /dev/VolGroup/lv_swap
LV Name lv_swap
VG Name VolGroup
LV UUID vlCsmT-W0HL-q3wo-3tWf-jL2A-e2mB-C6zAGl
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2015-03-05 19:27:36 +0900
LV Status available
# open 1
LV Size 1.60 GiB
Current LE 409
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1

--- Physical volumes ---
PV Name /dev/xvda2
PV UUID QONnAQ-jouG-UzVx-t4OD-jNFQ-ZEXp-6O30i0
PV Status allocatable
Total PE / Free PE 3970 / 0

PV Name /dev/xvdf1
PV UUID Y32Nsg-YHoG-mPvV-EvMx-h5tr-eD3x-t1HwXd
PV Status allocatable
Total PE / Free PE 7679 / 0


3.9.LVMボリュームのフォーマット

# resize2fs /dev/VolGroup/lv_root

resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 3
Performing an on-line resize of /dev/VolGroup/lv_root to 11509760 (4k) blocks.
The filesystem on /dev/VolGroup/lv_root is now 11509760 blocks long.


3.10.LVMボリュームの拡張確認(df -h)

# df -h

Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
44G 11G 31G 26% /         //ディスク増設
tmpfs 498M 0 498M 0% /dev/shm
/dev/xvda1 477M 47M 406M 11% /boot