一:LVM逻辑卷
LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上,文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。RHEL默认安装的分区格式就是LVM逻辑卷的格式,需要注意的是/boot分区不能基于LVM创建,必须独立出来。
LVM 4个基本术语
1,PE(Physical Extend) 每一个物理卷被划分为PE的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可以配置的,默认为4MB。
2,PV (Physical Volume) 物理卷就是指硬盘分区或从逻辑卷上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区,磁盘等)比较,却含有与LVM相关的管理参数。
3,VG (Volume Group) LVM卷组类似于非LVM系统中的物理的硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
4,LV(Logical Volume) LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以创立文件系统(比如/home或者/usr等)。
5,LE (Logical Extend) 逻辑卷也被划分为被称为LE的可被寻址的基本单元。在同一个卷组中,LE的大小和PE的大小是相同的,并且一一对应。
创建LVM
(原先已经创建一个/dev/myvg/lv1 所用磁盘为/dev/sde{1,2,3,4},现在做/dev/myvg2/lv2,所用磁盘为/dev/sdc{1,2,3,4})
1,准备物理磁盘
2,创建pv(原先已经创建一个/dev/myvg/lv1 所用磁盘为/dev/sde{1,2,3,4},现在做/dev/myvg2/lv2,所用磁盘为/dev/sdc{1,2,3,4})
PV相关命令
pvcreate:创建
pvs:查看
pvdisplay:查看详细信息
pvscan:在系统中扫描硬盘,列出找到的物理卷列表
pvscan -e 仅显示属于卷组的物理卷
-n 仅显示不属于任何卷组的物理卷
-s 短格式输出
-u 显示UUID
pvremove:移除物理卷
pvremove /dev/sdd
pvmove:移除物理卷中的PE,即将硬盘上的数据转移到其他硬盘上。 pvmove /dev/sdc
[root@localhost ~]# pvcreate /dev/sdc{1,2,3,4}
Physical volume "/dev/sdc1" successfully created.
Physical volume "/dev/sdc2" successfully created.
Physical volume "/dev/sdc3" successfully created.
Physical volume "/dev/sdc4" successfully created.
查看:pvs,pvscan, pvdisplay
pvs查看
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 12.00g 0
/dev/sdc1 lvm2 --- 1.00g 1.00g
/dev/sdc2 lvm2 --- 1.00g 1.00g
/dev/sdc3 lvm2 --- 1.00g 1.00g
/dev/sdc4 lvm2 --- 1.00g 1.00g
/dev/sde1 myvg lvm2 a-- 1020.00m 520.00m
/dev/sde2 myvg lvm2 a-- 1020.00m 1020.00m
/dev/sde3 myvg lvm2 a-- 1020.00m 1020.00m
/dev/sde4 myvg lvm2 a-- 1020.00m 1020.00m
pvscan查看
[root@localhost ~]# pvscan
PV /dev/sda2 VG centos lvm2 [12.00 GiB / 0 free]
PV /dev/sde1 VG myvg lvm2 [1020.00 MiB / 520.00 MiB free]
PV /dev/sde2 VG myvg lvm2 [1020.00 MiB / 1020.00 MiB free]
PV /dev/sde3 VG myvg lvm2 [1020.00 MiB / 1020.00 MiB free]
PV /dev/sde4 VG myvg lvm2 [1020.00 MiB / 1020.00 MiB free]
PV /dev/sdc2 lvm2 [1.00 GiB]
PV /dev/sdc3 lvm2 [1.00 GiB]
PV /dev/sdc1 lvm2 [1.00 GiB]
PV /dev/sdc4 lvm2 [1.00 GiB]
Total: 9 [19.98 GiB] / in use: 5 [15.98 GiB] / in no VG: 4 [4.00 GiB]
pvdisplay查看
[root@localhost ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size 12.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 3072
Free PE 0
Allocated PE 3072
PV UUID ycvWTu-ddyQ-y2b2-LZvv-Dkbz-u4eC-NDGK10
--- Physical volume ---
PV Name /dev/sde1
VG Name myvg
PV Size 1.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 10.00 MiB
Total PE 102
Free PE 52
Allocated PE 50
PV UUID fgaFH9-CvPH-CZTU-VnZw-xV5W-jApa-8XeJ7y
--- Physical volume ---
PV Name /dev/sde2
VG Name myvg
PV Size 1.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 10.00 MiB
Total PE 102
Free PE 102
Allocated PE 0
PV UUID fxijNt-FzXu-giUY-MTT4-jQ2d-pyHq-g7AzID
--- Physical volume ---
PV Name /dev/sde3
VG Name myvg
PV Size 1.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 10.00 MiB
Total PE 102
Free PE 102
Allocated PE 0
PV UUID UL4WbD-NH7x-QmbV-DoNV-zN00-cpHP-a3GkZ9
--- Physical volume ---
PV Name /dev/sde4
VG Name myvg
PV Size 1.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 10.00 MiB
Total PE 102
Free PE 102
Allocated PE 0
PV UUID acosU5-hg71-6QT3-cAzU-8LVM-vTvj-9yRM2g
"/dev/sdc2" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc2
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID ui3Ben-piQQ-9FR2-cTcE-Atl6-KXJO-lKUa85
"/dev/sdc3" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc3
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID D2EbOf-LlFX-64Id-PPjn-YSwN-br6i-BaYl4d
"/dev/sdc1" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID VtFGdb-Vgkh-N82b-yj9W-UhWm-RAvd-WrqAxk
"/dev/sdc4" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc4
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 654Jry-vOcJ-E1FW-a2ow-Oqvm-i7ZW-yJbLak
3,创建vg
vg相关命令
vgcreate:创建卷组
vgcreate myvg2(创建卷组的名称) /dev/sdc{1,2,3,4}
-s: 指定PE的大小
vgcreata -s 16M myvg2 /dev/sdc{1,2,3,4}
vgextend: 向卷组中添加成员
vgextend myvg2 /dev/sda4
vgreduce: 从卷组中删除成员
vgremove: 删除卷组
vgremove myvg2
vgs: 查看卷组信息
vgdisplay: 查看卷组的详细信息
vgrename: 更改卷组的名称
vgrename myvg2 lalala
vgchange: 改变卷组的工作状态
vgchange -a y|n(y: 可用 n: 不可用) myvg2
vgexport: 导出卷组
vgexport myvg2
vgimport: 导入卷组
[root@localhost ~]# vgcreate myvg2 /dev/sdc{1,2,3,4}
Volume group "myvg2" successfully created
查看:vgs, vgscan, vgdisplay
vgs查看
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- 12.00g 0
myvg 4 1 0 wz--n- 3.98g <3.50g
myvg2 4 0 0 wz--n- 3.98g 3.98g
vgscan查看
[root@localhost ~]# vgscan
Reading volume groups from cache.
Found volume group "myvg2" using metadata type lvm2
Found volume group "centos" using metadata type lvm2
Found volume group "myvg" using metadata type lvm2
vgdisplay查看
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name myvg2
System ID
Format 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 3.98 GiB
PE Size 4.00 MiB
Total PE 1020
Alloc PE / Size 0 / 0
Free PE / Size 1020 / 3.98 GiB
VG UUID y0V00d-YpoW-iL3V-kDQh-5hE5-qhUr-JxLrrj
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 12.00 GiB
PE Size 4.00 MiB
Total PE 3072
Alloc PE / Size 3072 / 12.00 GiB
Free PE / Size 0 / 0
VG UUID EKDs8k-Xcu9-Tk7k-MS97-pfIT-VX03-P9UzwN
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 4
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 4
Act PV 4
VG Size 3.98 GiB
PE Size 10.00 MiB
Total PE 408
Alloc PE / Size 50 / 500.00 MiB
Free PE / Size 358 / <3.50 GiB
VG UUID dKuY7u-fcCF-nzAm-GWuH-BRHF-CeBs-TEpgeo
4,创建lv
lv相关命令
lvcreate: 创建逻辑卷
-n: 指定逻辑卷的名称
-L" 指定逻辑卷的大小,使用空间容量进行指定,-L ## 绝对容量,-L +## 增量容量
-l: 指定逻辑卷的大小,使用PE的个数进行指定,-l ## 绝对容量,-l +## 增量个数
-s: 指明创建的逻辑卷为快照
-p: r 设置只读性
创建快照:lvcreate -s -n lv2 _kuaizhao -L 10G /dev/myvg2/mylv2 -p r
lvextend: 扩展逻辑卷的大小
lvextend -L +100G /dev/myvg2/mylv2
lvextend -l 50 /dev/myvg2/lv2
lvreduce: 缩减逻辑卷的大小
lvexduce -L 50G /dev/myvg2/lv2
lvrename: 更改逻辑卷的名称
lvremove: 删除逻辑卷
lvconvert: 恢复快照,快照在恢复后被删除
lvconvert --merge /dev/myvg2/lv2_kuaizhao
[root@localhost ~]# lvcreate -l 100 -n mylv2 myvg2
Logical volume "mylv2" created.
查看:lvs, lvscan, lvdisplay
lvs查看
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 10.00g
swap centos -wi-ao---- 2.00g
mylv1 myvg -wi-a----- 500.00m
mylv2 myvg2 -wi-a----- 400.00m
lvscan查看
[root@localhost ~]# lvscan
ACTIVE '/dev/myvg2/mylv2' [400.00 MiB] inherit
ACTIVE '/dev/centos/root' [10.00 GiB] inherit
ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
ACTIVE '/dev/myvg/mylv1' [500.00 MiB] inherit
lvdisplay查看
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/myvg2/mylv2
LV Name mylv2
VG Name myvg2
LV UUID VB31hE-Ce2a-feJh-DKVk-IeHV-N7Nc-awLDeG
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-08-10 23:26:00 +0800
LV Status available
# open 0
LV Size 400.00 MiB
Current LE 100
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID S2rHjF-lAhp-8qMl-2S4u-qGLV-kQii-OfYcIR
LV Write Access read/write
LV Creation host, time localhost, 2019-07-31 15:49:17 +0800
LV Status available
# open 1
LV Size 10.00 GiB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID 7gDu3a-VSZt-SHpC-KqEY-QGC4-xRck-y2AoBa
LV Write Access read/write
LV Creation host, time localhost, 2019-07-31 15:49:18 +0800
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/myvg/mylv1
LV Name mylv1
VG Name myvg
LV UUID GWrd0a-1s53-sX9K-xyZC-Y91o-15oG-nLw43l
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-08-10 16:29:23 +0800
LV Status available
# open 0
LV Size 500.00 MiB
Current LE 50
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
4,创建文件系统并挂载
[root@localhost ~]# mkfs.ext4 /dev/myvg2/mylv2
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
102400 inodes, 409600 blocks
20480 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=34078720
50 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
创建挂载点
[root@localhost ~]# mkdir /mnt/mylv2
挂载
[root@localhost ~]# mount /dev/myvg2/mylv2 /mnt/mylv2
查看
[root@localhost ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 10G 2.7G 7.4G 27% /
devtmpfs devtmpfs 475M 0 475M 0% /dev
tmpfs tmpfs 487M 0 487M 0% /dev/shm
tmpfs tmpfs 487M 7.7M 479M 2% /run
tmpfs tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 133M 882M 14% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/myvg2-mylv2 ext4 380M 2.3M 354M 1% /mnt/mylv2
VG管理
1,扩大vg
[root@localhost ~]# pvcreate /dev/sda4
Physical volume "/dev/sda4" successfully created.
[root@bogon ~]# vgextend myvg2 /dev/sda4
Volume group "myvg2" successfully extended
查看
[root@bogon ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- 12.00g 0
myvg 4 1 0 wz--n- 3.98g <3.50g
myvg2 5 1 0 wz--n- 4.98g <4.59g
2,减小vg
[root@bogon ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 12.00g 0
/dev/sda4 myvg2 lvm2 a-- 1020.00m 1020.00m
/dev/sdc1 myvg2 lvm2 a-- 1020.00m 620.00m
/dev/sdc2 myvg2 lvm2 a-- 1020.00m 1020.00m
/dev/sdc3 myvg2 lvm2 a-- 1020.00m 1020.00m
/dev/sdc4 myvg2 lvm2 a-- 1020.00m 1020.00m
/dev/sde1 myvg lvm2 a-- 1020.00m 520.00m
/dev/sde2 myvg lvm2 a-- 1020.00m 1020.00m
/dev/sde3 myvg lvm2 a-- 1020.00m 1020.00m
/dev/sde4 myvg lvm2 a-- 1020.00m 1020.00m
[root@bogon ~]# dd if=/dev/zero of=/mnt/mylv2/file bs=1M count=20
20+0 records in
20+0 records out
20971520 bytes (21 MB) copied, 0.466428 s, 45.0 MB/s
[root@bogon ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 12.00g 0
/dev/sda4 myvg2 lvm2 a-- 1020.00m 1020.00m
/dev/sdc1 myvg2 lvm2 a-- 1020.00m 620.00m
/dev/sdc2 myvg2 lvm2 a-- 1020.00m 1020.00m
/dev/sdc3 myvg2 lvm2 a-- 1020.00m 1020.00m
/dev/sdc4 myvg2 lvm2 a-- 1020.00m 1020.00m
/dev/sde1 myvg lvm2 a-- 1020.00m 520.00m
/dev/sde2 myvg lvm2 a-- 1020.00m 1020.00m
/dev/sde3 myvg lvm2 a-- 1020.00m 1020.00m
/dev/sde4 myvg lvm2 a-- 1020.00m 1020.00m
将数据移到其他pv(移动sdc1)
[root@bogon ~]# pvmove /dev/sdc1
/dev/sdc1: Moved: 2.00%
/dev/sdc1: Moved: 100.00%
将/dev/sdc1数据移走后再查看
[root@bogon ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 12.00g 0
/dev/sda4 myvg2 lvm2 a-- 1020.00m 1020.00m
/dev/sdc1 myvg2 lvm2 a-- 1020.00m 1020.00m
/dev/sdc2 myvg2 lvm2 a-- 1020.00m 620.00m
/dev/sdc3 myvg2 lvm2 a-- 1020.00m 1020.00m
/dev/sdc4 myvg2 lvm2 a-- 1020.00m 1020.00m
/dev/sde1 myvg lvm2 a-- 1020.00m 520.00m
/dev/sde2 myvg lvm2 a-- 1020.00m 1020.00m
/dev/sde3 myvg lvm2 a-- 1020.00m 1020.00m
/dev/sde4 myvg lvm2 a-- 1020.00m 1020.00m
看到把/dev/sdc1的数据移动到了sdc2上
vgreduce:从卷组中删除成员
[root@bogon ~]# vgreduce myvg2 /dev/sdc1
Removed "/dev/sdc1" from volume group "myvg2"
[root@bogon ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- 12.00g 0
myvg 4 1 0 wz--n- 3.98g <3.50g
myvg2 4 1 0 wz--n- 3.98g 3.59g
LV扩容
1,LV扩容
(LVM扩展 有足够的VG就可以来扩展LV)
[root@bogon ~]# lvextend -L +100 /dev/myvg2/mylv2
Size of logical volume myvg2/mylv2 changed from 400.00 MiB (100 extents) to 500.00 MiB (125 extents).
Logical volume myvg2/mylv2 successfully resized.
[root@bogon ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 10.00g
swap centos -wi-ao---- 2.00g
mylv1 myvg -wi-a----- 500.00m
mylv2 myvg2 -wi-ao---- 500.00m
[root@bogon ~]# df -h | grep mylv2
/dev/mapper/myvg2-mylv2 380M 23M 334M 7% /mnt/mylv2
我们看到Lv虽然扩容了,但是挂载磁盘大小依然是380M,我们需要给新增的lv创建文件系统,这样系统才能识别
[root@bogon ~]# resize2fs /dev/myvg2/mylv2
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg2/mylv2 is mounted on /mnt/mylv2; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 4
The filesystem on /dev/myvg2/mylv2 is now 512000 blocks long.
[root@bogon ~]# df -h | grep mylv2
/dev/mapper/myvg2-mylv2 477M 23M 426M 5% /mnt/mylv2
[root@bogon ~]#
现在看到变成477M了
2,LV缩减
LVM缩减是一个比较危险的操作,而且不能像扩容一样在线操作,必须卸载逻辑卷才行,步骤如下:
1,先卸载逻辑卷
2,然后通过e2fsck命令检测逻辑卷上空余的空间
3,使用resize2fs将文件系统减少
4,在使用lvreduce命令将逻辑卷减少
注意:文件系统大小和逻辑卷大小一定保持一致才行。如果逻辑卷大于文件系统,由于部分区域未格式化成文件系统回造成空间的浪费。如果逻辑卷小于文件系统,那数据就会出问题。
卸载逻辑卷
[root@localhost ~]# umount /dev/myvg2/mylv2
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 10G 2.7G 7.4G 27% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.8M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 133M 882M 14% /boot
tmpfs 98M 0 98M 0% /run/user/0
检查逻辑卷空间(必须强制检查)
[root@localhost ~]# e2fsck -f /dev/myvg2/mylv2
e2fsck 1.42.9 (28-Dec-2013)
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/myvg2/mylv2: 12/129024 files (0.0% non-contiguous), 47291/512000 blocks
缩减文件系统大小
[root@localhost ~]# resize2fs /dev/myvg2/mylv2 100M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg2/mylv2 to 102400 (1k) blocks.
The filesystem on /dev/myvg2/mylv2 is now 102400 blocks long.
缩减逻辑卷的大小
[root@localhost ~]# lvreduce -L 100M /dev/myvg2/mylv2
WARNING: Reducing active logical volume to 100.00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvg2/mylv2? [y/n]: y
Size of logical volume myvg2/mylv2 changed from 500.00 MiB (125 extents) to 100.00 MiB (25 extents).
Logical volume myvg2/mylv2 successfully resized.
挂载使用
[root@localhost ~]# mount /dev/myvg2/mylv2 /mnt/mylv2
[root@localhost ~]# df -h | grep mylv2
/dev/mapper/myvg2-mylv2 89M 22M 61M 27% /mnt/mylv2
删除逻辑卷
1,先通过umount命令卸载逻辑卷
umount /mnt/mylv2
2,修改/etc/fstab里面逻辑卷的挂载信息(如有添加),否则系统有可能启动不起来
3,通过lvremove删除逻辑卷
lvremove /dev/myvg2/lv2
4,通过vgremove删除卷组
vgremove /dev/myvg2
5,通过pvremove将物理卷转化成普通分区
pvremove /dve/sdc{1,2,3,4}
LVM快照
注意三点:
1,VG中需要预留存放快照本身的空间,不能全部被沾满
2,快照所在的VG必须与被备份的LV相同,也就是说,快照存放的位置必须与被照卷存放在同一个VG上。否则快照会失败。
3,如果快照卷满了,会自动失效,因为快照记录的是数据变化前的数据,也就是说数据的修改量不能超过快照区的大小,否则这个快照就不能用了
创建快照
[root@localhost ~]# lvcreate -L 20 -s -n mykuaizhao /dev/myvg2/mylv2
Logical volume "mykuaizhao" created.
删除快照
[root@localhost ~]# lvremove /dev/myvg2/mykuaizhao
查看LV
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/myvg2/mylv2
LV Name mylv2
VG Name myvg2
LV UUID VB31hE-Ce2a-feJh-DKVk-IeHV-N7Nc-awLDeG
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-08-10 23:26:00 +0800
LV snapshot status source of
mykuaizhao [active]
LV Status available
# open 1
LV Size 100.00 MiB
Current LE 25
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
--- Logical volume ---
LV Path /dev/myvg2/mykuaizhao
LV Name mykuaizhao
VG Name myvg2
LV UUID LLmQ3O-5WXP-ivI2-P1Gb-l0p8-pWus-jdM2R0
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-08-12 17:24:25 +0800
LV snapshot status active destination for mylv2
LV Status available
# open 0
LV Size 100.00 MiB
Current LE 25
COW-table size 20.00 MiB #快照实际容量
COW-table LE 5
Allocated to snapshot 0.06% #快照已使用百分比
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:6
1,给创建好的lv中写入数据
[root@localhost myvg2]# echo "hello" > mykuaizhao_file
[root@localhost myvg2]# cat mykuaizhao_file
hello
原始卷中写入数据,快照卷的使用率会增加
[root@localhost myvg2]# lvdisplay | grep %
Allocated to snapshot 0.06%
[root@localhost myvg2]# dd if=/dev/zero of=/mnt/mylv2/file bs=1M count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.0241069 s, 217 MB/s
[root@localhost myvg2]# echo "hello" > mykuaizhao_file2
[root@localhost myvg2]# ls
恢复原始数据
[root@localhost mnt]# lvconvert --merge /dev/myvg2/mykuaizhao
Delaying merge since origin is open.
Merging of snapshot myvg2/mykuaizhao will occur on next activation of myvg2/mylv2.
[root@localhost mnt]# mount /dev/myvg2/mylv2 /mnt/mylv2/
mount: /dev/mapper/myvg2-mylv2 is already mounted or /mnt/mylv2 busy
/dev/mapper/myvg2-mylv2 is already mounted on /mnt/mylv2
[root@localhost mnt]# cd mylv2/
[root@localhost mylv2]#
[root@localhost mylv2]# ls
file lost+found
[root@localhost mylv2]# ls -lh
total 5.1M
-rw-r--r--. 1 root root 5.0M Aug 12 17:50 file
drwx------. 2 root root 12K Aug 10 23:37 lost+found