十三、LVM 逻辑卷管理

http://note.youdao.com/noteshare?id=0252cd5dcf7f2e5f11de5b3672779201&sub=ED011464ADA3467D94242717C8996048

LVM2 

逻辑卷管理器第二版,Logical Volume Manager Version 2,

  dm:device mapper 将一个或多个底层块设备组织成一个逻辑设备的模块。

 

创建后逻辑卷的路径(lvpath)

原始路径:/dev/dm-#

其链接文件有:

1)/dev/mapper/VGNAME-LVNAME

2)/dev/VGNAME/LVNAME

  1、纯软件实现的虚拟层次上的软设备lvm2

  2、磁盘损坏时,数据恢复困难。人为损坏数据,恢复困难。

一、基础概念

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。

是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的 分区加入其中,这样可以实现一种磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。LVM还能通过快照在备份的过程中保证日志文件和表空间文件在同一时间点的一致性。

  • PE(Physical Extend):卷的最小单位,可配置,默认4M大小,就像我们的数据是以页的形式存储一样,也可以类比为raid的chunk,文件系统的block,卷就是以PE的形式存储。
  • PV(Physical Volume):物理卷,如果要使用逻辑卷,首先第一步操作就是将磁盘格式化成PV,从上图可以看出PV是保护PE的,PV内PE的数量取决于这块磁盘的容量/4M.
  • VG(Volume Group):卷组,VG就是将很多PE组合在一起生成一个卷组,当然这里的PE是可以跨磁盘的,如果当前服务器磁盘空间不足就可以增加一个新磁盘对当前系统不会产生任何影响。
    • 1、可动态扩展或缩减VG中PV的数量
    • 2、类似于扩展分区,不能直接格式化使用
    • 3、PE只有在VG创建后才会出现在PV中,其大小由创建时指定。默认为4M
  • LV(Logical Volume):逻辑卷,逻辑卷最终是给用户使用的,前面几个都是为创建逻辑卷做的准备,创建逻辑卷的大小只要不超过VG剩余空间就可以。
    •  1、可动态扩展或缩减LV的大小,或 LV中PE的数量,即可跨越多个PV。
    •  2、可以直接格式化并挂载使用。
    • 3、LE只有在LV创建后才会出现在VG中,其大小由创建时指定。默认为1280

快照:在LV之上实现的。创建快照后,将创建一个监控对原卷中的元数据进行瞬间扫描(为了避免元数据备份的时间不一致),当文件任何内容改变时,元数据均会改变。在元数据变化之前,将变化的数据备份在于快照空间中。访问快照时,变化的部分在快照中,没有变化的部分在于原卷中。

    1、快照是另一个路径指向与原卷相同的Inode

    2、创建快照备份,只是对创建快照那一刻原卷内的所有数据进行备份,之后新加入的内容不会进行备份,需要用到(增量备份或差异备份)

    3、快照的大小取决于:原卷存活的时间内数据变化量。最大大小为原卷大小

    4、快照卷的路径:跟原卷在同一个卷组中。

二、创建LVM

2.1 pv管理(物理卷管理)

pvcreate    # 创建pv
pvscan      # 扫描并列出所有的pv
pvs         # 显示与pvscan相似
pvdisplay   # 列出pv属性信息
pvremove    # 移除pv
pvmove      # 移除pv中的数据
pvcreate  /dev/sdc1 /dev/sdd1  /dev/sdb1  /dev/sdc2  -y  # 对已经划分好的几块分区创建pv;-y选项用于自动回答yes
  Wiping ext4 signature on /dev/sdc1.
  Physical volume "/dev/sdc1" successfully created.
  Physical volume "/dev/sdd1" successfully created.
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc2" successfully created.

pvscan  # 扫描并列出所有的pv
  PV /dev/sdc2                      lvm2 [10.00 GiB]
  PV /dev/sdd1                      lvm2 [15.00 GiB]
  PV /dev/sdb1                      lvm2 [15.00 GiB]
  PV /dev/sdc1                      lvm2 [15.00 GiB]
  Total: 4 [55.00 GiB] / in use: 0 [0   ] / in no VG: 4 [55.00 GiB]   # 

pvs
  PV         VG Fmt  Attr PSize  PFree
  /dev/sdb1     lvm2 ---  15.00g 15.00g
  /dev/sdc1     lvm2 ---  15.00g 15.00g
  /dev/sdc2     lvm2 ---  10.00g 10.00g
  /dev/sdd1     lvm2 ---  15.00g 15.00g

