Linux文件系统-LVM逻辑卷

Linux文件系统-LVM逻辑卷,第1张

LVM(Logical Volume Manager)卷组管理器,通过对底层物理磁盘的封装,可以将多块物理磁盘组合成逻辑资源池,提供给上层应用使用(如文件系统). LVM的好处是,可以跨物理硬盘为文件系统提供容量,并且可以动态进行分区容量的调整,而不会损坏原有的文件系统.

物理磁盘 :物理存储介质,可以是整块物理存储或一个分区.

物理卷PV(physical volume) :LVM要使用物理磁盘,在物理磁盘的头部写入lvm标签头,就创建了一个PV,PV是组成VG的基本单元.

卷组VG(Volume Group) :VG相当于非LVM系统中的物理硬盘,一个卷组VG由一个或多个PV组成,形成一个存储资源池.

逻辑卷LV(logical volume) :LV相当于非LVM系统中的硬盘分区,LV建立在卷组VG之上,文件系统建立在LV之上.

物理块PE(physical Extent) :创建LV时可以分配的最小存储单元,大小可以指定,默认为4MB

如上是从物理磁盘到lvm逻辑卷的创建过程及映射关系,lv01、lv02被创建后,通过device-mapper映射为逻辑块设备(块设备路径/dev/vg01/lv01、/dev/vg01/lv02),供文件系统使用,通过mkfs.ext4 /dev/vg01/lv02可创建ext4文件系统.

元数据主要是两部分,PV header + metadata,位置一般是在PV的0~2048 sector中,从2048 sector开始是数据区域.

通过pvcreate创建pv时,会将pv header写入物理磁盘,位置一般是在磁盘的第二个sector(512B/sector),lvm扫描磁盘时,通过pv header来识别PV.

pv header主要信息包括,pv uuid、元数据位置和metadata位置.

pv header实例:

metadata记录的是vg和lv的配置信息,以ASCII码的方式写入metadata区域;vg和lv的每次配置变更,都会以追加的方式写入metadata区域,并打上时间戳,该区域写满后,新的变更记录会覆盖最早的一次记录. 进行vgscan时,猜测应该是通过读取最新一次的配置记录,进行激活.

vg配置信息,主要是包含的pv信息.

lv配置信息,主要是lv的起始位置和PE大小.

实例:

pvcreate /dev/vdb1

pvcreate /dev/vdb2

pvcreate /dev/vdb3

vgcreate /dev/vdb1 /dev/vdb2 /dev/vdb3

vgcreate wan /dev/vdb1 /dev/vdb2 /dev/vdb3

lvcreate -L 300M -n lv01 wan

将PV的前2048个sector通过dd拷贝出来,用cat查看如下.

假设我们有一块磁盘 /dev/sdb1 作为应用数据盘使用,以此为例创建lvm分区

先创建物理卷PV,命令: pvcreate /dev/sdb1

创建卷组VG,卷组命名为kylin,命令:vgcreate kylin /dev/sdb1

在VG中创建逻辑分区LV,命令:lvcreate -L 30G -n test kylin

创建逻辑分区后,进行格式化,然后便可以挂载使用.

mkfs.ext4 /dev/kylin/test

mount /dev/kylin/test /data

假设我们在上述基础上,又获得一块磁盘/dev/sdc1进行扩容,将磁盘容量增加到LV分区/dev/kylin/test中,具体 *** 作如下.

先创建物理卷PV,命令: pvcreate /dev/sdc1

将/dev/sdc1添加进VG kylin,命令:vgextend kylin /dev/sdc1

增加LV分区容量,命令:lvextend -L +30G /dev/kylin/test

lvm卷组配置备份

lvm的配置信息默认在/etc/lvm/backup、/etc/lvm/archive/两个目录存在备份,当lvm元数据损坏,lvm卷组读取异常时,可通过备份文件进行恢复.

