Linux 系统中LVM的创建

理论知识图片盗用其他博主的,我只做实操

转载地址:一张图让你学会LVM       

随着科技的进步,人们不知不觉的就进入了大数据的时代,数据的不断增加我们发现我们的磁盘越来越不够用了,接下来就是令人头疼的事情--加硬盘,数据的备份与还原。LVM就是Linux下专门针对我们数据的不断的扩大,在原有动态磁盘的基础上动态的调整磁盘的大小,LVM动态卷管理,一张图片让你深入了解lvm的使用。

one_picture_lvm

LVM——Logical Volume Manager

LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。

四个概念:

①PE(Physical Extend) 物理拓展

②PV(Physical Volume) 物理卷

③VG(Volume Group) 卷组

④LV(Logical Volume) 逻辑卷

特点:

LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。我们如果新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性!

工作原理:

(1)物理磁盘被格式化为PV,空间被划分为一个个的PE

(2)不同的PV加入到同一个VG中,不同PV的PE全部进入到了VG的PE池内

(3)LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘

(4)LV现在就直接可以格式化后挂载使用了

(5)LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据

操作:

one_picture_lvm_1

 1、查看:

pes、pedisplay                查看pe的大小(pes==pescan)

pvs、pvdisplay                查看物理卷

vgs、vgdisplay、              查看卷组

lvs、lvdisplay、              查看逻辑卷

fdisk -L                     查看磁盘分区

2、创建:

pvcreate 设备路径               创建物理卷
vgcreate 名字 pv路径            创建卷组

lvcreate -n 名字 -L 大小 vg名   创建逻辑卷

格式化:mkfs.ext4 lv完整路径               格式化逻辑卷(mkfs.文件系统格式或-t 文件系统格式)
挂载:mount  lv完整路径  挂载点          挂载使用(可以使用/etc/fstab或autofs)

3、逻辑卷删除:

1.卸载:umount 
2.删lv:lvremove lv完整路径 
3.删vg:vgremove vg名 
4.删PV:pvremove 设备完整路径 去硬盘

4、逻辑卷扩展:

1.扩展pv:相当于创建pv 
2.扩展vg: vgextend vg名 新增pv路径 
3.扩展lv: lvextend -L +扩展量 lv完整名 
4.刷新文件系统:resize2fs lv完整路径 
注意:灵活运用,看实际情况,注意顺序 (支持在线操作)

5、逻辑卷的缩小:

1.首先进行卸载 umount 检查文件系统:e2fsck -f lv完整路径

2.减少文件系统:resize2fs lv完整路径 减少到的大小

3.减少lv卷大小:lvreduce -L -减少量的大小 lv的完整路径

4.挂载使用

减小需谨慎,文件系统的减小后大小一定要和lv卷最终大小相等

-----------------------------------

环境准备:9G扩展区,分成1G,2G,512M,3个磁盘分区/dev/sda5,/dev/sda6,/dev/sda7,同时准备一个另外的单独磁盘5G

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a27a9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         131     1048576   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2             131         769     5120000   83  Linux
Partition 2 does not end on cylinder boundary.
/dev/sda3             769        1406     5120000   83  Linux
/dev/sda4            1406        2611     9681920    5  Extended
/dev/sda5            1406        1537     1056321   8e  Linux LVM
/dev/sda6            1538        1799     2104483+  8e  Linux LVM
/dev/sda7            1800        1865      530113+  8e  Linux LVM
#创建物理卷
[root@markcoven ~]# pvcreate /dev/sd{5,6,7}
    Physical volume "/dev/sda5" successfully created
    Physical volume "/dev/sda6" successfully created
    Physical volume "/dev/sda7" successfully created
#查看
[root@markcoven ~]# pvscan
  PV /dev/sda5                      lvm2 [1.01 GiB]
  PV /dev/sda6                      lvm2 [2.01 GiB]
  PV /dev/sda7                      lvm2 [517.69 MiB]
  Total: 3 [3.52 GiB] / in use: 0 [0   ] / in no VG: 3 [3.52 GiB]
