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