使用 QLC SSD 作为 RAIDZ(科学档案)?

使用 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.*

答案1

我们已经实施了解决方案。QLC 驱动器似乎适合我们的用途。

然而 RAIDZ2 被证明是不切实际的:

ashift=12 与 16K 记录大小(适合我们数据库的记录大小)的组合会导致奇偶校验付出高昂的代价。

使用 RAIDZ2,我们有两个 4K 奇偶校验块,用于写入 16K 实际数据。三分之一的存储空间用于奇偶校验。因此,我们回到了条带镜像。

答案2

由于 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 值)。

相关内容