什么是磁盘镜像?
磁盘镜像类似于raid1, 多块磁盘互相同步备份,可以有效避免数据丢失的尴尬。
一则实例:
新建4个分区:/dev/sdb1,/dev/sdb2,/dev/sdb3,/dev/sdb4
- /dev/sdb1、/dev/sdb2用作数据磁盘
- /dev/sdb2作为/dev/sdb1的镜像
- /dev/sdb3作为日志
- /dev/sdb4作为备用盘
当sdb1或sdb2损害时备用,类似于raid5中的热备盘
# 创建pv pvcreate /dev/sdb{1..4} #创建vg vgcreate vg_test /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4 作为备用 # 创建带镜像功能的逻辑卷lv lvcreate -L 2.8G -m1 -n mirror_test vg_test /dev/sdb1 /dev/sdb2 /dev/sdb3 # 查看详情 lvs -a -o +devices 参数说明: -m1参数为创建镜像; -L参数为设定镜像卷的大小为2.8G; -n参数为指定镜像名称; 这个镜像包括三部分:sdb1和sdb2位数据卷和镜像卷,sdb3为日志卷 # 查看镜像状态 lvdisplay /dev/vg_test/mirror_test # 格式化并挂载 mkfs.ext4 /dev/vg_test/mirror_test mount /dev/vg_test/mirror_test /test # 测试镜像功能 写入数据 cd test echo "lvm mirror test" > test.txt 模拟对/dev/sdb2进行破坏 dd if=/dev/zero of=/dev/sdb2 count=10 bs=1M 查看状态 lvs -a -o +devices lvscan 此时查看状态发现/dev/sdb2处于“unknown device(0)”状态 卸载重新挂载确认数据是否还在 umount /test mount /dev/vg_test/mirror_test /test cd /test && cat test.txt 移除坏掉的设备 vgreduce --removemissing --force vg_test 移除后vgdisplay /dev/vg_test发现mirrored volumes选项没有了;并且由于sdb2的失效,镜像mirror_test也已经有mirror模式转变成线性模式,如果恢复我们需要用到lvconvert命令来恢复 # 镜像数据恢复 使用备份盘/dev/sdb4进行数据恢复 扩展vg vgextend vg_test /dev/sdb4 恢复 lvconvert -m1 /dev/vg_test/mirror_test /dev/sdb1 /dev/sdb4 /dev/sdb3 检查状态 lvdisplay /dev/vg_test lvs -a -o +devices 经过数据恢复,镜像卷由原来的sdb2转变为sdb4
讯享网
在实际的生产环境,服务器基本都有不同级别的RAID,因此LVM的镜像卷使用场景很少。但如果你正面临以下情况:
- 磁盘数量比较吃紧,但磁盘空间需求大
- 服务器仅支持RAID1,空间使用率减半
- 对性能要求不高,但要保证一定的数据冗余

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/65845.html