Solaris
如何對基於 Illumos 的系統上的磁碟控制器進行故障排除?
我正在使用基於 Illumos 的 OmniOS。
我有一個包含兩個鏡像的 SSD 的 ZFS 池;池,稱為
data
報告其%b
為 100;下面是iostat -xn
:r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 0.0 8.0 0.0 61.5 8.7 4.5 1092.6 556.8 39 100 data
不幸的是,實際上並沒有很多吞吐量。
iotop
每秒報告23552
字節數。我也跑了
iostat -E
,它報告了很多Transport Errors
;我們改變了港口,他們走了。我認為驅動器可能存在問題;SMART 報告沒有問題;我跑了多個
smartctl -t short
andsmartctl -t long
; 未報告任何問題。我跑了
fmadm faulty
,它報告了以下內容:--------------- ------------------------------------ -------------- --------- TIME EVENT-ID MSG-ID SEVERITY --------------- ------------------------------------ -------------- --------- Jun 01 18:34:01 5fdf0c4c-5627-ccaa-d41e-fc5b2d282ab2 ZFS-8000-D3 Major Host : sys1 Platform : xxxx-xxxx Chassis_id : xxxxxxx Product_sn : Fault class : fault.fs.zfs.device Affects : zfs://pool=data/vdev=cad34c3e3be42919 faulted but still in service Problem in : zfs://pool=data/vdev=cad34c3e3be42919 faulted but still in service Description : A ZFS device failed. Refer to http://illumos.org/msg/ZFS-8000-D3 for more information. Response : No automated response will occur. Impact : Fault tolerance of the pool may be compromised. Action : Run 'zpool status -x' and replace the bad device.
就像它暗示我跑了
zpool status -x
,它報告了all pools are healthy
。我執行了一些 DTraces,發現所有的 IO 活動都來自
<none>
(對於文件);這是元數據;所以實際上沒有任何文件 IO 正在進行。當我執行
kstat -p zone_vfs
它報告以下內容:zone_vfs:0:global:100ms_ops 21412 zone_vfs:0:global:10ms_ops 95554 zone_vfs:0:global:10s_ops 1639 zone_vfs:0:global:1s_ops 20752 zone_vfs:0:global:class zone_vfs zone_vfs:0:global:crtime 0 zone_vfs:0:global:delay_cnt 0 zone_vfs:0:global:delay_time 0 zone_vfs:0:global:nread 69700628762 zone_vfs:0:global:nwritten 42450222087 zone_vfs:0:global:reads 14837387 zone_vfs:0:global:rlentime 229340224122 zone_vfs:0:global:rtime 202749379182 zone_vfs:0:global:snaptime 168018.106250637 zone_vfs:0:global:wlentime 153502283827640 zone_vfs:0:global:writes 2599025 zone_vfs:0:global:wtime 113171882481275 zone_vfs:0:global:zonename global
高額
1s_ops
和10s_ops
非常令人擔憂。我認為它是控制器,但我不能確定;有人有想法麼?或者我在哪裡可以獲得更多資訊?
data
池是一個加密的lofi
ZFS 容器;這就是問題。我能夠確認這是 lofi 的“虛擬”控制器的性能問題,原因如下:
- lofi + zfs + 加密的吞吐量約為10-25MB/s
- lofi + zfs + no-encryption 吞吐量約30MB/s
- 沒有使用普通舊 ZFS 的 lofi 的吞吐量約為 250MB/s
- 控制器報告 100%的
data
使用率,而真正的控制器幾乎沒有。- 在具有相同設置的多台機器上進行了測試,結果基本相同。
這裡的問題是
lofi
;而不是磁碟控制器。