使用 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 和硬鏈接表明 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,但耐心是一種美德)

相關內容