pvdisplay /dev/sdb1  # pvdisplay 可以列出更详细的pv信息
  "/dev/sdb1" is a new physical volume of "15.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name
  PV Size               15.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               OBSoTj-YcyL-XPGh-wsTt-9zcj-qXSp-YC9YZY

# 以上命令都可以看见pv的大小,数量,剩余空间等信息

2.2 管理vg

vgcreate       # 创建VG
vgscan         # 扫描并列出所有的vg
vgdisplay      # 列出vg属性信息
vgremove       # 移除vg,即删除vg
vgreduce       # 从vg中移除pv,vg减小
vgextend       # 将pv添加到vg中,vg扩容
vgchange       # 修改vg属性,
vgcreate  -s 6M  vggroup  /dev/sdb1 /dev/sdc1 /dev/sdc2 /dev/sdd1   # -s设定pe大小,默认为4M;vggroup为设置的vg名称;后边跟的4个文件为要创建vg的组员
  Volume group "vggroup" successfully created  

[[email protected] ~]#vgscan
  Reading volume groups from cache.
  Found volume group "vggroup" using metadata type lvm2

[[email protected] ~]#vgdisplay
  --- Volume group ---
  VG Name               vggroup
  System ID
  Format                lvm2   # 格式分为lvm1 和lvm2
  Metadata Areas        4
  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                4
  Act PV                4
  VG Size               <54.98 GiB
  PE Size               6.00 MiB
  Total PE              9383
  Alloc PE / Size       0 / 0
  Free  PE / Size       9383 / <54.98 GiB
  VG UUID               flmx2S-0LT9-hgCZ-HcfL-TT6n-jkna-jSIWbp

[[email protected] ~]#vgreduce vggroup  /dev/sdd1
  Removed "/dev/sdd1" from volume group "vggroup"

[[email protected] ~]#vgdisplay
  --- Volume group ---
  VG Name               vggroup
  System ID
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               39.98 GiB
  PE Size               6.00 MiB
  Total PE              6824
  Alloc PE / Size       0 / 0
  Free  PE / Size       6824 / 39.98 GiB
  VG UUID               flmx2S-0LT9-hgCZ-HcfL-TT6n-jkna-jSIWbp

# 可见,减掉sdd1后vg里的数量变为3,容量也减少了;

[[email protected] ~]#vgextend vggroup  /dev/sdd1  # 在vggroup中再添加一块pv;
  Volume group "vggroup" successfully extended

vgchange用于设置卷组的活动状态,卷组的激活状态主要影响的是lv。使用-a选项来设置。

vgchange -a  y  vggroup  # 将vggroup设置为活动状态(active yes)
vgchange -a  y  vggroup  # 将vggroup设置为非激活状态(active no)

2.3 管理lv

lvcreate   # 创建lv
lvscan     # 扫描并列出所有的lv
lvdisplay  # 列出lv属性信息
lvremove   # 移除lv,即删除lv
lvreduce(lvresize)  # 缩小lv容量
lvextend(lvresize)  # 增大lv容量
lvresize   # 改变lv容量
格式:lvcreate {-L size(M/G)  |  -l PEnum}  -n  lv_name  vg_name
选项说明:
-L:根据大小来创建lv,即分配多大空间给此lv
-l:根据PE的数量来创建lv,即分配多少个pe给此lv
-n:指定lv的名称
示例:
[[email protected] ~]#lvcreate -L 20G -n lv1 vggroup
  Rounding up size to full physical extent 20.00 GiB
  Logical volume "lv1" created.

[[email protected] ~]#lvscan
  ACTIVE            ‘/dev/vggroup/lv1‘ [20.00 GiB] inherit

[[email protected] ~]#lvdisplay   # 一般后边跟lv1的绝对流经,/dev/vggroup/lv1
  --- Logical volume ---
  LV Path                /dev/vggroup/lv1
  LV Name                lv1
  VG Name                vggroup
  LV UUID                4Wnt9z-T8OP-cJL3-ViL8-QIAE-2vMC-UzNaOf
  LV Write Access        read/write
  LV Creation host, time CentOS7.songtai, 2018-12-19 18:41:23 +0800
  LV Status              available
  # open                 0
  LV Size                20.00 GiB
  Current LE             3414
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

注意:创建lv后,将在/dev/vggroup目录中创建对应lv名称的软链接文件,同时也在/dev/mapper目录下创建链接文件,它们都指向/dev/dm设备。

