首页 > 系统相关 >Linux下的lvm镜像与快照

Linux下的lvm镜像与快照

时间:2024-06-12 11:31:35浏览次数:12  
标签:快照 -- 0.00 Linux dev LV mlv mvg lvm

lvm镜像(mirror)

(1)划分三个PV,其中2个PV大小要一模一样

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd33473f7

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         654     5253223+  83  Linux         ----5G
/dev/sdb2             655        1308     5253255   83  Linux        ----5G
/dev/sdb3            1309        1373      522112+  83  Linux       ----日志 500M

(2)把三个PV做成一个VG组

pvcreate /dev/sdb{1,2,3}
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdb2" successfully created
  Physical volume "/dev/sdb3" successfully created

  pvs
  PV         VG   Fmt  Attr PSize   PFree  
  /dev/sdb1       lvm2 a--    5.01g   5.01g
  /dev/sdb2       lvm2 a--    5.01g   5.01g
  /dev/sdb3       lvm2 a--  509.88m 509.88

  vgcreate mvg /dev/sdb1 /dev/sdb2 /dev/sdb3
  Volume group "mvg" successfully created

(3)新建一个mirror lv卷

lvcreate -m1 -L 5G -n mlv mvg
  Logical volume "mlv" created

 lvs -a		--发现当前的这个LV是由三个PV组成的
 LV             VG   Attr       LSize Pool Origin Data%  Move Log      Cpy%Sync Convert
  mlv            mvg  mwi-a-m--- 5.00g                         mlv_mlog    55.62        
  [mlv_mimage_0] mvg  Iwi-aom--- 5.00g                                                  
  [mlv_mimage_1] mvg  Iwi-aom--- 5.00g                                                  
  [mlv_mlog]     mvg  lwi-aom--- 4.00m     

(4)测试当前mirror lv是否有镜像功能

mkfs.ext4 /dev/mvg/mlv 
mount /dev/mvg/mlv /mnt

rpm -q sysstat		--如果没有安装就安装下面的包
yum -y install sysstat
iostat -x 1 /dev/sda5 /dev/sda6
Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda5            143.00     0.00   33.00    0.00 22528.00     0.00   682.67     0.11    3.48   2.94   9.70
sda6              0.00   154.00    0.00   22.00     0.00 22528.00  1024.00     0.25   11.09  11.23  24.70

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          57.07    0.00   30.81    6.06    0.00    6.06

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda5            144.00     0.00   32.00    0.00 22528.00     0.00   704.00     0.12    3.84   3.16  10.10
sda6              0.00   154.00    0.00   22.00     0.00 22528.00  1024.00     0.25   11.14  11.18  24.60

(5)测试镜像卷中单个PV失效

dd if=/dev/zero of=/dev/sdb1 count=1 bs=10M

pvs
  Couldn't find device with uuid 41RfAr-mPfM-Voj0-qEfP-CCO5-AXfF-epScKO.
  PV             VG   Fmt  Attr PSize   PFree  
  /dev/sda2      vol0 lvm2 a--    7.78g 448.00m
  /dev/sda6      mvg  lvm2 a--    5.01g   3.01g
  /dev/sda7      mvg  lvm2 a--  108.00m 104.00m
  unknown device mvg  lvm2 a-m    5.00g   3.00g

vgs
  Couldn't find device with uuid 41RfAr-mPfM-Voj0-qEfP-CCO5-AXfF-epScKO.
  VG   #PV #LV #SN Attr   VSize  VFree  
  mvg    3   1   0 wz-pn- 10.11g   6.11g
  vol0   1   2   0 wz--n-  7.78g 448.00m

lvs -a
  Couldn't find device with uuid 41RfAr-mPfM-Voj0-qEfP-CCO5-AXfF-epScKO.
  LV             VG   Attr     LSize   Pool Origin Data%  Move Log      Copy%  Convert
  mlv            mvg  mwi-a-m-   2.00g                         mlv_mlog 100.00        
  [mlv_mimage_0] mvg  iwi-aom-   2.00g                                                
  [mlv_mimage_1] mvg  iwi-aom-   2.00g                                                
  [mlv_mlog]     mvg  lwi-aom-   4.00m                                                
  home           vol0 -wi-ao-- 512.00m                                                
  root           vol0 -wi-ao--   6.84g      

