cracauer@
Developer
I have another Seagate problem here. However, I think there might be opportunity here for the ZFS code to do better. This behavior has no showing in
Long story:
I have one zpool that had one, now two ZFS filesystems inside that will make the command line
Both have gotten into this state with heavy deletions (
I booted into a 10.2-prerelease kernel to see whether that one would mount it but same behavior. I did one scrub without seeing errors and without fixing this. As you can see below, a new scrub I started now is very slow.
Let's test the individual disks for read throughput.
All right, so as you can see ada4 is "a bit" slow. It is probably stuck in a sector reallocation with that great storage manufacturer's software.
dmesg
or zpool status
and it probably should, instead of just hanging indefinitely.Long story:
I have one zpool that had one, now two ZFS filesystems inside that will make the command line
zfs mount
hang indefinitely.Both have gotten into this state with heavy deletions (
rsync
) while under 10.1-release (amd64, 12 GB RAM, ). I believe both deletions ended up in a machine hang. After reboot all other filesystems in the pool can still be mounted. zfs mount
is in STATE zio->i and there are no system calls. The kernel is not CPU-busy.I booted into a 10.2-prerelease kernel to see whether that one would mount it but same behavior. I did one scrub without seeing errors and without fixing this. As you can see below, a new scrub I started now is very slow.
Code:
~(flippers)2% sud zpool status
pool: cbackup6
state: ONLINE
scan: scrub in progress since Sun Jul 5 11:58:25 2015
10.9M scanned out of 7.90T at 37.7K/s, (scan is slow, no estimated time)
0 repaired, 0.00% done
config:
NAME STATE READ WRITE CKSUM
cbackup6 ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
ada0p3 ONLINE 0 0 0
ada1p3 ONLINE 0 0 0
ada2p3 ONLINE 0 0 0
ada3p3 ONLINE 0 0 0
ada4p3 ONLINE 0 0 0
errors: No known data errors
Let's test the individual disks for read throughput.
Code:
~(flippers)7% sud sh -c "cstream -o- -T1 < /dev/ada0p3"
126541824 B 120.7 MB 1.00 s 126026756 B/s 120.19 MB/s
257990656 B 246.0 MB 2.02 s 127887250 B/s 121.96 MB/s
^C~(flippers)8% sud sh -c "cstream -o- -T1 < /dev/ada1p3"
124739584 B 119.0 MB 1.00 s 124602276 B/s 118.83 MB/s
255311872 B 243.5 MB 2.01 s 127209809 B/s 121.32 MB/s
^C~(flippers)9% sud sh -c "cstream -o- -T1 < /dev/ada2p3"
129359872 B 123.4 MB 1.03 s 125215607 B/s 119.41 MB/s
260931584 B 248.8 MB 2.05 s 127561604 B/s 121.65 MB/s
^C~(flippers)10% sud sh -c "cstream -o- -T1 < /dev/ada3p3"
126869504 B 121.0 MB 1.01 s 125361627 B/s 119.55 MB/s
257261568 B 245.3 MB 2.02 s 127624332 B/s 121.71 MB/s
^C~(flippers)11% sud sh -c "cstream -o- -T1 < /dev/ada4p3"
0 B 0.0 B 1.53 s 0 B/s 0.00 B/s
8192 B 8.0 KB 3.07 s 2664 B/s 2.60 KB/s
49152 B 48.0 KB 4.62 s 10628 B/s 10.38 KB/s
90112 B 88.0 KB 6.16 s 14633 B/s 14.29 KB/s
114688 B 112.0 KB 7.70 s 14895 B/s 14.55 KB/s
155648 B 152.0 KB 9.23 s 16857 B/s 16.46 KB/s
~(flippers)7% sud sh -c "cstream -o- -T1 < /dev/ada0p3"
126541824 B 120.7 MB 1.00 s 126026756 B/s 120.19 MB/s
257990656 B 246.0 MB 2.02 s 127887250 B/s 121.96 MB/s
^C~(flippers)8% sud sh -c "cstream -o- -T1 < /dev/ada1p3"
124739584 B 119.0 MB 1.00 s 124602276 B/s 118.83 MB/s
255311872 B 243.5 MB 2.01 s 127209809 B/s 121.32 MB/s
^C~(flippers)9% sud sh -c "cstream -o- -T1 < /dev/ada2p3"
129359872 B 123.4 MB 1.03 s 125215607 B/s 119.41 MB/s
260931584 B 248.8 MB 2.05 s 127561604 B/s 121.65 MB/s
^C~(flippers)10% sud sh -c "cstream -o- -T1 < /dev/ada3p3"
126869504 B 121.0 MB 1.01 s 125361627 B/s 119.55 MB/s
257261568 B 245.3 MB 2.02 s 127624332 B/s 121.71 MB/s
^C~(flippers)11% sud sh -c "cstream -o- -T1 < /dev/ada4p3"
0 B 0.0 B 1.53 s 0 B/s 0.00 B/s
8192 B 8.0 KB 3.07 s 2664 B/s 2.60 KB/s
49152 B 48.0 KB 4.62 s 10628 B/s 10.38 KB/s
90112 B 88.0 KB 6.16 s 14633 B/s 14.29 KB/s
114688 B 112.0 KB 7.70 s 14895 B/s 14.55 KB/s
155648 B 152.0 KB 9.23 s 16857 B/s 16.46 KB/s
All right, so as you can see ada4 is "a bit" slow. It is probably stuck in a sector reallocation with that great storage manufacturer's software.
smartctl
reveals where the actual problem is, I highlighted the key to brokenness in bold red.
Code:
/tmp(flippers)14% sud smartctl -a /dev/ada4
smartctl 6.2 2014-02-18 r3874 [FreeBSD 10.2-PRERELEASE amd64] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: [b][color=red]Seagate[/color][/b] Barracuda 7200.14 (AF)
Device Model: ST3000DM001-9YN166
Serial Number: W1F0KCXQ
LU WWN Device Id: 5 000c50 051118b68
Firmware Version: CC9E
User Capacity: 3,000,592,982,016 bytes [3.00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: 7200 rpm
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA8-ACS T13/1699-D revision 4
SATA Version is: SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is: Sun Jul 5 12:09:41 2015 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: (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: ( 575) seconds.
Offline data collection
capabilities: (0x73) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
No 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: ( 1) minutes.
Extended self-test routine
recommended polling time: ( 338) minutes.
Conveyance self-test routine
recommended polling time: ( 2) minutes.
SCT capabilities: (0x3081) SCT Status supported.
SMART Attributes Data Structure revision number: 10
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 108 099 006 Pre-fail Always - 19330312
3 Spin_Up_Time 0x0003 093 092 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 98
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 083 060 030 Pre-fail Always - 4506389487
9 Power_On_Hours 0x0032 080 080 000 Old_age Always - 18124
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 98
183 Runtime_Bad_Block 0x0032 096 096 000 Old_age Always - 4
184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0
187 Reported_Uncorrect 0x0032 075 075 000 Old_age Always - 25
188 Command_Timeout 0x0032 100 097 000 Old_age Always - 4 6 10
189 High_Fly_Writes 0x003a 099 099 000 Old_age Always - 1
190 Airflow_Temperature_Cel 0x0022 054 048 045 Old_age Always - 46 (Min/Max 42/46)
191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 0
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 79
193 Load_Cycle_Count 0x0032 096 096 000 Old_age Always - 9423
194 Temperature_Celsius 0x0022 046 052 000 Old_age Always - 46 (0 15 0 0 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 200 200 000 Old_age Always - 9
240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 12943h+01m+35.960s
241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 68465224119808
242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 77857227983056
SMART Error Log Version: 1
ATA Error Count: 24 (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 24 occurred at disk power-on lifetime: 7095 hours (295 days + 15 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
-- -- -- -- -- -- --