NAS 不夠快,怎麼辦?

NAS 的規格愈來愈強,從以前的 ARM CPU,到後來的 Intel Atom CPU,再到現在的 Intel Celeron、Intel Core i7、Intel XEON、AMD Ryzen,令NAS運算能力大大提高!以往因硬體所限,NAS只擔當檔案伺服器的角色,讓用家更輕易地備份及分享檔案;現今的NAS功能已不限於檔案伺服器,更擔任了多媒體伺服器及應用程式伺服器等工作,當中有部分功能除了需要強大的CPU運算能力外,還需要更快速的I/O反應,才能暢順地運行;QNAP 的Virtualization Station (虛擬機工作站)就是其中一個例子,他可以在 QNAP QTS 上建立虛擬機來運行其他作業系統,提供更多元化的應用,但只透過硬碟組成的磁碟區往往會令虛擬機反應緩慢,讓用家感到不爽。

除了需要大量系統資源的應用外,有部分企業也會利用 NAS 提供 iSCSI 儲存空間給其他伺服器使用,假如伺服器是在 iSCSI LUN 上運行需要高速I/O的應用的話(如資料庫),效能同樣會卡在硬碟緩慢的隨機讀寫速度,使應用程式回應速度大大降低!

基於這個問題,很多 NAS 廠商都有導入 SSD 快取技術,讓較常讀取的數據暫存在SSD上,這可避免系統等待數據從硬碟讀出,而是直接從較高速的SSD讀出,提升反應速度;而 QNAP 除了 SSD 快取技術外,還提供一個選擇,就是 Qtier 自動分層儲存技術,QTS系統會自動辨別資料存取頻率,自動將頻繁存取的「熱」資料移動到效能較高的磁碟階層,而將較少存取的「冷」資料移動到成本低、大容量的磁碟階層,讓一台 NAS 系統可同時享有高速 SSD 與大容量 HDD 的雙重優勢。

接著,大王會教大家如何設定 SSD Cache 及 Qtier,再進行一些測試,看看哪種技術的加速效果更好。

 

  SSD Cache 運作原理

SSD Cache 運作原理

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

  SSD Cache 設定教學

在QNAP NAS建立SSD Cache其實很簡單,首先打開「儲存及快照總管」,點選「快取加速」,再按「建立」。

按「建立」後,會跳出「建立SSD快取」視窗,首先選擇要加入成為SSD Cache的SSD,再於下方選擇「快取型態」。由於唯讀快取在SSD損壞的情況下不會造成數據損毀,因此可以放心選擇沒有數據保護功能的RAID層級,如RAID0,單獨SSD等。而讀寫快取在數據未回寫的情況下有SSD損壞會有嚴重後果,所以一定要選擇有數據保護功能的RAID層級,如RAID1、RAID10,以降低風險。

在快取演算法方面,這是決定當SSD Cache爆滿後,要刪掉哪個快取檔案的方法;LRU (Least Recently Used) 會保留最常用的快取區塊,淘汰最不用用的區塊;而FIFO (First in, First Out) 則是淘汰最先寫入快取的區塊。一般建議使用LRU,即使LRU會使用較多的系統資源,但為求達成較高的快取命中率,設定成LRU還是值得的。

快取模式

因硬碟的循序I/O (Sequence I/O) 效能良好,所以選擇加速隨機I/O已經可以。而略過區塊大小不用設定得太大,一般1M已經足夠,這樣還可以避免SSD Cache寫滿而造成的掉速問題。

只需要按以上簡單的步驟,就可以完成建立SSD Cache。在這補充一些QNAP SSD Cache的使用上的細節:

  • 在建立或移除SSD Cache的時候,並不會中斷任何系統服務
  • 當「讀寫快取」的SSD RAID Group進入降階(Degrade)狀態,會立刻回寫資料,再自動轉換成「唯讀快取」,保障資料安全
  • 更換SSD RAID Group內損壞的SSD後,會自動恢復,不會中斷任何系統服務
  • 一組SSD Cache可以同時加速多個磁碟區/iSCSI LUN,如下圖

一組SSD Cache可以同時加速多個磁碟區/iSCSI LUN

 

  Qtier 運作原理