[[email protected] ~]#ll /dev/vggroup/lv1  /dev/mapper/vggroup-lv1
lrwxrwxrwx. 1 root root 7 Dec 19 18:41 /dev/mapper/vggroup-lv1 -> ../dm-0
lrwxrwxrwx. 1 root root 7 Dec 19 18:41 /dev/vggroup/lv1 -> ../dm-0

[[email protected] ~]#ll -d /dev/dm-0
brw-rw----. 1 root disk 253, 0 Dec 19 18:41 /dev/dm-0

2.4 格式化lv;挂载

mke2fs -t ext4 /dev/vggroup/lv1 

mount /dev/vggroup/lv1   /data/lvmnt/       # 也可以
mount /dev/mapper/vggroup-lv1  /data/lvmnt

三、扩容lvm

在对LV(逻辑卷)进行容量扩充之前先查看VG(卷组)中剩余空间有多少,扩充的大小不能超过VG剩余的空间大小;即使vg中没有空余的空间,也可以往vg中添加pv来扩容。

扩容的两个关键步骤如下:

(1).使用lvextend或者lvresize添加更多的pe或容量到lv中

(2).使用resize2fs命令(xfs则使用xfs_growfs)将lv增加后的容量增加到对应的文件系统中(此过程是修改文件系统而非LVM内容)

注意:扩容前须将挂载的逻辑卷卸载再进行扩容!

扩容前先看看还有多少空心啊的pe可以扩充:

vgdisplay    # 查看有多少空闲空间或空闲pe
vgdisplay | grep  -i pe    # 精确查找
  PE Size               4.00 MiB
  Total PE              15364
  Alloc PE / Size       6400 / 25.00 GiB
  Free  PE / Size       8964 / 35.02 GiB                            # 还有8964个pe,35.02G的空间未使用

lvextend  -L +10g  /dev/vg1/lv1    #  按大小扩容10G
lvextend  -l +2500  /dev/vg1/lv1   # 按pe数量扩容2500个pe
lvresize  -L +10G /dev/vg1/lv1
lvreduce  -L -10G /dev/vg1/lv1      # 缩小容量
lvresize  -L -10G /dev/vg1/lv1 

将扩容好的lv重新挂载后,df -h 发现容量并未变化,还需要resize2fs工具来改变ext文件系统的大小.(xfs_growfs)

resize2fs  /dev/vg1/lv1 

df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/sda2             48G  4.9G   41G  11% /
/dev/sda1            976M   40M  886M   5% /boot
/dev/sda3             29G  113M   28G   1% /data
/dev/mapper/vg1-lv1   34G   48M   32G   1% /data/lvmnt    # 总容量已变化

实验:不卸载直接扩容全部剩余空间

lvresize  -l  +100%FREE  /dev/vg1/lv1  # 将vg1剩余的全部pe扩容至lv1

vgdisplay  | grep -i pe
  Open LV               1
  PE Size               4.00 MiB
  Total PE              15364
  Alloc PE / Size       15364 / 60.02 GiB
  Free  PE / Size       0 / 0                    # 已全部扩容,无空闲空间

resize2fs  /dev/vg1/lv1 

df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/sda2             48G  4.9G   41G  11% /
/dev/sda1            976M   40M  886M   5% /boot
/dev/sda3             29G  113M   28G   1% /data
/dev/mapper/vg1-lv1   59G   52M   56G   1% /data/lvmnt    # 在未卸载逻辑卷的情况下,resize2fs这个命令也成功了

四、缩减lvm

与扩容的步骤相反,我们倒着来一步一步操作,先卸载挂载点,具体全部操作如下:

umount  /data/lvmnt   # 卸载挂载点

[[email protected] ~]#resize2fs   /dev/vg1/lv1  45G  # 现将文件系统直接缩减至45G,但提示要先e2fsck 检查
resize2fs 1.41.12 (17-May-2010)
Please run ‘e2fsck -f /dev/vg1/lv1‘ first.               # 提示 先运行 ‘e2fsck -f /dev/vg1/lv1‘  保障数据安全完整

[[email protected] ~]#e2fsck -f /dev/vg1/lv1
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/vg1/lv1: 11/3940352 files (0.0% non-contiguous), 293333/15732736 blocks

resize2fs   /dev/vg1/lv1  45G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg1/lv1 to 11796480 (4k) blocks.
The filesystem on /dev/vg1/lv1 is now 11796480 blocks long.        # 成功将lvm的文件系统的容量缩减至45G

