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

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

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

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

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

二、创建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: [55.00 GiB] / in use: [ ] / in no VG: [55.00 GiB] # pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- .00g .00g
/dev/sdc1 lvm2 --- .00g .00g
/dev/sdc2 lvm2 --- .00g .00g
/dev/sdd1 lvm2 --- .00g .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
Total PE
Free PE
Allocated PE
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 [root@CentOS7 ~]#vgscan
Reading volume groups from cache.
Found volume group "vggroup" using metadata type lvm2 [root@CentOS7 ~]#vgdisplay
--- Volume group ---
VG Name vggroup
System ID
Format lvm2 # 格式分为lvm1 和lvm2
Metadata Areas
Metadata Sequence No
VG Access read/write
VG Status resizable
MAX LV
Cur LV
Open LV
Max PV
Cur PV
Act PV
VG Size <54.98 GiB
PE Size 6.00 MiB
Total PE
Alloc PE / Size /
Free PE / Size / <54.98 GiB
VG UUID flmx2S-0LT9-hgCZ-HcfL-TT6n-jkna-jSIWbp [root@CentOS7 ~]#vgreduce vggroup /dev/sdd1
Removed "/dev/sdd1" from volume group "vggroup" [root@CentOS7 ~]#vgdisplay
--- Volume group ---
VG Name vggroup
System ID
Format lvm2
Metadata Areas
Metadata Sequence No
VG Access read/write
VG Status resizable
MAX LV
Cur LV
Open LV
Max PV
Cur PV
Act PV
VG Size 39.98 GiB
PE Size 6.00 MiB
Total PE
Alloc PE / Size /
Free PE / Size / 39.98 GiB
VG UUID flmx2S-0LT9-hgCZ-HcfL-TT6n-jkna-jSIWbp # 可见,减掉sdd1后vg里的数量变为3,容量也减少了; [root@CentOS7 ~]#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的名称
示例:
[root@CentOS7 ~]#lvcreate -L 20G -n lv1 vggroup
Rounding up size to full physical extent 20.00 GiB
Logical volume "lv1" created. [root@CentOS7 ~]#lvscan
ACTIVE '/dev/vggroup/lv1' [20.00 GiB] inherit [root@CentOS7 ~]#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, -- :: +
LV Status available
# open
LV Size 20.00 GiB
Current LE
Segments
Allocation inherit
Read ahead sectors auto
- currently set to
Block device :

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

[root@CentOS7 ~]#ll /dev/vggroup/lv1  /dev/mapper/vggroup-lv1
lrwxrwxrwx. root root Dec : /dev/mapper/vggroup-lv1 -> ../dm-
lrwxrwxrwx. root root Dec : /dev/vggroup/lv1 -> ../dm- [root@CentOS7 ~]#ll -d /dev/dm-
brw-rw----. root disk , Dec : /dev/dm-

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
Alloc PE / Size / 25.00 GiB
Free PE / Size / 35.02 GiB # 还有8964个pe,.02G的空间未使用 lvextend -L +10g /dev/vg1/lv1 # 按大小扩容10G
lvextend -l + /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 .9G 41G % /
/dev/sda1 976M 40M 886M % /boot
/dev/sda3 29G 113M 28G % /data
/dev/mapper/vg1-lv1 34G 48M 32G % /data/lvmnt # 总容量已变化

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

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

vgdisplay  | grep -i pe
Open LV
PE Size 4.00 MiB
Total PE
Alloc PE / Size / 60.02 GiB
Free PE / Size / # 已全部扩容,无空闲空间 resize2fs /dev/vg1/lv1 df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 48G .9G 41G % /
/dev/sda1 976M 40M 886M % /boot
/dev/sda3 29G 113M 28G % /data
/dev/mapper/vg1-lv1 59G 52M 56G % /data/lvmnt # 在未卸载逻辑卷的情况下,resize2fs这个命令也成功了

四、缩减lvm

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

umount  /data/lvmnt   # 卸载挂载点

