😄
[Linux]: LVMの基本と操作のメモ
[Linux]: LVMの基本と操作のメモ
LVM
- Logical Volume Manager
- 複数のパーティションをまとめて柔軟にサイズを調整できる論理ボリュームを構成し運用できる
- 論理ボリュームにファイルシステムを作成ができる
利点
- 複数のディスクを仮想的にまとめて管理できる
- 必要に応じてサイズを変更することができる
構成要素
物理ボリューム(PV)
- 物理的な媒体を扱う
物理エクステント(PE):**
- PVをさらに細かく分割した単位
- デフォルトサイズは4MB
- この単位でストレージが割り当てられる
ボリュームグループ(VG)
- 複数のPVから構成される
- PVの管理を行う
- 必要に応じて容量を切り出してLVを作成する
論理ボリューム(LV)
- VGから作成される
- ファイルシステムを作成する領域
図
構築の流れ
- 物理ボリュームを作成する
- ボリュームグループを作成する
- 論理ボリュームを作成する
- ファイルシステムの作成
- ファイルシステムをマウント
注意点
色々調べたうえで以下がLVMを扱ううえで注意すべきポイントのようだ
- 重要なデータはバックアップを取る
- 容量を大きくすると管理が複雑になるので計画的に運用する
- 定期的に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
やり方は少しわかったが、実機で確認程度だとメリットがあまり感じられなかった。もう少し理解を深めていきたい。
参考
最後に
何か間違っていることなどあれば、コメントに書いていただけると幸いです。
よろしくお願いいたします。
Discussion