Ubuntu的Linux逻辑卷管理

Wesley13
• 阅读 856

LVM(逻辑卷)管理系统可以将多个物理磁盘组装为一个大的逻辑磁盘进行使用,尤其是管理大文件时非常方便。LVM可以减少多个磁盘的部分空间闲置的情况,集中使用提高磁盘利用率。LVM的卷可以动态伸缩,方便使用。

LVM由PV(物理卷)、VG(卷组)、LV(逻辑卷)组成,其中PV对应到物理磁盘的一个物理分区,LV相当于一个逻辑分区,VG建立起逻辑卷和物理卷之间的对应关系。

1、将物理磁盘转换为PV

  • 注意:备份您的所有数据!

查看物理磁盘信息

df -h

创建物理卷

如果要将物理分区/dev/sdb2转为物理卷:

sudo pvcreate /dev/sdb2

将把LVM的标志符写入到磁盘之中。

查看物理卷

sudo pvs

2、建立逻辑卷组-VG

2.1 创建逻辑卷组

以上面添加的第一个物理盘为基础,创建逻辑卷组

vgcreate vgdata /dev/sdb2 

2.2 激活VG

在被激活之前,VG与LV是无法访问的,这时可用命令:

sudo vgchange -a y  vgdata

激活所要使用的卷组。

2.3 卸载VG

当不再使用VG时,可用vgchange使之不再可用。

sudo vgchange -a n  vgdata

3、建立逻辑卷-LV

3.1 命令lvcreate用于创建逻辑卷

语法如下:

lvcreate [options]  -n 逻辑卷名  卷组名 [PV1 ... ]

其中的常用可选项有:

  • -i Stripes :采用交错(striped)方式创建LV,其中Stripes指卷组中PV的数量。
  • -I Stripe_size :采用交错方式时采用的块大小(单位为KB),Stripe_size必须为2的指数:2N ,N=2,3...9。
  • -l LEs :指定LV的逻辑块数。
  • -L size :指定LV的大小,其后可以用K、M、G表示KB、MB、GB。
  • -s :创建一已存在LV的snapshot卷。
  • -n name :为LV指定名称。

3.2 将整个物理卷指定为逻辑卷

如果需要LV使用整个VG,可首先用vgdisplay 查找 Total PE 值,然后在运行lvcreate时指定,如:

# sudo vgdisplay vgdata | grep "Total PE"
Total PE              10230

# sudo lvcreate -l 10230 vgdata -n data 

这时创建了一个逻辑卷,名称为data。

3.3 创建文件系统

创建出的逻辑卷相当于系统的一个“裸磁盘分区”,需要进一步创建文件系统和进行格式化。

sudo mke2fs /dev/vgdata/data 

3.4 伸缩逻辑卷

为逻辑卷增加容量可用使用lvextend,即可以指定要增加的尺寸也可以指定扩容后的尺寸,如

# lvextend -L12G /dev/vgdata/data
lvextend -- extending logical volume "/dev/testvg/testlv" to 12 GB
lvextend -- doing automatic backup of volume group "testvg"
lvextend -- logical volume "/dev/testvg/testlv" successfully extended

将扩大逻辑卷data的容量为12GB。

# lvextend -L+1G /dev/testvg/testlv
lvextend -- extending logical volume "/dev/testvg/testlv" to 13 GB
lvextend -- doing automatic backup of volume group "testvg"
lvextend -- logical volume "/dev/testvg/testlv" successfully extended

将为LV testlv再增大容量1GB至13GB。

为LV扩容的一个前提是:LV所在的VG有足够的空闲存储空间可用。 在为LV扩容之后,应同时为LV之上的文件系统扩容,使二者相匹配。对不同的文件系统有相对应的扩容方法。

  • ext2/ext3 除非内核已有ext2online 补丁,否则在改变ext2/ext3文件系统的大小时应卸载它:

    umount /dev/testvg/testlv

    resize2fs /dev/testvg/testlv

    mount /dev/testvg/testlv /home

这里假设testlv安装点为/home。在es2fsprogs-1.19或以上版本中包含resize2fs命令。

在LVM发行包中有一个称为e2fsadm的工具,它同时包含了lvextend与resize2fs的功能,如:

