• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

pfsense ssd vs flash memory

I also run pfsense with an SSD, a 32 GB Crucial v4 with almost 50% overprovisioning. While my system still works I've also read of problems other users have had with SSDs. Part of the problem is that it is tricky to get a proper 4K alignment with FreeBSD (slices and partitions) on SSDs, especially with the pfsense installer. The layout of the BSD disklabel is still not completely clear to me. In theory you have to align the first partition on 63*4K boundary to not break the compatibility with the CHS system and then align the slices on 4K boundaries within it.

Nevertheless I doubt that pfsense can kill a SSD so fast, after all it mostly does log writes.
 
Last edited:
from what im reading so far, it seems that the state table is what kills them as it writes to the drive on every connection. i am most likely wrong on that. the embedded version writes the state table to a ram disk and virtually eliminates all writes to the ssd except for config changes.


Posted from Hardforum.com App for Android
 
I've been using SSDs in pfsense for a couple years in 4 different facilities. One of them is a Kingston SDcard in a SATA converter. Never had an issue. Three of the facilities are 5-10 user offices but the main is nearly 200 users. Each has to log VPN traffic in addition to web traffic.

My bet would be on a failed drive rather than a killed drive. If my 16 GB SDcard has held up for 2+ years a regular SSD should last allot longer. It's hard to say not knowing the actual usage but I assume it's a home setup.
 
I had a couple early SSDs crash and burn in pfSense 2.0 boxes (cheaper 4-5 year old designs). I've had a few Intel 320's in boxes since and am quite happy with them. I chose small SSDs because I like the systems to boot fast and I too need to capture logs (persistent after a reboot) like ochadd.

Also, no moving parts units I ship to remote offices.
 
Your post made me decide to look at the SSD in my primary firewall (primary of a CARP cluster, VPN hub of several offices).

It's got a power-on-hours count of 506 days, 5.75TB written, 89% write workload, is 1.86% worn out (99% 'healthy'), 100% of reserve space still available, and zero reallocated sectors.

80GB Intel 320. I haven't turned ANYTHING off. I write all logs, swap, RRD, etc to the disk. Full standard installation.
 
Your post made me decide to look at the SSD in my primary firewall (primary of a CARP cluster, VPN hub of several offices).

It's got a power-on-hours count of 506 days, 5.75TB written, 89% write workload, is 1.86% worn out (99% 'healthy'), 100% of reserve space still available, and zero reallocated sectors.

80GB Intel 320. I haven't turned ANYTHING off. I write all logs, swap, RRD, etc to the disk. Full standard installation.

Is this something I can check from within pfsense?
 
Yes. Diagnostics, SMART status... assuming you're running 2.0+

Yes, 2.0.1 to be specific.

Here is my SMART data, where are You seeing the info You posted about Yours?

Code:
smartctl 5.41 2011-06-09 r3365 [FreeBSD 8.1-RELEASE-p6 amd64] (local build)
Copyright (C) 2002-11 by Bruce Allen, [url]http://smartmontools.sourceforge.net[/url]

=== START OF INFORMATION SECTION ===
Device Model:     M4-CT064M4SSD2
Serial Number:    000000001219090A5133
LU WWN Device Id: 5 00a075 1090a5133
Firmware Version: 000F
User Capacity:    64,023,257,088 bytes [64.0 GB]
Sector Size:      512 bytes logical/physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 6
Local Time is:    Sat Oct 13 13:24:53 2012 EDT
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:  (0x85)	Offline data collection activity
					was aborted by an interrupting command from host.
					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: 		(  295) 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: 	 (   4) minutes.
Conveyance self-test routine
recommended polling time: 	 (   3) minutes.
SCT capabilities: 	       (0x003d)	SCT Status supported.
					SCT Error Recovery Control 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   050    Pre-fail  Always       -       0
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0032   100   100   001    Old_age   Always       -       214
 12 Power_Cycle_Count       0x0032   100   100   001    Old_age   Always       -       1