[root@CentOS6 ~]#resize2fs   /dev/vg1/lv1  45G  # 现将文件系统直接缩减至45G,但提示要先e2fsck 检查
resize2fs 1.41. (-May-)
Please run 'e2fsck -f /dev/vg1/lv1' first. # 提示 先运行 'e2fsck -f /dev/vg1/lv1' 保障数据安全完整 [root@CentOS6 ~]#e2fsck -f /dev/vg1/lv1
e2fsck 1.41. (-May-)
Pass : Checking inodes, blocks, and sizes
Pass : Checking directory structure
Pass : Checking directory connectivity
Pass : Checking reference counts
Pass : Checking group summary information
/dev/vg1/lv1: / files (0.0% non-contiguous), / blocks resize2fs /dev/vg1/lv1 45G
resize2fs 1.41. (-May-)
Resizing the filesystem on /dev/vg1/lv1 to (4k) blocks.
The filesystem on /dev/vg1/lv1 is now 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 ( extents) to 45.00 GiB ( extents).
Logical volume lv1 successfully resized. # 会有提示减少lvm容量会摧毁数据,y 同意缩减。

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

[root@CentOS6 ~]#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
Free PE
Allocated PE
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
Free PE
Allocated PE
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
Free PE
Allocated PE
PV UUID mdC964-Odex-JZKg-AiV0-4l2u-I3e4-ixWvtR pvmove /dev/sdb1:- /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上的实现

[root@localhost ~]# cat /etc/centos-release
CentOS release 6.9 (Final)

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

1、物理卷管理
  1)创建物理卷
[root@localhost ~]# 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的简要描述信息
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 myvg lvm2 a--u .65g .57g
/dev/sda5 lvm2 ---- .00g .00g
/dev/sda6 lvm2 ---- .01g .01g
/dev/sda7 lvm2 ---- .01g .01g
[root@localhost ~]#
显示所有PV的详细属性信息
[root@localhost ~]# pvdisplay
显示指定PV的详细属性信息
[root@localhost ~]# 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 ##
Total PE
Free PE
Allocated PE
PV UUID aIUY10-QgvL-D2lt-f3J9-3tPb-PXpr-P3bqvP [root@localhost ~]#

3)移除物理卷

[root@localhost ~]# pvremove /dev/sda{,,}
Labels on physical volume "/dev/sda5" successfully wiped
Labels on physical volume "/dev/sda6" successfully wiped
Labels on physical volume "/dev/sda7" successfully wiped
[root@localhost ~]#

2、卷组管理

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

、查看已有的VG的名字,避免新建立的VG名会和原有VG名冲突
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg wz--n- .65g .57g
、创建VG,名为VG0
[root@localhost ~]# vgcreate vg0 /dev/sda{5,6,7}
Volume group "vg0" successfully created
[root@localhost ~]# 、查看是否创建成功
[root@localhost ~]# vgs

 2)显示: vgs,vgdisplay

、简要信息
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg wz--n- .65g .57g
vg0 wz--n- .01g .01g ## 组合pv所有的空间
[root@localhost ~]#
、所有信息
[root@localhost ~]# vgdisplay
、指定vg信息显示
[root@localhost ~]# vgdisplay vg0
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas
Metadata Sequence No
VG Access read/write
VG Status resizable
MAX LV
Cur LV
Open LV
Max PV
Cur PV
Act PV
VG Size 45.01 GiB
PE Size 4.00 MiB ## 默认PE大小
Total PE ## 总PE个数
Alloc PE / Size /
Free PE / Size / 45.01 GiB ## 空闲PE数
VG UUID HNyUPI-MsLO-od5j-JBFx-is6S-u9Dl-HiOWr1 [root@localhost ~]# ****注意创建PE后,显示PV的详细属性信息中才会有PE相关的信息****
[root@localhost ~]# 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
Free PE
Allocated PE
PV UUID aIUY10-QgvL-D2lt-f3J9-3tPb-PXpr-P3bqvP [root@localhost ~]#

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

、查看vg0大小
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg wz--n- .65g .57g
vg0 wz--n- .01g .01g ## 45G 、准备空闲pv
[root@localhost ~]# pvcreate /dev/sda8
Physical volume "/dev/sda8" successfully created
3、扩展
[root@localhost ~]# vgextend vg0 /dev/sda8
Volume group "vg0" successfully extended 、查看vg0大小
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg wz--n- .65g .57g
vg0 wz--n- .99g .99g ## .99G

 

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

