RHCSA試験対策 - 物理ドライブをLinux OS上でデータ保存域として使うまでの一般的な流れ(応用編/LVMを使う場合)


RHCSA試験対策 - 物理ドライブをLinux OS上でデータ保存域として使うまでの一般的な流れ(応用編/LVMを使う場合)

本記事は、以下のページの続編となりますのでご一読頂いてから本記事をお読み頂けるとご理解を深められると思います。
RHCSA試験対策 - 物理ドライブをLinux OS上でデータ保存域として使うまでの一般的な流れ(基本編)

LVMとは

簡単に説明をすると、従来のパーティションに対して次のような機能を提供してくれる機能です。

  1. 複数のパーティションを連結して、1つのパーティションとして取り扱う
  2. パーティションサイズの伸縮機能の提供
  3. スナップショット機能の提供
  4. RAIDのようなミラーリングやストライピング

ワークステーションや一般的なパソコン利用者向けというよりは、エンタープライズインフラでの活用ケースの方が多そうです。

Linux環境の場合、WindowsやVMware vSphereなどの他のOSと違い、ライセンスはサブスクリプション契約であり、エディションのような機能差を伴う制限は有りませんので、もちろん上記のような非エンタープライズ環境の場合でもサブスクリプション契約があればどなたでも活用出来ます。

なお、LVMについてもっと知りたい方は次のような情報をご確認ください。

第1章 論理ボリューム - Red Hat Enterprise Linux 8
Linux豆知識 085 LVM(logical volume manager:論理ボリューム管理)- LinuC
論理ボリュームマネージャ - Wikipedia
LVMで楽々ディスク管理 - ITmedia

LVMを使ってパーティションマウントまで行う流れ

基本的な流れは次の通りです。
1. LVMがインストールされていることを確認する
2. Physical Volumeを構成する
3. Volume Groupを構成する
4. Logical Volumeを構成する
5. Logical Volumeをファイルシステムでフォーマットする
6. 上記でフォーマットしたファイルシステムをマウントする

それでは上記の流れに従い、各ステップについて見ていきたいと思います。

1. LVMがインストールされていることを確認する

rpm -qa | grep lvm
解説 インストール済みのパッケージを確認する。上記ではlvmという文字列を含むもののみを表示するようにしている。

王道な確認方法ですね。
それ以外の方法としては、yumコマンドで当該パッケージの存在を確認することも出来ます。

yum install lvm2
解説 レポジトリからlvm2をインストールする。

lvm自体は大変メジャーなパッケージなので上から3行目で"already installed."と言われました。

2. Physical Volumeを構成する

LVMで取り扱う容量を提供してくれる最小単位が"Physical Volume(以下PV)"です。
今回は、/dev/sdbと/dev/sdcの2つのドライブを、1つのVolumeとして取り扱うように構成しようと思います。

下図ではいくつかのコマンドを実行しています。図の下の方に解説を入れます。

1つ目のコマンド lsblk - 現在のドライブ構成の視認(sdb/sdcは接続済み)
2つ目のコマンド pvdisplay - 現在の"Physical Volume"の有無を確認(初期インストール時に自動構成されたPVのみ存在している)
3つ目のコマンド pvcreate /dev/sdb - sdbをPV化するコマンド(しかし該当のドライブは、PV化出来ずエラーが出る)
4つ目のコマンド pvcreate /dev/sdc - sdcをPV化するコマンド(しかし該当のドライブは、PV化出来ずエラーが出る)
5つ目のコマンド parted /dev/sdb print - sdbのパーティションテーブルを確認(GPT形式である)
6つ目のコマンド parted /dev/sdc print - sdcのパーティションテーブルを確認(GPT形式である)

前回の検証の際に、2つのドライブをGPTドライブとしてパーティションテーブルを作成していた事が要因で、
今回のエラーに当たりました。一度もパーティションテーブルを構成したことがない環境であればこのエラーには当たりません。
今回はパーティションテーブルの削除が必要でしたので、以下の記事に掲載した方法で実施致しました。
RHCSA試験対策 - パーティションテーブルの削除方法

改めてPVの作成を行います。次のコマンドを実行し、正常に作成が終わり且つステータスの確認を行いました。

