逻辑卷的创建与移除

一、弹性控制磁盘大小的lvm:

    假如有这样一个场景,在初始安装linux系统时给 /home分区设置了一定大小,但是过了一段时间后,你发现初始分配的大小远不能满足公司的扩大,员工增加,需要分配的账号的磁盘空间也变大,这时你应该怎么办?是挂载一块更大的硬盘,将原来的小硬盘拆除掉吗?其实在linux中有lvm可动态增大文件系统的,而且不需要服务器离线就能办到。lvm(logical volume manager),通过名字就很好理解,逻辑卷就是在物理卷之上,再次进行逻辑上的划分,把多个物理卷(可以是硬盘可以是分区)组合成一个卷组,通过划分卷组来进行磁盘的统一划分为逻辑卷,如果某一天逻辑卷不够使用了,可以给卷组添加硬盘或分区,再将逻辑卷进行放大,最后对文件系统进行放大就行了,如果是缩小lvm的话就需要先取消挂载,然后再缩小

二、 LVM相关概念:

pv:物理卷:可以是物理硬盘或分区,通过改变卷标为8e,使用pv命令转化为物理卷

vg:多个物理卷的一个集合,构成了逻辑上存在的卷组,叫逻辑卷

lv:在使用卷组时可以划分出多个逻辑卷,通过格式化

pe:构成卷组的逻辑上的最小块,类似于硬盘的块大小,分配给lvm时也只能是pe的整数倍,默认一个卷组可以有65534个pe,pe默认大小为4MB, 则一个卷组默认最大有256G,当然可以改变pe的大小来改变vg的最大(pe的大小单位可以是小到b大到g,t,p,e都可以指定)

1.png

三者的关系大概是上图的关系

三、逻辑卷的命令:

1. pv相关命令:

pvcreate:创建物理卷

pvdisplay:显示系统的物理卷详细信息

pvs:显示系统物理卷的概要信息

pvremove:移除物理卷

pvmove搬移物理卷,先加源pv后加目标pv,缩小vg时使用

         pvscan:扫描pv

2.  vg相关命令:

vgcreate:创建卷组

vgdisplay:卷组的详细信息

vgs: 卷组的概要信息

vgextend:使用pv扩展卷组

vgreduce:在vg内移除pv

vgremove:移除卷组

vgscan:扫描vg

3. lv相关信息:

lvcreate创建卷组

lvs逻辑卷的概要信息

lvdisplay 逻辑卷详细信息

lvextend 在lv里增加容量

lvresize 调整lv的容量大小

lvremove 移除lv

 

四、逻辑卷的实例:

1. 创建逻辑卷:

需要依次创建物理卷、卷组、逻辑卷:

[root@cnode6_8 ~]# pvcreate /dev/sd{b1,b2,c}
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdb2" successfully created
  Physical volume "/dev/sdc" successfully created

#下面创建名字为jack_vg,pe大小为1M,pv添加了一个分区,一块磁盘

 [root@cnode6_8 ~]# vgcreate -s 1M jack_vg /dev/sdb1 /dev/sdc
  Volume group "jack_vg" successfully created
[root@cnode6_8 ~]# vgs  //显示创建的vg
  VG      #PV #LV #SN Attr   VSize  VFree
  jack_vg   2   0   0 wz--n- 20.10g 20.10g
[root@cnode6_8 ~]# vgscan  //显示创建的vg
  Reading all physical volumes.  This may take a while...
  Found volume group "jack_vg" using metadata type lvm2
[root@cnode6_8 ~]# vgdisplay  //显示详细信息
  --- Volume group ---
  VG Name               jack_vg
  System ID            
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               20.10 GiB  //vg大小为20.1G
  PE Size               1.00 MiB
  Total PE              20587  //pe总个数
  Alloc PE / Size       0 / 0  
  Free  PE / Size       20587 / 20.10 GiB
  VG UUID               CvbWjN-q0ew-Uk97-FnFu-iWPM-rl7B-KJ1PNn

#创建lv 指定大小为300个pe,-L可以直接指定大小,-n指定lv名字

[root@cnode6_8 ~]# lvcreate -l 300 -n jack_lv jack_vg
  Logical volume "jack_lv" created.
