LVM を使用して Ubuntu でハードドライブを管理する

LVM は Logical Volume Manager の略で、Linux 環境でディスク パーティションを管理するためのメカニズムです。 LVM は、ハードディスクとファイル システムの間に論理層を追加して、ファイル システムの下位のハードディスク パーティション レイアウトを保護し、ハードディスク パーティション管理の柔軟性を向上させます。

LVM の概要

LVM は Logical Volume Manager の略で、Linux 環境でディスク パーティションを管理するためのメカニズムです。 LVM は、ハードディスクとファイル システムの間に論理層を追加して、ファイル システムの基礎となるハードディスク パーティション レイアウトを保護し、ハードディスク パーティション管理の柔軟性を向上させます。

LVM を使用してハードディスクを管理する基本的なプロセスは次のとおりです。

  • ハードドライブを物理ボリュームとして作成する
  • 複数の物理ボリュームをボリューム グループに結合する
  • ボリュームグループ内に論理ボリュームを作成する
  • 論理ボリューム上にファイルシステムを作成する
  • LVM を通じてハードディスクを管理すると、ファイル システムはハードディスクのサイズに制限されなくなり、複数のハードディスクに分散したり、動的に拡張したりすることができます。

LVMの基本概念

  • 物理ストレージ メディア (物理メディア): システムの /dev/hda、/dev/sda などのハード ディスクなど、システムの物理ストレージ デバイスを指します。これは、ストレージ システムの最下位レベルのストレージ ユニットです。
  • 物理ボリューム (PV): ハードディスク パーティション、または論理的にディスク パーティションと同じ機能を持つデバイス (RAID など) を指します。 LVM の基本的なストレージ論理ブロックです。物理ボリュームには、デフォルトで 2 番目の 512 バイト セクタに配置される特別なラベルが含まれていますが、ラベルは最初の 4 つのセクタのいずれかに配置することもできます。タグには、物理​​ボリュームのランダムな一意の識別子 (UUID) が含まれており、ブロック デバイスのサイズと、デバイス内の LVM メタデータが保存される場所が記録されます。
  • ボリューム グループ (VG): 物理ボリュームで構成され、基礎となる物理ボリュームの詳細がマスクされます。特定の物理ボリューム情報に関係なく、ボリューム グループ上に 1 つ以上の論理ボリュームを作成できます。
  • 論理ボリューム (LV): ボリューム グループは直接使用できないため、使用する前に論理ボリュームに分割する必要があります。論理ボリュームは、異なるファイル システムにフォーマットして、マウント後に直接使用できます。
  • 物理エクステント (PE): 物理ボリュームは同じサイズの「ブロック」に格納され、ブロックのサイズはボリューム グループ内の論理ボリューム ブロックのサイズと同じです。
  • 論理エクステント (LE): 論理ボリュームは「ブロック」という単位で格納され、ボリューム グループ内のすべての論理ボリュームのブロック サイズは同じになります。

インストール

1
2
sudo apt update
sudo apt install lvm2

物理ボリュームPVの管理

物理ボリュームの作成

1
2
3
4
pvcreate [option] devname ...

示例:将/dev/sdb、/dev/sdc创建为物理卷。
# pvcreate /dev/sdb /dev/sdc

物理ボリュームを表示する

1
2
3
4
pvdisplay [option] devname

示例:显示物理卷/dev/sdb的基本信息。
# pvdisplay /dev/sdb

物理ボリュームの削除

1
2
3
4
pvremove [option] pvname ...

示例:删除物理卷/dev/sdb。如果物理卷已经加入卷组,需要先删除卷组或者从卷组中移除,再删除物理卷。
# pvremove /dev/sdb

ボリュームグループVGの管理

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

1
2
3
4
vgcreate [option] vgname pvname ...

示例:创建卷组 vg1,并且将物理卷/dev/sdb和/dev/sdc添加到卷组中。
# vgcreate vg1 /dev/sdb /dev/sdc  

ボリュームグループの表示

1
2
3
4
vgdisplay [option] [vgname]

示例:显示卷组vg1的基本信息。
# vgdisplay vg1

ボリュームグループの拡張

1
2
3
4
vgextend [option] vgname pvname ...

示例:将卷组vg1中添加物理卷/dev/sdb。
# vgextend vg1 /dev/sdb

ボリュームグループの縮小

1
2
3
4
vgreduce [option] vgname pvname ...

示例:从卷组vg1中移除物理卷/dev/sdb2。
# vgreduce vg1 /dev/sdb2

ボリュームグループの削除

1
2
3
4
vgremove [option] vgname

示例:删除卷组vg1。
# vgremove vg1

論理ボリュームLVの管理

論理ボリュームの作成

1
2
3
4
5
6
7
lvcreate [option] vgname

示例1:在卷组vg1中创建10G大小的逻辑卷。
# lvcreate -L 10G vg1

示例2:在卷组vg1中创建200M的逻辑卷,并命名为lv1。
# lvcreate -L 200M -n lv1 vg1

論理ボリュームの表示

1
2
3
4
lvdisplay [option] [lvname]

示例:显示逻辑卷lv1的基本信息。
# lvdisplay /dev/vg1/lv1

論理ボリュームのサイズを変更する

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
lvresize [option] vgname

示例1:为逻辑卷/dev/vg1/lv1增加200M空间。
# lvresize -L +200 /dev/vg1/lv1

示例2:为逻辑卷/dev/vg1/lv1减少200M空间。
# lvresize -L -200 /dev/vg1/lv1

示例3:为逻辑卷/dev/vg1/lv1增加所有可用空间
# lvresize -l +100%FREE /dev/vg1/lv1

論理ボリュームを拡張する

1
2
3
4
5
6
7
lvextend [option] lvname

示例1:为逻辑卷/dev/vg1/lv1增加100M空间。
# lvextend -L +100M /dev/vg1/lv1

示例2:为逻辑卷/dev/vg1/lv1增加所有可用空间
# lvextend -l +100%FREE /dev/vg1/lv1

論理ボリュームを縮小する

1
2
3
4
lvreduce [option] lvname

示例:将逻辑卷/dev/vg1/lv1的空间减少100M。
# lvreduce -L -100M /dev/vg1/lv1

論理ボリュームの削除

1
2
3
4
lvremove [option] vgname

示例:删除逻辑卷/dev/vg1/lv1。
# lvremove /dev/vg1/lv1

ファイルシステムを作成してマウントする

ファイルシステムの作成

1
2
3
4
mkfs [option] lvname

示例:在逻辑卷/dev/vg1/lv1上创建ext4文件系统。
# mkfs -t ext4 /dev/vg1/lv1

ファイルシステムを手動でマウントする

1
2
3
4
mount lvname mntpath

示例:将逻辑卷/dev/vg1/lv1挂载到/mnt/data目录。
# mount /dev/vg1/lv1 /mnt/data

拡張ファイルシステム

論理ボリューム LV を拡張した後、パーティションのサイズは変更されません。パーティションを手動で拡張する必要があります。以下では、例として ext4 ファイル システムを取り上げます。

1
2
3
4
5
6
先把分区umount
umount /dev/vg1/lv1
检查并修复文件系统的错误
e2fsck -f /dev/vg1/lv1
扩展文件系统到所有分区空间
resize2fs /dev/vg1/lv1

さらに、umount を使用せずにパーティション サイズをオンラインで直接調整することもできることがわかりました。

1
2
扩展文件系统到所有分区空间
resize2fs /dev/vg1/lv1
记录并分享
Hugo で構築されています。
テーマ StackJimmy によって設計されています。