、查看vg0大小
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg wz--n- .65g .57g
vg0 wz--n- .99g .99g ## .99G 、将要移除的pv中的数据移动至其他pv上,如果有数据需要等待
[root@localhost ~]# pvmove /dev/sda8
No data to move for vg0
[root@localhost ~]# 、缩减
[root@localhost ~]# vgreduce vg0 /dev/sda8
Removed "/dev/sda8" from volume group "vg0" 、查看大小
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg wz--n- .65g .57g
vg0 wz--n- .01g .01g ##45G
[root@localhost ~]#

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

、查看vg0的空间
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg wz--n- .65g .57g
vg0 wz--n- .01g .01g 、移除vg
[root@localhost ~]# vgremove vg0
Volume group "vg0" successfully removed 、查看vg的简要信息
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg wz--n- .65g .57g

3、逻辑卷管理

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

1)、查看lv名字,避免创建的名字与之冲突
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_home myvg -wi-ao---- .88g
lv_root myvg -wi-ao---- .83g
lv_swap myvg -wi-ao---- .95g
lv_usr myvg -wi-ao---- .65g
lv_var myvg -wi-ao---- .77g
、查看vg的空闲空间的大小,确认可以分配给LV的空间
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg wz--n- .65g .57g
vg0 wz--n- .01g .01g ## 空闲45G
)、创建lv
[root@localhost ~]# lvcreate -L 10G -n mylv vg0
Logical volume "mylv" created. )、查看创建的lv
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_home myvg -wi-ao---- .88g
lv_root myvg -wi-ao---- .83g
lv_swap myvg -wi-ao---- .95g
lv_usr myvg -wi-ao---- .65g
lv_var myvg -wi-ao---- .77g
mylv vg0 -wi-a----- .00g ## 空闲10G

3.2、显示: lvs ,lvdisplay

、显示lv简要信息
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_home myvg -wi-ao---- .88g
lv_root myvg -wi-ao---- .83g
lv_swap myvg -wi-ao---- .95g
lv_usr myvg -wi-ao---- .65g
lv_var myvg -wi-ao---- .77g
mylv vg0 -wi-a----- .00g 、显示某个lv的详细信息
[root@localhost ~]# 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, -- :: +
LV Status available
# open
LV Size 10.00 GiB
Current LE
Segments
Allocation inherit
Read ahead sectors auto
- currently set to
Block device : [root@localhost ~]#

3.3 格式化

、格式化,挂载
)、格式化
[root@localhost ~]# mke2fs -t ext4 -b 1024 -L 'liu' -m 3 /dev/vg0/mylv
)、挂载
[root@localhost ~]# mkdir /back
[root@localhost ~]# mount /dev/vg0/mylv /back 验证挂载
[root@localhost ~]# ls -l /back
总用量
drwx------ root root 8月 : lost+found
[root@localhost ~]# mount | fgrep back
/dev/mapper/vg0-mylv on /backup type ext4 (rw)
、查看文件系统可用空间
[root@localhost ~]# df -lhP
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/myvg-lv_root 48G 520M 45G % /
tmpfs 122M 122M % /dev/shm
/dev/sda1 477M 33M 419M % /boot
/dev/mapper/myvg-lv_home .7G 9.9M .5G % /home
/dev/mapper/myvg-lv_usr 15G 710M 13G % /usr
/dev/mapper/myvg-lv_var .5G 88M .0G % /var
/dev/md127 .3G 23M .0G % /backup ## 与上次md设备名变化了,故而需要以LABE或UUID方式进行挂载
/dev/md126 .8G 23M .3G % /mydata
/dev/mapper/vg0-mylv .9G 3.8M .6G % /back ## 可用9. 、复制文件至LV中,并查看文件
[root@localhost ~]# cp /etc/{fstab,issue} /back
[root@localhost ~]# cat /back/{fstab,issue} 、扩展
[root@localhost ~]# lvextend -L +5G /dev/mapper/vg0-mylv 扩展物理边界
[root@localhost ~]# resize2fs /dev/vg0/mylv 修改逻辑边界(让文件系统扩展至逻辑卷空间大小)
、查看文件系统可用空间
[root@localhost ~]# df -lhP
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-mylv 15G 3.5M 15G % /back ##可用15G 、查看文件,验证文件是否损坏
[root@localhost ~]# cat /backup/{fstab,issue}