[root@cnode6_8 ~]# mkfs.ext3 /dev/jack_vg/jack_lv  //格式化逻辑卷
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
……
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@cnode6_8 ~]# mkdir /mnt/jack_lv   //创建挂载点,挂载
[root@cnode6_8 ~]# mount /dev/jack_vg/jack_lv /mnt/jack_lv
[root@cnode6_8 ~]# df -h |grep lv  //查看文件系统挂载情况
/dev/mapper/jack_vg-jack_lv  291M   11M  266M   4% /mnt/jack_lv

               

2. 逻辑卷扩展:

逻辑卷扩展需要先扩展物理卷再把物理卷加入卷组之后放大逻辑卷,最后放大文件系统。在前面已经有一个分区未被加入卷组中,可以直接使用,具体步骤如下:

[root@cnode6_8 ~]# vgextend jack_vg /dev/sdb2
  Volume group "jack_vg" successfully extended
[root@cnode6_8 ~]# vgs
  VG      #PV  #LV  #SN  Attr     VSize  VFree
  jack_vg        3   1    0    wz--n- 20.30g 20.01g

#扩展逻辑卷只需指定扩展多少,也可以使用-L直接指定大小,也可以使用-l直接指定一共有多少个pe即可

[root@cnode6_8 ~]# lvresize -l +100 /dev/jack_vg/jack_lv
Size of logical volume jack_vg/jack_lv changed from 300.00 MiB (300 extents) to 400.00 MiB (400 extents).
  Logical volume jack_lv successfully resized.

#此时文件系统还是原来的大小,放大文件系统

[root@cnode6_8 ~]# resize2fs /dev/jack_vg/jack_lv
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/jack_vg/jack_lv is mounted on /mnt/jack_lv; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 2
Performing an on-line resize of /dev/jack_vg/jack_lv to 409600 (1k) blocks.
The filesystem on /dev/jack_vg/jack_lv is now 409600 blocks long.

3. 缩小逻辑卷:

缩小逻辑卷应该先缩小文件系统,在缩小逻辑卷,将要移除的分区或硬盘上的数据搬移至没有使用的分区,缩小卷组移除物理卷。

具体步骤如下:

#第一次缩小文件系统大小时系统会提示运行检查文件系统的命令

[root@cnode6_8 ~]# resize2fs   /dev/jack_vg/jack_lv 160M
resize2fs 1.41.12 (17-May-2010)
Please run 'e2fsck -f /dev/jack_vg/jack_lv' first.
 
[root@cnode6_8 ~]# e2fsck -f /dev/jack_vg/jack_lv
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/jack_vg/jack_lv: 38/101200 files (0.0% non-contiguous), 126124/409600 blocks

#运行完文件系统检查后就可以运行缩小文件系统的命令

[root@cnode6_8 ~]# resize2fs   /dev/jack_vg/jack_lv 160M
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/jack_vg/jack_lv to 163840 (1k) blocks.
The filesystem on /dev/jack_vg/jack_lv is now 163840 blocks long.
 
[root@cnode6_8 ~]# lvresize -L 180M /dev/jack_vg/jack_lv
  WARNING: Reducing active logical volume to 180.00 MiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce jack_vg/jack_lv? [y/n]: y
  Size of logical volume jack_vg/jack_lv changed from 300.00 MiB (300 extents) to 180.00 MiB (180 extents).
  Logical volume jack_lv successfully resized.

#假如需要移除/dev/sdc 但是发现它已经被使用了一部分,需要移至其他不用移除的分区

