Ssd

將 QLC SSD 用作 RAIDZ(科學檔案)?

  • November 6, 2020

我們正在建立一個系統,用於對一些天氣數據進行歸檔和科學分析。

設置是多餘的,有兩個 HP DL580、Proxmox (ZoL) 和一些用於分析的 GPU。在每台伺服器上,我們計劃 5 個大約 50 TB 的池。我們出於密度和讀取速度的原因使用 SSD。在過去兩年中,我們一直在使用 HPE 讀取密集型 SSD。我們正在考慮對下一個存檔池進行以下更改:

  • 使用 HPE QLC“非常讀取優化”的 SSD。它們帶有減少的 DWPD,尤其是對於隨機寫入。
  • 從條帶鏡像移動到 raidZ2 (8 x 7.68 TB)

數據保存為文件 (25%) 和數據庫 (InnoDB, 75%),顯然只寫入一次。

raidZ2-QLC SSD 組合是否適合這種類型的存檔?

關於 QLC SSD 耐用性,是否存在特定於 ZFS 的良好實踐或陷阱?

編輯:條帶鏡像中目前 TLC SSD 的範例 smartctl 輸出

Copyright (*C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org  
=== START OF INFORMATION SECTION ===  
Device Model:     VK007680GWSXN  
Serial Number:      
LU WWN Device Id: 5 00a075 1266adce4  
Firmware Version: HPG2  
User Capacity:    7,681,501,126,656 bytes [7.68 TB]  
Sector Sizes:     512 bytes logical, 4096 bytes physical  
Rotation Rate:    Solid State Device  
Form Factor:      2.5 inches  
Device is:        Not in smartctl database [for details use: -P showall]  
ATA Version is:   ACS-3 T13/2161-D revision 5  
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)  
Local Time is:    Mon Sep 21 21:11:42 2020 CEST  
SMART support is: Available - device has SMART capability.  
SMART support is: Enabled  
=== START OF READ SMART DATA SECTION ===  
SMART overall-health self-assessment test result: PASSED  
General SMART Values:  
Offline data collection status:  (0x00) Offline data collection activity
                   was never started.  
                   Auto Offline Data Collection: Disabled.  
Self-test execution status:      (   0) The previous self-test routine completed
                   without error or no self-test has ever 
                   been run.  
Total time to complete Offline   
data collection:        (26790) seconds.  
Offline data collection
capabilities:            (0x7b) SMART execute Offline immediate.
                   Auto Offline data collection on/off support.
                   Suspend Offline collection upon new
                   command.
                   Offline surface scan supported.
                   Self-test supported.
                   Conveyance Self-test supported.
                   Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                   power-saving mode.
                   Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                   General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   2) minutes.
Extended self-test routine
recommended polling time:    (  45) minutes.
Conveyance self-test routine
recommended polling time:    (   3) minutes.
SCT capabilities:          (0x0035) SCT Status supported.
                   SCT Feature Control supported.
                   SCT Data Table supported.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
 1 Raw_Read_Error_Rate     0x000f   100   100   050    Pre-fail  Always       -       0  
 5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0  
 9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       4514  
11 Unknown_SSD_Attribute   0x0012   100   100   000    Old_age   Always       -       5  
12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       6  
171 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0  
172 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0  
173 Unknown_Attribute       0x0033   100   100   010    Pre-fail  Always       -       26  
174 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       5  
175 Program_Fail_Count_Chip 0x0033   100   100   001    Pre-fail  Always       -       0  
180 Unused_Rsvd_Blk_Cnt_Tot 0x003b   100   100   001    Pre-fail  Always       -       0  
184 End-to-End_Error        0x0032   100   100   000    Old_age   Always       -       0  
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0  
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       7  
194 Temperature_Celsius     0x0022   067   057   000    Old_age   Always       -       33 (Min/Max 22/43)  
196 Reallocated_Event_Count 0x0033   100   100   001    Pre-fail  Always       -       0  
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0  
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0  
199 UDMA_CRC_Error_Count    0x003e   100   100   000    Old_age   Always       -       0  
SMART Error Log not supported  
SMART Self-test Log not supported  
SMART Selective self-test log data structure revision number 1  
SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS  
   1        0        0  Not_testing  
   2        0        0  Not_testing  
   3        0        0  Not_testing  
   4        0        0  Not_testing  
   5        0        0  Not_testing  
Selective self-test flags (0x0):
 After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.*

我們已經實施了解決方案。QLC 驅動器似乎適合我們使用。

然而 RAIDZ2 被證明是不實用的:

ashift=12 與 16K 記錄大小(我們的數據庫的適當記錄大小)的組合導致平價支付的高價格。

使用 RAIDZ2,我們為 16K 實際數據寫入了兩個 4K 奇偶校驗塊。三分之一的儲存空間用於奇偶校驗。因此,我們回到了條紋鏡子。

由於 HP 硬碟報告其 SMART 資訊的方式,所提供的數據並不是非常有用。也就是說,屬性 173應該是 NAND 塊的最壞情況擦除計數(即:磨損)。6 個月後只有 26 個最大擦除週期,您的 SSD 應該可以使用 3000 / 26 / 2 = ~57.7 年。

這顯然是誇大其詞,因為此之前您需要更換伺服器中的其他東西(甚至由於控制器/NAND 意外故障而導致 SSD 本身)。然而,這是評估 QLC 企業級 SSD 的一個很好的起點:即使只有 1/10 的耐用性,您也將在大約 5 年的服務時間內 - 與他們的保修通常涵蓋的時間相同。

此外,企業級 QLC 驅動器的 NAND 晶片通常具有約 1000 個週期,因此實際壽命應顯著高於上述報告的 5 年。

再加上根據您的問題和評論,這些 SSD 將把大部分時間花在只讀工作負載上,與 QLC 驅動器一起使用應該不會造成任何問題,除非 QLC 驅動器的寫入速度較慢對您的工作負載有任何意義,或者您打算讓伺服器長時間斷電。

關於 RAIDZ2,它對於 SSD 來說可能是一個不錯的選擇,但一定要創建您的池ashift=12並設置一個相當小的recordsize屬性(我強烈建議使用 16K 而不是預設的 128K 值)。

引用自:https://serverfault.com/questions/1034739