逻辑卷的创建与移除

一、弹性控制磁盘大小的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
下一篇 2016-08-30

相关推荐

  • grep,find

    显示当前系统上root、fedora、user用户的默认shell: 2.找出/etc/rc.d/init.d/functions文中单词后跟一组小括号的行 3.使用echo命令输出一个绝对路径,使用grep取出其基名: 4.找出ifconfig命令结果中的1-255之间的数字 5.写一个模式,匹配合理的ip地址 6.写一个模式,匹配出邮箱地址 7.查找/v…

    Linux干货 2016-11-27
  • Linux 第11&12天: Linux软件包管理

    Linux 第11&12天: Linux软件包管理      在系统管理中, 软件包的管理是最重要的, 是系统管理的基础,   本文主要是记录内容有: RPM二进制包的管理,YUM二进制包的管理, 源代码包的管理   软件运行环境API:Application Programming Interfac…

    Linux干货 2016-08-22
  • vsftpd基于mysql存储认证(centos7)

    (1)首先开发包组和服务器平平台开发包组 (2)yum安装需要的依赖包 (3)编译安装pam_mysql模块 (4)配置mysql,并添加mysql中的vsftpd进程用户,且创建vsftpd数据库,并将vsftpd数据库授权给vsftpd用户,且创建vsftpd.users表,并在表中添加用户tom (5)创建vsftpd要上传和下载的URL (6)创建基…

    Linux干货 2016-10-15
  • http

    http http:hyper text transfer protocol, 应用层协议, 80/tcp, 文本协议 html:hyper text mark language, 是一种编程语言,超文本标记语言; html格式示例: <html> <head> <title>TITLE</title> &lt…

    Linux干货 2017-06-04
  • 文件元数据信息详解

    文件元数据信息详解 文件的元数据是什么? 文件的数据分为两类:一类为数据,即文件的实际内容;另一类为元数据,用来描述文件的特征。 元数据内容: 文件名 文件大小 文件所在数据块 数据块的大小 文件类型 文件所在的Inode 硬链接次数 权限 属主id 属组id 最近一次访问时间戳 最近一次更改文件内容的时间戳 最近一次更改文件元数据的时间戳 查看文件的元数据…

    Linux干货 2017-07-09
  • 第10天:程序包,脚本,sed

    http://note.youdao.com/yws/public/redirect/share?id=b9432a76ff1180b42e01f6eb7c9fc90e&type=false

    Linux干货 2016-08-18

评论列表(1条)

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

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