剔除失效PV

vgreduce mvg --removemissing --force

pvs
  PV         VG   Fmt  Attr PSize   PFree  
  /dev/sda2  vol0 lvm2 a--    7.78g 448.00m
  /dev/sda6  mvg  lvm2 a--    5.01g   3.01g
  /dev/sda7  mvg  lvm2 a--  108.00m 108.00m

vgs
  VG   #PV #LV #SN Attr   VSize VFree  
  mvg    2   1   0 wz--n- 5.11g   3.11g
  vol0   1   2   0 wz--n- 7.78g 448.00m

lvs -a
  LV   VG   Attr     LSize   Pool Origin Data%  Move Log Copy%  Convert
  mlv  mvg  -wi-a---   2.00g                                           
  home vol0 -wi-ao-- 512.00m                                           
  root vol0 -wi-ao--   6.84g         

恢复后尝试重新挂载原始LV

mount /dev/mvg/mlv /mnt

[root@zhou ~]# ls /mnt
file  lost+found
[root@zhou ~]# du -sh /mnt    <----数据依然存在
501M	/mnt

(6)彻底恢复带镜像功能的LV

重新新建一个PV

pvcreate /dev/sdb4

vgextend mvg /dev/sda4

lvconvert -m1  /dev/mvg/mlv 

lvs -a
  LV             VG   Attr     LSize   Pool Origin Data%  Move Log      Copy%  Convert
  mlv            mvg  mwi-aom-   5.00g                         mlv_mlog 100.00        
  [mlv_mimage_0] mvg  iwi-aom-   5.00g                                                
  [mlv_mimage_1] mvg  iwi-aom-   5.00g                                                
  [mlv_mlog]     mvg  lwi-aom-   4.00m          

LVM快照

1、确认卷组是否有足够的空闲空间

vgs
VG   #PV #LV #SN Attr   VSize  VFree 
  vg     2   0   0 wz--n- 10.02g 10.02g

lvs				--原始LV
 lv   vg   -wi-a----- 8.00g
mount  /dev/mapper/vg-lv  /mnt      

2、锁定应用保证原始LV没有数据更新,然后再新建快照

lvcreate -n lv_snap -L 100M -s /dev/vg/lv        <--100M的意思就是创建快照后,在/dev/mapper/vg-lv_snap-cow对应的设备文件(等于这里的/mnt)只能写入100M的数据,如果在没备份完之前超过100M就会导致快照失效,然而旧数据备份也就失败,只能

3、先解锁应用,然后挂载快照并且做数据备份

mount /dev/mapper/lv_snap /media
cd /media && tar cjvf /backup/test.tar.bz2 ./

4、删除快照

lvremove /dev/GLSvg/lv_snap

5、快照对应的三个设备文件

/dev/mapper/vg-lv_snap    --用于备份LV的原始数据,等于复制创建快照的时间点前的LV数据,可挂载后备份

/dev/mapper/vg-lv-real      --用于对应旧数据

/dev/mapper/vg-lv_snap-cow   --用于存放新写入和修改过的数据,相当于代替了原来的挂载点/mnt接收数据

标签:快照,--,0.00,Linux,dev,LV,mlv,mvg,lvm
From: https://blog.csdn.net/u014516208/article/details/139575969