lvresize -L 45G /dev/vg1/lv1           # 将lv的容量缩减至45G
  WARNING: Reducing active logical volume to 45.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg1/lv1? [y/n]: y
  Size of logical volume vg1/lv1 changed from 60.02 GiB (15364 extents) to 45.00 GiB (11520 extents).
  Logical volume lv1 successfully resized.                                # 会有提示减少lvm容量会摧毁数据,y 同意缩减。

此时已经成功将lvm由60G缩减至45G ,至于减少的这15G是属于哪块设备的,我们通过检查pv来判断,毕竟PE --> PV --> VG --> LV ,哪些PE空闲直接查看PV即可。

[[email protected] ~]#pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdd1
  VG Name               vg1
  PV Size               15.01 GiB / not usable 2.83 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              3841
  Free PE               3
  Allocated PE          3838
  PV UUID               7xbtSO-sJ5P-F8h3-xPcd-FT5d-D9Zt-bHGp34

  --- Physical volume ---
  PV Name               /dev/sde1
  VG Name               vg1
  PV Size               15.01 GiB / not usable 2.83 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              3841
  Free PE               3841
  Allocated PE          0
  PV UUID               bZsiMZ-ZhbM-szh1-EDBZ-YyOP-xfQX-S12UDH

# 可见 dev/sde1这块设备是完全空闲的,sdd1上空闲3个PE

补充:如果lvm有dev/sd{a,b,c,d,e}5块磁盘组成,我们在缩减容量是要指定空出sdb磁盘,怎么操作?
上面的操作完成后,已经空出了一块sde,那么我们只需将sdb中的数据(即PE)全部挪进sde即可,操作如下

pvdisplay   /dev/sdb           # 可见全部的PE都占用了
 PV Name               /dev/sdb1
  VG Name               vg1
  PV Size               15.01 GiB / not usable 2.83 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              3841
  Free PE               0
  Allocated PE          3841
  PV UUID               mdC964-Odex-JZKg-AiV0-4l2u-I3e4-ixWvtR

pvmove  /dev/sdb1:0-3841   /dev/sde     # 将/dev/sdb上0-3841编号的PE全部移动到/dev/sde

然后,再将这个空出的pv从vg中移出,最后再移出该pv即可,操作如下:

vgreduce  vg1 /dev/sde1   # 从vg1 中移出/dev/sde1;注意不是vgremove,该命令是删除vg的。

pvremove  /dev/sde1  # 移出该pv

pvdisplay   # 列表中已经没有了/dev/sde1



LVM在CentOS 6上的实现

[[email protected] ~]# cat /etc/centos-release
CentOS release 6.9 (Final)

使用LVM2的准备:分区ID为8e

1、物理卷管理

1)创建物理卷

[[email protected] ~]# pvcreate /dev/sda{5,6,7}
  Physical volume "/dev/sda5" successfully created
  Physical volume "/dev/sda6" successfully created
  Physical volume "/dev/sda7" successfully created

2)显示Pv

1、显示所有PV的简要描述信息
[[email protected] ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree
  /dev/sda2  myvg lvm2 a--u 97.65g 17.57g
  /dev/sda5       lvm2 ---- 10.00g 10.00g
  /dev/sda6       lvm2 ---- 15.01g 15.01g
  /dev/sda7       lvm2 ---- 20.01g 20.01g
[[email protected] ~]#
2、显示所有PV的详细属性信息
[[email protected] ~]# pvdisplay
3、显示指定PV的详细属性信息
[[email protected] ~]# pvdisplay /dev/sda5
  "/dev/sdc5" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda5   ##
  VG Name                           ##
  PV Size               10.00 GiB   ##
  Allocatable           NO          ## NO当前查看的PE没有加入至卷组中,不能分配其中的PE。YES 表示当前查看的PVNAME已经加入至VG中,且可分配其中的PE。
  PE Size               0           ##
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               aIUY10-QgvL-D2lt-f3J9-3tPb-PXpr-P3bqvP  

[[email protected] ~]#

3)移除物理卷

[[email protected] ~]# pvremove /dev/sda{5,6,7}
  Labels on physical volume "/dev/sda5" successfully wiped
  Labels on physical volume "/dev/sda6" successfully wiped
  Labels on physical volume "/dev/sda7" successfully wiped
[[email protected] ~]#

2、卷组管理

   1)创建: vgcreate VGNAME [<partition/raid/disk>]...

