Linux の lvm パーティションは「論理ボリューム管理」を指します。lvm の英語の正式名は「Logical Volume Manager」で、Linux 環境でディスク パーティションを管理するためのメカニズムです。LVM はハードディスク上に構築されます。ディスク パーティション管理の柔軟性を向上させるためのパーティション上の論理層。
#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。
LVM (Logical Volume Manager)、つまり論理ボリューム管理は、Linux 環境でディスク パーティションを管理するためのメカニズムであり、ハードディスク上に構築されます。およびパーティション ディスク パーティション管理の柔軟性を向上させるための最上位の論理層。 LVM システム管理者は、複数のディスク パーティションをボリューム グループに接続してストレージ プールを形成するなど、ディスク パーティションを簡単に管理できます。管理者はボリューム グループ上に論理ボリュームを自由に作成し、さらに論理ボリューム グループ上にファイル システムを作成できます。管理者は、LVM を通じてストレージボリュームグループのサイズを簡単に調整でき、グループに応じてディスクストレージに名前を付け、管理し、割り当てることができます。新しいディスクがシステムに追加されると、LVM 管理者は、新しいストレージ領域を最大限に活用するためにディスクのファイルを新しいディスクに移動する必要がなく、ファイル システムをディスク全体に直接拡張できます。
一般に、物理ディスクまたはパーティションは分離されており、データはディスクまたはパーティションをまたがることができず、各ディスクまたはパーティションのサイズは固定されているため、再調整は面倒です。 LVM は、これらの基盤となる物理ディスクまたはパーティションを統合し、それらを容量リソース プールに抽象化し、上位層で使用できるように論理ボリュームに分割することができます。その主な機能は、シャットダウンや再フォーマットを行わずに使用できることです (正確には、論理ボリュームのサイズは柔軟に調整できます (元の部分をフォーマットする必要はなく、新しい部分のみがフォーマットされます)。
LVM の実装プロセスは次のとおりです:
PV(物理ボリューム): 物理ボリュームは論理ボリューム管理システムの最下位にあり、物理ハード ディスク全体または実際の物理ハード ディスク上のパーティションにすることができます。 LVM に関連する管理パラメータを記録するために、物理パーティション内に特別な領域を確保するだけです。
VG (ボリューム グループ): ボリューム グループは物理ボリューム上に作成されます。ボリューム グループには少なくとも 1 つの物理ボリュームが含まれている必要があります。ボリューム グループの作成後、ボリュームを動的に追加できます。ボリューム グループ。論理ボリューム管理システム プロジェクトには複数のボリューム グループが存在できます。
LV(論理ボリューム): 論理ボリュームはボリューム グループ上に構築されます。ボリューム グループの未割り当て領域を使用して、新しい論理ボリュームを作成できます。論理ボリュームは、作成後に動的に拡張および縮小できます。空間が生まれます。
PE(物理エクステント): 物理領域とは、物理ボリューム内に割り当てることができる最小の記憶単位であり、物理領域のサイズはボリュームグループの構築時に指定されます。すべての物理ボリュームの物理領域サイズは一貫している必要があります。新しい pv が vg に追加されると、pe サイズは vg で定義された pe サイズに自動的に変更されます。
LE(論理エクステント): 論理領域は、論理ボリューム内で割り当て可能な最小のストレージ単位です。論理領域のサイズは、論理ボリューム内の物理領域のサイズによって異なります。論理ボリュームが配置されているボリューム グループ。カーネルの制限により、 論理ボリューム (論理ボリューム) には最大 65536 の PE (物理エクステント) しか含めることができないため、PE のサイズによって論理ボリュームの最大容量、4 MB (デフォルト) が決まります。単一の論理ボリュームの最大容量は 256 GB に決まります。256 GB を超える論理ボリュームを使用する場合は、ボリューム グループの作成時により大きな PE を指定する必要があります。 Red Hat Enterprise Linux AS 4 では、PE サイズの範囲は 8 KB ~ 16 GB であり、常に 2 の倍数である必要があります。
LVM には、リニア モードとストライプ モードの 2 つの書き込みモードがあります。
LVM は各物理ボリュームの先頭にメタデータを維持し、各メタデータには VG (ボリューム グループ: volume group) 全体の情報が含まれます。各VGのレイアウト構成、PV(物理ボリューム:物理ボリューム)の数、LV(論理ボリューム:論理ボリューム)の数、各PE(物理拡張:物理拡張ユニット)からLE(論理拡張:論理拡張ユニット)のマッピング関係物理拡張ユニット)。同じ VG 内の各 PV のヘッダー内の情報は同じであるため、障害発生時のデータ回復が容易になります。
LVM は、上位ファイル システムに LV 層を提供し、操作の詳細を隠します。ファイル システムに関しては、LV の操作はパーティションの本来の操作と変わりません。 LV に書き込む場合、LVM は対応する LE を見つけ、PV ヘッダーのマッピング テーブルを通じて対応する PE にデータを書き込みます。 LVM の最大の特徴は、ディスクを動的に管理できることです。論理ボリュームのサイズは、既存のデータを失うことなく動的に調整できるためです。新しいハードディスクを追加しても、既存の上位論理ボリュームは変更されません。重要なのは、PE と LE の間のマッピング関係を確立することであり、異なるマッピング ルールによって異なる LVM ストレージ モデルが決まります。 LVM は複数の PV のストライプとミラーをサポートします。
利点:
欠点:
1. 各物理ディスクまたはパーティションのシステム タイプを Linux LVM に設定し、システム ID を 8e に設定します。 fdisk ツールで t コマンドを使用して、
#[root@localhost ~]# fdisk /dev/sdb ... Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (2-4, default 2): 2First sector (20973568-62914559, default 20973568): Using default value 20973568Last sector, +sectors or +size{K,M,G} (20973568-62914559, default 62914559): +5G ... Command (m for help): t Partition number (1,2, default 2): 2Hex code (type L to list all codes): 8e # 指定system id为8eChanged type of partition 'Linux' to 'Linux LVM'... Command (m for help): p ... /dev/sdb1 2048 20973567 10485760 8e Linux LVM /dev/sdb2 20973568 31459327 5242880 8e Linux LVM Command (m for help): w ...
## に初期化します。 #この段階で使用できるコマンドは、pvcreate、pvremove、pvscan、pvdisplay (pvs)
1) pvcreate: 物理ボリュームの作成
用法:pvcreate [option] DEVICE
选项:
-f:强制创建逻辑卷,不需用户确认
-u:指定设备的UUID
-y:所有问题都回答yes
例 pvcreate /dev/sdb1 /dev/sdb2
用法:pvscan [option]
选项:
-e:仅显示属于输出卷组的物理卷
-n:仅显示不属于任何卷组的物理卷
-u:显示UUID
用法:pvdisplay [PV_DEVICE]
用法:pvremove [option] PV_DEVICE
选项:
-f:强制删除
-y:所有问题都回答yes
例 pvremove /dev/sdb1
[root@localhost ~]# pvcreate /dev/sdb{1,2} # 将两个分区初始化为物理卷
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
[root@localhost ~]# pvscan
PV /dev/sdb2 lvm2 [5.00 GiB]
PV /dev/sdb1 lvm2 [10.00 GiB]
Total: 2 [15.00 GiB] / in use: 0 [0 ] / in no VG: 2 [15.00 GiB]
[root@localhost ~]# pvdisplay /dev/sdb1 # 显示物理卷sdb1的详细信息
"/dev/sdb1" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0 # 由于PE是在VG阶段才划分的,所以此处看到的都是0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID GrP9Gi-ubau-UAcb-za3B-vSc3-er2Q-MVt9OO
[root@localhost ~]# pvremove /dev/sdb2 # 删除sdb2的物理卷信息
Labels on physical volume "/dev/sdb2" successfully wiped.
[root@localhost ~]# pvscan # 可以看到PV列表中已无sdb2
PV /dev/sdb1 lvm2 [10.00 GiB]
Total: 1 [10.00 GiB] / in use: 0 [0 ] / in no VG: 1 [10.00 GiB]
[root@localhost ~]# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.
PE は物理ボリューム内の最小のストレージ ユニットであり、ファイル システムのブロック、PE に似ています。サイズを指定できます。デフォルトは 4M です。この段階で使用されるコマンドには、vgcreate、vgscan、vgdisplay、vgextend、vgreduce
#1) vgcreate: ボリューム グループの作成#用法:vgcreate [option] VG_NAME PV_DEVICE 选项: -s:卷组中的物理卷的PE大小,默认为4M -l:卷组上允许创建的最大逻辑卷数 -p:卷级中允许添加的最大物理卷数 例 vgcreate -s 8M myvg /dev/sdb1 /dev/sdb2
# が含まれます。 ##2) vgscan: システム内に存在する LVM ボリューム グループを検索し、見つかったボリューム グループのリストを表示します
3) vgdisplay: ボリューム グループ属性を表示します
用法:vgdisplay [option] [VG_NAME] 选项: -A:仅显示活动卷组的信息 -s:使用短格式输出信息
4) vgextend: LVM ボリューム グループを動的に拡張します。これにより、物理ボリュームをボリューム グループに追加することでボリューム グループの容量が増加します
用法:vgextend VG_NAME PV_DEVICE 例 vgextend myvg /dev/sdb3
5) vgreduce: LVM ボリューム グループ内の物理ボリュームを削除して、ボリューム グループの容量を削減します。LVM ボリューム グループに最後に残っている物理ボリュームは削除できません
用法:vgreduce VG_NAME PV_DEVICE
6) vgremove: ボリューム グループを削除します。その上の論理ボリュームはオフラインである必要があります
用法:vgremove [-f] VG_NAME -f:强制删除
7)vgchange:常用来设置卷组的活动状态
用法:vgchange -a n/y VG_NAME -a n为休眠状态,休眠之前要先确保其上的逻辑卷都离线; -a y为活动状态
8)vg创建例子
[root@localhost ~]# vgcreate -s 8M myvg /dev/sdb{1,2} Volume group "myvg" successfully created [root@localhost ~]# vgscan Reading volume groups from cache. Found volume group "myvg" using metadata type lvm2 [root@localhost ~]# vgdisplay --- Volume group --- VG Name myvg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 14.98 GiB PE Size 8.00 MiB Total PE 1918 Alloc PE / Size 0 / 0 Free PE / Size 1918 / 14.98 GiB VG UUID aM3RND-aUbQ-7RjC-dCci-JiS4-Oj2Z-wv9poA
4、在卷组上创建LV(logical volume,逻辑卷)
为了便于管理,逻辑卷对应的设备文件保存在卷组目录下,为/dev/VG_NAME/LV_NAME。LV中可以分配的最小存储单元称为LE(logical extend),在同一个卷组中,LE的大小和PE是一样的,且一一对应。这一阶段用到的命令有lvcreate、lvscan、lvdisplay、lvextend、lvreduce、lvresize
1)lvcreate:创建逻辑卷或快照
用法:lvcreate [选项] [参数] 选项: -L:指定大小 -l:指定大小(LE数) -n:指定名称 -s:创建快照 -p r:设置为只读(该选项一般用于创建快照中) 注:使用该命令创建逻辑卷时当然必须指明卷组,创建快照时必须指明针对哪个逻辑卷 例 lvcreate -L 500M -n mylv myvg
2)lvscan:扫描当前系统中的所有逻辑卷,及其对应的设备文件
3)lvdisplay:显示逻辑卷属性
用法:lvdisplay [/dev/VG_NAME/LV_NAME]
4)lvextend:可在线扩展逻辑卷空间
用法:lvextend -L/-l 扩展的大小 /dev/VG_NAME/LV_NAME 选项: -L:指定扩展(后)的大小。例如,-L +800M表示扩大800M,而-L 800M表示扩大至800M -l:指定扩展(后)的大小(LE数) 例 lvextend -L 200M /dev/myvg/mylv
5)lvreduce:缩减逻辑卷空间,一般离线使用
用法:lvexreduce -L/-l 缩减的大小 /dev/VG_NAME/LV_NAME 选项: -L:指定缩减(后)的大小 -l:指定缩减(后)的大小(LE数) 例 lvreduce -L 200M /dev/myvg/mylv
6)lvremove:删除逻辑卷,需要处于离线(卸载)状态
用法:lvremove [-f] /dev/VG_NAME/LV_NAME -f:强制删除
7)lv创建例子
[root@localhost ~]# lvcreate -L 2G -n mylv myvg Logical volume "mylv" created. [root@localhost ~]# lvscan ACTIVE '/dev/myvg/mylv' [2.00 GiB] inherit [root@localhost ~]# lvdisplay --- Logical volume --- LV Path /dev/myvg/mylv LV Name mylv VG Name myvg LV UUID 2lfCLR-UEhm-HMiT-ZJil-3EJm-n2H3-ONLaz1 LV Write Access read/write LV Creation host, time localhost.localdomain, 2019-07-05 13:42:44 +0800 LV Status available # open 0 LV Size 2.00 GiB Current LE 256 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
5、格式化逻辑卷并挂载
[root@localhost ~]# mke2fs -t ext4 /dev/myvg/mylv
...
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
...
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount
mount mountpoint
[root@localhost ~]# mount /dev/myvg/mylv /data
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 1.5G 49G 3% /
devtmpfs 903M 0 903M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.6M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/myvg-mylv 2.0G 6.0M 1.8G 1% /data
一、LV逻辑卷扩容后,必须对挂载目录在线扩容。
使用 resize2fs或xfs_growfs 对挂载目录在线扩容
resize2fs 针对文件系统ext2 ext3 ext4
xfs_growfs 针对文件系统xfs
xfs在线扩容
xfs_growfs /dev/mapper/vg--BHG-lv01 meta-data=/dev/mapper/vg--BHG-lv01 isize=512 agcount=4, agsize=32000 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0data = bsize=4096 blocks=128000, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log =internal bsize=4096 blocks=855, version=2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0data blocks changed from 128000 to 256000
ext4在线扩容
[root@localhost /]# resize2fs /dev/mapper/vg--BHG-lv02 resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/mapper/vg--BHG-lv02 is mounted on /BHGPOS-data; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 3 The filesystem on /dev/mapper/vg--BHG-lv02 is now 5242880 blocks long.
相关推荐:《Linux视频教程》
以上がLinuxのlvmパーティションとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。