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

 更新时间:2025年05月26日 15:17:22   作者:学亮编程手记  
这篇文章主要介绍了linux lvm快照的正确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:以只读方式挂载(快照必须只读)
  • -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 -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 "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 的结果

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 在Linux命令行中解析JSON的详细步骤

    在Linux命令行中解析JSON的详细步骤

    JQ 是一个通用的 Linux 命令行 JSON 处理器,它允许开发人员快速地解析、过滤和转换 JSON 数据,在本文中,我们将介绍常用的 JQ 命令,展示如何简化 JSON 处理任务,需要的朋友可以参考下
    2025-11-11
  • linux或windows环境下pytorch的安装与检查验证(解决runtimeerror问题)

    linux或windows环境下pytorch的安装与检查验证(解决runtimeerror问题)

    这篇文章主要介绍了linux或windows环境下pytorch的安装与检查验证(解决runtimeerror问题),需要的朋友可以参考下
    2019-12-12
  • Centos6.5全自动安装 vsftpd+dhcp+nfs+tftp

    Centos6.5全自动安装 vsftpd+dhcp+nfs+tftp

    本文主要记述了在Centos6.5中,如何配置无人值守安装vsftpd+dhcp+nfs+tftp,非常实用,希望对大家能有所帮助。
    2014-09-09
  • Linux下合并多个PDF文件为一个PDF文件的方法汇总

    Linux下合并多个PDF文件为一个PDF文件的方法汇总

    在 Linux 系统中,有时需要将多个 PDF 文件合并成一个大的 PDF 文件,例如,在整理文档、生成报告等场景下,合并多个相关的 PDF 文件可以提高文档的整体性和可读性,本文给大家介绍了一些常见的方法,需要的朋友可以参考下
    2025-07-07
  • Linux进程优先级解读

    Linux进程优先级解读

    本文介绍Linux进程优先级(数字越小越高)与权限的区别,详解nice/renice命令调整优先级,涵盖竞争性、并发等概念,以优化系统资源分配与性能
    2025-08-08
  • 详解linux安装软件的几种方法

    详解linux安装软件的几种方法

    这篇文章主要介绍了linux安装软件的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Ubuntu 12.04 64位 对Python 源代码编译详解

    Ubuntu 12.04 64位 对Python 源代码编译详解

    这篇文章主要介绍了Ubuntu 12.04 64位 对Python 源代码编译的相关资料,需要的朋友可以参考下
    2017-01-01
  • Linux中split大文件分割和cat合并文件详解

    Linux中split大文件分割和cat合并文件详解

    这篇文章主要给大家介绍了关于Linux中split大文件分割和cat合并文件的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • 关于Linux下conda安装caffe与pb转caffe问题

    关于Linux下conda安装caffe与pb转caffe问题

    这篇文章主要介绍了关于Linux下conda安装caffe与pb转caffe问题,文中以图文说明了conda安装caffe的方法,需要的朋友可以参考下
    2023-03-03
  • 分析Linux内核调度器源码之初始化

    分析Linux内核调度器源码之初始化

    本篇文章将从源码的角度剖析内核调度的具体原理和实现,以Linux kernel 5.4 版本(TencentOS Server3 默认内核版本)为对象,从调度器子系统的初始化代码开始,分析Linux内核调度器的设计与实现
    2021-06-06

最新评论