逻辑卷的创建与移除

一、弹性控制磁盘大小的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

相关推荐

  • Linux 命令行返回状态

    linux 执行命令后会返回一个状态码 命令执行成功返回0: 当删除一个文件并删除成功时返回的状态码为0 [root@localhost 1]# rm -rf 1_1 [root@localhost 1]# echo $? 0 命令执行失败返回1-255 当把 文件夹 1_1 重命名为1_2失败后状态码为1 [root@localhost 1]# mv 1_…

    Linux干货 2017-08-28
  • PXE原理详解及实践

    一、PXE简介 PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由支持通过网络启动操作系统,再启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol…

    Linux干货 2017-01-10
  • linux 学习之权限优先级

    linux下对同一文件的权限分成很多类,同时也可能对同一文件权限配置多种权限那么在这么多配置中,到底是怎么生效的呢?比如一个文件abc.txt属于wang用户,而同时对abc.txt又设置了ACL禁止 wang用户读写执行等等这些情况就是ACL的生效顺序完全理解,模拟出实验环境一一验证1,文件a属于mage用户,但ACL限制 mage读写执行 Paste_I…

    Linux干货 2017-05-29
  • N26-博客作业-week14

    系统的INPUT和OUTPUT默认策略为DROP; 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机; 配置系统INPUT和OUTPUT默认策略为DROP# iptables -P INPUT DROP# iptables -P OUTPU…

    Linux干货 2017-06-22
  • MySQL复制

    目录: 1.备份与恢复 2.主从复制 3.主主复制 4.半同步复制 5.MHA 6.centos7搭建mariadb Galera集群 1.备份和恢复 备份工具:mysqldump+复制binlog xtrabackup (1) mysqldump+复制binlog 备份: mysqldump -E -R –triggers –master-data=2 –…

    2017-11-21
  • Linux磁盘和文件系统基础

    概述     Linux系统上,磁盘要正常的进行数据的存储,需要先进行分区,再进行格式化生成文件系统,最后挂载到某个目录下,才能进行正常的数据存取,本篇就介绍一下磁盘从分区到正常使用的几个步骤,具体分为以下几个部分:     1、磁盘的基础概念   &nbsp…

    Linux干货 2016-08-29

评论列表(1条)

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

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