Linux逻辑卷快照及ssm的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux逻辑卷快照及ssm的使用相关的知识,希望对你有一定的参考价值。

Linux逻辑卷快照及ssm的使用


理论部分:


    逻辑卷管理(LVM)提供了为任何逻辑卷作一个快照的功能,目的是在一致的状态下来得到一个分区的备份.因为在备份过程中,应用程序可能访问一个分区的文件或者数据库.一些文件可能在一个状态被备份,而后面的文件可能在一个更新后被备份,导致备份的不完整

    从具体细节上说,快照是指向保存在存储设备中的数据的引用标记或指针

操作部分:


首先创建一个逻辑卷/dev/vg00/lv00,空间为504M

lvdisplay /dev/vg00/lv00
  --- Logical volume ---
  LV Path                /dev/vg00/lv00
  LV Name                lv00
  VG Name                vg00
  LV UUID                1ZUmzM-krIb-ag0Y-58oQ-IEfp-CRu4-JrzlB1
  LV Write Access        read/write
  LV Creation host, time CentOS-1, 2017-01-09 19:25:41 +0800
  LV Status              available
  # open                 1
  LV Size                504.00 MiB
  Current LE             126
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

为了体现实验效果,我们往这个逻辑卷复制一些数据到/data里面去

cp /boot/* /data/

接下来我们开始为/dev/vg00/lv00做逻辑卷快照

lvcreate --size 500M --snapshot --name lvsp00 /dev/vg00/lv00
Logical volume "lvsp00" created.

使用lvscan查看一下

lvscan 
  ACTIVE            ‘/dev/centos/swap‘ [8.00 GiB] inherit
  ACTIVE            ‘/dev/centos/root‘ [41.51 GiB] inherit
  ACTIVE   Original ‘/dev/vg00/lv00‘ [504.00 MiB] inherit
  ACTIVE   Snapshot ‘/dev/vg00/lvsp00‘ [500.00 MiB] inherit

现在可以看到/dev/vg00/lv00是原始逻辑卷,而最后的/dev/vg00/lvsp00是快照

执行lvdisplay或者lvs命令可以查看逻辑信息

lvdisplay /dev/vg00/lvsp00 
  --- Logical volume ---
  LV Path                /dev/vg00/lvsp00
  LV Name                lvsp00
  VG Name                vg00
  LV UUID                pkwNXm-7z1A-lntk-QtMd-t3XZ-E5De-l33oPy
  LV Write Access        read/write
  LV Creation host, time CentOS-1, 2017-01-09 19:34:38 +0800
  LV snapshot status     active destination for lv00
  LV Status              available
  # open                 0
  LV Size                504.00 MiB
  Current LE             126
  COW-table size         500.00 MiB
  COW-table LE           125
  Allocated to snapshot  0.00%
  Snapshot chunk size    4.00 KiB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:5
lvs
  LV     VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   centos -wi-ao----  41.51g                                                    
  swap   centos -wi-ao----   8.00g                                                    
  lv00   vg00   owi-aos--- 504.00m                                                    
  lvsp00 vg00   swi-a-s--- 500.00m      lv00   0.00

这里可以看到逻辑快照已经创建成功了<--注意,快照是不需要格式化和挂载的-->


现在我们来模拟将逻辑卷中的数据删除

 rm -rf /data/*

现在,逻辑卷/data目录下已经没有文件了,我们用两种方法来恢复删除的数据

方法一:

将原来的逻辑卷卸除挂载:

umount /dev/vg00/lv00

然后在将逻辑卷快照挂载到/data目录就可以正常访问了

mount /dev/vg00/lvsp00 /data/

方法二:

通过lvconvert把快照的内容重新写回原来的lvm

首先将逻辑卷卸除挂载

umount /dev/vg00/lv00

然后执行lvconvert将快照的数据合并到原逻辑卷

lvconvert --merge /dev/vg00/lvsp00

最后挂载原逻辑卷

mount /dev/vg00/lv00 /data/


使用ssm(系统存储管理器)进行逻辑卷管理

安装ssm:

可以用rpm安装或者yum

 yum -y install system-storage-manager

安装完以后可以使用ssm list查看检查关于硬盘中的LVM卷信息

ssm list
---------------------------------------------------------------
Device          Free       Used      Total  Pool    Mount point
---------------------------------------------------------------
/dev/sda                          50.00 GB          PARTITIONED
/dev/sda1                        500.00 MB          /boot      
/dev/sda2    0.00 KB   49.51 GB   49.51 GB  centos             
/dev/sdb    99.50 GB  504.00 MB  100.00 GB  vg00               
/dev/sdc   100.00 GB    0.00 KB  100.00 GB  vg00               
/dev/sdd                         100.00 GB                     
/dev/sde                         100.00 GB
                --------省略部分内容--------

下面通过ssm创建一个LVM卷(/dev/mypool/lv01)

首先创建一个可供挂载的挂载点

mount /test

然后执行下命令创建一个名为mypool的存储池,并创建存储池中名为lv01的500M大小的LVM卷,使用XFS文件系统格式化卷,并将它挂载到/mnt/test下

ssm create -s 500M -n lv01 --fstype xfs -p mypool /dev/sdd /test

使用lvscan查看创建结果

lvscan 
  ACTIVE            ‘/dev/centos/swap‘ [8.00 GiB] inherit
  ACTIVE            ‘/dev/centos/root‘ [41.51 GiB] inherit
  ACTIVE            ‘/dev/vg00/lv00‘ [504.00 MiB] inherit
  ACTIVE            ‘/dev/mypool/lv01‘ [500.00 MiB] inherit
 df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        42G  3.5G   39G   9% /
devtmpfs                devtmpfs  3.8G     0  3.8G   0% /dev
tmpfs                   tmpfs     3.9G  144K  3.9G   1% /dev/shm
tmpfs                   tmpfs     3.9G  9.0M  3.9G   1% /run
tmpfs                   tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1               xfs       497M  159M  339M  32% /boot
tmpfs                   tmpfs     781M   20K  781M   1% /run/user/0
/dev/mapper/vg00-lv00   xfs       501M  150M  352M  30% /data
/dev/sr0                iso9660   4.1G  4.1G     0 100% /mnt
/dev/mapper/mypool-lv01 xfs       497M   26M  472M   6% /test

往LVM池里新添加一块新硬盘

ssm add -p mypol /dev/sdd

扩展LVM卷,将/dev/mypool/lv01卷增加300M

ssm resize -s +300M /dev/mypool/lv01

注意:这只是将LVM卷在原来的基础上增加了300M,但是文件系统大小(Fs size)还没有改变,仍然是原始大小,因此我们要使用以下命令来扩大现有的XFS文件系统

xfs_growfs /dev/mypool/lv01


对LVM卷创建快照

为了体现实验效果,我们往/test里面复制一些文件

cp -rf /boot/* /test/

然后我们用ssm来给/dev/mypool/lv01创建快照

ssm snapshot /dev/mypool/lv01

查看一些创建好的快照

ssm list snapshots
-----------------------------------------------------------------------------
Snapshot                         Origin  Pool    Volume size      Size  Type  
-----------------------------------------------------------------------------
/dev/mypool/snap20170109T203221  lv01    mypool    160.00 MB  16.38 KB  linear
-----------------------------------------------------------------------------

以后每次原LVM中的数据更改,都可以手动执行ssm snapshot生成快照


模拟LVM中的数据丢失,利用快照恢复文件

rm -rf /test/*

方法一:

先将原逻辑卷卸载:

umount /dev/mypool/lv01

然后挂载逻辑卷快照即可

mount /dev/mypool/snap20170109T203221 /test/

方法二:

通过lvconvert把快照的内容重新写回原有的lvm

同上一样,首先卸载原逻辑卷

umount /dev/mypool/lv01

然后执行以下命令将快照的数据合并到原逻辑卷

lvconvert --merge/dev/mypool/snap20170109T203221

最后挂载原逻辑卷

mount/dev/mypool/lv01 /test


本文出自 “乌云科技” 博客,请务必保留此出处http://wuyunkeji.blog.51cto.com/12028005/1890566

以上是关于Linux逻辑卷快照及ssm的使用的主要内容,如果未能解决你的问题,请参考以下文章

linux学习33 运维高级技能-在Linux实现LVM逻辑卷及快照

Linux中逻辑卷的快照与还原

Linux磁盘管理之LVM逻辑卷快照

lvm逻辑卷的基本应用,扩展及缩减快照功能实现方法

GNU/Linux下LVM配置管理以及快照卷物理卷卷组逻辑卷的创建和删除

lvm之创建/扩容/缩容/快照及关闭的全部流程操作记录