相关文章

  • 《Linux内核完全注释》学习笔记:2.7 Linux内核源代码的目录结构
    由于Linux内核是一种单内核模式的系统,因此内核中所有程序几乎都有紧密的联系,它们之间的调用关系非常密切。所以在阅读一个源代码文件时往往需要参阅其他相关的文件。因此有必要在开始阅读内核源代码之前,先熟悉一下源代码文件的目录结构。这里我们首先列出Linux内核完整的源代......
  • 在Linux中,如何进行备份或归档文件(tar 命令)?
    在Linux中,tar命令是用来打包和压缩文件的常用工具。它可以将多个文件和目录合并成一个单一的归档文件,并且可以选择性地对其进行压缩。以下是使用tar命令进行备份或归档文件的一些基本用法:1.创建归档文件基本命令格式:tar[选项][归档后的文件名][要归档的文件或目录]......
  • 在Linux中,如何将二进制文件添加到 $PATH 变量中?
    在Linux系统中,$PATH是一个环境变量,它定义了操作系统在执行命令时搜索可执行文件的目录。要将一个二进制文件添加到$PATH中,你可以按照以下步骤操作:找到二进制文件的路径:首先,你需要知道二进制文件的确切位置。使用which命令或者find命令来查找文件的位置。例如:whichyou......
  • 在Linux中,有哪些基本的 Vim 命令?
    Vim(ViImproved)是一个强大的文本编辑器,广泛应用于Linux和其他类Unix系统中。它拥有两种主要的工作模式:命令模式(Normalmode)和插入模式(Insertmode),以及一些辅助模式,如底行模式(Command-linemode)和可视模式(Visualmode)。以下是一些基本的Vim命令,涵盖在这些模式下的常见操作:1.基础......
  • 在Linux中,umask 和 ulimit有什么区别?
    在Linux系统中,umask和ulimit是两个不同的命令,它们分别用于设置不同的系统属性:1.umask(用户文件创建掩码)umask(userfilecreationmask)是一个命令,用于设置新创建文件和目录的默认权限。umask定义了文件系统创建文件和目录时默认应该屏蔽掉的权限位。用途:控制新创建的文件和......
  • ssh的远程连接(Linux篇)
    这里用到的虚拟机时centos7记得提前先把网络连接好,这里选择的是桥接模式1.启动ssh服务#在centos中启动sshd服务sudosystemctlstartsshd2.在windows的cmd命令界面内输入以下内容#sshcentos中的登录用户名@centos中的IP地址[email protected]然后cmd中会出现以......
  • 深度解读数据库引入LLVM技术后如何提升性能
    GaussDB作为企业级的数据库,经过了多年的技术发展,具备丰富的技术特性,使用LLVM技术后提升了系统的查询性能,使得开发者在OLAP和OLTP多场景中均受益。Hi,别急!让技术触达每一个角落,赋能更多的人,GaussTech第3期《LLVM技术在GaussDB等数据库中的应用》,不仅带来满满的技术干货,还推出【分......
  • 【Linux系列】掌握jq:高效处理JSON数据的命令行利器
    jq是一个强大的命令行工具,以其简洁的语法和丰富的功能,成为处理JSON数据的首选。本文旨在通过实战示例,让你迅速上手jq,掌握提取信息、美化输出和数据压缩的核心技能。一、安装jq:开启高效之旅首先,确保你的系统中安装了jq。在大多数Linux发行版中,可以通过包管理器安装,例如:#Ubun......
  • Linux 蜂鸣器实验
    Linux蜂鸣器实验1、修改设备树文件I.MX6U-ALPHA开发板上的BEEP使用了SNVS_TAMPER1这个PIN,打开imx6ull-alientekemmc.dts,在iomuxc节点的imx6ul-evk子节点下创建一个名为“pinctrl_beep”的子节点,节点内容如下所示:pinctrl_beep:beepgrp{ fsl,pins=< MX6ULL_PAD_SNVS_TA......
  • 酷游网址:如何在Linux 上安装Python、pip 和EB CLI
    由酷游网址вт989点сс编译,要如何在Linux上安装Python、pip和EBCLI呢?EBCLI需要Python2.7、3.4或更新版本。如果您的发行版本没有随附Python,或者随附了旧版本,请在安装pip和EBCLI之前先安装Python。在Linux上安装Python3.7判断是否已安装Python。$python--ve......