文章目录
- 1.删除LV逻辑卷中的硬盘设备
- 查看我们为实验新增的(三个20G)的硬盘设备
- 将我们新增的三个硬盘设备创建物理卷
- 将我们创建好的物理卷加入vg666卷组中,并设置其PE大小为15m
- 利用卷组中的PE创建一个30G的逻辑卷lv666
- 先检查其它pv中的Free PE的总和是否大于被操作pv里的Allocated PE个数,如果没有足够空间,将无法执行下一步操作
- 移除被操作pv中的Allocated PE至其它pv中
- 使用命令可以查看到,我们想要删除的硬盘所制作的pv当中Allocated PE为0
- 使用vgs查看,vg666卷组大小没变
- 使用vgreduce将我们所需应建设别从卷组vg666移除
- 使用vgs查看到,vg666卷组大小已缩减,并且pv输从3变更成2
- 使用pvs查看,我们所需设备已不再vg666卷组中
- 使用pvremove 彻底将我们所需设备从pv中删除
- 此时我们所需设备sdb硬盘即可拔出
- 2.LVM设置快照及恢复快照
- 给咱们的逻辑卷设置ext4的文件系统
- 新建所需目录,将逻辑卷挂载至所建目录,并且查看
- 进入目录,cp所需文件至目录下
- 为逻辑卷lv666创建名为lv666_snapshot的快照
- 使用命令查看,显示快照已创建
- 创建快照所需目录,将快照挂载至目录并且设置为只读权限
- 我们现在清空逻辑卷下的文件f1
- 我们现在删除逻辑卷下的所有文件,可以看到快照的文件还在,但是逻辑卷下的文件f开头的文件已被删除
- 现在我们把逻辑卷以及快照都从目录下取消挂载
- 现在我们使用lvconvert --merge进行恢复快照lv666_snapshot
- 现在我们看到,逻辑卷的快照卷已经消失了
- 现在我们将原来的逻辑卷挂会原来的目录下
- 可以看到,刚才被我们删除的f开头的文件都已通过快照恢复了
- 此处要注意的是,快照只会记录逻辑卷当中第一次更改之前的原始数据,在文件被修改第一次之后,再对同一文件进行修改时,快照是不会再次记录的。
1.删除LV逻辑卷中的硬盘设备
查看我们为实验新增的(三个20G)的硬盘设备
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 50G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 3G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sr0 11:0 1 1024M 0 rom
将我们新增的三个硬盘设备创建物理卷
[root@localhost ~]# pvcreate /dev/sdb /dev/sdc /dev/sdd
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
Physical volume "/dev/sdd" successfully created.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 --- 20.00g 20.00g
/dev/sdc lvm2 --- 20.00g 20.00g
/dev/sdd lvm2 --- 20.00g 20.00g
将我们创建好的物理卷加入vg666卷组中,并设置其PE大小为15m
[root@localhost ~]# vgcreate vg666 -s 15m /dev/sdb /dev/sdc /dev/sdd Volume group "vg666" successfully created
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg666 3 0 0 wz--n- <59.99g <59.99g
利用卷组中的PE创建一个30G的逻辑卷lv666
[root@localhost ~]# lvcreate -n lv666 -L 30G /dev/vg666
Logical volume "lv666" created.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv666 vg666 -wi-a----- 30.00g
先检查其它pv中的Free PE的总和是否大于被操作pv里的Allocated PE个数,如果没有足够空间,将无法执行下一步操作
[root@localhost ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb
VG Name vg666
PV Size 20.00 GiB / not usable 5.00 MiB
Allocatable yes (but full)
PE Size 15.00 MiB
Total PE 1365
Free PE 0
Allocated PE 1365
PV UUID B9Dixy-J5Or-z2Es-am0m-0xGJ-Z2QS-3z3y1x
--- Physical volume ---
PV Name /dev/sdc
VG Name vg666
PV Size 20.00 GiB / not usable 5.00 MiB
Allocatable yes
PE Size 15.00 MiB
Total PE 1365
Free PE 682
Allocated PE 683
PV UUID 1PPz12-7M0I-JeNY-7hTX-kz0q-MTdA-JHyyqf
--- Physical volume ---
PV Name /dev/sdd
VG Name vg666
PV Size 20.00 GiB / not usable 5.00 MiB
Allocatable yes
PE Size 15.00 MiB
Total PE 1365
Free PE 1365
Allocated PE 0
PV UUID fPBm0Z-LYMr-qQFC-mYVg-orq1-yR3j-NIQ2x1
移除被操作pv中的Allocated PE至其它pv中
[root@localhost ~]# pvmove /dev/sdb
/dev/sdb: Moved: 0.59%
/dev/sdb: Moved: 100.00%
使用命令可以查看到,我们想要删除的硬盘所制作的pv当中Allocated PE为0
[root@localhost ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb
VG Name vg666
PV Size 20.00 GiB / not usable 5.00 MiB
Allocatable yes
PE Size 15.00 MiB
Total PE 1365
Free PE 1365
Allocated PE 0
PV UUID B9Dixy-J5Or-z2Es-am0m-0xGJ-Z2QS-3z3y1x
--- Physical volume ---
PV Name /dev/sdc
VG Name vg666
PV Size 20.00 GiB / not usable 5.00 MiB
Allocatable yes
PE Size 15.00 MiB
Total PE 1365
Free PE 682
Allocated PE 683
PV UUID 1PPz12-7M0I-JeNY-7hTX-kz0q-MTdA-JHyyqf
--- Physical volume ---
PV Name /dev/sdd
VG Name vg666
PV Size 20.00 GiB / not usable 5.00 MiB
Allocatable yes (but full)
PE Size 15.00 MiB
Total PE 1365
Free PE 0
Allocated PE 1365
PV UUID fPBm0Z-LYMr-qQFC-mYVg-orq1-yR3j-NIQ2x1
使用vgs查看,vg666卷组大小没变
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg666 3 1 0 wz--n- <59.99g <29.99g
使用vgreduce将我们所需应建设别从卷组vg666移除
[root@localhost ~]# vgreduce vg666 /dev/sdb
Removed "/dev/sdb" from volume group "vg666"
使用vgs查看到,vg666卷组大小已缩减,并且pv输从3变更成2
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg666 2 1 0 wz--n- 39.99g 9.99g
使用pvs查看,我们所需设备已不再vg666卷组中
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 --- 20.00g 20.00g
/dev/sdc vg666 lvm2 a-- <20.00g 9.99g
/dev/sdd vg666 lvm2 a-- <20.00g 0
使用pvremove 彻底将我们所需设备从pv中删除
[root@localhost ~]# pvremove /dev/sdb
Labels on physical volume "/dev/sdb" successfully wiped.
此时我们所需设备sdb硬盘即可拔出
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 50G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 3G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
└─vg666-lv666 253:0 0 30G 0 lvm
sdd 8:48 0 20G 0 disk
└─vg666-lv666 253:0 0 30G 0 lvm
sr0 11:0 1 1024M 0 rom
2.LVM设置快照及恢复快照
给咱们的逻辑卷设置ext4的文件系统
[root@localhost ~]# mkfs.ext4 /dev/vg666/lv666
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1966080 inodes, 7864320 blocks
393216 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2155872256
240 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
新建所需目录,将逻辑卷挂载至所建目录,并且查看
[root@localhost ~]# mkdir /mnt/lv666 ; mount /dev/vg666/lv666 /mnt/lv666
[root@localhost ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 711M 0 711M 0% /dev
tmpfs tmpfs 727M 0 727M 0% /dev/shm
tmpfs tmpfs 727M 11M 716M 2% /run
tmpfs tmpfs 727M 0 727M 0% /sys/fs/cgroup
/dev/sda2 xfs 100G 4.1G 96G 5% /
/dev/sda3 xfs 50G 33M 50G 1% /data
/dev/sda1 xfs 1014M 168M 847M 17% /boot
tmpfs tmpfs 146M 4.0K 146M 1% /run/user/42
tmpfs tmpfs 146M 56K 146M 1% /run/user/0
/dev/mapper/vg666-lv666 ext4 30G 45M 28G 1% /mnt/lv666
进入目录,cp所需文件至目录下
[root@localhost ~]# cd /mnt/lv666/
[root@localhost lv666]# cp /etc/fstab f1
[root@localhost lv666]# cp /etc/passwd f2
[root@localhost lv666]# cp /etc/issue f3
[root@localhost lv666]# cp /etc/group f4
[root@localhost lv666]# ls
f1 f2 f3 f4 lost+found
为逻辑卷lv666创建名为lv666_snapshot的快照
[root@localhost lv666]# lvcreate -n lv666_snapshot -s -L 1G /dev/vg666/lv666
Rounding up size to full physical extent 1.01 GiB
Logical volume "lv666_snapshot" created.
使用命令查看,显示快照已创建
[root@localhost lv666]# lvdisplay
--- Logical volume ---
LV Path /dev/vg666/lv666
LV Name lv666
VG Name vg666
LV UUID sUNijp-dHJt-UM37-Spll-Kz1l-vjRh-vduYLX
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-10-20 14:22:58 +0800
LV snapshot status source of
lv666_snapshot [active] #表示这是一个快照
LV Status available
# open 1
LV Size 30.00 GiB
Current LE 2048
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/vg666/lv666_snapshot
LV Name lv666_snapshot
VG Name vg666
LV UUID bolJ4M-cAvQ-eHin-2Oq4-C3Fj-zeIS-WmJnC8
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-10-20 15:22:33 +0800
LV snapshot status active destination for lv666 #表示这是一个针对lv666的快照
LV Status available
# open 0
LV Size 30.00 GiB
Current LE 2048
COW-table size 1.01 GiB
COW-table LE 69
Allocated to snapshot 0.01%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
创建快照所需目录,将快照挂载至目录并且设置为只读权限
[root@localhost lv666]# mkdir /mnt/lv666_snapshot
[root@localhost lv666]# mount -r /dev/vg666/lv666 /mnt/lv666_snapshot/
[root@localhost ~]# ls /mnt/lv666
f1 f2 f3 f4 lost+found
[root@localhost ~]# ls /mnt/lv666_snapshot/
f1 f2 f3 f4 lost+found #虽然快照挂载目录下有我们cp到逻辑卷下的文件,但是这里的文件并不是真实的文件,只是一个映射而已,文件指向的还是逻辑卷目录下的文件
我们现在清空逻辑卷下的文件f1
[root@localhost mnt]# > ./lv666/f1
[root@localhost mnt]# ll lv666
total 16
-rw-r--r--. 1 root root 0 Oct 20 15:50 f1
-rw-r--r--. 1 root root 2256 Oct 20 15:48 f2
-rw-r--r--. 1 root root 23 Oct 20 15:48 f3
-rw-r--r--. 1 root root 963 Oct 20 15:49 f4
drwx------. 2 root root 4096 Oct 20 15:15 lost+found
[root@localhost mnt]# ll lv666_snapshot/
total 32
-rw-r--r--. 1 root root 595 Oct 20 15:21 f1
-rw-r--r--. 1 root root 2256 Oct 20 15:21 f2
-rw-r--r--. 1 root root 23 Oct 20 15:22 f3
-rw-r--r--. 1 root root 963 Oct 20 15:22 f4
drwx------. 2 root root 16384 Oct 20 15:15 lost+found
我们现在删除逻辑卷下的所有文件,可以看到快照的文件还在,但是逻辑卷下的文件f开头的文件已被删除
[root@localhost mnt]# rm -f ./lv666/f*
[root@localhost mnt]# ll lv666
total 4
drwx------. 2 root root 4096 Oct 20 15:15 lost+found
[root@localhost mnt]# ll lv666_snapshot/
total 32
-rw-r--r--. 1 root root 595 Oct 20 15:21 f1
-rw-r--r--. 1 root root 2256 Oct 20 15:21 f2
-rw-r--r--. 1 root root 23 Oct 20 15:22 f3
-rw-r--r--. 1 root root 963 Oct 20 15:22 f4
drwx------. 2 root root 16384 Oct 20 15:15 lost+found
现在我们把逻辑卷以及快照都从目录下取消挂载
[root@localhost mnt]# umount /mnt/lv666
[root@localhost mnt]# umount /mnt/lv666_snapshot/
现在我们使用lvconvert --merge进行恢复快照lv666_snapshot
[root@localhost mnt]# lvconvert --merge /dev/vg666/lv666_snapshot
Merging of volume vg666/lv666_snapshot started.
vg666/lv666: Merged: 100.00%
现在我们看到,逻辑卷的快照卷已经消失了
[root@localhost mnt]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 50G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 3G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
└─vg666-lv666 253:0 0 30G 0 lvm
sdd 8:48 0 20G 0 disk
└─vg666-lv666 253:0 0 30G 0 lvm
sr0 11:0 1 1024M 0 rom
现在我们将原来的逻辑卷挂会原来的目录下
[root@localhost mnt]# mount /dev/vg666/lv666 /mnt/lv666
可以看到,刚才被我们删除的f开头的文件都已通过快照恢复了
[root@localhost lv666]# cd
[root@localhost ~]# ll /mnt/lv666
total 32
-rw-r--r--. 1 root root 595 Oct 20 15:21 f1
-rw-r--r--. 1 root root 2256 Oct 20 15:21 f2
-rw-r--r--. 1 root root 23 Oct 20 15:22 f3
-rw-r--r--. 1 root root 963 Oct 20 15:22 f4
drwx------. 2 root root 16384 Oct 20 15:15 lost+found
此处要注意的是,快照只会记录逻辑卷当中第一次更改之前的原始数据,在文件被修改第一次之后,再对同一文件进行修改时,快照是不会再次记录的。
32
-rw-r–r--. 1 root root 595 Oct 20 15:21 f1
-rw-r–r--. 1 root root 2256 Oct 20 15:21 f2
-rw-r–r--. 1 root root 23 Oct 20 15:22 f3
-rw-r–r--. 1 root root 963 Oct 20 15:22 f4
drwx------. 2 root root 16384 Oct 20 15:15 lost+found
## 此处要注意的是,快照只会记录逻辑卷当中第一次更改之前的原始数据,在文件被修改第一次之后,再对同一文件进行修改时,快照是不会再次记录的。