linux lvm快照的正确mount挂载实现方式

2025-05-27 02:50

本文主要是介绍linux lvm快照的正确mount挂载实现方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《linuxlvm快照的正确mount挂载实现方式》:本文主要介绍linuxlvm快照的正确mount挂载实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教...

linux lvm快照的正确mount挂载

由于 LVM 快照的特殊性 ,普通的 mount 方式可能不适用。

以下是更深入的分析和解决方案:

1. 检查快照是否正确创建

首先确认快照是否成功创建:

lvs  # 查看 temp_snap 是否存在,并检查属性

如果 Origin 指向 mysql_data,说明快照创建成功。

2. 确保快照已激活

lvchange -ay /dev/vg00/temp_snap  # 强制激活快照

3. 尝试直接挂载(不指定文件系统类型)

mount /dev/vg00/temp_snap /mnt/snap

如果报错 bad fs type,说明内核无法自动识别文件系统。

4. 显式指定文件系统类型(关键步骤)

  • 如果是 ext4/ext3/ext2
mount -t ext4 -o ro,nouuid /dev/vg00/temp_snap /mnt/snap
  • 如果是 XFS
mount -t xfs -o ro,nouuid /dev/vg00/temp_snap /mnt/snap

关键选项说明:

  • -o ro:以只读方式挂http://www.chinasem.cn载(快照必须只读)
  • -o nouuid:忽略 UUID 冲突(快照和原卷 UUID 相同,必须忽略)

5. 如果仍然失败:检查文件系统一致性

  • EXT4 文件系统
fsck -f /dev/vg00/temp_snap  # 强制检查
  • XFS 文件系统
xfs_repair /dev/vg00/temp_snap

6. 最终修正版备份脚本

#!/bin/bash

# 1. 创建快照(必须足够大)
lvcreate -s -n temp_snap -L 20G /dev/vg00/mysql_data

# 2. 激活快照
lvchange -ay /dev/vg00/temp_snap

# 3. 获取文件系统类型
FS_TYPE=$(blkid -o value php-s TYPE /dev/vg00/temp_snap)
[ -z "$FS_TYPE" ] && FS_TYPE="ext4"  # 默认类型

# 4. 挂载快照(关键步骤)
mkdir -p /mnt/snap
if mount -t $FS_TYPE -o ro,nouuid /dev/vg00/temp_snap /mnt/snap; then
    # 5. 备份数据
    rsync -a /mnt/snap/ backup-server:/mysql_backups/
    # 6. 卸载并删除
    umount /mnt/snap
    lvremove -f /dev/vg00/temp_snap
else
    echo "挂载失败!请检查:"
    echo php"1. 快照大小是否足够(lvdisplay /dev/vg00/temp_snap)"
    echo "2. 文件系统是否损坏(fsck/xfs_repair)"
    exit 1
fi

常见根本原因

1.未使用 -o ro,nouuid

LVM 快照必须只读挂载,且必须忽略 UUID 冲突。

2.快照空间不足

如果原卷在备份期间变化量超过 20G,快照会失效。

3.文件系统未正确关闭

原卷 mysql_data 可能需要先编程 sync 再创建快照。

如何验证问题

# 查看快照状态
lvdisplay /dev/vg00/temp_snap | grep -E "Allocated|Snapshot"

# 查看挂载错误详情
dmesg | tail

如果仍有问题,请提供:

  • lvdisplay /dev/vg00/mysql_datalvdisplay /dev/vg00/temp_snap 的输出
  • mount 命令的完整错误信息
  • blkid /dev/vg00/temp_snap 的结果

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持China编程(www.chinasem.cn)。

这篇关于linux lvm快照的正确mount挂载实现方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1154794

相关文章

golang float和科学计数法转字符串的实现方式

《golangfloat和科学计数法转字符串的实现方式》:本文主要介绍golangfloat和科学计数法转字符串的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望... 目录golang float和科学计数法转字符串需要对float转字符串做处理总结golang float

SpringBoot项目Web拦截器使用的多种方式

《SpringBoot项目Web拦截器使用的多种方式》在SpringBoot应用中,Web拦截器(Interceptor)是一种用于在请求处理的不同阶段执行自定义逻辑的机制,下面给大家介绍Sprin... 目录一、实现 HandlerInterceptor 接口1、创建HandlerInterceptor实

查看MySql主从同步的偏移量方式

《查看MySql主从同步的偏移量方式》:本文主要介绍查看MySql主从同步的偏移量方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 1.mysql的主从同步方案mysqlphp为了在实现读写分离,主库写,从库读mysql的同步方案主要是通过从库读取主库的binl

利用Python实现时间序列动量策略

《利用Python实现时间序列动量策略》时间序列动量策略作为量化交易领域中最为持久且被深入研究的策略类型之一,其核心理念相对简明:对于显示上升趋势的资产建立多头头寸,对于呈现下降趋势的资产建立空头头寸... 目录引言传统策略面临的风险管理挑战波动率调整机制:实现风险标准化策略实施的技术细节波动率调整的战略价

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行

SpringBoot实现Kafka动态反序列化的完整代码

《SpringBoot实现Kafka动态反序列化的完整代码》在分布式系统中,Kafka作为高吞吐量的消息队列,常常需要处理来自不同主题(Topic)的异构数据,不同的业务场景可能要求对同一消费者组内的... 目录引言一、问题背景1.1 动态反序列化的需求1.2 常见问题二、动态反序列化的核心方案2.1 ht

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

Python实现文件批量重命名器

《Python实现文件批量重命名器》在日常工作和学习中,我们经常需要对大量文件进行重命名操作,本文将介绍一个使用Python开发的文件批量重命名工具,提供了多种重命名模式,有需要的小伙伴可以了解下... 目录前言功能特点模块化设计1.目录路径获取模块2.文件列表获取模块3.重命名模式选择模块4.序列号参数配

golang实现延迟队列(delay queue)的两种实现

《golang实现延迟队列(delayqueue)的两种实现》本文主要介绍了golang实现延迟队列(delayqueue)的两种实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录1 延迟队列:邮件提醒、订单自动取消2 实现2.1 simplChina编程e简单版:go自带的time

Python使用python-docx实现自动化处理Word文档

《Python使用python-docx实现自动化处理Word文档》这篇文章主要为大家展示了Python如何通过代码实现段落样式复制,HTML表格转Word表格以及动态生成可定制化模板的功能,感兴趣的... 目录一、引言二、核心功能模块解析1. 段落样式与图片复制2. html表格转Word表格3. 模板生