共计 3763 个字符,预计需要花费 10 分钟才能阅读完成。
一、逻辑卷条带化:
把保存到逻辑卷的数据分成 n 等分,分别写到不同的物理卷,可以提高数据的读写效率;如果任何一个涉及到的物理卷出现故障,数据都会无法恢复。
创建物理卷 | |
[root@manage01 ~]# pvcreate /dev/sdb[12] | |
查看物理卷 | |
[root@manage01 ~]# pvs | |
/dev/sdb1 lvm2 a-- 2.01g 2.01g | |
/dev/sdb2 lvm2 a-- 2.01g 2.01g | |
创建卷组:[root@manage01 ~]# vgcreate vg01 /dev/sdb[12] | |
[root@manage01 ~]# pvs /dev/sdb[12] | |
PV VG Fmt Attr PSize PFree | |
/dev/sdb1 vg01 lvm2 a-- 2.00g 2.00g | |
/dev/sdb2 vg01 lvm2 a-- 2.00g 2.00g | |
创建实现条带化的逻辑卷:[root@zutuanxue ~]# lvcreate -n lv1 -L 1G vg01 -i 2 /dev/sdb{1,2} | |
-i 参数:给出条带化的数量 | |
[root@zutuanxue ~]# lvs /dev/vg01/lv01 | |
格式化挂载使用:[root@zutuanxue ~]# mkfs.ext4 /dev/vg1/lv1 | |
[root@zutuanxue ~]# mount /dev/vg1/lv1 /lv1 | |
测试:[root@zutuanxue ~]# dnf install sysstat -y | |
[root@zutuanxue ~]# iostat -m -d /dev/sdb[12] 2 | |
-d 查看磁盘 | |
-m 以什么速度显示,每秒 M | |
2 每隔2 s 显示一次 | |
如果后面还有数字则代表总共显示多少次 | |
[root@zutuanxue ~]# dd if=/dev/zero of=/lv1/test bs=1M count=1000 模拟写数据 | |
[root@zutuanxue ~]# iostat -m -d /dev/sdb[12] 1 | |
. | |
. | |
. | |
Device tps MB_read/s MB_wrtn/s MB_read MB_wrtn | |
sdb1 4015.00 0.01 364.38 0 364 | |
sdb2 4005.00 0.00 364.33 0 364 | |
二、逻辑卷实现镜像
镜像是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。对某个逻辑卷的数据做镜像,起到数据备份的作用。
当前环境:[root@zutuanxue ~]# lsblk | |
├─sdb3 8:19 0 2G 0 part | |
├─sdb4 8:20 0 2G 0 part | |
创建物理卷:[root@zutuanxue ~]# pvcreate /dev/sdb[34] | |
[root@zutuanxue ~]# pvs | |
PV VG Fmt Attr PSize PFree | |
/dev/sdb3 lvm2 --- 2.00g 2.00g | |
/dev/sdb4 lvm2 --- 2.00g 2.00g | |
将物理卷加入到 vg1 卷组:[root@zutuanxue ~]# vgextend vg1 /dev/sdb[34] | |
Volume group "vg1" successfully extended | |
[root@zutuanxue ~]# vgs | |
VG #PV #LV #SN Attr VSize VFree | |
vg1 4 1 0 wz--n- 7.98g 6.98g | |
创建实现镜像的逻辑卷:[root@zutuanxue ~]# lvcreate -n lv2 -L 1G vg1 -m 1 /dev/sdb[34] | |
Logical volume "lv2" created. | |
- m 参数:给出镜像的个数;1表示 1 个镜像 | |
[root@zutuanxue ~]# lvs -a -o +devices | |
[root@zutuanxue ~]# lvs -a -o +devices | |
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices | |
root cl -wi-ao---- <17.00g /dev/sda2(512) | |
swap cl -wi-ao---- 2.00g /dev/sda2(0) | |
lv1 vg1 -wi-ao---- 1.00g /dev/sdb1(0),/dev/sdb2(0) | |
lv2 vg1 rwi-a-r--- 1.00g 100.00 lv2_rimage_0(0),lv2_rimage_1(0) | |
[lv2_rimage_0] vg1 iwi-aor--- 1.00g /dev/sdb3(1) | |
[lv2_rimage_1] vg1 iwi-aor--- 1.00g /dev/sdb4(1) | |
[lv2_rmeta_0] vg1 ewi-aor--- 4.00m /dev/sdb3(0) | |
[lv2_rmeta_1] vg1 ewi-aor--- 4.00m /dev/sdb4(0) | |
说明:Cpy%Sync 18.77该值是100% 说明复制 ok | |
格式化逻辑卷:[root@zutuanxue ~]# mkfs.ext4 /dev/vg1/lv2 | |
挂载使用 | |
[root@zutuanxue ~]# mount /dev/vg1/lv2 /lv2/ | |
[root@zutuanxue ~]# touch /lv2/file{1..10} | |
[root@zutuanxue ~]# mkdir /lv2/dir{1..10} | |
测试验证:思路:损坏一个磁盘,测试数据是否在第二个物理卷中 | |
1. 使用 dd 命令破坏一个物理卷 | |
[root@zutuanxue ~]# dd if=/dev/zero of=/dev/sdb3 bs=1M count=100 | |
2. 再次查看物理卷发现有一个 unknown Device pvs 命令 | |
[unknown] vg1 lvm2 a-m <2.00g 1016.00m | |
3. 将损坏的盘从卷组中移除 | |
[root@zutuanxue ~]# vgreduce vg1 --removemissing --force | |
4. 再次查看挂载点 /lv2 数据依然存在 | |
自己也可以再次测试:1. 再拿刚刚人为损坏的盘做成物理卷再次加入到 vg1 卷组中 | |
[root@zutuanxue /]# pvcreate /dev/sdb3 | |
[root@zutuanxue /]# vgextend vg1 /dev/sdb3 | |
2. 修复 | |
[root@zutuanxue /]# lvconvert --repair /dev/vg1/lv2 /dev/sdb[34] |
三、逻辑卷快照
快照的作用:保存做快照那一刻数据的状态,方便用户实现数据回滚,避免重要数据被覆盖。
快照的大小:快照需要占用卷组空间,快照的大小决定了允许有多少数据发生改变,如果制作快照时分配的容量与对应的逻辑卷相同,那么就允许逻辑卷中所有的数据发生改变。
COW:copy on write 当系统检测到做快照的逻辑卷当中的数据发生了改变,会在改变前将逻辑卷中的 PE 的数据复制到快照中的 PE,然后再写入新的数据
1. 创建快照 (EXT4) | |
[root@zutuanxue /]# lvcreate -L 200M -s -n lv1-snap /dev/vg1/lv1 给 lv1 逻辑卷创建快照 | |
[root@zutuanxue /]# mount -o ro /dev/vg1/lv1-snap /lv1-snap/ 挂载快照 | |
[root@zutuanxue /]# lvscan | |
ACTIVE Original '/dev/vg1/lv1' [2.00 GiB] inherit | |
ACTIVE Snapshot '/dev/vg1/lv1-snap' [200.00 MiB] inherit | |
[root@zutuanxue /] dmsetup ls --tree | |
vg1-lv2--snap (252:5) | |
├─vg1-lv1--snap-cow (253:4) 保存原卷改变前的数据 | |
│ └─ (8:17) | |
└─vg1-lv1-real (253:3) 真实的逻辑卷(原卷)├─ (8:17) | |
└─ (8:18) | |
vg1-lv1 (253:2) | |
└─vg1-lv1-real (253:3) | |
├─ (8:17) | |
└─ (8:18) | |
2. 修改原卷的数据 | |
[root@zutuanxue /]# dd if=/dev/zero of=/lv1/test bs=1M count=30 | |
3. 观察 Snapshot | |
[root@zutuanxue /]# lvs /dev/vg1/lv1-snap | |
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert | |
lv1-snap vg1 swi-aos--- 200.00m lv1 0.02 | |
[root@zutuanxue /]# lvs /dev/vg1/lv1-snap | |
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert | |
lv1-snap vg1 swi-aos--- 200.00m lv1 15.10 | |
XFS:[root@node1 ~]# mount -o nouuid,ro /dev/vg1/lv1-snap /lv1-snap | |
挂载快照,尽量使用 ro 的方式,将不会破坏快照卷中的数据 | |
快照实现自动扩容:/etc/lvm/lvm.conf | |
snapshot_autoextend_threshold = 80 | |
snapshot_autoextend_percent = 20 | |
// 当快照使用到 80% 时,自动扩容20%;当 snapshot_autoextend_threshold = 100 表示关闭自动扩容 | |
修改完成后建议重启 |
正文完
星哥玩云-微信公众号