3.4、  缩减:

、卸载
[root@localhost ~]# umount /Spring_dir/
、强制检测和修复
[root@localhost ~]# e2fsck -f /dev/vg0/mylv
、缩减文件系统空间
[root@localhost ~]# resize2fs /dev/vg0/mylv 1G
、缩减LV空间
[root@localhost ~]# lvreduce -L 5G /dev/mapper/vg0-mylv
Do you really want to reduce vg0/mylv? [y/n]: y
、挂载
[root@localhost ~]# mount /dev/mapper/vg0-mylv /backup/
、查看文件系统可用空间
[root@localhost ~]# df -lhP
Filesystem Size Used Avail Use% Mounted on/dev/md126 .8G 23M .3G % /mydata
/dev/mapper/vg0-mylv 976M 2.8M 943M % /backup 、查看文件是否损坏
[root@localhost ~]# cat /Spring_dir/{fstab,issue} #
# /etc/fstab
# Created by anaconda on Thu Aug ::
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(), findfs(), mount() and/or blkid() for more info
#
...

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

      -s 指定原卷

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

.查看原卷大小
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_home myvg -wi-ao---- .88g
lv_root myvg -wi-ao---- .83g
lv_swap myvg -wi-ao---- .95g
lv_usr myvg -wi-ao---- .65g
lv_var myvg -wi-ao---- .77g
mylv vg0 -wi-ao---- .00g
、创建快照卷
[root@localhost ~]# lvcreate -L 200M -s -n lv_snap -p r /dev/vg0/mylv
Logical volume "mylv_snap" created.
[root@localhost ~]# 、挂载快照卷
[root@localhost ~]# mount /dev/vg0/lv_snap /mnt 、显示内容
[root@localhost ~]# ls /mnt
fstab issue lost+found 、显示快照卷的可用空间
[root@localhost ~]# df -lPh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-mylv 976M 2.8M 943M % /Spring_dir
/dev/mapper/vg0-lv_snap 976M 2.8M 943M % /mnt ## 同原卷大小,与快照卷是指向原卷Inode的另一个路径不谋而合。 、查看原卷和快照卷的内容
[root@localhost ~]# cat /mnt/fstab /Spring_dir/fstab
相同 、在原卷中增加内容
[root@localhost ~]# cp -r /etc/pam.d /Spring_dir/ ## 源为单个目录,用-r选项。目标存在为目录。复制,原名。 、查看快照卷是否也有此目录?
[root@localhost ~]# ls -l /mnt
总用量
-rw-r--r-- root root 8月 : fstab
-rw-r--r-- root root 8月 : issue
drwx------ root root 8月 : lost+found 、在原卷中,删除所有文件
[root@localhost ~]# rm -rf /Spring_dir/* 11、快照卷中的文件:仍然存在
[root@localhost ~]# 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
[root@localhost ~]# cp -a /mnt/* /Spring_dir/
[root@localhost ~]# ls /Spring_dir/
fstab issue lost+found

3.5、 删除: lvremove lvpath

