Slide 1

Slide 1 text

ボリュームマネージャ LVM Satoru Takeuchi X: satoru_takeuchi 1

Slide 2

Slide 2 text

原始的なブロックデバイス管理の課題 ● サイズはディスクの全容量か、それを区切ったパーティションの容量 ○ ディスクサイズを超える大きさのボリュームは作れない ● 一度決めた構成は変えづらい ○ パーティションの作りなおし /最後のパーティションを拡張 /新パーティションの作成 2

Slide 3

Slide 3 text

LVM(Logical Volume Manager) ● 1ノード内の複数ディスクを束ねてVolume Group(VG)と呼ばれるストレージプール を作る ○ Volume Groupに組み込むディスクを Physical Volume(PV)と呼ぶ ● Volume Groupのサイズが許す限り好きな数だけLogical Volume(LV)と呼ばれる ブロックデバイスを作る 3 disk disk disk Volume Group … LV LV LV PV PV PV …

Slide 4

Slide 4 text

LVMの利点 ● VGにディスクを追加、削除できる ● VGの容量を超えない範囲で好きな数だけ好きな容量のLVを作れる ○ 一台のディスクの容量を超えるサイズの LVも作れる ● LVの拡張、縮小ができる ○ 📝LVの拡張、縮小後にファイルシステムも拡張、縮小する必要がある ● スナップショットを採取できる ● 上記すべてをディスクアクセスを止めずに実現できる 4

Slide 5

Slide 5 text

例: 2つのディスクから3つのLVを作る 5 /dev/sda /dev/sdb Volume Group /dev/testvg/testlv0 /dev/testvg/testlv1 /dev/testvg/testlv2 PV PV 別名 /dev/mapper/testvg-testlv /dev/dm-X

Slide 6

Slide 6 text

例: Ubuntu22.04はでフォルトでLVMを使う 6 /dev/sda ubuntu-vg /dev/ubuntu-vg/root /dev/ubuntu-vg/home /dev/ubuntu-vg/swap_1 /dev/sda1 /dev/sda2 PV / boot efi home

Slide 7

Slide 7 text

LVMはdevice mapperを利用して実装されている ● linearターゲットを使う ○ 📝 「device mapperによるディスクI/O障害のエミュレーション 既存ターゲット編」 ● VGに組み込まれたディスクの一部をリニアマップ 7 sda sdb lv0 lv1 lv2

Slide 8

Slide 8 text

まとめ ● Linuxにはブロックデバイス管理を楽にするためのLVMという機能がある ● ディスクの容量に縛られず、柔軟なボリューム管理ができる ● VGへのディスク追加/削除、LVの作成/削除/拡張/縮小が無停止でできる ● スナップショットも採取できる ● LVMは内部でdevice mapperを使える ● 📝 使い方はArch Wikiが詳しい ○ https://wiki.archlinux.jp/index.php/LVM 8