0%

On the Importance of Evaluating Storage System's $Cost

概說:

此篇論文提出一個從成本/金錢層面對儲存系統進行評估的方案,評估對象包含性能等方面。

貨幣成本應該在儲存系統的預期壽命內進行評估,並考慮設備的磨損(wear-out)和更換。

相關領域研究中,很少有人探討Tiering和Caching在混合儲存系統中的利弊。本文為促進研究,開發了一套冊被映射(device-mapper)目標程式給Linux Kernel,目的是結合SSD和HDD。此套App想在SSD上起到2個作用:

  1. 將SSD作為Cache,並把髒資料(dirty data)異步回寫到HDD中
  2. 將SSD作為主要儲存設備(Tier)
  3. 其他: 其餘目標還有管理冷熱資料在SSD和HDD之間的通用策略

在儲存系統的案例中,作者觀察業界真實使用情況與自身經驗,總結了以下情況:

  1. 發現在某些工作負載/使用情況(workload),純SSD的方案會在短期內帶來高成本,但長期使用下成本會低得多。
  2. 還有一些情況,用SSD作為Cache比在Tier上作為熱資料的主要儲存設備的成本要低得多。但剩餘的工作負載皆與之相反。

Cost Model

成本: 包含能源和電力成本,以及設備更換本等等。

成本模型(Cost Model): 由13條公式計算得出一個數值,並用此數值做為參考來比較不同情況下成本的高低。其中將以下幾點參數/數值化後,再依照定義的公式進行計算:

  1. 儲存設備的數量(the number of storage device)
  2. 未來成本估計的時間因素($\alpha$)
  3. 購買成本: 單位容量的價格$\times$總容量
  4. 能源和電力價格
  5. Endurance Cost: 每台儲存設備的價格$\times$該台設備的折損率
  6. 定義SSD與HDD的磨損程度與使用期限
  7. 固定提供服務的成本(Service Cost): 主電源、冷氣等等

13條公式:

  1. $1\leq i \leq n,(n:the\ number\ of\ storage\ devices)$

  2. $1 \leq \alpha, (time\ factor,\ default=1)$

  3. $Cost=Purchase+TCO$

  4. $Purchase=\sum_{i=1}^{n}{C_{dev_{i}}}$

  5. $C_{dev_{i}}=Normalized\ Price_{dev_{i}}\times Capacity_{dev_{i}}$

  6. $TCO=\alpha \times (C_{energy}+C_{power}+C_{endurance})+C_{service}$

  7. $C_{energy}=Lookup_{LIPA}(Amount_{energy})$

  8. $C_{power}=Lookup_{LIPA}(Amount_{power})$

  9. $C_{endurance}=\sum_{i=1}^{n}{C_{dev_{i}}}$

  10. $C_{endurance_{i}}=C_{dev_{i}}\times \frac{dev_{i}\ wearout}{Limit_{i}}$

  11. $ \left\lbrace \begin{aligned} writes\ if\ dev_{i}=SSD, \\ \#startstop\ if\ dev_{i}=HDD \end{aligned} \right. $
  12. $ Limit_{i}\ wearout= \left\lbrace \begin{aligned} Limit_{writes}\ if\ dev_{i}=SSD, \\ Limit_{cycles}\ if\ dev_{i}=HDD \end{aligned} \right. $
  13. $C_{ser}=fixed\ estimation$

公式12和13看得出來,本文對SSD的耐用性及使用極限的設置主要是看寫入的次數,當然,讀取依然會影響其耐用性,所以本文對其進行了簡單的轉換。例如:由讀取引起的寫入就記作$reads/10$;而HDD則是看start-stop-cycle作為主要引響因素,並忽略其他。作者基於當時查到的工業規格,SSD能持續寫入36.5TB的資料,而HDD則是能完成300,000 spin up/down cycles。

System

本文為了將評估與測試簡單化,因此只用一顆SSD和一個HDD組成兩個自己完成的系統,一個是Caching;另一個是Tiering,評估時再加上基於Linux DM “Linear” target的Tiering系統。兩個自己完成的系統支援多個可配置參數:

  1. Extent Size (ES)
  2. Promotion/Pre-fetching Threshold (PT): Access counts before promoted/fetched.
  3. Maximum Concurrent Migration Limit (MCML)

此外,以上兩系統有以下四點不同:

  1. Capacity
  2. Management Unit
  3. Data Movement
  4. Read/Write Policy

Evaluation