1、查看已有的VG的名字,避免新建立的VG名会和原有VG名冲突
[[email protected] ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  myvg   1   5   0 wz--n- 97.65g 17.57g
2、创建VG,名为VG0
[[email protected] ~]# vgcreate vg0 /dev/sda{5,6,7}
  Volume group "vg0" successfully created
[[email protected] ~]# 

3、查看是否创建成功
[[email protected] ~]# vgs

 2)显示: vgs,vgdisplay

1、简要信息
[[email protected] ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  myvg   1   5   0 wz--n- 97.65g 17.57g
  vg0    3   0   0 wz--n- 45.01g 45.01g  ## 组合pv所有的空间
[[email protected] ~]#
2、所有信息
[[email protected] ~]# vgdisplay
3、指定vg信息显示
[[email protected] ~]# vgdisplay vg0
  --- Volume group ---
  VG Name               vg0
  System ID
  Format                lvm2
  Metadata Areas        3
  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                3
  Act PV                3
  VG Size               45.01 GiB
  PE Size               4.00 MiB             ## 默认PE大小
  Total PE              11523                ## 总PE个数
  Alloc PE / Size       0 / 0
  Free  PE / Size       11523 / 45.01 GiB    ## 空闲PE数
  VG UUID               HNyUPI-MsLO-od5j-JBFx-is6S-u9Dl-HiOWr1

[[email protected] ~]# 

****注意创建PE后,显示PV的详细属性信息中才会有PE相关的信息****
[[email protected] ~]# pvdisplay /dev/sda5
  --- Physical volume ---
  PV Name               /dev/sda5
  VG Name               vg0                                  ## 加入至vg0组中
  PV Size               10.00 GiB / not usable 4.51 MiB      ## 10G大小
  Allocatable           yes                  ## 表示当前查看的/dev/sdc5已经加入至vg0中,且可分配其中的PE。
  PE Size               4.00 MiB             ## 默认PE大小
  Total PE              2560
  Free PE               2560
  Allocated PE          0
  PV UUID               aIUY10-QgvL-D2lt-f3J9-3tPb-PXpr-P3bqvP

[[email protected] ~]#

   3) 扩展: vgextend VGNAME [<partition/raid/disk>]