Qtier運作原理

QNAP早在QTS 4.2版本加入Qtier自動分層儲存技術,其原理是利用不同速度的儲存媒介共同組成一個儲存池,如高速的SSD配合普通的SATA硬碟,然後系統會自行透過演算法進行排序計算及分析,把數據分類為「冷」、「暖」及「熱」數據(「冷」數據代表很少被讀寫的數據、「暖」數據代表間中被讀寫的數據,而「熱」數據代表經常被讀寫的數據),再透過區塊搬移的方式,放到最合適的儲存媒介。經常存取的數據,會被放到SSD層,提升I/O效能,而使用率較低的數據,則會放到速度較慢的硬碟,提高儲存效率。因此,在加入足夠數量的SSD後,Qtier能發揮出類似全SSD的效能,同時保有硬碟的巨大容量,讓用家可以以較低的成本,享有較佳的I/O效能!

針對個別共用資料夾或LUN啟用Qtier

經過數個版本的QTS更新,Qtier已經能自動分析系統狀態,在系統閒置的時候自動進行資料移轉及調整移轉速度;同時,用家可以設定哪個共用資料夾優先進行分層移動,讓關鍵的應用優先使用SSD,提升分層效率。以往建立Qtier儲存池是需要由零開始,但新版本已經可以讓用家把原有的儲存池透過加入SSD升級為Qtier儲存池,大大提高使用上的彈性!

連續寫入動作直接寫進HDD層,隨機寫入動作自動寫進SSD層

預留SSD空間,再按實際需求作區塊移動

除外之外,新版本的Qtier會預留部分空間,當有數據區塊在短時間內被頻繁讀寫,就會立刻把資料轉移到SSD層的預留區,讓讀寫更快速,也能切合系統實際需要。針對不同的讀寫動作,新版本也加入了智慧判別技術,讓連續寫入動作直接寫進HDD層,而隨機寫入動作則自動寫進SSD層,使整個儲存系統變得更聰明,大大提高儲存性價比。

  建立 Qtier 儲存池

首先在建立儲存池(Storage Pool)時,勾選「啟用Qtier」

在這裡,只需要按指示加入硬碟/SSD 進對應的分層,由於任意一層發生損壞都會造成整個儲存池損壞,因此必須選擇具有安全保護的RAID等級,如RAID 1,5,6,10,50,60,以降低風險。

看看設定有沒有問題,沒有問題按「建立」完成設定

Qtier 跟 SSD Cache 最大分別是Qtier可以把SSD當成的儲存空間,因此在上圖中可以發現儲存池的容量是SSD層跟SATA硬碟層的總和,用盡儲存空間!

 

  升級成 Qtier 儲存池

現在QNAP有不少機種都備有2.5″及M.2 SSD插槽,有PCIe插槽的機種還可以透過QM2擴充卡加入M.2 SSD插槽;假如你正在使用一般由硬碟組成的儲存池,在QTS4.3.4版本加入足夠數量的SSD後,即可透過下面的方法,把儲存池升級為Qtier儲存池。

要注意,升級時「儲存池」會暫時離線,相關服務會被停止

完成升級!

 

  SSD Cache vs Qtier 效能測試

說了這麼久,到底SSD Cache和Qtier的加速效果有多大?立刻為大家送上效能測試。本次的測試平台是TS-1685-D1521-16G,並安裝上4個WD Blue 250GB SSD及12個Seagate 1TB 企業版硬碟。

在TS-1685內,建立3個儲存池,再於每個儲存池建立一個Volume,以便進行測試。

  • 儲存池1:硬碟1,2,3,4經成RAID 5,容量為2.70TB
  • 儲存池2:硬碟5,6,7,8經成RAID 5,再於Volume啟用由SSD 3,4組成的SSD Cache,容量為2.70TB
  • 儲存池3:硬碟9,10,11,12經成RAID 5,加上SSD 1,2,組成 Qtier 自動分層儲存池,容量為2.92TB

