linux之LVM管理

Linux LVM(Logical Volume Manager)是Linux内核的一部分,用于管理磁盘分区和卷。LVM的主要目标是提高磁盘分区和卷的管理灵活性。LVM基于Linux内核的硬盘和分区系统,使得用户可以更加容易地分配和管理磁盘空间。

在LVM中,有两个主要的概念:

  1. Volume(卷):卷是LVM中的基本单位,它是一个逻辑设备,可以包含多个分区或者一个分区。卷可以被挂载到文件系统中,从而扩展了磁盘的空间。
  2. LV(逻辑卷):LV是Volume的缩写,是卷的一种特殊形式。LV中包含了一个或多个分区,可以被挂载到文件系统中。LV的大小是由它所包含的分区或者磁盘组成的。

LVM通过在物理硬盘上创建多个卷,然后将这些卷挂载到文件系统中,实现了对磁盘空间的动态管理。用户可以将一个或多个卷组合在一起,形成一个大的卷,从而扩展了磁盘的空间。LVM还支持跨卷的读写操作,从而提高了文件系统的性能。

在LVM中,卷和LV之间使用一个虚拟接口进行管理。这个接口由称为“抽象I/O”的系统调用提供支持。通过这个接口,LVM可以实现对卷和LV的管理,从而提高了磁盘管理的效率。

总的来说,LVM是Linux内核的一部分,用于管理磁盘分区和卷。它通过在物理硬盘上创建多个卷,然后将这些卷挂载到文件系统中,实现了对磁盘空间的动态管理。LVM支持跨卷的读写操作,从而提高了文件系统的性能。用户可以将一个或多个卷组合在一起,形成一个大的卷,从而扩展了磁盘的空间。

以下是在日常使用当中经常使用到的相关知识:

1. 创建

创建lv之前,需要先创建磁盘分区,再创建pv,再创建vg,最后在vg中才能创建lv。

1.1. 创建分区

使用fdisk命令进行磁盘分区,建议将分区System改为Linux LVM,便于区分和管理。

fdisk /dev/sdb

1.2. 创建pv

经过实际验证,可以不需要手动创建pv,在vg创建或者扩容时,会自动创建pv。

个人建议不做此步骤。

pvcreate /dev/sdb1

1.3. 创建vg

vgcreate vg_data /dev/sdb1

1.4. 创建lv

lvcreate -l 100%vg -n lv_data vg_data

1.5. 格式化lv

# XFS
mkfs.xfs /dev/mapper/vg_data-lv_data

# EXT4
mkfs.ext /dev/mapper/vg_data-lv_data

1.6. 挂载

moount /dev/mapper/vg_data-lv_data /data

此处建议写入/etc/fstab,保证服务器重启后,磁盘自动挂载。

扫描二维码关注公众号,回复: 15894345 查看本文章

2. 扩容

lv扩容的步骤与创建lv基本相似,任然需要对磁盘进行分区,(创建pv),将pv加入vg,再将lv进行扩容,最后对lv进行在线扩容即可。

以下是lv扩容命令:

# lvextend
lvextend -l 100%vg /dev/mapper/vg_data-lv_data
# 在线扩容
# ext4格式
resize2fs /dev/mapper/vg_data-lv_data
# xfs格式
xfs_growfs /dev/mapper/vg_data-lv_data

3. 缩容

下面是在Linux操作系统中使用LVM缩小LV的步骤,根目录一般无法缩小。

此外,ext4文件系统可以进行扩缩容操作,但xfs的文件系统只能扩容,无法缩容。

所以如果需要进行xfs的缩容,可以先使用xfsdump备份文件系统,然后对逻辑卷(/分区)进行缩容操作(此时原xfs文件系统会损坏),然后再重新格式化该逻辑卷(/分区),最后xfsrestore将备份还原到该逻辑卷(/分区)。当然也可以通过其他方式备份数据并还原,只要能做到数据不丢失都可以。

3.1. 卸载lv

umount /dev/mapper/vg_data-lv_data

3.2. 缩容

# 减小5G
lvresize -L -5G /dev/mapper/vg_data-lv_data
# 查看是否成功,以及缩容后大小
lvs

# 缩容文件系统
resize2fs /dev/mapper/vg_data-lv_data

lvresize命令比较灵活,可以用来缩容,也可以用来扩容,可以直接指定目标大小,也可以通过+|-算法来扩容或者缩容,详细信息可以查看命令帮助。

3.3. 挂载lv

moount /dev/mapper/vg_data-lv_data /data

挂载后使用df检查路径大小。

4. 移除

4.1 移除lv

在移除lv之前,同样需要先卸载已经挂载到操作系统的lv。

umount /dev/mapper/vg_data-lv_data

卸载文件系统后,删除lv

lvremove /dev/mapper/vg_data-lv_data

删除vg

vgremove centos
# 如果卷组中还有lv,移出时,会提示,是否也移出,咱们这里直接移出

删除pv

pvremove /dev/sdb1

5. 其他

从PV中删除这个硬盘:

pvremove /dev/sdb1

从VG中删除这个硬盘:

vgreduce /dev/sdb1

VG中去除PV unknown device: 

vgreduce --removemissing /dev/sdb1

将sda1的数据移动到sdb1:

pvmove /dev/sda1 /dev/sdb1

猜你喜欢

转载自blog.csdn.net/m0_38004228/article/details/130410102
今日推荐