1、查看vg0大小
[[email protected] ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  myvg   1   5   0 wz--n- 97.65g 17.57g
  vg0    3   0   0 wz--n- 45.01g 45.01g  ## 45G

 2、准备空闲pv
[[email protected] ~]# pvcreate /dev/sda8
  Physical volume "/dev/sda8" successfully created
3、扩展
[[email protected] ~]# vgextend vg0 /dev/sda8
  Volume group "vg0" successfully extended

4、查看vg0大小
[[email protected] ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  myvg   1   5   0 wz--n- 97.65g 17.57g
  vg0    4   0   0 wz--n- 49.99g 49.99g  ## 49.99G

 

 4) 缩减:vgreduce VGNAME [<partition/raid/disk>]

1、查看vg0大小
[[email protected] ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  myvg   1   5   0 wz--n- 97.65g 17.57g
  vg0    4   0   0 wz--n- 49.99g 49.99g  ## 49.99G

2、将要移除的pv中的数据移动至其他pv上,如果有数据需要等待
[[email protected] ~]# pvmove /dev/sda8
  No data to move for vg0
[[email protected] ~]# 

3、缩减
[[email protected] ~]# vgreduce vg0 /dev/sda8
  Removed "/dev/sda8" from volume group "vg0"

4、查看大小
[[email protected] ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  myvg   1   5   0 wz--n- 97.65g 17.57g
  vg0    3   0   0 wz--n- 45.01g 45.01g  ##45G
[[email protected] ~]#

    5)删除:vgremove VGNAME [<partition/raid/disk>]

1、查看vg0的空间
[[email protected] ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  myvg   1   5   0 wz--n- 97.65g 17.57g
  vg0    3   0   0 wz--n- 45.01g 45.01g

2、移除vg
[[email protected] ~]# vgremove vg0
  Volume group "vg0" successfully removed

3、查看vg的简要信息
[[email protected] ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  myvg   1   5   0 wz--n- 97.65g 17.57g

3、逻辑卷管理

3.1  创建: lvcreate -L #[KMGTE] -n LVNAME VGNAME

1)、查看lv名字,避免创建的名字与之冲突
[[email protected] ~]# lvs
  LV      VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_home myvg -wi-ao----  4.88g
  lv_root myvg -wi-ao---- 48.83g
  lv_swap myvg -wi-ao----  1.95g
  lv_usr  myvg -wi-ao---- 14.65g
  lv_var  myvg -wi-ao----  9.77g
2)、查看vg的空闲空间的大小,确认可以分配给LV的空间
[[email protected] ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  myvg   1   5   0 wz--n- 97.65g 17.57g
  vg0    3   0   0 wz--n- 45.01g 45.01g  ## 空闲45G
3)、创建lv
[[email protected] ~]# lvcreate -L 10G -n  mylv vg0 
  Logical volume "mylv" created.

4)、查看创建的lv
[[email protected] ~]# lvs
  LV      VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_home myvg -wi-ao----  4.88g
  lv_root myvg -wi-ao---- 48.83g
  lv_swap myvg -wi-ao----  1.95g
  lv_usr  myvg -wi-ao---- 14.65g
  lv_var  myvg -wi-ao----  9.77g
  mylv    vg0  -wi-a----- 10.00g      ## 空闲10G

3.2、显示: lvs ,lvdisplay

1、显示lv简要信息
[[email protected] ~]# lvs
  LV      VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_home myvg -wi-ao----  4.88g
  lv_root myvg -wi-ao---- 48.83g
  lv_swap myvg -wi-ao----  1.95g
  lv_usr  myvg -wi-ao---- 14.65g
  lv_var  myvg -wi-ao----  9.77g
  mylv    vg0  -wi-a----- 10.00g                                                    

2、显示某个lv的详细信息
[[email protected] ~]# lvdisplay /dev/mapper/vg0-mylv
  --- Logical volume ---
  LV Path                /dev/vg0/mylv   ##lvpath
  LV Name                mylv
  VG Name                vg0
  LV UUID                faTCWz-2P0e-qy9q-pk8T-mdAL-HycR-4T9lQF
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2017-08-12 17:30:42 +0800
  LV Status              available
  # open                 0
  LV Size                10.00 GiB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:5

[[email protected] ~]#

3.3 格式化

1、格式化,挂载
1)、格式化
[[email protected] ~]# mke2fs -t ext4 -b 1024 -L ‘liu‘ -m 3 /dev/vg0/mylv
2)、挂载
[[email protected] ~]# mkdir /back
[[email protected] ~]# mount /dev/vg0/mylv /back 验证挂载
[[email protected] ~]# ls -l /back
总用量 12
drwx------ 2 root root 12288 8月  12 17:37 lost+found
[[email protected] ~]# mount | fgrep back
/dev/mapper/vg0-mylv on /backup type ext4 (rw)
2、查看文件系统可用空间
[[email protected] ~]# df -lhP
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/myvg-lv_root   48G  520M   45G   2% /
tmpfs                     122M     0  122M   0% /dev/shm
/dev/sda1                 477M   33M  419M   8% /boot
/dev/mapper/myvg-lv_home  4.7G  9.9M  4.5G   1% /home
/dev/mapper/myvg-lv_usr    15G  710M   13G   6% /usr
/dev/mapper/myvg-lv_var   9.5G   88M  9.0G   1% /var
/dev/md127                9.3G   23M  9.0G   1% /backup               ## 与上次md设备名变化了,故而需要以LABE或UUID方式进行挂载
/dev/md126                9.8G   23M  9.3G   1% /mydata
/dev/mapper/vg0-mylv      9.9G  3.8M  9.6G   1% /back           ## 可用9.9

3、复制文件至LV中,并查看文件
[[email protected] ~]# cp /etc/{fstab,issue} /back
[[email protected] ~]# cat /back/{fstab,issue}

4、扩展
[[email protected] ~]# lvextend -L +5G /dev/mapper/vg0-mylv  扩展物理边界
[[email protected] ~]# resize2fs /dev/vg0/mylv   修改逻辑边界(让文件系统扩展至逻辑卷空间大小)
5、查看文件系统可用空间
[[email protected] ~]# df -lhP
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/vg0-mylv       15G  3.5M   15G   1% /back          ##可用15G

6、查看文件,验证文件是否损坏
[r[email protected] ~]# cat /backup/{fstab,issue}

3.4、  缩减:

1、卸载
[[email protected] ~]# umount /Spring_dir/
2、强制检测和修复
[[email protected] ~]# e2fsck -f /dev/vg0/mylv
3、缩减文件系统空间
[[email protected] ~]# resize2fs /dev/vg0/mylv 1G
4、缩减LV空间
[[email protected] ~]# lvreduce -L 5G /dev/mapper/vg0-mylv
Do you really want to reduce vg0/mylv? [y/n]: y
5、挂载
[[email protected] ~]# mount /dev/mapper/vg0-mylv /backup/
6、查看文件系统可用空间
[[email protected] ~]# df -lhP
Filesystem                Size  Used Avail Use% Mounted on/dev/md126                9.8G   23M  9.3G   1% /mydata
/dev/mapper/vg0-mylv      976M  2.8M  943M   1% /backup

