- 重復數據刪除技術:面向大數據管理的縮減技術
- 付印金 肖儂編著
- 1745字
- 2022-07-29 14:41:31
1.2.3 自動精簡配置
為確保存儲容量足夠使用,用戶往往會部署多于實際需求的物理存儲空間,但在實際使用過程中,部署容量通常未受到充分利用。行業研究組織發現在某些項目中,實際使用容量僅占部署容量的20%~30%。因此,“自動精簡配置”(Thin Provisioning)技術應運而生,旨在實現更高的存儲容量利用率,并帶來更大的投資回報。
自動精簡配置[8]是一種先進的、智能的、高效的容量分配和管理技術,它擴展了存儲管理功能,可以用少量的物理容量為操作系統提供超大容量的虛擬存儲空間。自動精簡配置提供的是真實的使用空間,可以顯著減少已分配但是未使用的存儲空間。根據應用或者用戶的容量需求現狀,可以動態實時地改變存儲容量資源的劃分,降低用戶購買存儲陣列的容量需求,降低用戶在購置存儲空間的成本。
在傳統的存儲系統中,當某項應用需要一部分存儲空間的時候,往往是預先從后端存儲系統中劃分出一部分足夠大的空間預先分配給該項應用,即使這項應用暫時不需要使用這么大的存儲空間,但由于這部分存儲空間已經被預留了出來,其他應用程序無法利用這些已經部署但閑置的存儲容量。例如:整個存儲系統有2TB的可用存儲空間,使用傳統配置方式創建3個卷。卷1的存儲空間大小是500GB,其中有100GB實際數據,另外400GB是已經分配但是未使用的空間。卷2的存儲空間大小是800GB,其中有200GB實際數據,另外600GB為已分配但未使用的空間。卷3的存儲空間大小是550GB,其中有50GB實際數據,另外500GB為已分配但未使用的空間。如圖1-6(a)所示,整個存儲系統有350GB的實際數據,1.5TB已分配但未使用的空間,最后剩下150GB可用空間給其他應用。
自動精簡配置的所有用戶容量都以虛擬存儲的形式分配,而實際的物理磁盤空間將根據實際使用情況進行分配。所有物理磁盤被視為一個磁盤池進行管理,按照寫入虛擬卷的數據量完成分配。如此一來,未使用的物理磁盤容量顯著降低,進而實現更高效的存儲作業。另外,需要添加額外物理磁盤時,預定義閾值將發出警告,以避免容量短缺。如圖1-6(b)所示,系統管理員使用自動精簡配置同樣在2TB存儲系統創建這3個卷,由于存儲空間是在數據寫入過程中動態申請分配的,因此就不存在已分配但未使用的空間。所以采用自動精簡配置之后整個存儲系統里同樣有350GB數據,但有1.65TB可用空間。相對于使用傳統配置方式時的150GB,采用自動精簡配置使得可用空間增加11倍。

圖1-6 傳統存儲配置與自動精簡配置容量對比
最基本的自動精簡配置將所有的存儲空間匯集到一個資源池中,并使用統一大小的“頁面”將空間分塊,最終,按需分配給服務器的是資源池中的“頁面”而不是最初的存儲空間。如果服務器端有新的文件寫入,大多數文件系統傾向于使用新的空間,以避免出現碎片。在刪除內容時,只會在文件系統層簡單地將該文件打上不可用標記,而不會寫零擦除或將空間釋放給后端的磁盤陣列。這些文件系統最終會吞噬掉全部預分配給它們的空間,即使并沒有太多的額外數據寫進來。這不僅僅降低了系統的效率,而且會帶來過量使用(Over-Commit)的風險,一旦磁盤陣列不能響應空間增加的請求,寫操作將陷入停頓。
對于自動精簡配置技術來說,回收閑置空間是比準確分配空間更難實現的部分。在各種自動精簡配置的實踐中,是否能讓閑置空間返回空閑存儲池是差異的關鍵。難以實現精簡回收功能的根源在于應用程序和存儲系統之間缺乏溝通。文件系統不會有精簡的意識,當一份空間不再被使用時,沒有現成的機制去通報這些情況。而有效自動精簡配置的關鍵就是要發現回收閑置空間的機會。這里有兩種方法可以從底層實現這一機制:
· 存儲陣列可以偵聽其接收和保存的數據,并且當出現回收空間的機會時,陣列能夠嘗試去實現這個操作。
· 修改服務器端的設置,當空間不再使用時,從服務器端發信號給后端的磁盤陣列,提示陣列實行空間回收。
前一種方法技術上較難實現,但更有效。但是,考慮到可用的操作系統、應用程序和卷管理器軟件的數量十分龐大,這種技術實現起來是極其困難的。而對于那些采用后一種精簡配置方法的企業來說,關鍵的話題則是改進服務器和存儲系統之間的通信機制。
總而言之,自動精簡配置實現了將邏輯空間和物理空間分離的虛擬化容量分配技術,它不僅解決了單個應用的初始空間分配和擴容的難題,還大大提高了整個存儲系統的資源利用率。此外,由于容量擴展過程是由存儲陣列完成,應用完全感知不到,因此能夠實現真正的不停機的容量擴容。
- Mastering Ninject for Dependency Injection
- Python數據分析入門:從數據獲取到可視化
- Python數據分析、挖掘與可視化從入門到精通
- SQL查詢:從入門到實踐(第4版)
- Neural Network Programming with TensorFlow
- 大數據時代下的智能轉型進程精選(套裝共10冊)
- R語言數據挖掘
- MySQL數據庫技術與應用
- Expert Python Programming(Third Edition)
- 大數據時代系列(套裝9冊)
- Oracle 11g數據庫管理員指南
- Access 2010數據庫應用技術教程(第二版)
- 量化投資:交易模型開發與數據挖掘
- 數據產品經理寶典:大數據時代如何創造卓越產品
- Nagios Core Administrators Cookbook