😄

[Linux]: LVMの基本と操作のメモ

に公開

[Linux]: LVMの基本と操作のメモ

LVM

  • Logical Volume Manager
  • 複数のパーティションをまとめて柔軟にサイズを調整できる論理ボリュームを構成し運用できる
  • 論理ボリュームにファイルシステムを作成ができる

利点

  • 複数のディスクを仮想的にまとめて管理できる
  • 必要に応じてサイズを変更することができる

構成要素

物理ボリューム(PV)

  • 物理的な媒体を扱う
物理エクステント(PE):**
  • PVをさらに細かく分割した単位
  • デフォルトサイズは4MB
  • この単位でストレージが割り当てられる

ボリュームグループ(VG)

  • 複数のPVから構成される
  • PVの管理を行う
  • 必要に応じて容量を切り出してLVを作成する

論理ボリューム(LV)

  • VGから作成される
  • ファイルシステムを作成する領域

構築の流れ

  1. 物理ボリュームを作成する
  2. ボリュームグループを作成する
  3. 論理ボリュームを作成する
  4. ファイルシステムの作成
  5. ファイルシステムをマウント

注意点

色々調べたうえで以下がLVMを扱ううえで注意すべきポイントのようだ

  1. 重要なデータはバックアップを取る
  2. 容量を大きくすると管理が複雑になるので計画的に運用する
  3. 定期的にLVMを監視し、IOPSやパフォーマンスに異常はないかチェック

構築

ループデバイスを用いてLVMの操作を行う

ループバックデバイス
あたかもハード・ディスクなどのブロック型デバイスであるかのように扱うための機能

ディスクファイルの作成

dd if=/dev/zero of=disk1.img bs=1M count=1024
dd if=/dev/zero of=disk2.img bs=1M count=1024
dd if=/dev/zero of=disk3.img bs=1M count=1024

# sudo fallocate -l 1G /tmp/swapfile

ループデバイスに登録

sudo losetup -f disk1.img
sudo losetup -f disk2.img
sudo losetup -f disk3.img

# 確認
sudo losetup -a | sort -n

/dev/loop6: [2049]:542618 (/home/vagrant/lvm/disk1.img)
/dev/loop7: [2049]:542619 (/home/vagrant/lvm/disk2.img)
/dev/loop8: [2049]:542641 (/home/vagrant/lvm/disk3.img)

物理ボリュームの作成

自分の環境では/dev/loop6~8だったので6, 7, 8で進める

pvcreate

  • PVの作成
sudo pvcreate /dev/loop6 /dev/loop7 /dev/loop8

# 確認
sudo pvdisplay 
sudo pvs

ボリュームグループの作成

vgcreate

  • ボリュームグループの作成
sudo vgcreate vg_practice /dev/loop6 /dev/loop7

sudo vgdisplay vg_practice

# 確認
sudo vgs

論理ボリュームの作成

lvcreate

  • 論理ボリュームの作成
  • -L: サイズ指定
sudo lvcreate -L 500M -n lv_data vg_practice

sudo lvdisplay /dev/vg_practice/lv_data

# 確認
sudo lvs

ファイルシステムの作成とマウント

sudo mkfs.ext4 /dev/vg_practice/lv_data

sudo mkdir -p /mnt/lvm_test

sudo mount /dev/vg_practice/lv_dta /mnt/lvm_test

# 確認
df -h /mnt/lvm_test

sudo bash -c "echo 'Hello World' > /mnt/lvm_test/test.txt" cat /mnt/lvm_test/test.txt

LVの拡張

lvextend

  • LVの拡張
sudo lvextend -L 700M /dev/vg_practice/lv_data 

sudo resize2fs /dev/vg_practice/lv_data 

# 確認
df -h /mnt/lvm_test 
sudo lvs

VGの拡張

vgextend

  • VGの拡張
sudo vgextend vg_practice /dev/loop2 

# 確認
sudo vgs vg_practice 
sudo pvs

やり方は少しわかったが、実機で確認程度だとメリットがあまり感じられなかった。もう少し理解を深めていきたい。

参考

最後に

何か間違っていることなどあれば、コメントに書いていただけると幸いです。
よろしくお願いいたします。

GitHubで編集を提案

Discussion