1. 目標去重技術
1.1. 目標去重(也叫目標端的去重)系統是在接到備份之後刪除其中重複資料的去重系統
1.2. 通常在某個裝置裡面執行,該裝置是所有備份的目標裝置,因此,這樣的去重系統叫作目標去重系統
-
1.2.1. 一般透過NFS或SMB與備份軟體相連,然而也可以作為VTL(Virtual Tape Library,虛擬磁帶櫃)來連線
-
1.2.2. 備份伺服器還可以透過某種專門的協議跟目標去重裝置通訊,這樣更安全、更高效
1.3. 目標去重系統在最近20年變得相當流行
-
1.3.1. 只要求負責備份的人稍作配置。你只需要換掉磁帶櫃,接上新的目標去重系統並將其設為備份目標
-
1.3.2. 並非所有的目標去重系統都由一臺(不瞭解去重工作的)備份伺服器與一臺負責去重的裝置構成
-
1.3.3. 執行在備份伺服器或介質伺服器裡的某些備份軟體,也可以執行目標端的去重工作
1.4. 目標去重系統通常還能夠把備份複製到同品牌的另一個目標去重系統上,這樣我們無須接觸磁帶就能擁有現場備份與離場備份
-
1.4.1. 願意採用一種混合的方案,也就是用目標去重系統做現場備份,用磁帶做離場備份
-
1.4.2. 先使用目標去重系統做備份,然後用備份系統把這些備份複製到磁帶櫃,以建立離場的副本
-
1.4.3. 資料流以足夠快的速度發給磁帶機,那麼它們就能夠運作得相當高效
-
1.4.3.1. 目標去重系統對於磁帶系統來說相當於一個巨大的快取庫
-
1.4.3.2. 把目標去重系統裡的備份複製到磁帶上時,磁帶機能夠全速執行,因此效率會很高
-
1.5. 當場去重
-
1.5.1. 採用當場去重(inline deduplication,也叫線上去重/即時去重),那麼去重系統會先利用CPU對記憶體中的資料去重,然後再將其寫入磁碟
-
1.5.2. 如果去重裝置做的是當場去重,那就不用把已經判定為重複的那些資料,再寫入磁碟之中,因而能夠節省一些I/O操作
-
1.5.3. 為了在接收備份資料的同時對其去重,你必須給去重裝置安裝強大的CPU,否則就會導致該裝置無法將它所接收到的備份資料及時去重,從而拖慢工作進度
-
1.5.4. 如果你想讓去重過程儘量與備份過程一起結束(而不願意先寫入備份,然後再去重),想讓去重系統能夠把剛寫入磁碟的備份儘快複製到其他地方,那麼就應該考慮當場去重
1.6. 後置去重
-
1.6.1. 採用後置去重(post-process deduplication,也叫後去重/後處理去重),那麼去重系統會先把資料寫入磁碟,然後再去重,這種去重方式又稱為非同步去重(asynchronous deduplication)
-
1.6.1.1. 如果用的是後置去重,那麼在把備份寫入磁碟之後,還必須執行其他一些操作才行
-
1.6.1.2. 如果去重裝置做的是後置去重,那必須先把收到的資料寫入暫存區(landing zone)
-
-
1.6.2. 去重方式在處理已寫入磁碟的備份時依然能夠接收外界傳入的備份,但它並不會直接(或者說當場)給那些備份去重,而是要等它們也像前者一樣寫入磁碟之後,再做去重
-
1.6.3. 去重方式是非同步的,而不是同步的
-
1.6.4. 讓去重流程從其中讀取備份,並去除其中的重複內容,然後將其作為已去重的備份,寫入儲存成品備份資料的那個區域
-
1.6.5. 暫存區的第二個用途:如果你需要把這個備份裡的資料恢復或複製出來,那麼速度會比採用當場去重技術所寫入的那種備份要快,因為後者必須對去重之後的備份做reduplicate,也就是將其中已經去除的重複資料補回來,只有這樣,才能從備份裡恢復或複製資料,這個填補缺失資料的操作,又稱為rehydrate
-
1.6.6. 如果你要隨機讀寫資料,那麼把最近製作的那個備份儲存成原始格式尤其方便
-
1.6.7. 在讀取備份時用的都是順序訪問模式,這是因為早年在讀取磁帶裡面的資料時,只能按照先後順序來讀取
-
1.6.8. 即時恢復,為了使用該功能,你需要把備份掛載成讀寫模式
- 1.6.8.1. 採用當場去重技術的系統做不到這種即時恢復的效果,因為它們在恢復資料時的速度比較慢
-
1.6.9. 必須花費一定的成本來構建暫存區
- 1.6.9.1. 後置去重需要先把備份全都寫到暫存區裡,然後從暫存區中讀出備份,並把其中的許多重複內容刪掉,最後寫入成品區,這一系列步驟必須執行大量的I/O操作才能完成,這個數量可能遠超當場去重所要執行的I/O運算元
-
1.6.10. 如果你更關心的是如何儘快把備份製作出來,或者想要頻繁地執行即時恢復,那麼後置去重更加合適
1.7. 目標去重裝置所具備的能力讓它可以進入任何一個資料中心,因為無論其中用的是什麼備份系統,這種技術幾乎都能與之結合
-
1.7.1. 必須把自己收到的備份資料剖開,這意味著,它需要開啟存放備份資料的這個容器
-
1.7.2. 要求我們必須把完全備份以及全檔案式的增量備份透過網路發給它,這會無謂地佔用很多頻寬
2. 源端去重技術
2.1. 源端去重(source deduplication)又稱來源端的去重或客戶端去重,這種去重是在備份流程剛啟動時就開始執行的
- 2.1.1. 去重必須由備份軟體自己執行
2.2. 首先要求備份軟體必須儘量降低它交給去重系統的資料量,這通常意味著備份系統應該採用那種從剛開始就一直做增量備份的辦法,並且只在必要時才做普通的增量備份
2.3. 目標去重最大的優點在於它採用全新的方式去重,不需要大幅調整現有系統,而源端去重則需要對現有系統做較大的改動
-
2.3.1. 為了發揮源端去重的優勢,你很有可能要把目前使用的備份軟體與磁碟換掉,對於像備份系統這麼重要的系統來說,這是一個相當大的變動
-
2.3.2. 目標去重所要做的變化通常很小,你只需要扔掉那個(你可能很厭煩的)磁帶櫃就行了(或者至少可以說,你不再把磁帶櫃當成首要的備份目標)
2.4. 源端去重是由備份軟體本身完成的,它們能夠直接操縱有待去重的檔案、映象、位元組或二進位制位
2.5. 源端去重只需要把接下來的這次增量備份所包含的檔案與映象切割成chunk,並去除其中的重複內容,而不像目標去重那樣,必須把以前已經做好的備份開啟,才能知道目前要做的這個備份裡有哪些內容是跟原來重複的
2.6. 要求使用者必須大幅調整現有的系統
2.7. 要求有待備份的系統必須執行其他一些操作,以配合這個去重的過程
- 2.7.1. 系統必須把增量備份的資料切割成chunk,然後計算每個chunk的雜湊碼,並根據這個雜湊碼在雜湊表中查詢
3. 混合去重
3.1. 混合去重(hybrid dedupe)並不是公認的術語
3.2. 讓你在有待備份的站點那裡給備份客戶端安裝一個特別的驅動程式,這個驅動程式會建立一個指向備份的虛擬裝置
3.3. 驅動程式就能夠先對備份客戶端做源端去重,然後再把資料透過網路發給備份目標
3.4. 由於目標去重系統還要對這些資料做目標去重,因此稱為混合去重
3.5. 備份軟體必須支援這個特殊的裝置,而且作業系統也必須能夠安裝這個特殊的驅動程式
3.6. 如果你已經有了目標去重系統,而且想給源端新增去重功能,那麼可以考慮運用該技術
3.7. 架構要透過特殊的裝置傳輸資料,而這些資料,本來應該是由備份客戶端傳輸的,備份軟體通常會針對這樣的用法收取更多的費用,這會讓成本變高
4. 選擇合適的去重方式
4.1. 做選擇之前,首先要核實備份軟體的製作方能否在他們所製作的產品裡支援源端去重或目標去重
4.2. 想拿備份掛載大量的虛擬機器,那就應該考慮後置去重
4.3. BaaS(Backup-as-a-Service,備份即服務)式的產品
4.4. 要做全面測試
- 4.4.1. 除了資料保護領域,IT界還沒有哪個領域的測試結果會根據產品的使用環境而發生如此大的變化