# e2fsadm -L+1G /dev/testvg/testlv 

等价于下面两条命令:

# lvextend -L+1G /dev/testvg/testlv 
# resize2fs /dev/testvg/testlv

但用户仍需首先卸载文件系统。

  • reiserfs 与ext2不同,Reiserfs不必卸载文件系统,如:

    resize_reiserfs -f /dev/testvg/testvl

  • xfs SGI XFS文件系统必须在安装的情况下才可改变大小,并且要使用安装点而不是块设备,如:

    xfs_growfs /home

4、格式化逻辑卷

此时,操作系统中应该已经可以看到这个逻辑卷了,与普通磁盘没有任何区别。

按照普通磁盘格式化方法,进行格式化、赋予卷标,就可以正常使用了。

5、添加新物理盘

当卷组空间不足时,可以加入新的物理卷来扩大容量,这时可用命令vgextend,如:

# vgextend vgdata /dev/sdb2

其中/dev/sdb2是新的PV(物理卷,使用pvcreate从物理盘创建)。

需要以下几个步骤(/dev/sdb2是需要加入的物理磁盘,通过df -h获取磁盘标识):

  • A、使用pvcreate初始化物理磁盘。

    sudo pvcreate /dev/sdb2

输入sudo pvs可以看到创建的物理卷。

  • B、使用vgextend加入PV到VG中。

    sudo vgextend vgdata /dev/sdb2

输入sudo vgs可以看到vg中的物理卷列表。

  • C、使用lvextend扩展虚拟卷的大小。

    #476899为增加的空闲空间,通过vgdisplay命令显示的Free PE值来确定。 lvextend -l+476899 /dev/vgdata/appdata

再执行sudo vgs可以看到空闲空间被分配到了vgdata中,但这时文件系统中仍然无法使用。

  • Resize 逻辑卷LV的尺寸。 再次,扩大文件系统到整个逻辑卷。 首先df -h查看逻辑卷的名称,然后调用resize2fs。

    sudo resize2fs /dev/mapper/vgdata-appdata #将全部的剩余空间赋给虚拟卷appdata的文件系统。

这时候在操作系统中,点击文件夹的“属性”,可以看到整个磁盘空间已经扩大了。

6、系统启动/关闭

为使系统启动时可自动激活并使用LVM,可将以下几行添加到启动 rc 脚本中:

/sbin/vgscan
/sbin/vgchange -a y

这些行将浏览所有可用的卷组并激活它们。要注意的是,它们应在安装卷组上的文件系统操作之前被执行,否则将无法正常安装文件系统。

在系统关机时,要关闭LVM,这可将以下这行添加到关机 rc 脚本中,并确保它在卸装了所有文件系统后执行:

/sbin/vgchange -a n
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
2年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
LVM的创建,修改大小,删除以及彻底卸载的操作步骤
首先解释一下几个关键词pv:physicalvolume物理卷,就是用物理磁盘组成的卷,要在物理磁盘上创建。vg:volumegroup卷组,就是物理卷组成的卷组合,要在物理卷基础上创建。lv:logicalvolume逻辑卷,可以理解为逻辑可动态分配的磁盘空间,要在卷组上创建。所以lvm的创建顺序就是,物理磁盘分区(也可以不
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
2年前
Linux磁盘和文件系统扩容彻底研究
1.物理卷:_LVM逻辑卷的底层物理存储单元是一个块设备,比如一个分区或整个磁盘。要在LVM逻辑卷中使用该设备,则必须将该设备初始化为物理卷(PV)。_2.卷组:物理卷合并为卷组(VG)。这样就创建了磁盘空间池,并可使用它分配逻辑卷。3.逻辑卷:逻辑卷管理会根据物理存储生成提取层,以便创建逻辑存储卷。这样就比直接使用物理存储在很
Stella981 Stella981
2年前
Linux磁盘管理:LVM逻辑卷的创建及使用
转载 http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/24/3096087.html详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理,包括LVM中最重要的四个基本点(PE、PV、VG以及LV),这篇随笔将会详细的讲解LVM逻辑卷的创建、使用以及删除.一、
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这