/etc/lvm/backup: 保留了当前配置的备份

/etc/lvm/archive/:保留了每次配置更新前的备份

实例演示

逻辑卷/dev/wan/lv01

在/dev/wan/lv01上创建文件系统

挂载并创建文件

覆盖/dev/vdb1、/dev/vdb2的lvm元数据,并重启系统,vg已不能识别

通过pvcreate命令修复pv header 和metadata数据.

激活逻辑卷

挂载/dev/wan/lv01成功,说明成功修复

在Linux磁盘 *** 作中,如果磁盘写满,那么就需要对磁盘进行扩容。把数据写入到更大的磁盘中,这个工作量是非常大的,而且非常容易出现错误,危险性很高,那么我们就可以使用逻辑卷管理器(LVM)来对磁盘进行管理扩容。这样就可以很轻松的,没有危险的对数据进行移动。

我们来看看LVM比传统硬盘管理的优点:

1.灵活性容量:允许多个磁盘或分区作为一个逻辑卷。

2.可以伸缩的存储池:不必格式化,用命令可以直接修改逻辑卷。

3.在线数据的分配:可以在线移动数据,可以热插拔硬盘更换磁盘。

4.设备命名方便。

5.镜像卷:很方便的做数据镜像。

6.卷快照:快照会把逻辑卷的全部内容保存。

那么逻辑卷要怎么来创建呢,我们做如下步骤:

1.在创建逻辑卷前,必须要有一块物理磁盘做物理卷(PV)。

2.由一个或多个物理卷组成一个存储池,我们叫他卷组(VG)。

3.根据卷组中的空闲物理空间,建立逻辑卷(LV)。

上面3步时创建逻辑卷的具体思路。下面我们具体 *** 作:

创建逻辑卷步骤:

1.使用fdisk创建一个物理分区,t 选项设置类型为:linuxLVM

2.使用partprobe向内核注册新的分区。

3.创建物理卷pvcreate /dev/sdb1(需要创建的硬盘分区名,根据自己服务器查找)

4.创建卷组 vgcreate 卷组名 /dev/sdb1

5.创建逻辑卷 lvcreate -n 逻辑卷名 -L 卷组大小 卷组名

lvcreate -n abc -L 10G myvg

6.创建文件系统 mkfs.ext4 /dev/卷组名/逻辑卷名

mkfs.ext4 /dev/myvg/abc

7.创建永久挂载点(写入文件/etc/fstab),这一步就不在赘述,可以查阅我前一文章,有详细记载。

这样,我们的逻辑卷就创建成功了。

那我们怎么查看物理卷,卷组,逻辑卷呢

查看物理卷信息:pvdisplay /dev/sdb1

查看卷组信息:vgdisplay myvg

查看逻辑卷信息:lvdisplay /dev/myvg/abc

逻辑卷的扩容

如果在建立的卷组还有空间,就可以给逻辑卷扩容。那怎么做呢。

1.lvextend -L +10G /dev/myvg/abc

给逻辑卷 abc 扩容10G。减少容量直接把 + 变为 - 即可。

2.resize2fs /dev/myvg/abc针对ext4文件

xfs_growfs /dev/myvg/abc针对xfs文件

使扩容生效。

如果卷组空间不够,需先增加卷组空间,在对逻辑卷扩容。

1.准备物理磁盘 fdisk ,partprobe ,mkfs.ext4

2.创建物理卷

3.给原来的卷组增加物理卷 vgextend myvg /dev/sdc1,然后vgdiaplay

创建完成,那么我们需要删除逻辑卷,怎么做呢。

1.取消挂载,同时删除 /etc/fstab 文件下的挂载内容。

2.删除逻辑卷 lvremove /dev/myvg/abc

3.删除卷组 vgremove myvg

4.删除物理卷 pvremove /dev/sdb1

步骤和创建相反。

Linux下磁盘管理的逻辑卷就总结完毕。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8951710.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存