15
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

LVMの環境構築手順

1 LVM(Logical Volume Manage)とは?

複数のハードディスクをひとつの論理ボリュームとして扱うことができるディスク管理機能です。
以下の手順で、論理ボリューム上にファイルシステムを作成し、それをマウントしてみます。

物理ボリューム作成(pvcreate)
    ↓
ボリュームグループ作成(vgcreate)
    ↓
論理ボリューム作成(lvcreate)
    ↓
論理ボリュームにファイルシステム作成
    ↓
作成したファイルシステムのマウント

ここでは、本物のハードディスクが用意できないため、ループバックデバイスを使用します。
ループバックデバイスを使って、お手軽にLVMを試してみます。

2 環境

VMware Workstation 15 Player上の仮想マシンを使いました。
仮想マシンの版数は以下のとりです。

CentOSの版数
[root@server ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
カーネル版数
[root@server ~]# uname -r
3.10.0-957.el7.x86_64
lvm2パッケージ版数
[root@server ~]# rpm -qa|grep lvm2
lvm2-2.02.180-8.el7.x86_64

3 LVMコマンド一覧

LVMに関するコマンドは非常にたくさんあります。
ここでは、その一部を示します。

3.1 物理ボリュームの管理コマンド

コマンド 概要
pvcreate 物理ボリュームの作成
pvdisplay 物理ボリュームの表示
pvremove 物理ボリュームの削除

3.2 ボリュームグループの管理コマンド

コマンド 概要
vgcreate ボリュームグループの作成
vgdisplay ボリュームグループの表示
vgremove ボリュームグループの削除
vgextend  ボリュームグループの拡張
vgreduce ボリュームグループの縮小

3.3 論理ボリュームの管理コマンド

コマンド 概要
lvcreate 論理ボリュームの作成
lvdisplay 論理ボリュームの表示
lvremove 論理ボリュームの削除
lvextend 論理ボリュームの拡張
lvreduce 論理ボリュームの縮小

3.4 LVM関連のコマンド

LVM関連のコマンド
[root@server ~]# lvm -h
  Available lvm commands:
  Use 'lvm help <command>' for more information

  config          Display and manipulate configuration information
  devtypes        Display recognised built-in block device types
  dumpconfig      Display and manipulate configuration information
  formats         List available metadata formats
-以下、略-

4 事前準備

4.1 ファイルの作成

ループバックデバイスとして使うファイルを2つ作成します。
ファイルサイズはともに500Mです。

ファイルの作成

[root@server ~]# dd if=/dev/zero of=disk1.img bs=1024 count=512000
[root@server ~]# dd if=/dev/zero of=disk2.img bs=1024 count=512000

なお、ddコマンドの使い方はddコマンドの使い方を参照ください。

作成したファイルを確認します。

ファイルの確認
[root@server ~]# ls -lh disk*
-rw-r--r--. 1 root root 500M  3月 14 16:28 disk1.img
-rw-r--r--. 1 root root 500M  3月 14 16:28 disk2.img

4.2 ループバックデバイスの作成

ループバックデバイスを作成します。

ループバックデバイスの作成
[root@server ~]# losetup -f /root/disk1.img
[root@server ~]# losetup -f /root/disk2.img

作成したループバックデバイスを確認します。

ループバックデバイスの確認
[root@server ~]# losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /root/disk1.img
/dev/loop1         0      0         0  0 /root/disk2.img

なお、losetupコマンドの使い方はlosetupコマンドの使い方を参照ください。

5 物理ボリュームの作成(pvcreate)

物理ボリュームの作成
[root@server ~]# pvcreate /dev/loop0
  Physical volume "/dev/loop0" successfully created.
物理ボリュームの作成
[root@server ~]# pvcreate /dev/loop1
  Physical volume "/dev/loop1" successfully created.

作成した物理ボリュームを確認します。

pvscanによる確認
[root@server ~]# pvscan
  PV /dev/loop0                      lvm2 [500.00 MiB]
  PV /dev/loop1                      lvm2 [500.00 MiB]
  Total: 2 [1000.00 MiB] / in use: 0 [0   ] / in no VG: 2 [1000.00 MiB]

pvdisplayでも物理ボリュームを確認することができます。

pvdisplayによる確認
[root@server ~]# pvdisplay
  "/dev/loop0" is a new physical volume of "500.00 MiB"
  --- NEW Physical volume ---
  PV Name               /dev/loop0
  VG Name
  PV Size               500.00 MiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               wDYXZ3-cJqS-c6iV-v2Dc-zjJI-0ze5-bsD4nZ

  "/dev/loop1" is a new physical volume of "500.00 MiB"
  --- NEW Physical volume ---
  PV Name               /dev/loop1
  VG Name
  PV Size               500.00 MiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               V04G1v-1Fmy-fISY-AKml-eIYq-aBA3-HH4g1q

6 ボリュームグループの作成(vgcreate)

/dev/loop0/dev/loop1から、
vg01という名前のボリュームグループを作成します。

ボリュームグループの作成
[root@server ~]# vgcreate vg01 /dev/loop0 /dev/loop1
  Volume group "vg01" successfully created

作成したボリュームグループを確認します。
vg01という名前のボリュームグループが作成されたことがわかります。

ボリュームグループの確認
[root@server ~]# vgdisplay
  --- Volume group ---
  VG Name               vg01
  System ID
  Format                lvm2
  Metadata Areas        2
  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                2
  Act PV                2
  VG Size               992.00 MiB
  PE Size               4.00 MiB
  Total PE              248
  Alloc PE / Size       0 / 0
  Free  PE / Size       248 / 992.00 MiB
  VG UUID               deT64u-gNOE-oqTH-1nU1-IorJ-IKTp-HHrR61

7 論理ボリュームの作成(lvcreate)

ボリュームグループ(vg01)にlv01という名前の論理ボリューム(800M)を作成します。

論理ボリュームの作成
[root@server ~]# lvcreate -L 800M -n lv01 vg01
  Logical volume "lv01" created.

作成した論理ボリュームを確認します。
lv01という名前の論理ボリュームが作成できたことがわかります。

論理ボリュームの作成
[root@server ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg01/lv01
  LV Name                lv01
  VG Name                vg01
  LV UUID                9p2USD-Ui3r-vZYb-GnjV-GW9W-6Zdw-ybnJh2
  LV Write Access        read/write
  LV Creation host, time server, 2020-03-14 16:31:27 +0900
  LV Status              available
  # open                 0
  LV Size                800.00 MiB
  Current LE             200
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

8 ファイルシステムの作成

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

xfsファイルシステムの作成
[root@server ~]# mkfs.xfs /dev/vg01/lv01
meta-data=/dev/vg01/lv01         isize=512    agcount=4, agsize=51200 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=204800, 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

9 ファイルシステムのマウント

作成したファイルシステムを/mntにマウントします。

ファイルシステムのマウント
[root@server ~]# mount -o loop /dev/vg01/lv01 /mnt

マウントしたファイルシステムを確認します。

ファイルシステムの確認
[root@server ~]# df -ht xfs
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/sda3         20G  4.9G   15G   25% /
/dev/sda1        253M  155M   98M   62% /boot
/dev/loop2       797M   33M  765M    5% /mnt

10 あと始末

作成したファイルシステム等を削除します。

ファイルシステムのアンマウント
[root@server ~]# umount /mnt/
論理ボリュームの削除
[root@server ~]# lvremove /dev/vg01/lv01
Do you really want to remove active logical volume vg01/lv01? [y/n]: y
  Logical volume "lv01" successfully removed
ボリュームグループの削除
[root@server ~]# vgremove vg01
  Volume group "vg01" successfully removed
物理ボリュームの削除(/dev/loop0)
[root@server ~]# pvremove /dev/loop0
  Labels on physical volume "/dev/loop0" successfully wiped.
物理ボリュームの削除(/dev/loop1)
[root@server ~]# pvremove /dev/loop1
  Labels on physical volume "/dev/loop1" successfully wiped.
ループバックデバイスの削除
[root@server ~]# losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /root/disk1.img
/dev/loop1         0      0         0  0 /root/disk2.img
[root@server ~]# losetup -d /dev/loop0
[root@server ~]# losetup -d /dev/loop1
[root@server ~]# losetup -l
[root@server ~]#

Z 参考情報

Linux教科書 LPICレベル2 スピードマスター問題集 Version4.5対応

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
15
Help us understand the problem. What are the problem?