7、查看文件是否损坏
[[email protected] ~]# cat /Spring_dir/{fstab,issue}

#
# /etc/fstab
# Created by anaconda on Thu Aug  3 08:30:25 2017
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
...

3.4、快照:lvcreate -L #[KMGTE] -s -n lv_snap_NAME -p r lvpath\ 

      -s 指定原卷

    -p r 指明快照卷的权限,r:只读.rw:可读可写.

1.查看原卷大小
  LV      VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_home myvg -wi-ao----  4.88g
  lv_root myvg -wi-ao---- 48.83g
  lv_swap myvg -wi-ao----  1.95g
  lv_usr  myvg -wi-ao---- 14.65g
  lv_var  myvg -wi-ao----  9.77g
  mylv    vg0  -wi-ao----  5.00g
2、创建快照卷
[[email protected] ~]# lvcreate -L 200M -s -n lv_snap -p r /dev/vg0/mylv
  Logical volume "mylv_snap" created.
[[email protected] ~]# 

4、挂载快照卷
[[email protected] ~]# mount /dev/vg0/lv_snap /mnt

5、显示内容
[[email protected] ~]# ls /mnt
fstab  issue  lost+found

6、显示快照卷的可用空间
[[email protected] ~]# df -lPh
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/vg0-mylv      976M  2.8M  943M   1% /Spring_dir
/dev/mapper/vg0-lv_snap   976M  2.8M  943M   1% /mnt  ## 同原卷大小,与快照卷是指向原卷Inode的另一个路径不谋而合。

7、查看原卷和快照卷的内容
[[email protected] ~]# cat /mnt/fstab /Spring_dir/fstab
相同

8、在原卷中增加内容
[[email protected] ~]# cp -r /etc/pam.d /Spring_dir/   ## 源为单个目录,用-r选项。目标存在为目录。复制,原名。

9、查看快照卷是否也有此目录?
[[email protected] ~]# ls -l /mnt
总用量 15
-rw-r--r-- 1 root root  1211 8月  12 18:09 fstab
-rw-r--r-- 1 root root    47 8月  12 17:39 issue
drwx------ 2 root root 12288 8月  12 17:37 lost+found

10、在原卷中,删除所有文件
[[email protected] ~]# rm -rf /Spring_dir/*

11、快照卷中的文件:仍然存在
[[email protected] ~]# ls -l /mnt
总用量 15
-rw-r--r-- 1 root root  1211 8月  12 18:09 fstab
-rw-r--r-- 1 root root    47 8月  12 17:39 issue
drwx------ 2 root root 12288 8月  12 17:37 lost+found

12、备份快照卷至/Spring_dir
[[email protected] ~]# cp -a /mnt/* /Spring_dir/
[[email protected] ~]# ls /Spring_dir/
fstab  issue  lost+found

3.5、 删除: lvremove lvpath

13、卸载
[[email protected] ~]# umount /mnt
14、删除卷
[[email protected] ~]# lvremove /dev/vg0/lv_snap
Do you really want to remove active logical volume lv_snap? [y/n]: y
  Logical volume "lv_snap" successfully removed

参考 :https://blog.51cto.com/sonlich/1955800

原文地址:https://www.cnblogs.com/liuzhiyun/p/11355996.html

时间: 2024-09-29 08:36:21

十三、LVM 逻辑卷管理的相关文章

LVM逻辑卷管理

本次内容 1.什么是LVM 2.为什么使用LVM 3.LVM的操作命令 4.LVM的具体操作实现 一.什么是LVM LVM:Logical Volume Manager,即逻辑卷管理,它是Linux环境下的一种磁盘管理方式,其功能在于能弹性调整文件系统的容量.LVM中有几个专业名词,重点来说以下一个 PV:物理卷 LVM的基本存储逻辑块,但和基本的物理存储介质(如分区.磁盘等)比较,却包含有与LVM相关的管理参数. VG:卷组 由一个或多个PV构成,为上层的逻辑卷提供空间 LV:逻辑卷 类似于磁

[Linux] centOS 6.5 LVM 逻辑卷 管理 实验报告

