🐡

Ubuntuでのディスク追加手順(LVM)

2024/06/15に公開

はじめに

Ubuntuにディスクを追加してLVMを構成する手順について紹介する。
LVMを構成する際は以下の流れで作成する。
パーティション作成
PV(Phisical Volume)作成
VG(Volume Group)作成
LV(Logical Volume)作成

確認

まずはディスク追加直後の状態を確認する。
今回は32GBのディスクを2つ追加し、そこにLVMを構成する。

root@test-ubuntu01:~# lsblk | grep -E 32G
sda       8:0    0   32G  0 disk
sdb       8:16   0   32G  0 disk
root@test-ubuntu01:~#

パーティション作成

/dev/sda,/dev/sdbに対して実施。LVMフラグを忘れずつけること。

root@test-ubuntu01:~# parted /dev/sda
GNU Parted 3.4
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) mkpart
Partition name?  []?
File system type?  [ext2]? xfs
Start? 0%
End? 100%
(parted) set 1 lvm on
(parted) quit
Information: You may need to update /etc/fstab.

root@test-ubuntu01:~#

lsblkにてパーティション確認

root@test-ubuntu01:~# lsblk | grep -E 32G
sda       8:0    0   32G  0 disk
mqsda1    8:1    0   32G  0 part
sdb       8:16   0   32G  0 disk
mqsdb1    8:17   0   32G  0 part
root@test-ubuntu01:~#

PV作成

/dev/sda,/dev/sdbに対して実施。
pvcreate <partition name>

root@test-ubuntu01:~# pvcreate /dev/sda1
  Physical volume "/dev/sda1" successfully created.
root@test-ubuntu01:~#

PV作成後確認

root@test-ubuntu01:~# pvs
  PV         VG Fmt  Attr PSize   PFree
  /dev/sda1     lvm2 ---  <32.00g <32.00g
  /dev/sdb1     lvm2 ---  <32.00g <32.00g
root@test-ubuntu01:~#

VG作成

vgcreate vgname pgname

root@test-ubuntu01:~# vgcreate vg01 /dev/sda1 /dev/sdb1
  Volume group "vg01" successfully created
root@test-ubuntu01:~#

VG作成後確認

root@test-ubuntu01:~# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  vg01   2   0   0 wz--n- 63.99g 63.99g
root@test-ubuntu01:~#

LV作成

VG領域の空き容量すべてを1つのLV領域にする場合は以下(今回はこっち)
lvcreate -n <lvname> -l 100%FREE <vgname>
VG領域からサイズ指定で作成する場合は以下
lvcreate --size <GB>

root@test-ubuntu01:~# lvcreate -n lv01 vg01 -l 100%FREE
  Logical volume "lv01" created.
root@test-ubuntu01:~#

LV作成後確認

root@test-ubuntu01:~# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv01 vg01 -wi-a----- 63.99g
root@test-ubuntu01:~#

lvmとして作成されている

root@test-ubuntu01:~# lsblk | grep -E lvm
  mqvg01-lv01 252:0    0   64G  0 lvm
  mqvg01-lv01 252:0    0   64G  0 lvm
root@test-ubuntu01:~#

フォーマット、マウント

作成したLVのパスを確認する。

root@test-ubuntu01:~# lvdisplay | grep "LV Path"
  LV Path                /dev/vg01/lv01
root@test-ubuntu01:~#

フォーマットする。

root@test-ubuntu01:~# mkfs -t xfs /dev/vg01/lv01
meta-data=/dev/vg01/lv01         isize=512    agcount=4, agsize=4193792 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=16775168, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=8191, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.
root@test-ubuntu01:~#

空のディレクトリを作成し、マウントする。

root@test-ubuntu01:~# mkdir /lvmtest
root@test-ubuntu01:~# mount /dev/vg01/lv01 /lvmtest/
root@test-ubuntu01:~#

再起動等でアンマウントされないよう、fstabに記載する。

/dev/vg01/lv01  /lvmtest        xfs     defaults        0       0

マウントする

root@test-ubuntu01:~# mount -a
root@test-ubuntu01:~# mount | grep lvmtest
/dev/mapper/vg01-lv01 on /lvmtest type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
root@test-ubuntu01:~#
root@test-ubuntu01:~# df -Th | grep lvmtest
/dev/mapper/vg01-lv01 xfs        64G  489M   64G   1% /lvmtest
root@test-ubuntu01:~#

書き込み確認

root@test-ubuntu01:~# dd if=/dev/zero of=/lvmtest/ddtest bs=1M count=33792
33792+0 records in
33792+0 records out
35433480192 bytes (35 GB, 33 GiB) copied, 346.288 s, 102 MB/s
root@test-ubuntu01:~#
root@test-ubuntu01:~# df -Th | grep lvmtest
/dev/mapper/vg01-lv01 xfs        64G   34G   31G  53% /lvmtest
root@test-ubuntu01:~#

Discussion