---
# System prepended metadata

title: On the Importance of Evaluating Storage System's $Costs
tags: [Auto Tiering Storage]

---

# On the Importance of Evaluating Storage System's $Costs
###### tags: `Auto Tiering Storage`

概說:

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

貨幣成本應該在儲存系統的**預期壽命內**進行評估，並考慮設備的磨損(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\{
        \begin{aligned}
        	writes\ if\ dev_{i}=SSD, \\
        	\#startstop\ if\ dev_{i}=HDD 
        \end{aligned}
        \right.
    $$
    
12. $$
    Limit_{i}\ wearout=
          \left\{
            \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). 



### Web Search

#### Throughput  Metric

* 當PT (Promotion/Pre-fetching Threshold) = 4, 16時，Caching的throughput比Tiering高4~9%
* 當PT= 64時，Caching的throughtput和Tiering差不多
* SSD hit ratio: Caching - 81~98%, Tiering - 85~98%, 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中短期的原因相同。
