47
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ディップAdvent Calendar 2016

Day 10

LVM ディスク増設手順

Last updated at Posted at 2016-12-05

背景

業務でローカルディスクが足りなくなる事象が発生した為、
ディスクの容量追加をしてみました。
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
47
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
47
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?