LVM系统快照

上一章写了LVM的创建、扩展、缩小(上一章链接http://bella41981.blog.51cto.com/10603572/1794365)。还差一点没弄明白,那就是LVM的快照,有一个小小的弯没有绕过来,今天终于弄明白了,整理出来和大家分享一下。

2.0LVM快照

  • 添加磁盘

[[email protected] ~]# vgdisplay

---Volume group ---

VGName               vbirdvg

System ID

Format                lvm2

Metadata Areas        4

Metadata Sequence No  18

VGAccess             read/write

VGStatus             resizable

MAXLV                0

CurLV                1

Open LV               1

MaxPV                0

CurPV                4

ActPV                4

VGSize               20.00 GiB

PESize               16.00 MiB

Total PE              1280

Alloc PE / Size       1280 / 20.00GiB

Free  PE / Size       0 / 0         ←没有多余的PE可用

VGUUID              QaQ6X4-U9RP-wW7m-bgWA-UJvY-4Kg5-6jmvye

注:由于上一篇中我们删除了/dev/sdb5,我们现在要将/dev/sdb5添加回来。

[[email protected] ~]# pvcreate /dev/sdb5

Physical volume "/dev/sdb5" successfully created

[[email protected] ~]# vgextend vbirdvg/dev/sdb5

Volume group "vbirdvg" successfully extended

[[email protected] ~]# vgdisplay

---Volume group ---

VGName               vbirdvg

System ID

Format                lvm2

Metadata Areas        5

Metadata Sequence No  19

VGAccess             read/write

VGStatus             resizable

MAXLV                0

CurLV                1

Open LV               1

MaxPV                0

CurPV                5

ActPV                5

VGSize               23.00 GiB

PESize               16.00 MiB

Total PE              1472

AllocPE / Size       1280 / 20.00 GiB

Free  PE / Size       192 / 3.00 GiB      ←已经有192个PE可用了。

VGUUID              QaQ6X4-U9RP-wW7m-bgWA-UJvY-4Kg5-6jmvye

  • 利用lvcreate新建快照磁盘

[[email protected] ~]# lvcreate -L 2G -s -nvbirdss /dev/vbirdvg/vbirdlv

Logical volume "vbirdss" created

注:上述命令最重要的是-s的参数。代表是snapshot快照功能的意思。

-n:后面接快照区的设备名称,/dev/….则是要被快照的完整文件名。

-L:后面则是接使用多大容量的PE来作为这个快照。或使用-l接PE个数。

[[email protected] ~]# lvdisplay

--- Logical volume ---

LV Path                /dev/vbirdvg/vbirdss

LV Name                vbirdss

VG Name                vbirdvg

LV UUID               oLtuEe-viTM-ccuU-PkVb-47qc-Swc1-VqtHsv

LV Write Access        read/write

LV Creation host, time localhost, 2016-07-0200:23:06 +0800

LV snapshot status     active destination for vbirdlv

LV Status              available

# open                 0

LVSize                20.00 GiB      ←被快照的原LV容量

Current LE             1280

COW-tablesize         2.00 GiB      ←快照区的实际容量

COW-tableLE              128       ←快照区占用的PE总数量

Allocated to snapshot  0.00%

Snapshot chunk size    4.00 KiB

Segments               1

Allocation             inherit

Read ahead sectors     auto

- currently set to     256

Block device           253:3

注:现在可以看到/dev/vbirdvg/vbirdss快照区已经被创建好了,而且它的VG量竟然与原本的/dev/vbirdvg/vbirdlv相同。也就是说,如果你真的挂载了这个设备的时候,看到的数据会跟原本的vbirdlv相同。

[[email protected]]# df

Filesystem                   1K-blocks    Used Available Use% Mounted on

/dev/mapper/VolGroup-lv_root  38776280 5020792  31785724 14% /

tmpfs                           243140      72   243068   1% /dev/shm

/dev/sda1                       495844   34907   435337   8% /boot

/dev/mapper/vbirdvg-vbirdlv   20642428 176200  19417652   1% /mnt/lvm

/dev/mapper/vbirdvg-vbirdss   20642428 176200  19417652   1% /mnt/snapshot

注:我们可以看出两个文件系统竟然一样!

  • 利用快照区复原系统

[[email protected] mnt]# df /mnt/lvm

Filesystem                  1K-blocks   Used Available Use% Mounted on

/dev/mapper/vbirdvg-vbirdlv  20642428 176200  19417652  1% /mnt/lvm

[[email protected] mnt]# ll /mnt/lvm

总用量 20

drwx------. 2 root root 16384 6月 27 22:17 lost+found

-rwxr-xr-x. 1 root root    23 6月  2722:29 test.sh

[[email protected] mnt]# rm -rf/mnt/lvm/test.sh       ←对/dev/vbirdvg/vbirdlv中的内容做些修改

[[email protected] mnt]# cp/etc/inittab /mnt/lvm

[[email protected] snapshot]# cp -a/boot /lib /sbin/ /mnt/lvm

[[email protected] lvm]# ls -l

总用量 40

dr-xr-xr-x.  5 root root 4096 4月   7 07:06 boot

-rw-r--r--.  1 root root  884 7月   2 00:43 inittab

dr-xr-xr-x. 11 root root  4096 4月   706:51 lib

drwx------.  2 root root 16384 6月 27 22:17 lost+found

dr-xr-xr-x.  2 root root 12288 5月 28 19:40 sbin         ←更改完毕

注:大家要注意复原的数据量不能高于快照区所能负载的实际容量。由于数据会被移到快照区,如果你的快照区数据量不够大,若原始数据被改动的实际数据量比快照大,那么快照就会容纳不了,这时候快照功能就会失效。

[[email protected] mnt]# lvdisplay

                   --- Logicalvolume ---

  LV Path                /dev/vbirdvg/vbirdss

  LV Name                vbirdss

  VG Name                vbirdvg

  LV UUID               oLtuEe-viTM-ccuU-PkVb-47qc-Swc1-VqtHsv

  LV Write Access        read/write

  LV Creation host, timelocalhost, 2016-07-02 00:23:06 +0800

  LV snapshot status     active destination for vbirdlv

  LV Status              available

  # open                 1

  LV Size                20.00 GiB

  Current LE             1280

  COW-table size         2.00 GiB

  COW-table LE           128

  Allocated to snapshot  9.63%  ←从这里可以看出,快照区已经被使用了9.63%,因为原始文件系统有过更改。

 

  Snapshot chunk size    4.00 KiB

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:3

 

[[email protected]]# mount /dev/vbirdvg/vbirdss /mnt/snapshot/

[[email protected]]# df

Filesystem                   1K-blocks    Used Available Use% Mounted on

/dev/mapper/VolGroup-lv_root  38776280 5020808  31785708 14% /

tmpfs                           243140      72   243068   1% /dev/shm

/dev/sda1                       495844   34907   435337   8% /boot

/dev/mapper/vbirdvg-vbirdlv   20642428 370036  19223816   2% /mnt/lvm

/dev/mapper/vbirdvg-vbirdss   20642428 176200  19417652   1%

/mnt/snapshot

[[email protected] ~]# mkdir -p/backups            ←确定真的有这个文件

[[email protected] ~]# cd/mnt/snapshot/

[[email protected] snapshot]# tar -jvc-f /backups/lvm.tar.ba2 *

lost+found/

test.sh

注:现在我们可以看出两者已经不同,下面我们将快照区内容复制出来。

  • 为什么要备份呢?为什么不可以直接格式化/dev/vbird/vbirdlv,然后将/dev/vbirdvg/vbirdss直接复制给vbirdlv呢?要知道vbirdss其实是vbirdlv的快照,因此如果你格式化整个vibrdlv时原本的文件系统所有数据都会被复制到vbirdss。那如果vbirdss的容量不够大(大多数的时候都不够大),那么部分数据将无法复制到vbirdss内,数据当然无法全部还原。

所以才要在上面表格中制作出一个备份文件。

  • 将vbirdss卸载并删除(里面的内容已经备份起来了,现在vbirdss已经没有用了)

[[email protected] ~]# umount/mnt/snapshot/

[[email protected] ~]# lvremove/dev/vbirdvg/vbirdss

Do you really want to removeactive logical volume vbirdss? [y/n]: y

Logicalvolume "vbirdss" successfully removed

[[email protected] ~]#umount /mnt/lvm

[[email protected] ~]# mkfs -t ext3/dev/vbirdvg/vbirdlv

mke2fs 1.41.12 (17-May-2010)

文件系统标签=

操作系统:Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe width=0blocks

1310720 inodes, 5242880 blocks

262144 blocks (5.00%) reserved forthe super user

第一个数据块=0

Maximum filesystemblocks=4294967296

160 block groups

32768 blocks per group, 32768fragments per group

8192 inodes per group

Superblock backups stored onblocks:

32768,98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

4096000

正在写入inode表: 完成

Creating journal (32768 blocks): 完成

Writing superblocks and filesystemaccounting information: 完成

This filesystem will be automaticallychecked every 28 mounts or

180days, whichever comes first.  Use tune2fs-c or -i to override.

[[email protected]~]# mount /dev/vbirdvg/vbirdlv /mnt/lvm

[[email protected]~]# tar -jxf /backups/lvm.tar.ba2 -C /mnt/lvm

[[email protected] ~]# ll /mnt/lvm

总用量 20

drwx------. 2 root root 16384 6月 27 22:17 lost+found

-rwxr-xr-x.1 root root    23 6月 27 22:29 test.sh

这个LVM终于整完了,大家一起努力吧, 我们的路还很长,如有错误请大家多多指点!

——本文参照鸟哥的linux私房菜

时间: 2024-10-04 11:31:20

LVM系统快照的相关文章

linux学习之路之LVM的快照功能

我们知道LVM可以弹性的调整文件系统的大小,其实LVM除了可以调整文件系统的大小之外,还有另一个功能就是系统快照. 所谓系统快照就是将某一时刻文件系统中的信息记录到快照区中,这里的某一时刻指的是在原始数据被改变的那一瞬间,原始数据会移到快照区里.而其他没有改变的数据,快照区和文件系统共享.所以刚建立快照时快照区内容和文件系统的内容一样. 由于我们知道只有改变的数据才会移动到快照区,因此快照区中保存的内容比较少. 快照区的原理图如下: 那么如何建立快照区呢? 使用lvcreate -s命令来创建快

LVM以及快照卷的使用

一.LVM工作原理 1.使用LVM,硬盘驱动器或硬盘驱动器集合就会分配给一个或多个物理卷(physical volumes)物,理卷无法跨越一个以上驱动器. 2.物理卷被合并成逻辑卷组(logical volume group),唯一的例外是 /boot 分区./boot 分区不能位于逻辑卷组,因为引导装载程序无法读取它.如果你想把 / 分区放在逻辑卷上,你需要创建一个分开的 /boot分区,它不属于卷组的一部分. 由于物理卷无法跨越多个驱动器,如果你想让逻辑卷组跨越多个驱动器,你就应该在每个驱

利用LVM的快照功能来实现对数据做几乎热备

lVM的快照功能来实现几乎热备 LVM的快照功能可以将某一时刻的信息记录到快照区中,因此,可以利用这一特点对数据做完全备份.而后,新提交的数据可以利用二进制日志文件来做增量备份和还原.因此,通过这种方式就可以实现对数据做几乎热备. 要想利用LVM的快照功能实现几乎热备,需要满足如下条件: 1.数据文件必须要逻辑卷上 2.此逻辑卷所在卷组必须要有足够空间存储快照卷 3.数据文件和事务日志要在同一个逻辑卷是上. 实现步骤如下: 1.打开会话,施加读锁,锁定所有表,且执行日志滚动 mysql> flu

linux下LVM相关知识(动态增减LVM,快照功能)的总结

一,什么是LVM LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性.LVM是磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统.物理卷(physical volume)物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质

获取系统快照

1 HANDLE hProcessSnap; 2 PROCESSENTRY32 pe32; 3 BOOL bProcess; 4 int p =0; 5 i = 0; 6 for (p=0;p<130;p++) { 7 Count[p]=(char*)malloc(sizeof(char)*130*32); 8 } 9 10 hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ); //创建进程快照 11 12 if( h

lvm snapshot快照原理

使用rsync备份系统快照

1.将源目录复制到目的端: rsync -av /home/file/data /backup/file/data 2.将数据备份到远程服务器或主机 rsync -av /home/file/data [email protected]:/home/file/data 3.将远程服务器上的数据恢复到本地主机: rsync -av [email protected]:/home/file/data /home/file/data 4.通过网络进行传输时,压缩数据能够显示传输效率,使用-z指定在网络

CentOS 6.3下配置LVM(逻辑卷管理)

一.简介 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性. LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用.在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操

CentOS 6.3下配置LVM(逻辑卷管理

CentOS 6.3下配置LVM(逻辑卷管理) 一.简介 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性. LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用.在传统的磁盘管理机制中,我们的上层 应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对