Eu tenho um servidor de nível de laboratório doméstico no qual coloquei 4x discos Crucial MX500 alguns meses atrás. Um dos discos (todos semelhantes) tem os seguintes detalhes SMART:
smartctl 6.5 2016-05-07 r4318 [x86_64-linux-3.10.0-957.12.2.el7.x86_64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Crucial/Micron BX/MX1/2/3/500, M5/600, 1100 SSDs
Device Model: CT500MX500SSD1
Serial Number: XXXXXXXXXXX
LU WWN Device Id: 5 00a075 1e1e22806
Firmware Version: M3CR023
User Capacity: 500,107,862,016 bytes [500 GB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: Solid State Device
Form Factor: 2.5 inches
Device is: In smartctl database [for details use: -P show]
ATA Version is: ACS-3 T13/2161-D revision 5
SATA Version is: SATA >3.2 (0x1ff), 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Fri Aug 9 17:29:43 2019 CST
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: (0x80) Offline data collection activity
was never started.
Auto Offline Data Collection: Enabled.
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: ( 0) 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: ( 30) minutes.
Conveyance self-test routine
recommended polling time: ( 2) minutes.
SCT capabilities: (0x0031) 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 0x002f 100 100 000 Pre-fail Always - 0
5 Reallocate_NAND_Blk_Cnt 0x0032 100 100 010 Old_age Always - 0
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 554
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 35
171 Program_Fail_Count 0x0032 100 100 000 Old_age Always - 0
172 Erase_Fail_Count 0x0032 100 100 000 Old_age Always - 0
173 Ave_Block-Erase_Count 0x0032 092 092 000 Old_age Always - 127
174 Unexpect_Power_Loss_Ct 0x0032 100 100 000 Old_age Always - 9
180 Unused_Reserve_NAND_Blk 0x0033 000 000 000 Pre-fail Always - 43
183 SATA_Interfac_Downshift 0x0032 100 100 000 Old_age Always - 0
184 Error_Correction_Count 0x0032 100 100 000 Old_age Always - 0
187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0
194 Temperature_Celsius 0x0022 064 046 000 Old_age Always - 36 (Min/Max 0/54)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 100 100 000 Old_age Always - 0
202 Percent_Lifetime_Remain 0x0030 092 092 001 Old_age Offline - 8
206 Write_Error_Rate 0x000e 100 100 000 Old_age Always - 0
210 Success_RAIN_Recov_Cnt 0x0032 100 100 000 Old_age Always - 0
246 Total_Host_Sector_Write 0x0032 100 100 000 Old_age Always - 7227541253
247 Host_Program_Page_Count 0x0032 100 100 000 Old_age Always - 128825080
248 FTL_Program_Page_Count 0x0032 100 100 000 Old_age Always - 1974407892
Estou tentando descobrir como o atributo 202
é calculado porque parece estar caindo muito rápido. Tenho o ZFS na máquina e, com 41 dias de uptime, zpool iostat -v
mostra:
capacity operations bandwidth
pool alloc free read write read write
----------------------------------- ----- ----- ----- ----- ----- -----
neo 1.10T 727G 123 174 4.84M 2.27M
raidz1 1.10T 727G 123 174 4.84M 2.27M
ata-CT500MX500SSD1_1XXXXXXXXXXX - - 31 44 1.23M 597K
ata-CT500MX500SSD1_1XXXXXXXXXXX - - 30 42 1.19M 567K
ata-CT500MX500SSD1_1XXXXXXXXXXX - - 31 44 1.23M 597K
ata-CT500MX500SSD1_1XXXXXXXXXXX - - 30 42 1.19M 567K
----------------------------------- ----- ----- ----- ----- ----- -----
Pelo que entendi, é menos de 1 MB/s por disco sendo gravado. Estimando aproximadamente a quantidade de dados gravados, obtenho 1 MB/s = 86 GB por dia ou 2,5 TB por mês. O valor nominal de 180 TBW / 2,5 TB por mês é de aproximadamente 72 meses ou 6 anos. No entanto, passei por 8% em cerca de 2,5 meses.
Gostaria de saber como o atributo 202
é calculado para que eu possa fazer isso manualmente e começar a tentar descobrir se tenho algum tipo de problema de amplificação de gravação. Estou meio que hesitante em confiar nas estatísticas SMART porque elas mostram 23 dias de PoH, embora o sistema tenha 41 dias de tempo de atividade e o modelo específico de disco também tenha um CurrentPendingSector
problema notório.
Tradicionalmente, a "porcentagem de vida útil restante" é a contagem média de apagamento versus a "resistência nominal" real do flash. Isso significa que o MX500 possui um flash de resistência de 1500, o que é crível para o flash 3D TLC.
O layout ZFS /z1, para um SSD de consumidor, envia muitos comandos de sincronização de unidade. Isso realmente aumenta a amplificação de gravação das unidades individuais. Eu testei matrizes maiores (por contagem de unidades) e vi amplificação > 20X apenas no nível ZFS antes da lógica interna das unidades (esta foi uma carga de trabalho de gravação 4K aleatória 100% zvol, então o pior caso).
Sua matriz é apenas 2,3 vezes pior do que seus próprios cálculos (8% após 2,5 meses são 31 meses contra os 72 meses esperados). Isso é facilmente explicado pelo comportamento de gravação do ZFS. Em outras palavras, você obtém o que se espera de uma unidade de consumidor com ZFS em /z1.
As unidades não consumidoras, mesmo quando construídas com o mesmo flash, têm hardware de falha de energia que permite que as sincronizações ocorram sem realmente sincronizar o layout FTL todas as vezes. Isso reduz muito o desgaste e torna o ZFS muito mais "resistente", embora ainda lento em comparação com outros sistemas de arquivos.