我们正在建立一个系统,用于对一些天气数据进行归档和科学分析。
设置是多余的,有两个 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 值)。