想像一个情况,你有个目录未来会使用到大约 5T 的容量,但是目前你的磁盘仅有 3T,问题是,接下来的两个月你的系统都还不会超过 3T 的容量, 不过你想要让用户知道,就是他最多有 5T 可以使用就是了!而且在一个月内你确实可以将系统提升到 5T 以上的容量! 你又不想要在提升容量后才放大到 5T,这时可以考虑“实际用多少才分配多少容量给 LV 的 LVM Thin Volume ”功能。
什么是 LVM thin Volume?他的概念是:先创建一个可以实支实付、用多少容量才分配实际写入多少容量的磁盘容量储存池 (thin pool), 然后再由这个thin pool 去产生一个“指定要固定容量大小的 LV 设备“。
14.3.5 LVM 的 LV 磁盘快照
什么是 LV 磁盘快照?快照就是将当时的系统信息记录下来,就好像照相记录一般! 未来若有任何数据更动了,则原始数据会被搬移到快照区,没有被更动的区域则由快照区与文件系统共享。
左图为最初创建 LV 磁盘快照区的状况,LVM 会预留一个区域 (左图的左侧三个 PE 区块)作为数据存放处。 此时快照区内并没有任何数据,而快照区与系统区共享所有的 PE 数据,因此你会看到快照区的内容与文件系统是一模一样的。 等到系统运行一阵子后,假设 A 区域的数据被更动了 (上面右图所示),则更动前系统会将该区域的数据移动到快照区, 所以在右图的快照区被占用了一块 PE 成为 A,而其他 B 到 I 的区块则还是与文件系统共享!
照这样的情况来看,LVM 的磁盘快照是非常棒的“备份工具”,因为他只有备份有被更动到的数据, 文件系统内没有被变更的数据依旧保持在原本的区块内,但是 LVM 快照功能会知道那些数据放置在哪里, 因此“快照”当时的文件系统就得以“备份”下来,且快照所占用的容量又非常小。
下面我们针对传统 LV 磁盘进行快照的创建,大致流程为:
预计被拿来备份的原始 LV 为 /dev/vbirdvg/vbirdlv
使用传统方式快照创建,原始碟为 /dev/vbirdvg/vbirdlv,快照名称为 vbirdsnap1,容量为 vbirdvg 的所有剩余容量
传统快照区的创建
因为 XFS 不允许相同的 UUID 文件系统的挂载,因此我们得要加上那个 nouuid 的参数,让文件系统忽略相同的 UUID 所造成的问题。