測試平台
CPU:AMD Threadripper 1950X
RAM:ADATA SPECTRIX D40 32GB DDR4 RGB
MB:ASRock Fatal1ty X399 Professional Gaming
VGA:INNO3D GTX1070
HD:ADATA SX8000 512GB NVMe SSD
POWER:Antec HIGH CURRENT PRO 1200W
COOLING:自制水冷
作業系統:WIN10 X64

測試項目:

  • 小檔案抄寫測試,檔案大小為4KB,數量有7370個
  • 模擬抄寫照片,檔案大小為4MB,數量有1280個
  • 大檔案抄寫測試,檔案大小為5GB,數量有1個

測試檔案由NAS /dev/urandom產生,全部是隨機數據,而不是全部是0,以避免傳輸時被壓縮。而測試檔案存放在測試PC的RAMDISK中,以免被測試PC中的SSD干預傳送速度。

7370個4KB檔案

1280個4MB檔案

1個5G檔案

從4KB小檔案的速度來看,不論你由Windows直接拖拉及使用抄寫軟件進行檔案複製,Windows在傳輸時都會有Buffer,因此測出來的數據並沒有太大差異,Qtier的速度只是略快。

而在較大型的4MB及5GB檔案,可以發現Qtier的傳輸速度都比由硬碟組成的磁碟區及啟用了SSD Cache的磁碟區快!而啟用了SSD Cache的磁碟區寫入速度卻比由硬碟組成的磁碟區慢,估計是因為關閉了循序寫入的快取所造成,加上系統要花時間決定數據是否存放到SSD Cache中,使傳輸速度略為拖慢。不過,假如你只是使用1Gigabit網絡的話,相信三者速度的差異會大幅縮小。

除了傳輸速度外,SSD Cache及Qtier還會影響NAS應用程式的反應速度,因此大王在每個磁碟區中,都建立了一個虛擬機,看看虛擬機內的效能,讓大家更深入理解三者的效能差異。首先先看看虛擬機的啟動速度:

由於虛擬機是第一次啟動,因此SSD Cache未能發揮加速效果,同時可能因要進行快取動作的關係,使啟動速度比由硬碟組成的磁碟區略慢,但如果進行多次虛擬機重新啟動,估計SSD Cache就能發揮加速效果。而在Qtier運行的虛擬機最快完成啟動,相信大家都可以感受到Qtier的加速效果。

在虛擬機內執行CrystalDiskMark

從CrystalDiskMark的分數而言,由於CrystalDiskMark的設定值是運行5次的關係,可以看到SSD Cache磁碟區的隨機寫入項目都比只由硬碟組成的磁碟區快;而Qtier的效能表現最為突出,大部分項目都領先另外兩者,可見Qtier能提供最佳的I/O能力。

在虛擬機內執行PCMARK 10

PCMARK是測試整體PC效能的軟件,測試項目包括程式打開速度、進行視像會議、瀏覽器反應、試算表反應及文書處理的效能,分數如下:

硬碟磁碟區 SSD Cache磁碟區 Qtier磁碟區
App Start-up 6192 7578 7882
Video Conferencing 2684 3124 3295
Web Browsing 3972 4115 4225
Spreadsheets 3262 3387 3482
Writing 3746 4311 4435
Overall 2273 2536 2623

相信大家有研究電腦的話,都知道打開作業系統及應用程式時都會有大量隨機讀寫的I/O動作,PCMARK 10在每個測試項目都會執行數次,這讓SSD Cache可以快取應用程式的數據,因此可以看到SSD Cache磁碟區的分數都比硬碟磁碟區高!而Qtier的效能依舊是三者之中最為突出的一個,同樣可得出Qtier具有較好的I/O效能表現的結論。

 

 總結

不論是SSD Cache或Qtier,其實都能達到加速I/O這個目標,當中以Qtier的整體效果最為良好。從虛擬機應用可以看到Qtier的加速能力最為優秀,也讓人輕易感受到效能改善。因此,假如你的NAS支援Qtier而又有高速I/O需求,購買SSD來架設Qtier儲存池絕對是上策!而SSD容量方面,建議選購較大容量,以發揮最佳的效益。

 

QNAP SSD Cache 簡介:傳送門

QNAP Qtier 簡介:傳送門

QNAP HK 官方線上訂購:傳送門