iThome

面對數位資料的持續暴漲,如何縮減資料占用的儲存空間,一直是企業IT 應用所欲解決的問題。而要達成這樣的目的,用戶不一定要購買昂貴的專用產品,我們將介紹如何利用Windows Storage Server 2003 R2內建的單實例儲存(Single Instance Storage , SIS),節省磁碟區重複檔案的占用空間。

去除重複:從壓縮到單實例儲存

要縮減資料占用的空間,一貫作法便是設法去除資料中的「重複」。在檔案這個層級,壓縮是最傳統的縮減資料容量技術,也就是透過特定演算法比對檔案內的位元組,重複的元素將被刪除,只留下一個指針。

但壓縮的缺點是對某些經過壓縮編碼的資料如圖形、影音等幾乎沒有效果,而且也只能對單一檔案進行比對,無法跨不同檔案比對內容(除非先透過應用程式把兩個檔案展開、合併後,再壓縮)。即使是兩個內容完全相同,只有名稱不同的檔案,或僅有一個字元差異的兩個檔案,也只能分別壓縮成兩個壓縮檔,不能合併成一個節省空間,就算把這兩個檔案合併壓縮成一個壓縮檔,實際上還是等於兩個檔案的分別壓縮。

要解決壓縮無法處理跨檔案比對的問題,就必須跨出僅僅在單一檔案內部執行比對的層次,去設法比對整個磁碟區中兩個或多個檔案的內容。而這就是SIS所欲達成的目的。

單實例儲存技術基礎:特徵值比對

相較於傳統壓縮技術, SIS 優勢在於具備跨不同檔案比對內容的能力,但所謂的比對檔案內容,是對每一個檔案以特定演算法求取一個特徵值,而非實際去比對每個檔案中的每個位元組,這麼做既消耗資源又耗時間,並不實用。

在新檔案寫入時(或寫入後),系統會先求出該檔案的特徵值。再與已存在於磁碟區中的所有檔案的特徵值做比對,若新檔案的特徵值與已有檔案的特徵值相同,則代表檔案重複,重複檔案的只會留下一個指向已有資料的索引連結,而不實際儲存,只有特徵值不同的新檔案才會儲存下來。由於SIS 比對用的特徵值索引可涵蓋整個指定磁碟區的每個檔案,因此重複資料比對也涵蓋了整個磁碟區的範圍。

在儲存環境上, SIS 特別適合用於大量具有相同附加檔案的電子郵件內容保留。企業內部經常會發送或收到許多收件/發信者不同,但附加檔案均完全相同的郵件檔案,此時透過SIS 就能刪除掉許多重複的附加檔案,大幅節省空間。

多種具有SIS功能的儲存產品

市場上最早導入SIS 技術的產品是某些歸檔應用的儲存系統,如E M C 在2002 年4 月推出的Centera 就是這方面的先行者, Centera 核心所用的CAS(Content-addressed storage 固定內容儲存)技術就是典型的SIS 。其它同類

產品還有HP的RISS,以及一些小廠如Tarmin的GridBank等。

不過要使用SIS 技術,並不一定要購買前述那些專門針對中大型企業、法規遵循用途而設計的昂貴產品,微軟在2006 年初推出的Windows Storage Server(WSS) 2003 R2 中,也新增了SIS 功能,任何搭載WSS 2003 R2或Windows Unified Data Storage Server (WUDSS)作業系統的網路儲存伺服器,都能啟用SIS服務。

剖析微軟SIS的運作

WSS 2003 R2 的SIS 是以磁碟區為管理單位,也就是以磁碟區為單位啟動與執行SIS 服務。啟用SIS 後,該服務會在背景篩選所有寫入該磁碟區的檔案,每當有檔案寫入該磁碟區時, SIS便會檢查該檔案內容是否與既有的檔案重複,若確認為重複,則重複檔案的本體會存放到該磁碟區的「SIS Common Store」資料夾,然後在磁碟區中留下檔案連結,SIS Common Store資料夾預設屬性為系統檔、唯讀及隱藏。

以我們的實作測試為例,我們準備了3 個20MB 大小,只是檔名不同、但內容完全相同的.DOC 檔寫入S I S 磁碟區,經SIS 處理後,從檔案屬性可看到寫在磁碟區中的3 個檔案都只剩下4KB的連結,使用者可透過連結去存取保存在「SIS Common Store」資料夾中唯一的一份檔案本體。且這本體實際只占用20MB 磁碟空間,但若沒有SIS幫助,那這3 個重複檔案就會占用60MB空間。

SIS 的操作基本上是依靠「sisadmin」文字命令列指令,一些採用WSS 2003 R2 的NAS 廠商也在他們的MMC 介面中整合了SIS 的基本功能,但進階操作(如列出所有受SIS 控制的檔案等),仍需依靠文字命令列。

SIS的局限

在我們的測試中, WSS 2003 R2 的SIS 確實能篩選出內容重複的檔案,即使更改檔案名稱,但只要內容不變,SIS仍能辨識此檔案為重複。

但SIS的缺點是比對的精細度只到「檔案」層級,而不能比對更低的層級。因此若兩個檔案只有少數幾個區塊不同(即使只有一個字元不同),在SIS 下還是會被看作是兩個完全不同的檔案,分別占用兩個獨立的空間。

以我們前面3 個測試檔案為例, 3 個測試檔案原始內容都是一模一樣的2 萬字文件,然後我們把第2 與第3 個檔案分別刪去不同位置的幾十個文字,如此一來,雖然3 個檔案99%的內容仍相同,容量大小也幾乎沒變,但SIS 還是判定這是3 個不同檔案,必須占用近3倍空間。

要解決檔案層級的SIS 不足,就必須依賴具備次檔案層級比對能力的重複資料刪除(Data de-duplication)技術,藉由分析比對資料更底層的區塊,才能得到更好的資料刪減效果。

 

使用WSS R2中內建的SIS

我們以採用WSS 2003 R2的HP AiO 1200整合式儲存伺服器為例,說明如何啟動WSS 2003 R2的SIS,以及SIS的效果。

 

Step 1 確認安裝

WSS 2003R2與WUDSS均預設安裝了SIS服務,使用者可到新增/移除程式下的Windows元件,在其他檔案與列印服務中,檢查SIS是否已確實安裝到系統中。

 

Step 2 啟用SIS服務

SIS本身沒有GUI介面,除非NAS廠商提供整合介面,否則只能透過sisadmin文字命令列指令執行。在此鍵入sisadmin /i 〈磁碟區代號〉指令,就能在該磁碟區啟用SIS。

 

Step 3 檢視SIS的節省空間效果

SIS 判定為重複的檔案,在屬性上仍顯示原來的20MB 大小,實際卻只占用4KB 磁碟,顯示這只是個連結而非檔案本體,透過這個連結,可存取放在SIS Common Store資料夾中唯一一份檔案本體。

 

Step 4 瀏覽SIS磁碟區結構

瀏覽已啟用SIS的磁碟區,可找到SIS Common Store隱藏資料夾,重複檔案唯一本體就放在裡面,磁碟區中看到的多個重複檔案都只是4KB的連結。利用sisadmin /l指令可檢視所有受SIS控制的檔案清單。

 

熱門新聞

Advertisement