LVM的介绍

1、LVM的优缺点

优点:
1)、文件系统可以跨多个磁盘
2)、可以在系统运行的状态下动态的扩展文件系统的大小
3)、可以增加新的磁盘到LVM的储存池中
4)、可以把整个卷组导出来,放在另外一台机子上
5)、可以以镜像的方式冗余重要的数据到多个物理磁盘。
2、缺点

1)、当卷组中的一哥磁盘损坏时,将影响整个卷组
2)、因为加入了额外的操作,存储性能受到影响

 

2、LVM的工作原理

LVM的介绍

LVM通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。

3、弹性扩展

通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量

LVM的介绍

 

4、LVM的组成部分

1、PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。

2、VG(volume group):卷组建立在物理卷之上,一个卷组中至少要包含一个屋里卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。

3、vg(logical volume):逻辑卷建立在卷组基础上,卷组中未分配的空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。(vg中必须要有剩余的空间)

4、PE(physical extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。

5、LE(logical extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。

5、管理工具常用的

1、PV的管理工具

#显示pv信息
pvs/pvdisplay:简要pv信息显示

#创建pv
pvcreate /dev/DEVICE

#删除pv:
pvremove /dev/DEVICE

2、vg管理工具

#1、显示卷组
vgs
vgdisplay

#2、创建卷组
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]

#3、管理卷组
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
          
vgcreate vg0 /dev/sdd1

#4、删除卷组
先删除pvmove,再删除vgremove

3、lv管理工具

1、显示逻辑卷
lvs             
Lvdisplay

2、创建逻辑卷

lvcreate -L #[mMgGtT] -n NAME VolumeGroup

lvcreate -l 60%VG -n mylv testvg

lvcreate -l 100%FREE -n yourlv testvg

3、删除逻辑卷
lvremove /dev/VG_NAME/LV_NAME
4、重设文件系统大小
fsadm [options] resize device [new_size[BKMGTEP]]

resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]

xfs_growfs /mountpoint

5、扩展逻辑卷:

lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME

resize2fs /dev/VG_NAME/LV_NAME

lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME

6、缩减逻辑卷:

umount /dev/VG_NAME/LV_NAME

e2fsck -f /dev/VG_NAME/LV_NAME

resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]

lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME

mount

 

上一篇:lambda


下一篇:lvgl无法加载自定义字体,提示lv_draw_label.c.o:(.literal.lv_draw_label_dsc_init+0x0): undefined