BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【Linux】LVMとは~論理ボリュームの作成、マウントまで~

はじめに

こんにちは。
支店内の個人ロッカーが食料庫になっている、BFT名古屋支店の秋山です。
ここ最近何度もLVMを作成するタイミングがあったので、
手順として残しておこうと思います。

前提条件

・環境 RHEL7
・事前にディスクが準備されていること(今回は以下を使用)

Disk /dev/sdb: 16.1 GB, 16106127360 bytes, 31457280 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

用語説明

  • LVM論理ボリュームマネージャー
    複数のハードディスクやパーティションにまたがった記憶領域を一つのボリュームグループにまとめ、単一の論理ボリュームとして扱うことのできるディスク管理機能
    LVMを使用することで、論理ボリュームの拡大・縮小をシステムを停止せずに行うことができる

  • 物理ボリューム(Physical Volume)
    物理的な記憶媒体
    通常はディスク1つに対して1対1の構成だが、 ディスクを複数パーティションに区切ることで、パーティション単位でPVを作成することが出来る

  • ボリュームグループ(Volume Gloup)
    作成されたPVの管理を行う

  • 論理ボリューム(Logical Volume)
    実ファイルを格納する領域
    任意のファイルシステムにフォーマットすることができ、動的に拡張・縮小が可能(VGの空き容量による)

LVM作成

早速作業に取り掛かりましょう!

PV作成

まずは、物理ボリュームを作成します。

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

作成できたことを以下のコマンドで確認します。

# pvdisplay
  "/dev/sdb" is a new physical volume of "15.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb
  VG Name
  PV Size               15.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               Yq8x2i-yvli-D9Rf-N0x8-Xbdr-pb2y-5M3kNu

VG作成

次に、vgtestという名のボリュームグループを作成します。

# vgcreate vgtest /dev/sdb
  Volume group "vgtest" successfully created

作成できたことを以下のコマンドで確認します。

# vgdisplay
  --- Volume group ---
  VG Name               vgtest
  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.00 GiB
  PE Size               4.00 MiB
  Total PE              3839
  Alloc PE / Size       0 / 0
  Free  PE / Size       3839 / <15.00 GiB
  VG UUID               T7BNj3-zHPe-DfGh-S3ZK-2KSS-nzXv-4bZfrs

LV作成

次に、lvtestという名の論理ボリュームを作成します。

# lvcreate -L 500 -n lvtest vgtest
  Logical volume "lvtest" created.

〈補足〉
-L 作成する論理ボリュームのサイズを指定
(デフォルト単位はメガバイト)
-n 作成する論理ボリュームの名前を指定

作成できたことを以下のコマンドで確認します。

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/vgtest/lvtest
  LV Name                lvtest
  VG Name                vgtest
  LV UUID                eR7Iej-k53w-WIY3-GCgS-RP6m-c2q3-WO1sxc
  LV Write Access        read/write
  LV Creation host, time node1-test-1, 2022-12-23 16:47:08 +0900
  LV Status              available
  # open                 0
  LV Size                500.00 MiB
  Current LE             125
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

これで、物理ボリューム、ボリュームグループ、論理ボリュームまで作成できました。

ファイルシステム作成

次に、作成した論理ボリュームにxfsファイルシステムを作成します。

# mkfs.xfs /dev/vgtest/lvtest
meta-data=/dev/vgtest/lvtest     isize=512    agcount=4, agsize=32000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=128000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=855, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

LVMをディレクトリにマウント

LVを作成しただけでは機能しないため、今回は/opt/testディレクトリにマウントを行います。

# mount /dev/vgtest/lvtest /opt/test

マウントできたことを確認します。

# df -h
ファイルシス              サイズ  使用  残り 使用% マウント位置
devtmpfs                    909M     0  909M    0% /dev
tmpfs                       920M     0  920M    0% /dev/shm
tmpfs                       920M  8.9M  911M    1% /run
tmpfs                       920M     0  920M    0% /sys/fs/cgroup
/dev/sda3                    18G  2.1G   16G   12% /
/dev/sda1                   473M  134M  340M   29% /boot
tmpfs                       184M     0  184M    0% /run/user/0
/dev/mapper/vgtest-lvtest   497M   26M  472M    6% /opt/test
# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk
tqsda1            8:1    0  476M  0 part /boot
tqsda2            8:2    0  1.9G  0 part [SWAP]
mqsda3            8:3    0 17.7G  0 part /
sdb               8:16   0   15G  0 disk
mqvgtest-lvtest 253:0    0  500M  0 lvm  /opt/test
sr0              11:0    1  4.2G  0 rom

作成した論理ボリュームlvtest
/opt/testにマウントされていることが確認できました。

マウント後に、touchやviでファイル作成後rmで削除し、読み書きができることまで 確認してみて下さいね。

以上で完了となります。

終わりに

今回はLVMの作成手順をまとめてみました。
今後も学んだ内容をアウトプットしていこうと思います。
最後までご覧いただきありがとうございました!

参考

LVM論理ボリュームマネージャー
第1章 LVM 論理ボリュームマネージャー Red Hat Enterprise Linux 7 | Red Hat Customer Portal