170 Unknown_Attribute       0x0033   100   100   010    Pre-fail  Always       -       0
171 Unknown_Attribute       0x0032   100   100   001    Old_age   Always       -       0
172 Unknown_Attribute       0x0032   100   100   001    Old_age   Always       -       0
173 Unknown_Attribute       0x0033   100   100   010    Pre-fail  Always       -       0
174 Unknown_Attribute       0x0032   100   100   001    Old_age   Always       -       0
181 Program_Fail_Cnt_Total  0x0022   100   100   001    Old_age   Always       -       120260853760
183 Runtime_Bad_Block       0x0032   100   100   001    Old_age   Always       -       0
184 End-to-End_Error        0x0033   100   100   050    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0032   100   100   001    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   001    Old_age   Always       -       0
189 High_Fly_Writes         0x000e   100   100   001    Old_age   Always       -       50
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       0
195 Hardware_ECC_Recovered  0x003a   100   100   001    Old_age   Always       -       0
196 Reallocated_Event_Count 0x0032   100   100   001    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   001    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   001    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   100   100   001    Old_age   Always       -       0
202 Data_Address_Mark_Errs  0x0018   100   100   001    Old_age   Offline      -       0
206 Flying_Height           0x000e   100   100   001    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%       213         -
# 2  Vendor (0xff)       Completed without error       00%       168         -
# 3  Vendor (0xff)       Completed without error       00%         0         -

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.
 
Yours doesn't appear to take useful statistics :(

Here's what my 320 looks like:

