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
原文地址:http://wuyunkeji.blog.51cto.com/12028005/1890566