#创建物理卷组:先创建要给物理卷组名:vg_mark_test0315_1,用PV:/dev/sda5,和一个vg_mark_test0315_2  ,用PV /dev/sda6
[root@markcoven ~]# vgcreate vg_mark_test0315_1 /dev/sda5
  Volume group "vg_mark_test0315_1" successfully created
[root@markcoven ~]# vgcreate vg_mark_test0315_2 /dev/sda6
  Volume group "vg_mark_test0315_2" successfully created
#查看
[root@markcoven ~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "vg_mark_test0315_2" using metadata type lvm2
  Found volume group "vg_mark_test0315_1" using metadata type lvm2

[root@markcoven ~]# vgdisplay
  --- Volume group ---
  VG Name               vg_mark_test0315_2
  System ID             
  Format                lvm2
  Metadata Areas        1
  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                1
  Act PV                1
  VG Size               2.00 GiB
  PE Size               4.00 MiB
  Total PE              513
  Alloc PE / Size       0 / 0   
  Free  PE / Size       513 / 2.00 GiB
  VG UUID               4p3plK-F3It-61W5-5P5I-R7O1-TPem-3w6Vbq
   
  --- Volume group ---
  VG Name               vg_mark_test0315_1
  System ID             
  Format                lvm2
  Metadata Areas        1
  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                1
  Act PV                1
  VG Size               1.00 GiB
  PE Size               4.00 MiB
  Total PE              257
  Alloc PE / Size       0 / 0   
  Free  PE / Size       257 / 1.00 GiB
  VG UUID               Z39dAA-DnNk-yC06-fxhb-Bj5u-zTHK-PojZI5

##创建3个逻辑卷,lv_mark_test1,lv_mark_test2,lv_mark_test3, lv1逻辑卷挂载到物理卷组vg1上,lv2,lv3挂载到物理卷vg2上,分别分配空间 lv1 100M lv2 1.5G,lv3 200M
[root@markcoven ~]# lvcreate -L 100M -n lv_mark_test1 vg_mark_test0315_1
  Logical volume "lv_mark_test1" created.
[root@markcoven ~]# lvcreate -L 1.5G -n lv_mark_test2 vg_mark_test0315_2
  Logical volume "lv_mark_test2" created.
[root@markcoven ~]# lvcreate -L 200M -n lv_mark_test3 vg_mark_test0315_2
  Logical volume "lv_mark_test3" created.
[root@markcoven ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg_mark_test0315_2/lv_mark_test2
  LV Name                lv_mark_test2
  VG Name                vg_mark_test0315_2
  LV UUID                CtnpMx-aLp8-92eb-wbnH-h65V-i3bh-xk6YB3
  LV Write Access        read/write
  LV Creation host, time markcoven, 2019-03-15 15:08:03 +0800
  LV Status              available
  # open                 0
  LV Size                1.50 GiB
  Current LE             384
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/vg_mark_test0315_2/lv_mark_test3
  LV Name                lv_mark_test3
  VG Name                vg_mark_test0315_2
  LV UUID                10fUXr-1dY2-jIOk-9XKe-8Md1-c51g-Mb7A8x
  LV Write Access        read/write
  LV Creation host, time markcoven, 2019-03-15 15:09:34 +0800
  LV Status              available
  # open                 0
  LV Size                200.00 MiB
  Current LE             50
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
   
  --- Logical volume ---
  LV Path                /dev/vg_mark_test0315_1/lv_mark_test1
  LV Name                lv_mark_test1
  VG Name                vg_mark_test0315_1
  LV UUID                dh01p2-0u5C-XsDe-pWXp-4dQ1-0EGE-cn5dDu
  LV Write Access        read/write
  LV Creation host, time markcoven, 2019-03-15 15:05:58 +0800
  LV Status              available
  # open                 0
  LV Size                100.00 MiB
  Current LE             25
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
[root@markcoven ~]# lvscan
  ACTIVE            '/dev/vg_mark_test0315_2/lv_mark_test2' [1.50 GiB] inherit
  ACTIVE            '/dev/vg_mark_test0315_2/lv_mark_test3' [200.00 MiB] inherit
  ACTIVE            '/dev/vg_mark_test0315_1/lv_mark_test1' [100.00 MiB] inherit
对如果想使用则需要先格式化,mk.ext4或(mount -t ext4 )格式化后就可以挂载使用了,如果是扩展则需要先备份数据,后卸载,再扩展和缩减,我就不挂载和格式化了,就坐下扩展和缩减逻辑卷和物理卷组
######
####1),将vg2剩余部分给lv3
######
[root@markcoven ~]# lvscan
  ACTIVE            '/dev/vg_mark_test0315_2/lv_mark_test2' [1.50 GiB] inherit
  ACTIVE            '/dev/vg_mark_test0315_2/lv_mark_test3' [200.00 MiB] inherit
  ACTIVE            '/dev/vg_mark_test0315_1/lv_mark_test1' [100.00 MiB] inherit
[root@markcoven ~]# lvextend -l +100%FREE /dev/vg_mark_test0315_2/lv_mark_test3
  Size of logical volume vg_mark_test0315_2/lv_mark_test3 changed from 200.00 MiB (50 extents) to 516.00 MiB (129 extents).
  Logical volume lv_mark_test3 successfully resized.
[root@markcoven ~]# lvscan
  ACTIVE            '/dev/vg_mark_test0315_2/lv_mark_test2' [1.50 GiB] inherit
  ACTIVE            '/dev/vg_mark_test0315_2/lv_mark_test3' [516.00 MiB] inherit
  ACTIVE            '/dev/vg_mark_test0315_1/lv_mark_test1' [100.00 MiB] inherit
##已经扩容成功,现将物理卷p3加入到vg2中
[root@markcoven ~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "vg_mark_test0315_2" using metadata type lvm2
  Found volume group "vg_mark_test0315_1" using metadata type lvm2
[root@markcoven ~]# vgextend vg_mark_test0315_2 /dev/sda7
  Volume group "vg_mark_test0315_2" successfully extended
[root@markcoven ~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "vg_mark_test0315_2" using metadata type lvm2
  Found volume group "vg_mark_test0315_1" using metadata type lvm2
[root@markcoven ~]# pvscan
  PV /dev/sda6   VG vg_mark_test0315_2   lvm2 [2.00 GiB / 0    free]
  PV /dev/sda7   VG vg_mark_test0315_2   lvm2 [516.00 MiB / 516.00 MiB free]
  PV /dev/sda5   VG vg_mark_test0315_1   lvm2 [1.00 GiB / 928.00 MiB free]
  Total: 3 [3.51 GiB] / in use: 3 [3.51 GiB] / in no VG: 0 [0   ]
###现在vg2中挂载了2块pv,vg1挂一块pv,要求现在将lv2从vg2中卸载下来挂载到vg1中大小为50M,lv1从vg1中扩展得到剩余的vg1的大小,将lv3缩小至100M
[root@markcoven ~]# lvremove /dev/vg_mark_test0315_2/lv_mark_test2
Do you really want to remove active logical volume lv_mark_test2? [y/n]: y
  Logical volume "lv_mark_test2" successfully removed
[root@markcoven ~]# lvscan
  ACTIVE            '/dev/vg_mark_test0315_2/lv_mark_test3' [516.00 MiB] inherit
  ACTIVE            '/dev/vg_mark_test0315_1/lv_mark_test1' [100.00 MiB] inherit
##这里的vg_mark_test0315_1 也可以写成绝对路径/dev/vg_mark_test0315_1
[root@markcoven ~]# lvcreate -L 50M -n lv_mark_test2_2 vg_mark_test0315_1
  Rounding up size to full physical extent 52.00 MiB
  Logical volume "lv_mark_test2_2" created.
[root@markcoven ~]# lvscan
  ACTIVE            '/dev/vg_mark_test0315_2/lv_mark_test3' [516.00 MiB] inherit
  ACTIVE            '/dev/vg_mark_test0315_1/lv_mark_test1' [100.00 MiB] inherit
  ACTIVE            '/dev/vg_mark_test0315_1/lv_mark_test2_2' [52.00 MiB] inherit
##这里是52M因为pe的最小单元是4M所以必须是整数倍
[root@markcoven ~]# lvextend -l +100%FREE /dev/lv_mark_test1 
  Path required for Logical Volume "lv_mark_test1".
  Please provide a volume group name
  Run `lvextend --help' for more information.
[root@markcoven ~]# lvextend -l +100%FREE /dev/vg_mark_test0315_1/lv_mark_test1 
  Size of logical volume vg_mark_test0315_1/lv_mark_test1 changed from 100.00 MiB (25 extents) to 976.00 MiB (244 extents).
  Logical volume lv_mark_test1 successfully resized.
[root@markcoven ~]# lvscan
  ACTIVE            '/dev/vg_mark_test0315_2/lv_mark_test3' [516.00 MiB] inherit
  ACTIVE            '/dev/vg_mark_test0315_1/lv_mark_test1' [976.00 MiB] inherit
  ACTIVE            '/dev/vg_mark_test0315_1/lv_mark_test2_2' [52.00 MiB] inherit
##lvextend后面最好是跟绝对路径的逻辑卷路径,单个路径不生效
[root@markcoven ~]# lvscan
  ACTIVE            '/dev/vg_mark_test0315_2/lv_mark_test3' [516.00 MiB] inherit
  ACTIVE            '/dev/vg_mark_test0315_1/lv_mark_test1' [144.00 MiB] inherit
  ACTIVE            '/dev/vg_mark_test0315_1/lv_mark_test2_2' [52.00 MiB] inherit
[root@markcoven ~]# lvreduce -L -800M /dev/vg_mark_test0315_1/lv_mark_test1
  WARNING: Reducing active logical volume to 100.00 MiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg_mark_test0315_1/lv_mark_test1? [y/n]: y   
  Size of logical volume vg_mark_test0315_1/lv_mark_test1 changed from 976.00 MiB (244 extents) to 100.00 MiB (25 extents).
  Logical volume lv_mark_test1 successfully resized.
[root@markcoven ~]# lvscan
  ACTIVE            '/dev/vg_mark_test0315_2/lv_mark_test3' [516.00 MiB] inherit
  ACTIVE            '/dev/vg_mark_test0315_1/lv_mark_test1' [100.00 MiB] inherit
  ACTIVE            '/dev/vg_mark_test0315_1/lv_mark_test2_2' [52.00 MiB] inherit
####现在删除掉,因为lv 1,2 都在物理卷组1上,先删除lv1,lv2,再卸载vg1
[root@markcoven ~]# lvremove -y /dev/vg_mark_test0315_1/lv_mark_test1
  Logical volume "lv_mark_test1" successfully removed
[root@markcoven ~]# lvremove -y /dev/vg_mark_test0315_1/lv_mark_test2_2 
  Logical volume "lv_mark_test2_2" successfully removed
[root@markcoven ~]# lvscan
  ACTIVE            '/dev/vg_mark_test0315_2/lv_mark_test3' [516.00 MiB] inherit
[root@markcoven ~]# vgremove vg_mark_test0315_1
  Volume group "vg_mark_test0315_1" successfully removed
[root@markcoven ~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "vg_mark_test0315_2" using metadata type lvm2
[root@markcoven ~]# pvscan
  PV /dev/sda6   VG vg_mark_test0315_2   lvm2 [2.00 GiB / 1.50 GiB free]
  PV /dev/sda7   VG vg_mark_test0315_2   lvm2 [516.00 MiB / 516.00 MiB free]
  PV /dev/sda5                           lvm2 [1.01 GiB]
  Total: 3 [3.52 GiB] / in use: 2 [2.51 GiB] / in no VG: 1 [1.01 GiB]
[root@markcoven ~]# pvremove /dev/sda5
  Labels on physical volume "/dev/sda5" successfully wiped
[root@markcoven ~]# pvscan
  PV /dev/sda6   VG vg_mark_test0315_2   lvm2 [2.00 GiB / 1.50 GiB free]
  PV /dev/sda7   VG vg_mark_test0315_2   lvm2 [516.00 MiB / 516.00 MiB free]
  Total: 2 [2.51 GiB] / in use: 2 [2.51 GiB] / in no VG: 0 [0   ]
###

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值