自動分層存儲(ATS)是去年被討論最多的存儲陣列話題之一。它指的是在不同磁盤類型和RAID級別之間遷移數(shù)據(jù)塊的功能,這可滿足性能和空間使用之間的適當(dāng)平衡,并避免所謂的熱點。
該領(lǐng)域的先驅(qū)者是Compellent(現(xiàn)已被戴爾收購);它從2004年就開始提供這類功能,但現(xiàn)在所有分層領(lǐng)導(dǎo)廠商的產(chǎn)品都已具備了同樣的功能。只是EMC、HDS、HP-3Par、IBM和NetApp為該功能賦予的名稱不同,且都按照自己的方式來實現(xiàn),因為他們各自的架構(gòu)不同,而關(guān)于存儲級別虛擬化層的理念也不同。因此,本文并不會直接告訴你哪一種ATS最好,而是全方位的考量用于評估不同ATS實現(xiàn)最重要的指標(biāo)。
LUN或子LUN
早期的一些廠商曾嘗試在I/O請求下降至一定閥值時,利用“半自動”功能將LUN從快速磁盤(FC)遷移至低成本高容量磁盤(SATA)。這種方式非常簡單,但由于涉及大數(shù)據(jù)遷移和粒度不足的問題,實際情況下幾乎無法使用:其中的風(fēng)險便是下移一個LUN之后,還需要為一個新I/O峰值再遷移回來…想一想當(dāng)你在注重IOPS的陣列中擁有一個TB級的LUN時,這將意味著什么!
而現(xiàn)在ATS的子LUN實現(xiàn)相比之前要先進(jìn)一些:一個LUN被分成多個數(shù)據(jù)塊,而每個數(shù)據(jù)塊可以被放置到不同層級的磁盤中,有時甚至可由不同RAID級別來保護(hù)。
引擎和算法
每個廠商都依據(jù)時間/事件和/或訪問頻率,開發(fā)了自有的用于遷移層級間數(shù)據(jù)塊的遷移引擎。每種實現(xiàn)方式都依賴于整體架構(gòu)。但大體上可考慮以下兩種方式:“陣列中的全部”或“陣列外的部分”。
當(dāng)實現(xiàn)的方式為“陣列中全部”的時候,所有監(jiān)控功能都是位于其控制器和軟件內(nèi)部,所有功能都獨立于軟件/操作系統(tǒng)。但是,當(dāng)部分遷移進(jìn)程是在陣列外部實現(xiàn)的時候(即O/S代理商監(jiān)控IOPS或外部分析工具),數(shù)據(jù)遷移就會面臨危險,因為該環(huán)境更加難以管理并由外部因素所決定。
粒度
粒度意味著效率,效率也意味著更加節(jié)省成本:你可以發(fā)現(xiàn)數(shù)據(jù)塊的大小不盡相同,512KB至1GB不等(一些廠商已經(jīng)打算將數(shù)據(jù)塊減少至32KB)!因此,粒度由于以下原因變得非常重要:
你擁有更多的粒度,你就可以在后端移動更少的數(shù)據(jù);
小數(shù)據(jù)塊可以向較高或者較低存儲層移動,以更好地分布數(shù)據(jù)分布和快速/粒度更高地進(jìn)行調(diào)整;
而大數(shù)據(jù)塊往往具有以下風(fēng)險:
在遷移大量數(shù)據(jù)之前,算法需要在等待的,同時面臨遷移數(shù)據(jù)為時已晚的風(fēng)險!
如果你擁有少量的活動數(shù)據(jù),比如一個大型LUN中幾MB的數(shù)據(jù),那么就可能有必須將GB級的數(shù)據(jù)移至更昂貴的上層存儲的風(fēng)險。