CentOS ディスク追加~LVM方式~
インフラエンジニアのしずくです<(_ _)>
CentOS ディスクの追加~共通~の続きの一つLVMの設定方法について今回はご紹介します!
【LVM方式・ディスク設定】
パーティション作成
下記のコマンドでパーティションの作成を行います。(ここでは2つのパーティションに分割しています)
parted 【「parted -l」で確認したデバイス名】
print
mklabel gpt
mkpart
【「parted -l」で確認したデバイス名】1
xfs
0%
50%
print
mkpart
【「parted -l」で確認したデバイス名】2
xfs
50%
100%
print
quit
実際の実行例を見たほうがわかりやすいので、見てみましょう!
[root@localhost ~]# parted /dev/sdb
GNU Parted 3.2
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
#「print」コマンドで作業前の状態を確認します。
(parted) print
エラー: /dev/sdb: ディスクラベルが認識できません。
モデル: VMware, VMware Virtual S (scsi)
ディスク /dev/sdb: 10.7GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: unknown
ディスクフラグ:
#GPT方式のパーティションラベルを設定します。
(parted) mklabel gpt
#1つ目のパーティションを作成します。
(parted) mkpart
パーティションの名前? []? /dev/sdb1
ファイルシステムの種類? [ext2]? xfs
開始? 0%
終了? 50%
#2つ目のパーティションを作成します。
(parted) mkpart
パーティションの名前? []? /dev/sdb2
ファイルシステムの種類? [ext2]? xfs
開始? 50%
終了? 100%
#「print」コマンドで作業後の状態を確認します。
(parted) print
モデル: VMware, VMware Virtual S (scsi)
ディスク /dev/sdb: 10.7GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 5369MB 5368MB xfs /dev/sdb1
2 5369MB 10.7GB 5368MB xfs /dev/sdb2
(parted) quit
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
「mkpart」で指定する「パーティションの名前? []?」は任意でパーティションに割り当てる名称を決めますが、基本的にはデバイス名の後ろに連番を割り当てることが多いです。「ファイルシステムの種類? [ext2]?」は設定するファイルシステムを指定します。(今回はxfsを指定しています)「開始?」、「終了?」についてはパーティションの容量を決定します。(5GBで指定するといったことはできません、開始・終了を指定するしかないです。)
物理ボリューム(PV)作成
ここからはLVMの設定になります。物理ボリューム(PV)→ボリュームグループ(VG)→論理ボリューム(LV)の順で作成していきます。また、今回はそれぞれのパーティションを一つの論理ボリュームで管理するような形式にさせていただきます。
PV確認コマンド
pvdisplay
こちら実行例です。
[root@localhost ~]# pvdisplay
"/dev/sdb1" is a new physical volume of "<5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size <5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 3lpfA8-uwCW-QPm0-ozGH-EvqQ-8DGn-rnye7z
PV作成コマンド
pvcreate 【パーティション名】
こちら実行例です。
[root@localhost ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
PV削除コマンド
pvremove
こちら実行例です。
[root@localhost ~]# pvremove /dev/sdb2
Labels on physical volume "/dev/sdb2" successfully wiped.
ボリュームグループ(VG)作成
VG確認コマンド
vgdisplay
こちら実行例です。
[root@localhost ~]# 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 9.99 GiB
PE Size 4.00 MiB
Total PE 2558
Alloc PE / Size 0 / 0
Free PE / Size 2558 / 9.99 GiB
VG UUID 3SUGZM-G6ut-GQlc-9hMr-dxi4-yjh2-vHtDw3
VG作成コマンド
vgcreate 【VG名】 【PV名(複数でも一つでも可能)】
こちら実行例です。
[root@localhost ~]# vgcreate vg01 /dev/sdb1 /dev/sdb2
Volume group "vg01" successfully created
VG削除コマンド
vgremove 【VG名】
こちら実行例です。
[root@localhost ~]# vgremove vg01
Volume group "vg01" successfully removed
論理ボリューム(LV)作成
LV確認コマンド
lvdisplay
こちら実行例です。
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vg01/lv01
LV Name lv01
VG Name vg01
LV UUID hS3rvD-TAN6-u5M9-ac1j-3HFs-26mQ-0a7Nd2
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2021-10-01 04:10:10 -0400
LV Status available
# open 0
LV Size 9.99 GiB
Current LE 2558
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
LV作成コマンド
lvcreate -n 【LV名】 -l 100%FREE 【VG名】
こちら実行例です。 「-n」でLVの名称を指定、「-l」でextents サイズ(作成する論理ボリュームのサイズ)を指定します。
[root@localhost ~]# lvcreate -n lv01 -l 100%FREE vg01
Logical volume "lv01" created.
LV削除コマンド
lvremove /dev/【VG名】/【LV名】
こちら実行例です。
[root@localhost ~]# lvremove /dev/vg01/lv01
★こちらで削除の確認をされていますので、「y」で削除しましょう。
Do you really want to remove active logical volume vg01/lv01? [y/n]: y
Logical volume "lv01" successfully removed
領域フォーマット
今回はxfsというファイルシステムへフォーマットしてOSが該当のLVMを使用できるようにします。
※ほかのファイルシステムへフォーマットしても問題ありません。
blkid
こちら、実行例になります。TYPEがファイルシステムの形式、UUIDはファイルシステムを識別するためのUUID、PARTUUIDはパーティションを識別するためのUUIDです。
※UUIDとは全世界で重複することがないようにされている一意のIDです。
[root@localhost ~]# blkid
/dev/sda1: UUID="4289adec-b890-424f-aa6e-1fcd5b6e65eb" TYPE="ext4" PARTUUID="f5591a1e-01"
/dev/sda2: UUID="bEKvBR-hojT-563r-Kc16-AnIQ-TUbh-fBHDPw" TYPE="LVM2_member" PARTUUID="f5591a1e-02"
下記2つのコマンドが実際にxfsというファイルシステムでフォーマットをかけるコマンドになります。
mkfs.xfs 【作成したLVM(/dev/【VG名】/【LV名】)】
もしくは
mkfs -t xfs 【作成したLVM(/dev/【VG名】/【LV名】)】
こちら、実行例になります。上記どちらのコマンドを実行しても同様の結果が得られます。
[root@localhost ~]# mkfs.xfs /dev/vg01/lv01
meta-data=/dev/vg01/lv01 isize=512 agcount=4, agsize=654848 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=2619392, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
もし下記のような結果が返ってきた場合、ディスクが空でない場合などに出力されます。その場合は「-f」オプションを付与して上記コマンドを実行してください。
mkfs.xfs: /dev/sdb appears to contain a partition table (gpt).
mkfs.xfs: Use the -f option to force overwrite.
LVで作成した領域のマウント
下記のコマンドでデバイスをマウントしましょう!
こちらで注意していただきたいのは、マウントポイントは先に作成しておく必要があります。こちらの作成は「mkdir」コマンドなどを使用してディレクトリを作成すればOKです!
マウント状態を出力するコマンドです。
※作業の前後で実行してください。
df -h
こちら実行結果です。「ファイルシス(テム)」はデバイス名、「サイズ」は総容量、「使用」は使用領域サイズ、「残り」は空き容量、「使用%」は使用率、「マウント位置」はマウント先を示しています。
※こちらのサイズなどはあくまでOSが認識している領域のみなります。
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 382M 0 382M 0% /dev
tmpfs 399M 0 399M 0% /dev/shm
tmpfs 399M 5.7M 393M 2% /run
tmpfs 399M 0 399M 0% /sys/fs/cgroup
/dev/mapper/cl-root 37G 1.6G 36G 5% /
/dev/sda1 976M 136M 774M 15% /boot
tmpfs 80M 0 80M 0% /run/user/0
/dev/sdb 10G 104M 9.9G 2% /data
こちらのコマンドで実際にマウントしましょう。 こちらは実行結果は基本的に帰ってきません!
mount 【作成したLVM(/dev/【VG名】/【LV名】)】 【マウント先のディレクトリ(マウントポイント)】
ここまで実施しただけでは、OS再起動する度にマウントしなければいけません。そのため、fstabというファイルにOS再起動を行っても、自動でマウントさせる設定を記載します。
上記の上記の中で確認した「blkid」コマンドの結果のUUIDを控えて、下記のコマンドで、fstabファイルのバックアップと編集を行います。
cp -p /etc/fstab /etc/fstab_org
vi /ets/fstab
「cp -p」コマンドはパーミッションや所有権などを保持したままファイルをコピーします。また「vi」コマンドはファイルを編集するためのコマンドで、入力モードになるためにはいろいろな方法があるのですが今回はひとまず、「i」を押下して、下記の内容に合わせて記載してください。また、「vi」編集を終了させるには「Esc」キーで編集モード(インサートモード)から抜けて、保存して完了させる場合は「:wq」、保存せず終了する場合は「:q!」を入力します。
#このような形で記載されています。
/dev/mapper/cl-root / xfs defaults 0 0
UUID=4289adec-b890-424f-aa6e-1fcd5b6e65eb /boot ext4 defaults 1 2
/dev/mapper/cl-swap swap swap defaults 0 0
#今回の記載は下記のようにしましょう。(xfsのファイルシステムでフォーマットした場合のみです。)
#また、それぞれ半角スペースで区切っていますので、区切り忘れがないか確認してください!
UUID=【控えたUUID】 【マウントポイント】 xfs defaults 0 0
「df -h」で作業前後を確認しながら、下記のコマンドでfstabに記載された内容通りにマウントされるかを確認します。こちらは実行結果は基本的に帰ってきません!
mount -a
おわりに
こちらで、取り付けたディスクをLVMにてOS上のデバイスとして利用させる方法は終わりです!お疲れ様でした(❁´ω`❁)
ディスカッション
コメント一覧
まだ、コメントがありません