LVM逻辑卷管理之磁盘镜像——筑梦之路
逻辑 管理 筑梦之路 LVM
2023-09-14 09:09:35 时间
什么是磁盘镜像?
磁盘镜像类似于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,空间使用率减半
-
对性能要求不高,但要保证一定的数据冗余
相关文章
- 【AIX 命令学习】mkdev -l 设置逻辑卷
- 新闻发布项目——业务逻辑层(categoryTBService)
- asp.net 逻辑操作符与(&&),或(||),非(!)
- SAP Spartacus 3.0 加载homepage的逻辑
- SAP Spartacus cxOutlet 里的 templatesRefs 的填充逻辑
- SAP CRM呼叫中心中结束按钮的实现逻辑
- 微信小程序开发系列四:微信小程序之控制器的初始化逻辑
- SAP Fiori里Contact Support的按钮渲染逻辑
- SAP Kyma SSL证书请求文件(CSR)生成逻辑
- R3Injector实例里的records map的填充逻辑
- ML之yellowbrick:基于titanic泰坦尼克是否获救二分类预测数据集利用yellowbrick对LoR逻辑回归模型实现可解释性(阈值图)案例
- JSP EL逻辑运算符
- 技术解读丨GaussDB数仓高可用容灾利器之逻辑备份
- MySQL与逻辑模块
- 逻辑回归(logistic regression)
- Oracle 逻辑备份(数据迁移)
- 实验一 逻辑回归