------------------------------------重要说明------------------------------------
以下部分内容来网络,部分自华为存储官方教材
具体教材内容请移步华为存储官网进行教材下载
网络引用内容无法找到原创,如有侵权请通知
------------------------------------重要说明------------------------------------
文件系统快照,即生成源文件系统在某个时间点上的一致性映像,在不中断正常业务的前提下,快速得到一份与源文件系统一致的数据副本。
副本生成之后立即可用, 后续文件系统的数据修改或写入不会对快照数据产生任何影响,同样对快照数据的读操作也不会影响源文件系统中的数据。
文件系统快照生成后,应用服务器通过访问文件系统快照可以查看源文件系统在某一个时间的数据副本。
文件系统快照实现的核心技术为ROW,当源文件系统被修改时,存储系统会在存储池中给需要修改写入的数据分配一个新的存储空间,同时将源文件系统中被修改位置的指针指向新数据的存储位置。文件系统快照中指针的位置不变,仍指向源文件系统未更改前的数据。文件系统快照保存的是源文件系统的原始副本。
l 创建快照:文件系统快照创建后,会生成与源文件系统一致的数据副本。此时,存储系统将源文件系统的块指针复制给文件系统快照,文件系统快照的块指针指向源文件系统中数据的存储位置。文件系统创建后,存储系统会在源文件系统中划分一部分快照预留空间,用于保存文件系统快照的数据。当源文件系统中的某些文件被修改或删除时,被修改或删除前的原始文件仍然保存在快照预留空间中,确保文件系统快照始终与快照创建时间点的源文件系统保持一致。
l 源文件系统写入数据:文件系统快照创建后,当应用服务器对源文件系统有数据写入请求时,存储系统利用ROW技术将新写入的数据存放在存储池中新的位置,源文件系统的指针更新,指向新数据的存放位置。文件系统快照的指针仍指向原始数据的存储位置,从而保存源文件系统在快照创建时间点的数据。
l 读取快照:文件系统快照创建后,可以通过存储系统提供的NFS和CIFS共享服务共享给客户端。因此在源文件系统使用期间,客户端应用程序可以访问文件系统快照,读取快照创建时间点的源文件系统的数据。存储系统通过文件系统快照中块指针查找数据的存储位置,然后将查找到的数据返回给客户端。
文件系统快照不但能够快速生成源文件系统在某个时间点的一致性副本,还提供了快速恢复源文件系统的机制。当源文件系统的数据遭到人为意外删除、破坏或病毒入侵时,通过回滚可以快速将源文件系统的数据恢复到快照创建时间点的数据,减少源文件系统数据的丢失量。
① ROW技术
ROW(Redirect On Write)写时重定向,即数据修改写时,不覆盖掉磁盘上的旧数据,而是重新分配磁盘空间将数据写入。
1. 整个文件系统布局成树型结构。
2. 用户覆盖写入数据时,重新分配磁盘空间(绿色)进行写入,而不是直接写入原有磁盘空间(浅棕色)。
3. 数据修改后,相应的元数据按照同样的策略进行修改。
4. 修改到根节点后,整个覆盖写操作完成。
5. 当不存在快照时,覆盖掉的磁盘空间将会回收。
② 未创建快照
在文件系统未创建快照前,数据写入不会覆盖原有数据,而是分配新磁盘空间写入,写入完成后,直接删除(或延迟删除)原有数据。
整个文件系统呈树型结构,在文件系统未创建任何快照前,数据写入不会覆盖原有数据,而是分配新磁盘空间写入,写入完成后,直接删除(或延迟删除)原有数据。数据每次写入都会记录一个时间点信息,表明写入的时序。时间点实际是一个依次递增的序列号。
③ 快照创建
为文件系统创建快照时,仅只需要拷贝文件系统的根结点并保存,就形成了一个文件系统的快照。
快照创建成功之后,会在文件系统的根目录下有一个特殊的快照目录,该目录下包含了这个文件系统的所有快照。
文件系统创建快照过程中不需要拷贝任何用户数据,因此整个过程耗时极少,通常在一两秒内完成。并且在数据被修改之前,快照的文件集与主文件系统共同使用文件系统空间,无需单独为快照分配特定的空间。
④ 数据更新
刚创建的快照不包含任何实际数据,只包含了指向主文件系统数据的入口指针,当用户访问快照数据时,实际上访问的是主文件系统中的数据。只有当主文件系统的数据发生变化后,快照才会引入其独有的数据,这部分数据由于受快照保护,故而不能直接删除,只有等快照被删除后,这部分空间才能够被释放。
⑤ 快照回滚
快照回滚通过将文件系统的访问入口根节点替换成快照的根节点,并删除掉内存中数据,即可完成回滚,迅速响应用户。
将文件系统回滚到指定快照,可迅速恢复数据到快照点时刻,从而避免了快照点后因为人为的错误或者病毒的入侵等引起的源文件系统损坏造成的数据丢失。
文件系统回滚到指定时间点后,从该时间点到回滚前文件系统的新增修改数据均将丢失。这部分新增修改数据占用的磁盘空间是通过后台任务逐步回收的。
⑥ 快照删除
删除快照将释放掉快照的根节点指针及快照的独占数据,而文件系统的数据不会受到任何影响。即仅回收独占空间,共享数据不会被删除。