【Linux】Rhel/CentOS 8でLVM構成のディスク設定をする(partedコマンド)

こんにちはますのです。
先日AzureVMにディスクの追加と物理ボリュームとしてそのままマウント設定を実施しました。

【Azure】ディスク追加後にLinux仮想マシンへアタッチ&マウント設定をする

今度は物理ボリュームとしてではなく論理ボリューム(LVM)として増設してほしいとお話がありましたので対応することに。
論理ボリューム(LVM)って何だっけ…。※LPIC2所有ですすみません。

昔勉強した本に書いてあったので復習がてら実施です。CentOS8の書籍もまだ少ないので、CentOS7の技術書もまだまだ現役です。

やりたいこと

  • AzureVMに作成したCentOS8/Rhel8に5GBのLVMを設定する
  • マウント先:/data/test01
  • partedコマンドでパーティションを作成する
パーティション作成コマンドは「fdisk」と「parted」コマンドがあります。
fdiskコマンドでは2TB未満の場合にで利用可能、パーティションテーブルは旧式のMBRのみ対応となり若干の制限があります。
partedコマンドでは2TB以上、パーティションテーブルはMBR/GPT共に設定可能となります。パーティション作成までのデータ保持方法等、細かな違いはまだありますが割愛。多くの認識では上記の違いとなるようです。
今回の例ではpartedを使いますが、fdiskでも問題無く設定は出来たことを検証済なのでお好みにて。

設定前の構成

sdc1は既に物理ボリュームとしてパーティション設定済のものです。
今回はsddをLVMの対象として設定を進めていきます。

# lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda       8:0    0   30G  0 disk
L sda1    8:1    0  500M  0 part /boot
L sda2    8:2    0   29G  0 part /
L sda14   8:14   0    4M  0 part
L sda15   8:15   0  495M  0 part /boot/efi
sdb       8:16   0    4G  0 disk
L sdb1    8:17   0    4G  0 part /mnt/resource
sdc       8:32   0   10G  0 disk
L sdc1    8:33   0   10G  0 part
sdd       8:48   0    5G  0 disk

partedコマンドでパーティションを作成

コマンド「parted (デバイス名)」を行うと「(parted)」と表示されて、partedの各種オプションが打てるようになります。

partedを起動する

# parted /dev/sdd
GNU Parted 3.2
Using /dev/sdd
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

ディスク管理の方式を「gpt」に設定する

(parted) mklabel gpt  ///★gptに設定する
(parted)
(parted) p            ///★pで設定状態を確認する
Model: Msft Virtual Disk (scsi)
Disk /dev/sdd: 5369MB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:Number Start End Size File system Name Flags

ちなみにMBRにする場合は、「mklabel msdos」と設定するようになります。

パーティションを作成する

(parted) mkpart
Partition name?  []?     ///★[空白]でEnter(Part1等、任意の名前をつけてもOK)
File system type?  [ext2]?  ///★[空白]でEnter
Start? 1  ///★[1]を入力(最初から作成)
End? -0   ///★[-0]を入力(最後までを指定)
Warning: The resulting partition is not properly aligned for best performance: 1953s % 2048s != 0s
Ignore/Cancel? I  ///★[I]を入力して警告を無視する
(parted)
(parted)
(parted) p  ///★pで設定状態を確認する
Model: Msft Virtual Disk (scsi)
Disk /dev/sdd: 5369MB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number  Start   End     Size    File system  Name  Flags
 1      1000kB  5369MB  5368MB  ext2

Endで「5G」として容量を指定することも出来ます。
mkpartでパーティションを作成したので「Disk Flags」に作成した領域が表示されるようになりました。

LVMに設定する

続いて対象となるパーティションナンバー「1」に対してLVMを有効にします。

(parted) set 1 lvm on
(parted)
(parted) p   ///★pで設定状態を確認する
Model: Msft Virtual Disk (scsi)
Disk /dev/sdd: 5369MB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number  Start   End     Size    File system  Name  Flags
 1      1000kB  5369MB  5368MB  ext2               lvm

「Flags」に「lvm」と表示されたら設定完了です。

partedコマンドを終了する

(parted) quit
Information: You may need to update /etc/fstab.

以上でパーティションの作成とLVMの設定が完了となります。
最後にメッセージで「必要に応じてfstabを修正してね」って出てくれるのは親切設計。

ハードディスクの増設設定(LVM)

パーティションの作成が終わったので、作成したパーティションを論理ボリュームとして増設する設定を行います。

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

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

///★物理ボリュームの作成結果を確認する
# pvs
  PV         VG Fmt  Attr PSize  PFree
  /dev/sdd1     lvm2 ---  <5.00g <5.00g

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

# vgcreate vgdata /dev/sdd1
  Volume group "vgdata" successfully created

///★ボリュームグループの作成結果を確認する
# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  vgdata   1   0   0 wz--n- <5.00g <5.00g

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

# lvcreate -n lvdata -l 100%FREE vgdata
  Logical volume "lvdata" created.

///★論理ボリュームの作成結果を確認する
# lvs 
  LV     VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lvdata vgdata -wi-a----- <5.00g

ファイルシステム形式の設定

今回はxfs形式に変換します。

# mkfs.xfs /dev/vgdata/lvdata

動作確認:マウント設定をする

///再帰的にフォルダ作成のためオプション「-p」を指定
# mkdir -p /data/test01 

///作成したlvdataのボリュームグループ等の状態を確認
# lsblk | grep lvdata
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
 L vgdata-lvdata 253:0    0    5G  0 lvm

///マウントの実施
# mount /dev/mapper/vgdata-lvdata /data/test01

自動起動時にもマウントされるように「/etc/fstab」へも追記しましょう。

# vi /etc/fstab
///一番下などに追記する
/dev/mapper/vgdata-lvdata   /data/test01   xfs   defaults   0 0

fstab追記後は念のため「mount -a」で問題が出ないかを確認しましょう。
万が一記載に誤りがあった場合、再起動後に起動しないなどのトラブルのもととなるので注意ですね。

また、色々と忘れてることがあったので、初学者で購入した書籍は持っていると有事の際や見返すと気づきがあるので何かしら良書をもっておくことが良いと感じた対応となりました。
CentOS8とかですとこのあたりがオススメです。

今回は論理ボリューム等の作成~アタッチまでを初めてやったのです。
既に存在しているボリュームグループや論理ボリュームに増設していくには「vgextend」や「lvextend」のコマンドを使うようです。LVMにしておけば自由にボリュームの追加が出来るメリットがあるので、初期構築の時などにはこのあたりを考えながらやると幸せになれるかもしれないですね。
最新情報をチェックしよう!