使用 TSM 备份时跳过硬链接

使用 TSM 备份时跳过硬链接

我们需要备份一个包含大量硬链接的文件系统。由于每个“真实”文件都有多个硬链接,因此我们希望在备份文件系统时跳过所有硬链接,以避免每个文件都有 n 个完全相同的副本。

备份是使用 Tivoli Storage Manager Backup 完成的,我们无法让它将硬链接视为除彼此一起备份的单独文件之外的任何其他文件。

如果它与可能的解决方案相关,我想指出,可以通过文件名区分硬链接和正确的文件:

 foobarbaz-123.ext    # file
 foobarbaz-123-1.ext  # hardlink
 foobarbaz-123-2.ext  # hardlink
 barbazfoo-456.ext    # file
 barbazfoo-456-1.ext  # hardlink
 barbazfoo-456-2.ext  # hardlink
 barbazfoo-456-3.ext  # hardlink

也就是说,所有硬链接的文件名中都有两个连字符,而正确的文件只有一个连字符。

该服务器运行的是 Ubuntu Linux,文件位于我们 SAN 上的 gfs 卷上。

答案1

快速阅读一些 TSM 文档建议“不要那样做!”

对于 unix 来说,“文件”只是指向 inode 的目录条目。“硬链接”是指有多个目录条目(指针)指向给定的 inode。无论出于何种目的,这两个“文件”都是 100% 完全相同的。

硬链接是 unix 中一种成熟且易于理解的机制。遇到硬链接是正常且常见的情况,备份软件通常能够准确理解硬链接是什么,并按照应有的方式对其进行备份 - 作为指向特定数据的另一个指针,而不是与其他硬链接完全相同的独特且新颖的数据。

快速谷歌搜索 tsm 和 hardlinks 表明 tsm 理解硬链接,并且文档特别警告:

如果您只 [备份|存档] 硬链接对中的一个文件,则可能会出现问题。例如,文件 texta 和 textb 包含彼此的硬链接。您存档 texta,然后编辑 textb 并进行更改。如果您检索 texta,您对 textb 所做的更改将丢失。

有趣的是,使用 TSM 进行备份似乎有两种不同的方法——备份和存档,并且这两种方法似乎以不同的方式处理硬链接。

备份和恢复文件

当两个文件指向同一个数据文件时,就会建立硬链接。备份包含指向另一个文件的硬链接的文件时,TSM 会将链接信息和数据文件都存储在服务器上。如果备份两个包含相互硬链接的文件,TSM 会将同一个数据文件与链接信息一起存储在两个名称下。

归档和恢复文件

当归档包含指向另一个文件的硬链接的文件时,TSM 会将链接信息和数据文件都存储在服务器上。

从这一点来看,如果你正在“归档”东西,你的备份服务器就会崩溃,而如果你正在“备份”,它就会做你想做的事。让 IBM 来让一切变得简单!

答案2

首先,“正确文件”和“硬链接”之间没有区别,硬链接只是同一对象的另一个名称,而软链接实际上是一个包含指向真实文件的指针的文件,这就是为什么软链接可以跨越文件系统边界而硬链接不能。

关于实际问题:查看文档,你应该能够和他们一起解决一些问题。(比如exclude /path/to/your/files/*-*-?.*或某事)。

答案3

如果对 Tivoli Storage Manager 一无所知,就不可能让任何软件将硬链接与文件区别对待,因为原始文件句柄和其他硬链接之间没有实际区别。(可能可以根据文件名编写脚本)

答案4

升级到 TSM 6.1 并激活重复数据删除功能。(目前仅适用于设备类型 FILE,但耐心是一种美德)

相关内容