当前位置:   article > 正文

LVM逻辑卷管理之磁盘镜像——筑梦之路_linux 镜像卷

linux 镜像卷

什么是磁盘镜像?

磁盘镜像类似于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中的热备盘

  1. # 创建pv
  2. pvcreate /dev/sdb{1..4}
  3. #创建vg
  4. vgcreate vg_test /dev/sdb1 /dev/sdb2 /dev/sdb3
  5. /dev/sdb4 作为备用
  6. # 创建带镜像功能的逻辑卷lv
  7. lvcreate -L 2.8G -m1 -n mirror_test vg_test /dev/sdb1 /dev/sdb2 /dev/sdb3
  8. # 查看详情
  9. lvs -a -o +devices
  10. 参数说明:
  11. -m1参数为创建镜像;
  12. -L参数为设定镜像卷的大小为2.8G;
  13. -n参数为指定镜像名称;
  14. 这个镜像包括三部分:sdb1和sdb2位数据卷和镜像卷,sdb3为日志卷
  15. # 查看镜像状态
  16. lvdisplay /dev/vg_test/mirror_test
  17. # 格式化并挂载
  18. mkfs.ext4 /dev/vg_test/mirror_test
  19. mount /dev/vg_test/mirror_test /test
  20. # 测试镜像功能
  21. ## 写入数据
  22. cd test
  23. echo "lvm mirror test" > test.txt
  24. ## 模拟对/dev/sdb2进行破坏
  25. dd if=/dev/zero of=/dev/sdb2 count=10 bs=1M
  26. ## 查看状态
  27. lvs -a -o +devices
  28. lvscan
  29. 此时查看状态发现/dev/sdb2处于“unknown device(0)”状态
  30. ## 卸载重新挂载确认数据是否还在
  31. umount /test
  32. mount /dev/vg_test/mirror_test /test
  33. cd /test && cat test.txt
  34. ## 移除坏掉的设备
  35. vgreduce --removemissing --force vg_test
  36. 移除后vgdisplay /dev/vg_test发现mirrored volumes选项没有了;并且由于sdb2的失效,镜像mirror_test也已经有mirror模式转变成线性模式,如果恢复我们需要用到lvconvert命令来恢复
  37. # 镜像数据恢复
  38. 使用备份盘/dev/sdb4进行数据恢复
  39. ## 扩展vg
  40. vgextend vg_test /dev/sdb4
  41. ## 恢复
  42. lvconvert -m1 /dev/vg_test/mirror_test /dev/sdb1 /dev/sdb4 /dev/sdb3
  43. ## 检查状态
  44. lvdisplay /dev/vg_test
  45. lvs -a -o +devices
  46. 经过数据恢复,镜像卷由原来的sdb2转变为sdb4

在实际的生产环境,服务器基本都有不同级别的RAID,因此LVM的镜像卷使用场景很少。但如果你正面临以下情况:

  • 磁盘数量比较吃紧,但磁盘空间需求大

  • 服务器仅支持RAID1,空间使用率减半

  • 对性能要求不高,但要保证一定的数据冗余

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/674618
推荐阅读
相关标签
  

闽ICP备14008679号