Ubuntu的Linux逻辑卷管理-LVM快速入门

LVM(逻辑卷)管理系统能够将多个物理磁盘组装为一个大的逻辑磁盘进行使用,尤为是管理大文件时很是方便。LVM能够减小多个磁盘的部分空间闲置的状况,集中使用提升磁盘利用率。LVM的卷能够动态伸缩,方便使用。app

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

一、将物理磁盘转换为PV

  • 注意:备份您的全部数据!

查看物理磁盘信息

df -h

建立物理卷

若是要将物理分区/dev/sdb2转为物理卷:操作系统

sudo pvcreate /dev/sdb2

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

查看物理卷

sudo pvs

二、创建逻辑卷组-VG

2.1 建立逻辑卷组

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

vgcreate vgdata /dev/sdb2

2.2 激活VG

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

sudo vgchange -a y  vgdata

激活所要使用的卷组。test

2.3 卸载VG

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

sudo vgchange -a n  vgdata

三、创建逻辑卷-LV

3.1 命令lvcreate用于建立逻辑卷

语法以下:扩展

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

其中的经常使用可选项有:map

  • -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

四、格式化逻辑卷

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

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

五、添加新物理盘

当卷组空间不足时,能够加入新的物理卷来扩大容量,这时可用命令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的文件系统。

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

六、系统启动/关闭

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

/sbin/vgscan
/sbin/vgchange -a y

这些行将浏览全部可用的卷组并激活它们。要注意的是,它们应在安装卷组上的文件系统操做以前被执行,不然将没法正常安装文件系统。

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

/sbin/vgchange -a n
相关文章
相关标签/搜索