pvcreate /dev/sdb - /dev/sdbをPV化
pvcreate /dev/sdc - /dev/sdcをPV化
pvdisplay - OS上で認識されたPVを表示


次は作成した2つのPVを、1つのVolume Group化します。

3. Volume Groupを構成する

Volume Group(以下VG)とは、1つ以上のPVの集合体です。今回は/dev/sdbと/dev/sdcの2つを合体させます。
それぞれのドライブのサイズは20GBですので、作業後は40GBのサイズを持つ1つのVGが構成されます。

初めに作業前に、OS上に存在するVGを確認します。

vgdisplay
解説 OS上で認識されたVGを表示

CentOSの初期インストールの際に構成されたVGが1つだけ存在しています。
これから1つのVGを作成するので、作業後はもう1つのVGが表示されるはずです。

vgcreate VGにつけたい名前 vgに含めたいPV名
実行例 vgcreate vg8010 /dev/sdb /dev/sdc
解説 /dev/sdbと/dev/sdcを使って、1つのボリュームグループ"vg8010"という名前のVGを作成するという操作コマンド

vgdisplayの結果からも、vg8010が約40GBで構成されていることが確認出来ました。

4. Logical Volumeを構成する


作成した40GBのサイズを持つVGから30GBのサイズを持つLogical Volumeを切り出します。
lvcreate -n LVにつけたい名前 -L 確保したい容量数 LVをホストするVG名
実行例 lvcreate -n lv8010 -L 30G /dev/vg8010
解説 30GBの容量を持つLV"lv8010"を、/dev/vg8010から切り出すコマンド


ここまでくれば、後はフォーマットしてマウントするだけです。
この作業については本シリーズの基本編で解説したものと同じ作業を行います。

5. Logical Volumeをファイルシステムでフォーマットする

コマンドの実行の様子は後半に掲載しています。

mkfs.ext4 フォーマットしたいパーティション
実行例 mkfs.ext4 /dev/vg8010/lv8010

6. 上記でフォーマットしたファイルシステムをマウントする

コマンドの実行の様子は後半に掲載しています。

mount マウントしたいパーティション マウント先のディレクトリ
実行例 mount /dev/vg8010/lv8010 /mnt/lvtest

ステップ5と6のコマンドを実行した様子がこちらです。
lsblkを実行して見ると、sdbとsdcからlvm8010が切り出され、それが/mnt/lvtestにマウントされている様子が確認出来ます。

LVM環境における、一般的なマウントまでの流れは以上となります。もちろん再起動後の自動マウントについては/etc/fstabに対してのUUID及びマウント先の指定記述をお忘れないようにお願いします。(手順は本シリーズの基本編で紹介していますのでそちらをご覧ください。)

LVMのサイズをオンライン拡張してみる

LVMの魅力的な機能の1つが、無停止での容量拡張です。

今回の環境では40GBのサイズがあるVGに対して、30GBのLVを構成しましたので、10GBの空きがあります。
ですので、LVのサイズを30GBから35GBまで延伸してみたいと思います。

パーティションのサイズを確認するコマンド
parted /dev/vg8010/lv8010 print

下図ではパーティションサイズが32.2GBである事が分かります

次にファイルシステムの現在の容量を確認してみましょう。

ファイルシステムのサイズを確認するコマンド
df -h

また、オンラインでの拡張(データを失わない)作業という事を確認するためにテスト用ファイルとして"rhcsa"というファイルを配置しました。

それではここから2種類のコマンドを使用します。

1. 論理ボリューム"lv8010"に対して、5GBの容量を追加するコマンド
lvextend 拡張したいLV名 -L +追加したい容量
実行例 lvextend /dev/vg8010/lv8010 -L +5G

2. パーティション拡張のためのコマンド
resize2fs 対象デバイス名
実行例 resize2fs /dev/vg8010/lv8010


上図内の下から2行目を確認すると、/dev/vg8010/lv8010のサイズが30GBだったものが35GBに変化しています。
作業後も当該のファイルが存在することを確認出来ました。

LVMのサイズを縮小してみる

後日掲載予定

LVMボリュームに対してスナップショットを取得してみる

後日掲載予定