云和安全管理服务专家新钛云服 祝祥翻译
CEPFS支持快照功能,通常通过使用mkdir命令创建快照目录。注意这是一个隐藏的特殊目录,在目录列表中不可见。
通常情况下,快照正如起名:它们保存数据变化过程中的状态。需要注意的一点事,CEPFS快照的一些功能与您可能期望的有所不同:
默认情况下,新文件系统上会启用CEPFS快照功能。要在现有文件系统上启用它,请使用下面的命令。
启用快照后,CephFS中的所有目录都将有一个特殊的 .snap 快照目录。(如果愿意,可以使用客户端snapdir设置配置其他名称)
要创建CephFS快照,请在 .snap 下创建子目录。用你选择的名字创建快照。例如,要在目录“/1/2/3/”下创建快照,请使用 mkdir /1/2/3/.snap/my-snapshot-name 命令。
客户端会将请求发送到MDS服务器,然后在服务器的Server::handle_client_mksnap()中处理。它会从 SnapServer中分配一个 snapid,利用新的 SnapRealm创建并链接一个新的inode,然后将其提交到 MDlog,提交后会触发 MDCache::do_realm_invalidate_and_update_notify(),此函数将此 SnapRealm广播给所有对快照目录下任一文件有管辖权的客户端。客户端收到通知后,将同步更新本地 SanpRealm层级结构,并为新的SnapRealm结构生成新的 SnapContext,用于将快照数据写入 OSD 端。同时,快照的元数据会作为目录信息的一部分更新到OSD端(即sr_t)。整个过程是完全异步处理的。
如果删除快照,将执行类似的过程。如果将inode从其父SnapRealm中删除,重命名代码将为重命名的inode创建一个新的SnapRealm(如果SnapRealm不存在),将在原始父SnapRealm上有效的快照ID保存到新SnapRealm的父快照(past_parent_snaps)中,然后遵循与创建快照类似的过程。
RADOS SnapContext由一个快照序列ID(snapid)和一个包含所有快照ID对象组成。为了生成该列表,我们将与SnapRealm关联的SnapID与父快照中的所有有效SnapID结合起来。过时的SnapID由SnapClient缓存的有效快照过滤掉。
文件数据存储在RADOS“self-managed”快照中。在将文件数据写入OSD时,客户端会小心地使用正确的SnapContext。
快照的dentries(及其inode)作为快照时所在目录的一部分在线存储。所有dentries都包括第一个和最后一个有效的snapid。(非快照的dentries将最后设置为CEPH_NOSNAP)。
有大量代码可以有效地处理写回。当客户端收到MClientSnap消息时,它会更新本地SnapRealm表示及其到特定Inode的链接,并为Inode生成CapSnap。CapSnap作为功能写回的一部分被清除,如果存在脏数据,CapSnap将用于阻止新的数据写入,直到快照完全清除到OSD。 在MDS中,我们生成代表牙齿的快照,作为冲洗牙齿的常规过程的一部分。具有杰出CapSnap数据的假牙被固定并记录在日志中。
通过在快照的根目录“.snap”中调用“rmdir”来删除快照。(尝试删除根快照将失败的目录;必须先删除快照。)一旦删除,它们将被输入到已删除快照的OSDMap列表中,文件数据将由OSD删除。当目录对象被读入并再次写回时,元数据会被清除。
具有多个硬链接的Inode被移动到一个虚拟全局SnapRealm。虚拟SnapRealm覆盖文件系统中的所有快照。inode的数据将为任何新快照保留。这些保留的数据将覆盖inode的任何链接上的快照。
需要注意的是,CephFS的快照和多个文件系统的交互是存在问题的——每个 MDS集群独立分配 snappid,如果多个文件系统共享一个池,快照会冲突。如果此时有客户删除一个快照,将会导致其他人丢失数据,并且这种情况不会提升异常,这也是 CephFS的快照不推荐使用的原因之一。
创建快照:
从快照中恢复文件:
自动快照
使用cephfs-snap自动创建和删除旧快照。
下载文件到 /usr/bin
配合cron 一起使用。{hourly,daily,weekly,monthly}
使用示例:
创建的 cron 文件必须设置为可执行
要验证配置的 cron 任务是否会正确执行,请手动运行上述步骤中创建的 cron.* 脚本
现在检查 .snap 目录中是否创建了 cephfs 快照
如果 cron 没有按预期触发快照,请验证“/usr/bin/cephfs-snap”和“/etc/cron.*/cephfs-snap”文件是否可执行
参考文章:
云服务器的优势是基于云计算技术的,相比独立服务器而言,有如下特征:1、从技术方面来讲:云服务器使用了云计算技术,而云计算技术,整合了计算、网络、存储等各种软件和硬件技术。独立服务器,就是独立的了,不会整合这些资源。
2、从安全性方面来讲:云服务器具有天然防ARP攻击和MAC欺骗,快照备份,数据永久不丢失。而独立服务器则不具有这方面的功能;
3、从可靠性来讲:云服务器是基于服务器集群的,因此硬件冗余度较高,故障率低;而独立服务器则相对来说硬件冗余较少,故障率较高;
4、从灵活性方面来讲:用户可以在线实时增加自己的配置,可扩展空间较大;而独立服务器则有这方面的局限性,如果有新的应用,只能再买一台了。
5、从性能的角度来看:云服务器是同等配置独立服务器计算能力的4倍,可满足高性能计算的要求;
6、从稳定性上看,云服务器可以故障自动迁移,意思是如果一台云服务器出现故障,其上面的应用就自动迁移到其他云服务器上了。独立服务器就不存在这功能了,宕了就宕了。
7、从节能上看,云服务器基于云计算的自动迁移技术,意即夜间,物理服务器的利用率不高,自动迁移技术会把应用集中到几台物理服务器上,其他的物理服务器就可以休眠了,这样就节能了。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)