、卸载
[root@localhost ~]# umount /mnt
、删除卷
[root@localhost ~]# 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

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

  1. 18 LVM逻辑卷管理

    根据上一节的内容,我们知道md这个内核模块可以用来做软RAID的管理.同时RAID实现了两个功能:1.提高了磁盘的读写能力:2.对于数据进行了冗余备份: 但是,如果是管理员手动误删的数据,则一样无法找 ...

  2. LVM逻辑卷管理测试——逻辑卷扩展、收缩、快照及删除

    一.逻辑卷扩展 [root@lxjtest /]# umount /testLVM/ [root@lxjtest /]# df -h Filesystem Size Used Avail Use% M ...

  3. LVM逻辑卷管理测试——创建逻辑卷

    虚拟机里再添加两块硬盘,如下所示: 启动系统后,我们可以看到新添加的两块硬盘为/dev/sdb和/dev/sdc.每个2GB. [root@lxjtest ~]# fdisk -l Disk /dev ...

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

    1.LVM逻辑卷管理技术产生的背景 企业日益变化的存储需要使得传统的磁盘分区存储显得不够灵活 2.磁盘分区存储 对于这样的三个物理分区的话,迟早有一天会被数据填满,因为它是死的,无法进行缩放. 假设下 ...

  5. CentOS LVM逻辑卷管理

    在CentOS 挂载(U盘NTFS格式,新硬盘,增加交换分区,扩展根分区等)中扩展根分区部分用的就是LVM逻辑卷管理来进行扩展的. 1.为什么会有逻辑卷管理 传统磁盘管理是直接对硬盘分区进行访问,你如 ...

  6. linux的存储管理(RALD) LVM 逻辑卷管理 虚拟阵列

    磁盘存储管理 LVM 逻辑卷 虚拟阵列 1.Linux系统中 磁盘使用 存在3个大问题: 1.灵活性 2.安全性 3.性能 2.解决办法RAID独立磁盘冗余阵列 RAID(Redundant Arra ...

  7. 【Linux】LVM 逻辑卷管理

    LVM - 逻辑卷管理 简介 LVM(Logical Volume Manager), 即逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制. 相关名词 PV(physical volume) ...

  8. 『学了就忘』Linux文件系统管理 — 65、LVM逻辑卷管理介绍

    目录 1.LVM逻辑卷管理的简介 2.LVM逻辑卷管理的原理 3.总结建立LVM分区的步骤 1.LVM逻辑卷管理的简介 LVM是Logical Volume Manager的简称,中文就是逻辑卷管理. ...

  9. Linux之LVM逻辑卷管理

    LVM逻辑卷管理 LVM机制:PV物理卷,VG卷组,LV逻辑卷. --功能-- --物理卷管理-- --卷组管理-- --逻辑卷管理-- create(建立) pvcreate vgcreate lv ...

随机推荐

  1. Unity塔防游戏的创建

    看了下塔防游戏的教程,比我想像的还简单一些,有些收获: (1)敌人的移动路径,其时比较简单,用了N个Empty GameObject作为路径点,然后做一个总的Empty GameObject 作为父级 ...

  2. java实现工程配置文件敏感字段加解密

    以下引自他人博客: 1. 需求背景我们在开发应用时,需要连接数据库,一般把数据库信息放在一个属性配置文件中,比如***.properties,具体的内容 #mysql的配置文件jdbc.url=jdb ...

  3. Mybatis中Like 的使用方式以及一些注意点

    做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 模糊查询在项目中还是经常使用的,本文就简单整理Mybatis中使用Like进行模糊查询的几种写法以及一些常见的问题. 使用 ...

  4. Java 实现简单的 RPC 框架

    RPC 简介 RPC,全称为 Remote Procedure Call,即远程过程调用,它是一个计算机通信协议.它允许像调用本地服务一样调用远程服务.它可以有不同的实现方式,而不需要了解底层网络技术 ...

  5. SQLAlchemy 在查询期间丢失与MySQL服务器的连接

    遇到问题 pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query') 建立的 pymysq ...

  6. 二级菜单被banner遮住的解决方法

    原因:z-index的问题 解决:在导航box加  position: relative; z-index: 4; 比banner 大就可以.然后在一级导航的 li 设置 相对定位   positio ...

  7. Android开发中UI相关的问题总结

    UI设计和实现是Android开发中必不可少的部分,UI做不好的话,丑到爆,APP性能再好,估计也不会有多少人用吧,而且如果UI和业务代码逻辑中间没有处理好,也会很影响APP的性能的.稍微总结一下,开 ...

  8. 1.NIO概述

    /*Java NIO 简介*/ java NIO (New IO)是从 java1.4版本开始引入的一个新的IO API,可以替代标准的 java IO API (jdk1.7又对其进行了改进, 称为 ...

  9. ASE —— 第二次结对作业

    目录 重现基线模型 基线模型原理 模型的优缺点 模型重现结果 提出改进 改进动机 新模型框架 评价合作伙伴 重现基线模型 基线模型原理 我们选用的的模型为DeepCS,接下来我将解释一下它的原理. 我 ...

  10. DNS zone file

    zone file格式最初由Berkeley Internet Name Domain(BIND)软件包使用,但已被其他DNS server software广泛采用.它们中的一些(例如NSD,Pow ...