CentOS7 LVM を使ってディスクを拡張する

Linux

<景品表示法に基づく表記> 本サイトのコンテンツには、商品プロモーションが含まれている場合があります。

LVMの基本的な仕組み

LVMは物理ディスクを3つの階層で論理的に管理します。

  1. PV(物理ボリューム:Physical Volume)で物理パーティションを管理
  2. VG(ボリュームグループ:Volume Group)でPVを管理
  3. LV(論理ボリューム:Logical Volume)でVGを管理
LVMの仕組み
LVMの仕組み

 

LVM によるディスク拡張

LV(論理ボリューム)の拡張はとても簡単に行う事ができます。しかし、PV(物理ボリューム)とVG(ボリューム・グループ)を正しく設定していないと実施することが出来ません。

手順が大事です。順に沿って対応してください。

PV(物理ボリューム)を作成

pvcreateコマンドを利用してPVを作成します。

# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.

実行結果は色々なコマンドから確認できます。今回はpvdisplayコマンドを利用します。

ついでに既存のVG名を確認してください。

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos ← 既存のVG名を確認
  PV Size               29.51 GiB / not usable 3.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              7554
  Free PE               11
  Allocated PE          7543
  PV UUID               VefoGZ-0R9L-eNlh-xbK8-zlNO-Ge4W-WfEm28

  "/dev/sdb1" is a new physical volume of "<8.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1 ← 新しいPVが作成
  VG Name
  PV Size               <8.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               RtIg13-3N0T-R2vP-YVd0-Stba-2ciw-0P9E8f

既存のVG(ボリューム・グループ)に割当て

新しく作成したPVをを既存のVG(centos)に割当てます。vgextendコマンドを利用します。

# vgextend centos /dev/sdb1
  Volume group "centos" successfully extended

実行結果は色々なコマンドから確認できます。今回はpvdisplayコマンドを利用します。

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               29.51 GiB / not usable 3.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              7554
  Free PE               11
  Allocated PE          7543
  PV UUID               VefoGZ-0R9L-eNlh-xbK8-zlNO-Ge4W-WfEm28

  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               centos← 既存のVGに追加された
  PV Size               <8.00 GiB / not usable 3.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              2047
  Free PE               2047
  Allocated PE          0
  PV UUID               RtIg13-3N0T-R2vP-YVd0-Stba-2ciw-0P9E8f

LVへの割当て

ディスク拡張したいLVのパスを確認します。今回はlvdisplayコマンドを利用します。

今回は「/dev/centos/root」を拡張します。

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                wWBtao-OAOk-IdMq-ch4b-vcFB-SoeS-EFScBp
  LV Write Access        read/write
  LV Creation host, time hogehoge, 2016-10-11 09:59:25 +0900
  LV Status              available
  # open                 2
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/centos/root ← 拡張したLVのパス
  LV Name                root
  VG Name                centos
  LV UUID                Vd88ms-fbbK-Shcj-mDrD-Iloj-3HDs-RONj3G
  LV Write Access        read/write
  LV Creation host, time hogehoge, 2016-10-11 09:59:26 +0900
  LV Status              available
  # open                 1
  LV Size                27.46 GiB
  Current LE             7031
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

lvextendコマンドを使って、空き領域の全てを割り当てて拡張します。

# lvextend -l +100%FREE /dev/centos/root
  Size of logical volume centos/root changed from 27.46 GiB (7031 extents) to 35.50 GiB (9089 extents).
  Logical volume centos/root successfully resized.

これでLVMは28GBから36GBに拡張されました。

まだ、ファイルシステムで拡張していないので領域は増えていません。

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    28G  3.1G   25G   11% / ← まだ拡張を認識していない。28GBのまま
devtmpfs                  485M     0  485M    0% /dev
tmpfs                     496M     0  496M    0% /dev/shm
tmpfs                     496M  7.0M  489M    2% /run
tmpfs                     496M     0  496M    0% /sys/fs/cgroup
/dev/sda1                 497M  255M  243M   52% /boot
tmpfs                     100M     0  100M    0% /run/user/1000

xfs_growfsコマンドを利用してファイルシステムを拡張します。

# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=1799936 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=7199744, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=3515, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 7199744 to 9307136
# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    36G  3.1G   33G    9% / ← 拡張を認識
devtmpfs                  485M     0  485M    0% /dev
tmpfs                     496M     0  496M    0% /dev/shm
tmpfs                     496M  7.0M  489M    2% /run
tmpfs                     496M     0  496M    0% /sys/fs/cgroup
/dev/sda1                 497M  255M  243M   52% /boot
tmpfs                     100M     0  100M    0% /run/user/1000