目录 1.      LVM 简介 2.      LVM基本术语 3.      LVM的安装 4.      LVM的使用 4.1        物理卷的管理 4.2        卷组的管理: 4.3        逻辑卷的管理: 5.      一个例子 5.1        练习: 5.2        开始部署 1.   LVM 简介 LVM逻辑卷管理器(英语:Logical Volume Manager,缩写为LVM),又译为逻辑卷宗管理器.逻辑扇区管理器.逻辑磁盘管理器,是Lin

第八章 磁盘和文件系统管理LVM逻辑卷管理

                      第八章LVM逻辑卷管理 LVM机制的基本概念 Pv(Physical Volume,物理卷) 整个硬盘,或使用fdisk等工具建立的普通分区 包括许多默认4MB大小的PE(Physical Extent,基本单元) VG(Volume Group,卷组) 一个或多个物理卷组合而成的整体 LV(Logical Volume,逻辑卷) 从卷组中分割出的一块空间,用于建立文件系统 (创建物理卷--创建卷组--从卷组中创建逻辑卷) 相关命令 pvcreate

关于 LVM 逻辑卷管理

逻辑卷管理 (LVM)    允许对卷进行方便操作的抽象层,包括从新设定文件系统的大小    允许在多个设备间重新组织文件系统将设备指定为物理卷用一个或者多个物理卷来创建一个卷组物理卷是用固定大小的物理区域(Physical Extent PE) 来定义的在物理卷上创建的逻辑卷是由物理区域(PE)组成 可以在逻辑卷上创建文件系统下面看图解            LVM: Logical Volume Manager, Version: 2     dm: device mapper:将一个或多个

Linux的lvm逻辑卷管理

一.LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现.LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性. 与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储.它使系统管理员可以更方便的为应用与用户分配存储空间.在LVM管理下的存储卷

CentOS下LVM逻辑卷管理技术解释

1.LVM逻辑卷管理技术产生的背景 企业日益变化的存储需要使得传统的磁盘分区存储显得不够灵活 2.磁盘分区存储 对于这样的三个物理分区的话,迟早有一天会被数据填满,因为它是死的,无法进行缩放. 假设下面表示的是/dev/sda磁盘上的三个分区: 1).初始化/dev/sda上的这三个物理分区: 命令:# pvcreate /dev/sda1 /dev/sda2 /dev/sda3 或#pvcreate /dev/sda[1-3] 2).将这三个物理卷PV ,合并成一个卷组(VG Volume G

linux服务器 磁盘和文件系统管理(二) LVM逻辑卷管理的基本操作

上一章我们说完了硬盘的分区.格式化与挂载分区,用是可以正常使用了,但是一旦出现系统分区不够用了,我们不得不备份.删除相关数据或者重新规划分区来满足系统的需要,那么如何才能解决这类的问题呢?这就可以用到我们标题中所提到的LVM动态分区,所谓LVM,它功能就是可以在现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性 在进行LVM逻辑卷管理之前,我们需要先了解下LVM的几个基本术语: PV(Physical Volume,物理卷)物理卷是LVM机制的基本存储设备,通常对应一个普通分区或整个

LVM逻辑卷管理测试(一)

虚拟机里再添加两块硬盘,如下所示: 启动系统后,我们可以看到新添加的两块硬盘为/dev/sdb和/dev/sdc.每个2GB. [[email protected] ~]# fdisk -l Disk /dev/sdb: 2147 MB, 2147483648 bytes, 4194304 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O

LVM逻辑卷管理-软RAID磁盘阵列

LVM逻辑卷管理软RAID磁盘阵列管理################################################# 一.LVM逻辑卷管理 1. 基本概念    Logical Volume Manager        ** 多个物理分区/磁盘 ==> 组合成一个整体 ==>划分逻辑存储单位,即逻辑卷        ** 逻辑分区的大小可以根据需要扩大.缩减        ** /boot 用来存放引导文件,不能使用LVM逻辑卷(启动时会找不到内核) PV(Physica

LVM逻辑卷管理详解

LVM逻辑卷管理(Logical Volume Manager) 什么是LVM?LVM的产生及作用 随着数据的逐渐增加,当初设计的磁盘大小已经满足不了现在的需求了,当磁盘面临着满盘时,运维人员如何解决问题?是换一个更大的磁盘,把原先的数据copy到现在更大的磁盘里面,继续撑一段时间,还是寻找其它方法?LVM的出现很好的解决了这一问题.LVM是linux环境下对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性. 物理卷physical volume (PV