+++++++lvm2基本应用,扩展及缩减实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了+++++++lvm2基本应用,扩展及缩减实现相关的知识,希望对你有一定的参考价值。
LVM2
逻辑卷管理器第二版,Logical Volume Manager Version 2,将多个底层设备组织成一个单一的逻辑设备。
1、纯软件实现的虚拟层次上的软设备lvm2
2、磁盘损坏时,数据恢复困难。人为损坏数据,恢复困难。
一、LVM原理
PV(物理卷):在任何块设备(分区、RAID、磁盘)之上,附加一层元数据。
**在删除PV前,先将要移除PV上的数据移动至其他PV之上**
VG(卷组):在PV的存储空间中,更低层次上划分多个相同大小的PE,将所有PE组合成一个逻辑上的层次VG。
1、可动态扩展或缩减VG中PV的数量
2、类似于扩展分区,不能直接格式化使用。
3、PE只有在VG创建后才会出现在PV中,其大小由创建时指定。默认为4M
LV(逻辑卷):在逻辑层次的VG之上,划分VG为大小相同的PE,组合不同数量的PE为LV。
1、可动态扩展或缩减LV的大小,或 LV中PE的数量,即可跨越多个PV。
2、可以直接格式化并挂载使用。
3、LE只有在LV创建后才会出现在VG中,其大小由创建时指定。默认为1280
快照:在LV之上实现的。创建快照后,将创建一个监控对原卷中的元数据进行瞬间扫描(为了避免元数据备份的时间不一致),当文件任何内容改变时,元数据均会改变。在元数据变化之前,将变化的数据备份在于快照空间中。访问快照时,变化的部分在快照中,没有变化的部分在于原卷中。
1、快照是另一个路径指向与原卷相同的Inode
2、创建快照备份,只是对创建快照那一刻原卷内的所有数据进行备份,之后新加入的内容不会进行备份,需要用到(增量备份或差异备份)
3、快照的大小取决于:原卷存活的时间内数据变化量。最大大小为原卷大小
4、快照卷的路径:跟原卷在同一个卷组中。
**备份:数据序列化的过程,将文件和数据抽象为丝状,才能被线缆所承载。
**序列化:将特定数据组织结构转换成流式化的数据,且能够还原成原来的样子。
***逻辑卷的扩展和收缩
逻辑卷分为内层和外层:内存为使用的文件系统大小,外层为逻辑空间大小。
1、如果要扩展时,先扩展外层,后扩展内层。
1、如果要缩减时,先缩减内层,后缩减外层。
二、LVM2的实现
LV是内核中dm(device mapper)模块实现的功能之一
1、实现RAID:可将多个底层设备组织成一个设备
2、实现逻辑卷
3、实现多路径
用户空间的程序:用户不能直接操作内核中的模块:
1、程序员通过API接口
2、通过程序员写的程序调用内核中的模块
创建后逻辑卷的路径(lvpath)
原始路径:/dev/dm-#
其链接文件有:
1)/dev/mapper/VGNAME-LVNAME
2)/dev/VGNAME/LVNAME
三、LVM2在CentOS 6上的实现
1、物理卷管理
创建:pvcreate [<partition/raid/disk>]...
显示:pvs ,pvdisplay
删除:pvremove [<partition/raid/disk>]
2、卷组管理
创建: vgcreate VGNAME [<partition/raid/disk>]...
显示: vgs,vgdisplay
扩展: vgextend VGNAME [<partition/raid/disk>]
缩减:vgreduce VGNAME [<partition/raid/disk>] **缩减前,pvmove <partition/disk/raid>
删除:vgremove VGNAME [<partition/raid/disk>]
3、逻辑卷管理
创建: lvcreate -L #[KMGTE] -n LVNAME VGNAME
-L #[KMGTE],-L指定创建逻辑卷的大小,单位有K/M/G/T/E
-n LVNAME ,-n指定逻辑卷的名字
显示: lvs ,lvdisplay
扩展:
mount lvpath MOUNT_POINT
lvextend -L [+]#[KMGTE] lvpath
让逻辑卷大小扩展: # 扩展后的具体大小. +# 原来的大小加上由#指定的值即为扩展后的值
resize2fs lvpath
让文件系统扩展至逻辑卷空间大小
缩减:
umount {lvpath|MOUNT_POINT}
e2fsck -f lvpath
resize2fs lvpath #[KMGTE]
让文件系统缩减至指定大小
lvreduce -L [-]#[KMGTE] lvpath
让逻辑卷大小缩减: # 缩减后的具体大小. -# 原来的大小减去由#指定的值即为缩减后的值
mount lvpath MOUNT_POINT
df -lh
删除: lvremove lvpath
快照:lvcreate -L #[KMGTE] -s -n lv_snap_NAME -p r lvpath
-s 指定原卷
-p r 指明快照卷的权限,r:只读.rw:可读可写.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
***查看当前系统的版本** # cat /etc/centos-release
[[email protected] ~]# cat /etc/centos-release CentOS release 6.9 (Final)
使用LVM2的准备:分区ID为82
[[email protected] ~]# fdisk /dev/sdc /dev/sdc1 1 6527 52428096 5 Extended /dev/sdc5 1 1306 10490382 8e Linux LVM /dev/sdc6 1307 3265 15735636 8e Linux LVM /dev/sdc7 3266 5877 20980858+ 8e Linux LVM
1、物理卷管理
1)创建物理卷
[[email protected] ~]# pvcreate /dev/sdc{5,6,7} Physical volume "/dev/sdc5" successfully created Physical volume "/dev/sdc6" successfully created Physical volume "/dev/sdc7" 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/sdc5 lvm2 ---- 10.00g 10.00g /dev/sdc6 lvm2 ---- 15.01g 15.01g /dev/sdc7 lvm2 ---- 20.01g 20.01g [[email protected] ~]# 2/显示所有PV的详细属性信息 [[email protected] ~]# pvdisplay 3/显示指定PV的详细属性信息 [[email protected] ~]# pvdisplay /dev/sdc5 "/dev/sdc5" is a new physical volume of "10.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc5 ## 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/sdc{5,6,7} Labels on physical volume "/dev/sdc5" successfully wiped Labels on physical volume "/dev/sdc6" successfully wiped Labels on physical volume "/dev/sdc7" 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/sdc{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/sdc5 --- Physical volume --- PV Name /dev/sdc5 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/sdc8 Physical volume "/dev/sdc8" successfully created 3、扩展 [[email protected] ~]# vgextend vg0 /dev/sdc8 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/sdc8 No data to move for vg0 [[email protected] ~]# 3、缩减 [[email protected] ~]# vgreduce vg0 /dev/sdc8 Removed "/dev/sdc8" 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、逻辑卷管理
创建: 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
显示: 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] ~]#
扩展:
1、格式化,挂载 2、查看文件系统可用空间 3、复制文件至LV中,并查看文件 4、扩展 5、查看文件系统可用空间 6、查看文件,验证文件是否损坏
1、格式化,挂载 1)、格式化 [[email protected] ~]# mke2fs -t ext4 -b 1024 -L ‘Spring‘ -m 3 /dev/vg0/mylv 2)、挂载 [[email protected] ~]# install -d /Spring_dir [[email protected] ~]# mount -L Spring /Spring_dir 3)、验证挂载 [[email protected] ~]# ls -l /Spring_dir 总用量 12 drwx------ 2 root root 12288 8月 12 17:37 lost+found [[email protected] ~]# mount | fgrep pring /dev/mapper/vg0-mylv on /Spring_dir 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% /Spring_dir ## 可用9.9 3、复制文件至LV中,并查看文件 [[email protected] ~]# cp /etc/{fstab,issue} /Spring_dir/ [[email protected] ~]# cat /Spring_dir/{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% /Spring_dir ##可用15G 6、查看文件,验证文件是否损坏 [[email protected] ~]# cat /Spring_dir/{fstab,issue}
缩减:
1、卸载 2、检测 3、缩减文件系统空间 4、缩减LV空间 5、挂载 6、查看文件系统可用空间 7、查看文件是否损坏
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 /Spring_dir/ 6、查看文件系统可用空间 [[email protected] ~]# df -lhP Filesystem Size Used Avail Use% Mounted on /dev/md127 9.3G 23M 9.0G 1% /backup /dev/md126 9.8G 23M 9.3G 1% /mydata /dev/mapper/vg0-mylv 976M 2.8M 943M 1% /Spring_dir 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 # ...
快照:lvcreate -L #[KMGTE] -s -n lv_snap_NAME -p r lvpath
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
删除: 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
本文出自 “Reading” 博客,请务必保留此出处http://sonlich.blog.51cto.com/12825953/1955800
以上是关于+++++++lvm2基本应用,扩展及缩减实现的主要内容,如果未能解决你的问题,请参考以下文章