將 QLC SSD 用作 RAIDZ(科學檔案)?
我們正在建立一個系統,用於對一些天氣數據進行歸檔和科學分析。
設置是多餘的,有兩個 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 值)。