Code:
smartctl 5.41 2011-06-09 r3365 [FreeBSD 8.1-RELEASE-p6 amd64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 5
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  3 Spin_Up_Time            0x0020   100   100   000    Old_age   Offline      -       0
  4 Start_Stop_Count        0x0030   100   100   000    Old_age   Offline      -       0
  5 Reallocated_Sector_Ct   0x0032   100   100   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       12168
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       19
170 Reserve_Block_Count     0x0033   100   100   010    Pre-fail  Always       -       0
171 Program_Fail_Count      0x0032   100   100   000    Old_age   Always       -       0
172 Erase_Fail_Count        0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0033   100   100   090    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
192 Unsafe_Shutdown_Count   0x0032   100   100   000    Old_age   Always       -       19
225 Host_Writes_32MiB       0x0032   100   100   000    Old_age   Always       -       180208
226 Workld_Media_Wear_Indic 0x0032   100   100   000    Old_age   Always       -       1904
227 Workld_Host_Reads_Perc  0x0032   100   100   000    Old_age   Always       -       11
228 Workload_Minutes        0x0032   100   100   000    Old_age   Always       -       730089
232 Available_Reservd_Space 0x0033   100   100   010    Pre-fail  Always       -       0
233 Media_Wearout_Indicator 0x0032   099   099   000    Old_age   Always       -       0
241 Host_Writes_32MiB       0x0032   100   100   000    Old_age   Always       -       180208
242 Host_Reads_32MiB        0x0032   100   100   000    Old_age   Always       -       22635
 
The problem is that pfsense includes an older version of smartmontools, 5.41, so the attributes for the Crucial m4 are incorrect. Here are the attributes for an m4 from 5.43:

/usr/share/smartmontools/drivedb.h
Code:
  { "Crucial/Micron RealSSD C300/C400/m4",
    "C300-CTFDDA[AC](064|128|256)MAG|" // Marvell 88SS9174 BJP2, tested with C300-CTFDDAC128MAG/0002
    "C400-MTFDDA[ACK](064|128|256|512)MAM|" // Marvel 9176, tested with C400-MTFDDAC256MAM/0002
    "M4-CT(064|128|256|512)M4SSD2", // tested with M4-CT064M4SSD2/0002, M4-CT512M4SSD2/0309
    "", "",
  //"-v 1,raw48,Raw_Read_Error_Rate "
  //"-v 5,raw16(raw16),Reallocated_Sector_Ct "
  //"-v 9,raw24(raw8),Power_On_Hours "
  //"-v 12,raw48,Power_Cycle_Count "
    "-v 170,raw48,Grown_Failing_Block_Ct "
    "-v 171,raw48,Program_Fail_Count "
    "-v 172,raw48,Erase_Fail_Count "
    "-v 173,raw48,Wear_Levelling_Count "
    "-v 174,raw48,Unexpect_Power_Loss_Ct "
    "-v 181,raw16,Non4k_Aligned_Access "
    "-v 183,raw48,SATA_Iface_Downshift "
  //"-v 184,raw48,End-to-End_Error "
  //"-v 187,raw48,Reported_Uncorrect "
  //"-v 188,raw48,Command_Timeout "
    "-v 189,raw48,Factory_Bad_Block_Ct "
  //"-v 194,tempminmax,Temperature_Celsius "
  //"-v 195,raw48,Hardware_ECC_Recovered "
  //"-v 196,raw16(raw16),Reallocated_Event_Count "
  //"-v 197,raw48,Current_Pending_Sector "
  //"-v 198,raw48,Offline_Uncorrectable "
  //"-v 199,raw48,UDMA_CRC_Error_Count "
    "-v 202,raw48,Perc_Rated_Life_Used "
    "-v 206,raw48,Write_Error_Rate"

Probably the most useful one is 202, where the current (normalized) value will be the percentage of flash erase counts remaining. Starts at 100 and counts down to zero (or 1).

173 is also potentially useful, the raw value should be the average erase count of all blocks.

181 is also potentially interesting, the raw value counts non-4K aligned reads in the low bits, non-4K aligned writes in the middle bits, and the sum of the counters in the high bits (all counts represent the actual count divided by 60,000). Since decimal 120260853760 = 0x1C001B0000, it appears that the non-4K read counter is 0, write-counter is 0x1B, and the sum counter is 0x1C. Doesn't quite add up, I'm not sure why. But if you convert to decimal and multiply by 60,000 then the non-4K write is 27*60,000 = 16,200,000 so the lower limit on your writes (each non-4K write must be 512 bytes or more) is 8.3GB. Of course, it could be a lot more than that. But I think it must be less than 2*64GB, since 173 is still raw 0.
 
Last edited:
Just wanted to follow up on this. I swapped out the ssd for one of these.

http://www.ebay.com/itm/320669306249?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

$(KGrHqEOKicE0p-5h-I1BNeJ(oRE7w~~_3.JPG


Did the normal install except deleted the swap partition and selected the embedded kernel.

So far so good.
 
As an eBay Associate, HardForum may earn from qualifying purchases.
Necroing this for an update. PFsense seems to have killed one of my 8GB SDcards at a remote warehouse that I commented on above. It was going on year three and gave up the ghost.
 
I'm pretty sure pfsense killed our SD card it was running on. It was a standard installation, using an SD card -> sata adapter. Now the computer will start, then the HDD light will go on 100%, DHCP and web service are both down, and it gives an error about no disk space, even thought it's using like 10% of the drive. This machine was only used for like 5 months as well, with ~50 people.
 
pfsense will not kill an SSD in 3 months. it's not even mathematically possible for many ssds.
 
Well, it seems that pfsense managed to kill my SSD today. The attribute 170 is most likely the used reserve block count and it run out of spare blocks. It operated with an HPA set to 16 GB (for overprovisioning). Maybe the controller cannot make use of that spare space. I'm currently deciding whether to use one of my spare Scorpio Blue disks or a unused Samsung SSD 830 64GB laying around for some time.

Code:
smartctl 5.43 2012-06-30 r3573 [x86_64-linux-3.5.0-19-generic] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     V4-CT032V4SSD2
Serial Number:    200011423
LU WWN Device Id: 5 00a075 60bebee9f
Firmware Version: S5FAMM22
User Capacity:    32,017,047,552 bytes [32.0 GB]
Sector Size:      512 bytes logical/physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Sun Dec  9 13:54:17 2012 CET
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: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
See vendor-specific Attribute list for failed Attributes.

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:                (  255) seconds.
Offline data collection
capabilities:                    (0x1b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        No Conveyance Self-test supported.
                                        No 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:        (   1) minutes.
Extended self-test routine
recommended polling time:        (   2) minutes.

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     0x000b   100   100   050    Pre-fail  Always       -       155
  9 Power_On_Hours          0x0012   100   100   000    Old_age   Always       -       2652
 12 Power_Cycle_Count       0x0012   100   100   000    Old_age   Always       -       79
 33 Unknown_Attribute       0x0012   100   100   000    Old_age   Always       -       160
168 Unknown_Attribute       0x0012   100   100   000    Old_age   Always       -       0
177 Wear_Leveling_Count     0x0003   100   100   010    Pre-fail  Always       -       47
181 Program_Fail_Cnt_Total  0x0003   100   100   000    Pre-fail  Always       -       0
182 Erase_Fail_Count_Total  0x0003   100   100   000    Pre-fail  Always       -       0
192 Power-Off_Retract_Count 0x0012   100   100   000    Old_age   Always       -       44
170 Unknown_Attribute       0x0003   009   009   010    Pre-fail  Always   FAILING_NOW 1906965479433
173 Unknown_Attribute       0x0012   100   100   000    Old_age   Always       -       288036534
218 Unknown_Attribute       0x000b   100   100   050    Pre-fail  Always       -       0
231 Temperature_Celsius     0x000b   100   100   000    Pre-fail  Always       -       0
232 Available_Reservd_Space 0x000b   100   100   000    Pre-fail  Always       -       444
233 Media_Wearout_Indicator 0x000b   100   100   000    Pre-fail  Always       -       21785
241 Total_LBAs_Written      0x0013   100   100   000    Pre-fail  Always       -       264
242 Total_LBAs_Read         0x0013   100   100   000    Pre-fail  Always       -       18
246 Unknown_Attribute       0x0002   100   100   050    Old_age   Always       -       72019364

SMART Error Log Version: 1
ATA Error Count: 87 (device log contains only the most recent five errors)
        CR = Command Register [HEX]
        FR = Features Register [HEX]
        SC = Sector Count Register [HEX]
        SN = Sector Number Register [HEX]
        CL = Cylinder Low Register [HEX]
        CH = Cylinder High Register [HEX]
        DH = Device/Head Register [HEX]
        DC = Device Command Register [HEX]
        ER = Error register [HEX]
        ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 87 occurred at disk power-on lifetime: 0 hours (0 days + 0 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 60 2f a6 e3 e1  Error: UNC 96 sectors at LBA = 0x01e3a62f = 31696431

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  c8 00 60 2f a6 e3 e1 00      00:01:22.000  READ DMA
  c8 00 20 0f a6 e3 e1 00      00:01:22.000  READ DMA
  c8 00 08 83 e9 e2 e1 00      00:01:22.000  READ DMA
  c8 00 40 ef f4 e2 e1 00      00:01:22.000  READ DMA
  c8 00 0d df 60 e3 e1 00      00:01:22.000  READ DMA

Error 86 occurred at disk power-on lifetime: 0 hours (0 days + 0 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 20 0f a6 e3 e1  Error: UNC 32 sectors at LBA = 0x01e3a60f = 31696399

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  c8 00 20 0f a6 e3 e1 00      00:01:22.000  READ DMA
  c8 00 08 83 e9 e2 e1 00      00:01:22.000  READ DMA
  c8 00 40 ef f4 e2 e1 00      00:01:22.000  READ DMA
  c8 00 0d df 60 e3 e1 00      00:01:22.000  READ DMA
  c8 00 04 4b 41 c9 e0 00      00:01:22.000  READ DMA

Error 85 occurred at disk power-on lifetime: 0 hours (0 days + 0 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 60 2f a6 e3 e1  Error: UNC 96 sectors at LBA = 0x01e3a62f = 31696431

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  c8 00 60 2f a6 e3 e1 00      00:01:21.750  READ DMA
  c8 00 20 0f a6 e3 e1 00      00:01:21.750  READ DMA
  c8 00 04 6b 33 28 e0 00      00:01:21.750  READ DMA
  c8 00 20 8f 26 2e e0 00      00:01:21.750  READ DMA
  c8 00 10 2f 31 c9 e0 00      00:01:21.750  READ DMA

Error 84 occurred at disk power-on lifetime: 0 hours (0 days + 0 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 20 0f a6 e3 e1  Error: UNC 32 sectors at LBA = 0x01e3a60f = 31696399

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  c8 00 20 0f a6 e3 e1 00      00:01:21.750  READ DMA
  c8 00 04 6b 33 28 e0 00      00:01:21.750  READ DMA
  c8 00 20 8f 26 2e e0 00      00:01:21.750  READ DMA
  c8 00 10 2f 31 c9 e0 00      00:01:21.750  READ DMA
  c8 00 30 3f f2 e2 e1 00      00:01:21.750  READ DMA

Error 83 occurred at disk power-on lifetime: 0 hours (0 days + 0 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 60 2f a6 e3 e1  Error: UNC 96 sectors at LBA = 0x01e3a62f = 31696431

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  c8 00 60 2f a6 e3 e1 00      00:01:21.500  READ DMA
  c8 00 20 0f a6 e3 e1 00      00:01:21.500  READ DMA
  c8 00 68 af f2 e2 e1 00      00:01:21.500  READ DMA
  c8 00 c0 6f 95 75 e1 00      00:01:21.500  READ DMA
  c8 00 20 4f 95 75 e1 00      00:01:21.500  READ DMA

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed without error       00%         0         -
# 2  Extended offline    Completed without error       00%       631         -

Device does not support Selective Self Tests/Logging

The extended offline test does not recognize any unreadable sectors in this state by the way.
 
Well, it seems that pfsense managed to kill my SSD today. The attribute 170 is most likely the used reserve block count and it run out of spare blocks.

I would not be so sure about that. Look at attribute 173 ("average erase count of all good blocks") which has raw value 288036534 = 0x 112B 16B6 . The erase count for MLC flash typically reaches its rated end at 3000 or 5000. It certainly does not reach 288 million! So it seems likely the SMART attribute is not being correctly reported by the SSD and/or is not correctly read by smartctl. If you take just the upper or lower 16 bits, it is 4395 or 5814, which is at least plausible for MLC flash. But even if the write amplification is 10, that would be a total of more than 14TB that was written to this SSD. Seems unlikely.

I spent about 10 minutes searching crucial.com and micron.com and I cannot find any documentation on the SMART attributes for the Crucial V4. The only thing I found is a Micron document from 2010-09 that covers SMART in general, but is missing a large number of the attributes from your V4:

http://www.micron.com/~/media/Documents/Products/Technical Note/Solid State Storage/tnfd03.pdf

Maybe if you contact Crucial they can direct you to the specifications for the V4 SMART attributes, but I doubt it. Out of the consumer SSD makers that I respect (Plextor, Samsung, Crucial, Intel) the only one that has decent SMART attribute documentation for their SSDs is Intel. The documentation from the others is pathetic.

Anyway, looking at the Micron document, it says of attribute 170:

FTL reserved block count (Total BB - OTP BB)
This attribute tracks the number of blocks/pages utilized to replace bad blocks. This is
based on specified NAND part/die

Also, table 3 on attribute table format:

Code:
Length (bytes), attribute ID, value
4 , Data , 32 bits of raw attribute data
2 , Attribute specific , Some attributes use these two bytes to store raw
data

So it seems the raw values should be either 32 bits or 32 + 16 bits

Now, 1906965479433 = 0x 01BC 0000 0009 so the raw value of attribute 170 appears to contain 48 bits of data. It is not clear to me how to read it (the specification is ambiguous), but I guess it is either saying there are 9 bad blocks (reading the low 32 bits) or 0x01BC = 444 bad blocks (reading the high 16 bits).

But I strongly suspect that smartctl is misinterpreting the value as failing when it probably is not.

I think the most likely explanation here is a faulty Crucial V4 SSD. I doubt that pfsense wore out the flash.

EDIT:
One other odd thing is that smartctl did not present the attributes in sequential order. I don't remember seeing it do that before, but that could just be me.
 
Last edited:
As an eBay Associate, HardForum may earn from qualifying purchases.
Back
Top