設備:

  1. 兩台相同的Lenovo ThinkCenter電腦上進行測試,每一台上面搭載4GB的RAM和Intel Core-2 Quad 2.66GHz CPU。
  2. 儲存設備(Storage): Intel SSDSA2CW300G3 300GB SSD & Seagate ST32000641AS 2TB HDD,且Linux 3.5.0的kernel運行在獨立的SATA驅動上。

作者將每電腦連接至一台WattsUP Pro ES的直列式功率計算器來測量能源與電力的損耗。

工作負載 / 應用場景:

  1. Web-search trace from UMass Trace Repository
  2. FIU’s online trace

作者發現在Filebench的File Server的應用場景(工作負載)的各項測試結果(評估結果)的趨勢與Web-search雷同,因而省略此場景。

Storage System:

  1. Tiering: 作者自己實現的Tiering方案
  2. Caching: 作者實現的Caching方案
  3. Mylinear: 一種Tiering的方案,其方法來自Linux DM “Linear” target

上述不同的儲存系統中,2種Tiering的方案的SSD的容量採用總容量的1/4,並且為了在相同設備情況下對結果進行比較,因此Caching的方案的SSD也是相同的備至;不同的是在Caching系統上,SSD作為Cache不能算在總容量中,所以實際上的總容量都為HDD所組成,也就是Caching system的HDD要比Tiering system的HDD多出1/4的容量。

$\alpha$ as the time factor to project future cost extimates (i.e., run the same amount of workload multiple times).

Throughput Metric

  • 當PT (Promotion/Pre-fetching Threshold) = 4, 16時,Caching的throughput比Tiering高4~9%
  • 當PT= 64時,Caching的throughtput和Tiering差不多
  • SSD hit ratio: Caching - 8198%, Tiering - 8598%, Mylinear - 8%
  • SSD hit ratio和資料搬移(data movement)會影響混合儲存系統的throughput

Web-search應用場景的讀取(Read)遠多於寫入(Write),因此回寫(Write-back)的開銷小。此外,Tiering系統中的SSD,在事先就會包含冷熱資料,此情況會增加對總體throughput的開銷。

  • 回寫(Write-back): 指的是在Caching Storage System中,把資料從Cache(SSD)上寫回Storage Device(HDD)的一種機制。write-back 是將資料量儲存到一定的量之後,會依據同區塊的資料一次整批寫回去.裡面有提到 dirty ,他是在記憶體裡面 cache 的一個 bit 用來指示這筆資料已經被 CPU 修改過但是尚未回寫到儲存裝置中。
Conclusion

若Tiering系統將SSD(Tier0)作為主要的儲存設備,但其中(預先)包含冷資料,則Caching系統總體的throughtput會比Tiering高。

Cost

  • 長期:
    • 在time factor = 100000,也就是平均使用2.1年(範圍從0.2~7.7年)左右,Caching系統的總成本會比Tiering系統節省8 ~ 20 %。而在長期使用下,Caching系統更省成本的原因,作者歸納成以下兩點:
      1. 在Caching系統中,SSD沒有額外的主要IO,但Tiering系統有。因為SSD在Tiering系統中通常扮演最高Tier(Tier0)的角色。因此會有時常搬運的問題。
      2. 從長期使用的角度來看,SSD的耐用度降低的速度,會影響更換的頻率,若更換頻率較高,就會提高更換成本。
  • 短期: 在time factor = 1時,Caching系統的成本比Tiering系統略高,因其需要擴充HDD的容量(上述Storage System的說明中)。

還未了解如何從time factor轉換成使用年分

FIU’s Online

Throughput Metric

  • 寫入比讀取多,表示Caching系統的回寫開銷可能會造成throughput瓶頸。
  • 隨著ES (Extent Size)的變化,Caching系統的throughput會比Tiering系統58 ~ 82%。
  • SSD hit ratio: Caching 92 ~ 99%, Tiering 98 ~ 99%, Mylinear 84%。
  • 當ES = 4k時,Caching系統的throughput降低了82%,由於它有更多的回寫IO。

Cost

  • 長期:
    • 在time factor = 100000,也就是平均使用3.3年(範圍從0.7~9.8年)左右,Caching系統的總成本比Tiering系統高5 ~ 23%。因為在Caching系統中,SSD沒有額外的主要IO,但有更多回寫IO,因此比Tiering系統更快消耗SSD的耐用度,造成長期使用下的設備更換成本。
  • 短期: 在time factor = 1時,Caching系統的總成本會比Tiering系統略高,原因與Web-search中短期的原因相同。