活用NAS全攻略:NAS加速大法 - SSD Cache vs Qtier 分層儲存

- 18座大王 - 2017-12-01

SSD Cache 運作原理

SSD Cache 運作原理

假如大家有看過 QM2 擴充卡評測的話,應該會知道SSD的存取延遲遠比硬碟低及有著優異的隨機讀寫能力,因此把常用的零散數據暫存在SSD會有助改善I/O效能。在啟用SSD Cache後,假如要讀取的數據有暫存在SSD上,系統會直接從高速的SSD讀取數據;假如要讀取的數據未暫存在SSD上,則會從硬碟讀出數據,再暫存在SSD上,如果數據再次被讀取,便不用再從硬碟讀取,達到加速讀取的效果。在寫入零散數據時,則會先寫在SSD上,並當作已經完成寫入;然而,其實數據並未真正寫入硬碟的檔案系統內,當暫存的數據過多、暫存的時間過長、需要拍攝快照或停用SSD Cache功能等情況下,才會觸發回寫,把資料寫回硬碟內。因此,當有大量數據寫入時,暫存的數據爆滿後,會讓數據回寫及數據寫入同時進行,影響寫入速度。假如SSD Cache的數據在未寫回硬碟的情況下有多個SSD損壞、或SSD內的數據有損毀等情況下,會令硬碟內整個檔案系統損壞,造成損失。

在 QTS 4.4.1 後,QNAP加入了「唯寫快取」功能,系統只會把需要寫入的資料先行寫入到 SSD Cache 上,待系統空閒時才會回寫到磁碟區,而讀取動作則視乎數據是否在SSD Cache上,如果在SSD Cache上,會從SSD Cache上讀取,否則會從磁碟區讀取,但有別於「讀寫快取」,讀出的資料並不會快取到 SSD Cache 上。這個模式主要是針對由較低速的SSD組成的磁碟區,讓由較高速的NVMe SSD把需要寫入的資料先暫時存放,加速整體的寫入效能,最後再把資料一併寫入,以改善SSD寫入放大問題,也延長了磁碟區中的SSD壽命。

有關各種快取模式下讀取時背後進行的動作,可以參考下表:

註:Read Miss 即是需要讀取的資料不在SSD Cache內;Read Hit即是需要讀取的資料在SSD Cache內。

Read Miss Read Hit
Read-Only  

唯讀快取

Read from HDD

Write to SSD

從硬碟讀取

並寫入到SSD快取

Read from SSD Cache

從SSD快取讀取

Read-Write 

讀寫快取

Read from HDD

Write to SSD

從硬碟讀取

並寫入到SSD快取

Read from SSD Cache

從SSD快取讀取

Write-Only 

唯寫快取

Read from HDD

從硬碟讀取

Read from SSD Cache

從SSD快取讀取

有關各種快取模式下寫入時背後進行的動作,可以參考下表:

註:Write Miss 即是需要寫入的資料無法寫入到SSD Cache;Write Hit即是需要寫入的資料成功寫入到SSD Cache。

Write Miss Write Hit Flush needed

需要回寫?

Read-Only  

唯讀快取

Write to HDD

寫入到硬碟

Write to HDD & SSD Cache

同時寫入到硬碟及SSD快取

No

不需要

Read-Write 

讀寫快取

Write to HDD

寫入到硬碟

Write to SSD Cache

寫入到SSD快取

Yes

需要

Write-Only 

唯寫快取

Write to HDD

寫入到硬碟

Write to SSD Cache

寫入到SSD快取

Yes

需要

  1. 第1頁 : NAS 不夠快,怎麼辦?
  2. 第2頁 : SSD Cache 運作原理
  3. 第3頁 : SSD Cache 設定教學 (QTS 4.2.x ~ 4.3.x)
  4. 第4頁 : SSD Cache 設定教學 (QTS 4.4.x)
  5. 第5頁 : Qtier 運作原理
  6. 第6頁 : Qtier 設定教學
  7. 第7頁 : 設定 Qtier Tiering On Demand功能
  8. 第8頁 : SSD Cache vs Qtier 效能測試