LVM(Logical Volume Manager)逻辑卷
管理是一种在Linux系统中用于管理磁盘空间的技术,它提供了一种灵活、高效的方式来管理硬盘分区和卷。以下是关于LVM逻辑管理的详细介绍:
LVM的基本概念
物理卷(Physical Volume,PV)
物理卷是LVM的基本组成部分,可以是一块磁盘、也可以是一个分区。物理卷是LVM存储的基础,用于提供实际的存储空间。
卷组(Volume Group,VG)
卷组由一个或多个物理卷组成,它是一个逻辑上的存储池。可以将卷组看作是一个大的存储容器,它将多个物理卷的空间整合在一起,为创建逻辑卷提供了一个统一的空间池。
逻辑卷(Logical Volume,LV)
逻辑卷是从卷组划出来的逻辑存储,用户可以在逻辑卷上创建文件系统,然后像使用普通硬盘分区一样使用它。逻辑卷的大小可以根据需要在卷组的可用空间范围内进行扩展。 逻辑扩展(Logical Extent,LE):逻辑扩展是逻辑卷中最小的可分配存储单元,它与物理扩展相对应,在创建逻辑卷时,逻辑扩展会映射物理卷上
LVM的工作原理
通过物理卷间的联合,创建一个大型的组卷,聚合物理卷的空间,虚拟卷建立在组卷上,通过组卷使虚拟卷能够动态变化。
创建LVM 1. 创建物理卷:使用pvcreate命令将物理设备初始化为物理卷,例如:
pvcreate /dev/sda1,
将/dev/sda1分区创建为物理卷。
2. 创建卷组:
使用vgcreate命令创建卷组,
将一个或多个物理卷添加到卷组中,
vgcreate vg1 /dev/sda1 /dev/sdb1,
创建名为vg1的卷组,
并将/dev/sda1和/dev/sdb1添加到其中
3. 创建逻辑卷:
使用lvcreate命令从卷组中创建逻辑卷,
lvcreate -L 10G -n lv0 vg1,
在vg1卷组中创建一个大小为10GB的逻辑卷`lv1。
扩展逻辑卷:当逻辑卷的空间不足时,可以使用lvextend命令扩展逻辑卷的大小,
lvextend -L +5G /dev/vg1/lv1
将lv0逻辑卷的大小增加5GB。
收缩逻辑卷:使用lvreduce命令收缩逻辑卷的大小,但在收缩逻辑卷之前,需要先卸载逻辑卷,并确保文件系统中的数据没有超出要收缩的范围。
删除LVM
删除逻辑卷:
使用lvremove命令删除逻辑卷,如`lvremove /dev/vg1/lv1
删除卷组:
使用vgremove命令删除卷组,如`vgremove vg1
删除物理卷
使用pvremove命令删除物理卷,如pvremove /dev/sda1
以下是一些常用的LVM逻辑管理命令:
pvcreate 功能:将物理磁盘或分区初始化为物理卷。
示例:将 /dev/sdb1分区创建为物理卷
pvcreate /dev/sdb1
pvdisplay 功能:显示物理卷的详细信息,如大小、PE(Physical Extent)大小等。
示例:显示所有物理卷的信息
pvdisplay 若只想显示 /dev/sdb1的信息,可使用:
pvdisplay /dev/sdb1
pvremove 功能:从物理设备中移除物理卷标签,将其恢复为普通分区。
示例:移除 /dev/sdb1 的物理卷标签
pvremove /dev/sdb1
vgcreate 功能:创建卷组,将一个或多个物理卷添加到卷组中。
示例:创建名为 myvg的卷组,并将 /dev/sdb1物理卷添加到其中
vgcreate myvg /dev/sdb1
vgdisplay 功能:显示卷组的详细信息,如大小、包含的物理卷等。
示例:显示所有卷组的信息
vgdisplay
若只想显示 vg1`卷组的信息,可使用:
vgdisplay vg1
vgextend 功能:将新的物理卷添加到现有的卷组中,扩展卷组的容量。
示例:将 /dev/sdc1物理卷添加到 vg1卷组中
vgextend myvg /dev/sdc1
vgreduce 功能:从卷组中移除物理卷。
示例:从 myvg卷组中移除 /dev/sdc1物理卷
vgreduce myvg /dev/sdc1
vgremove 功能:删除卷组。
示例:删除 vg1 卷组
vgremove vg1
lvcreate 功能:在卷组中创建逻辑卷。
示例:在 myvg卷组中创建一个大小为 5GB 的逻辑卷 lv1
lvcreate -L 5G -n lv1 vg1 若要使用卷组的全部剩余空间创建逻辑卷,可使用 -l 100%FREE:
lvcreate -l 100%FREE -n lv1 vg1
lvdisplay 功能:显示逻辑卷的详细信息,如大小、所属卷组等。
示例:显示所有逻辑卷的信息
lvdisplay
若只想显示 vg1/lv1逻辑卷的信息,可使用:
lvdisplay /dev/vg1/lv1
lvextend 功能:扩展逻辑卷的大小。
示例:将 vg1/lv1逻辑卷扩展 2GB
lvextend -L +2G /dev/vg1/lv1
扩展后,还需要对文件系统进行扩展(以 xfs 文件系统为例):
xfs_growfs /dev/vg1/lv1
lvreduce -L -1G /dev/vg1/lv1
lvremove 功能:删除逻辑卷。
示例:删除 vg1/lv1 逻辑卷 lvremove /dev/vg1/lv1
格式化逻辑卷 示例:将 vg1/lv1逻辑卷格式化为 xfs文件系统
mkfs.xfs /dev/vg1/lv1
挂载逻辑卷
示例:将 vg1/lv1逻辑卷挂载到 /mnt/lv1目录
mount /dev/vg1/lv1 /mnt/lv1
配额
挂载文件系统时启用配额选项
编辑/etc/fstab文件,为需要设置配额的分区添加usrquota(用户配额)和grpquota(组配额)选项。例如,如果你要对/home分区设置配额,找到类似如下的行:
/dev/sda2 /home ext4 defaults 0 0
修改为:
/dev/sda2 /home ext4 defaults,usrquota,grpquota 0 0
保存并退出文件。然后重新挂载分区:
mount -o remount /mnt
3. 创建配额数据库文件
使用以下命令为用户和组创建配额数据库文件:
quotacheck -cug /home
-c:创建新的配额文件。
-u:检查用户配额。
-g:检查组配额.
4. 启用磁盘配额
创建完配额数据库文件后,使用以下命令启用用户和组配额:
quotaon -ug /home
-u:启用用户配额。
-g:启用组配额。
5. 设置用户和组的磁盘配额
设置用户配额
edquota testuser
这将打开一个文本编辑器,显示该用户的配额设置。
示例如下:
Disk quotas for user testuser (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sda2 0 10240 20480 0 0 0
字节详解
blocks:当前使用的磁盘块数。
soft:软限制,当超过该限制时,用户会收到警告,但仍可以继续使用磁盘,直到达到硬限制。
hard:硬限制,用户不能超过该限制使用磁盘。
inodes:当前使用的 inode 数量。
soft 和 hard:inode 的软限制和硬限制,修改相应的数值,保存并退出编辑器。
设置组配额使用edquota -g命令为特定组设置配额,例如为组testgroup设置配额:
quota -g testgroup
编辑方法与设置用户配额类似。
6. 查看配额信息
查看用户配额
quota testuser
查看组配额
quota -g testgrou