[root@cnode6_8 ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               jack_vg
  PV Size               109.79 MiB / not usable 1.79 MiB
  Allocatable           yes
  PE Size               1.00 MiB
  Total PE              108
  Free PE               108
  Allocated PE          0
  PV UUID               RfUlAj-6mtH-CekP-4BQs-SSVU-MYem-rVj9kS
  
  --- Physical volume ---
  PV Name               /dev/sdc
  VG Name               jack_vg
  PV Size               20.00 GiB / not usable 0  
  Allocatable           yes
  PE Size               1.00 MiB
  Total PE              20479
  Free PE               20299
  Allocated PE          180
  PV UUID               MY3ZK5-do0L-dQCs-2EOH-b1O1-Dhql-oT8Pr8
  
  --- Physical volume ---
  PV Name               /dev/sdb2
  VG Name               jack_vg
  PV Size               203.95 MiB / not usable 1.95 MiB
  Allocatable           yes
  PE Size               1.00 MiB
  Total PE              202
  Free PE               202
  Allocated PE          0
  PV UUID               OISzAn-fAZW-OmPV-l8x0-0QPZ-i1xE-rBoEJc
[root@cnode6_8 ~]# pvmove /dev/sdc  /dev/sdb2
  /dev/sdc: Moved: 7.2%
  /dev/sdc: Moved: 100.0%
[root@cnode6_8 ~]# pvdisplay /dev/sdc
  --- Physical volume ---
  PV Name               /dev/sdc
  VG Name               jack_vg
  PV Size               20.00 GiB / not usable 0  
  Allocatable           yes
  PE Size               1.00 MiB
  Total PE              20479
  Free PE               20479
  Allocated PE          0
  PV UUID               MY3ZK5-do0L-dQCs-2EOH-b1O1-Dhql-oT8Pr8

此时分配了/dev/sdc的已经全部收回,可以缩减卷组了移除pv了

[root@cnode6_8 ~]# vgreduce  jack_vg  /dev/sdc
  Removed "/dev/sdc" from volume group "jack_vg"
[root@cnode6_8 ~]# pvremove /dev/sdc
  Labels on physical volume "/dev/sdc" successfully wiped

最后提示移除成功!

[root@cnode6_8 ~]# vgs
  VG      #PV #LV #SN Attr   VSize   VFree 
  jack_vg   2   1   0 wz--n- 310.00m 130.00m
[root@cnode6_8 ~]# lvs
  LV      VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  jack_lv jack_vg -wi-a----- 180.00m                                                   
[root@cnode6_8 ~]# pvs
  PV         VG      Fmt  Attr PSize   PFree 
  /dev/sdb1  jack_vg lvm2 a--u 108.00m 108.00m
  /dev/sdb2  jack_vg lvm2 a--u 202.00m  22.00m

 

原创文章,作者:jack_cui,如若转载,请注明出处:http://www.178linux.com/41780

(0)
jack_cuijack_cui
上一篇 2016-08-30 13:55
下一篇 2016-08-30 13:55

相关推荐

  • N22 网络班-第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。   2、取出最后登录到当前系统的用户的相关信息。   3、取出当前系统上被用户当作其默认shell的最多的那个shell。   4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxus…

    Linux干货 2016-09-06
  • 磁盘管理

      磁盘管理是一项计算机使用时的常规任务,它是以一组磁盘管理应用程序的形式提供给用户的,它们位于"计算机管理"控制台中.它包括查错程序和磁盘碎片整理程序以及磁盘整理程序。   一磁盘分区     1为什么要分区?     •优化I…

    Linux干货 2016-09-02
  • Linux 学习基本

    环境配置主要分硬件和软件两种

    2018-03-26
  • CentOS7.3系统上编译安装httpd.2.4.25

    本文所做的所有操作是在一部新安装的CentOS7.3系统上。 1.环境与配置 环境说明:VMware上安装的CentOS7.3系统,7.3完整版光盘做成的yum源 配置:编译生成的所有的文件都存放在/usr/local/httpd24/这个目录下 2.安装GCC编译器 #安装Development tools这个软件包组 [root@pxe68 ~]# yu…

    2017-04-20
  • linux入门基础知识及简单命令介绍

    1、计算机硬件组成介绍 计算机主要由cpu(运算器、控制器),内存,I/O,外部存储等构成。     cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作。不能从硬盘中直接取数据。     内存从外部存储中取出数据供cpu运存。内存的最小单位是字节…

    Linux干货 2017-08-28
  • 磁盘管理作业

    创建一个2G的文件系统,块大小为2048byte, 预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/testdir目录,且默认有acl挂载选项 [root@English6 ~]# fdisk /dev/sdc Device contains neither a&nb…

    Linux干货 2016-09-01

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-02 11:50

    文章思路很清晰,理论与实战相结合,实验部分一气合成,如果能对图进行一些详细的解释,对小白来说更易读。