md raid1 ext3 和 4k 扇區因目錄操作而變慢
我最近從硬體 RAID1 機箱轉移到使用兩個帶 md 的 eSATA 驅動器。一切似乎都執行良好,除了目錄遍歷/列表有時會爬網(大約 10 秒)。我正在使用 ext3 文件系統,塊大小設置為 4K。
以下是一些重要的命令的相關輸出:
mdadm –詳細資訊:
/dev/md127: Version : 1.2 Creation Time : Sat Nov 16 09:46:52 2013 Raid Level : raid1 Array Size : 976630336 (931.39 GiB 1000.07 GB) Used Dev Size : 976630336 (931.39 GiB 1000.07 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Tue Nov 19 01:07:59 2013 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Events : 19691 Number Major Minor RaidDevice State 2 8 17 0 active sync /dev/sdb1 1 8 1 1 active sync /dev/sda1
fdisk -l /dev/sd{a,b}:
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0xb410a639 Device Boot Start End Blocks Id System /dev/sda1 2048 1953525167 976761560 83 Linux Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x261c8b44 Device Boot Start End Blocks Id System /dev/sdb1 2048 1953525167 976761560 83 Linux
時間 dumpe2fs /dev/md127 |grep 大小:
dumpe2fs 1.42.7 (21-Jan-2013) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file Block size: 4096 Fragment size: 4096 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal size: 128M real 2m14.242s user 0m2.286s sys 0m0.352s
據我了解,我在這些驅動器上有 4K 扇區(最近的 WD reds),但分區/文件系統似乎正確對齊。由於看起來我正在使用 md 元數據版本 1.2,我認為我也很好(基於mdadm raid1 和 4k 驅動器上的塊大小(或塊大小)?)。我沒有在網上找到答案的一件事是 inode 大小是否為 256 會導致問題。並非所有操作都很慢,似乎緩衝區記憶體在保持流暢(應該如此)方面做得很好。
我的核心版本是 3.11.2
編輯:新資訊,2013-11-19
mdadm --examine /dev/sd{a,b}1 | grep -i offset Data Offset : 262144 sectors Super Offset : 8 sectors Data Offset : 262144 sectors Super Offset : 8 sectors
此外,我正在安裝文件系統,
noatime,nodiratime
但我不太願意在日誌方面搞砸,因為如果我足夠關心擁有 RAID1,它可能會弄巧成拙。我很想打開目錄索引編輯 2013-11-20
昨天我嘗試打開 ext3 的目錄索引,然後跑去
e2fsck -D -f
看看是否有幫助。不幸的是,它沒有。我開始懷疑這可能是硬體問題(或者 md raid1 over eSATA 真的很愚蠢嗎?)。我正在考慮將每個驅動器離線並查看它們單獨的性能。編輯 2013-11-21
iostat -kx 10 |grep -P “(sda|sdb|設備)”:
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.37 1.17 0.06 0.11 1.80 5.10 84.44 0.03 165.91 64.66 221.40 100.61 1.64 sdb 13.72 1.17 2.46 0.11 110.89 5.10 90.34 0.08 32.02 6.46 628.90 9.94 2.55 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
我將輸出截斷,因為它都是 0.00%
我真的覺得它應該與 ext4 與 ext3 無關,因為這不僅僅是感覺有點慢,它可能需要幾十秒到一分鐘的時間,並且對選項卡自動完成或執行 ls 進行一些更改
編輯:可能是硬體問題,確認後將關閉問題
越想越想是不是我的eSATA卡。我目前正在使用這個:http ://www.amazon.com/StarTech-PEXESAT32-Express-eSATA-Controller/dp/B003GSGMPU 但是,我剛剛檢查了 dmesg 並且上面到處都是這些消息:
[363802.847117] ata1.00: status: { DRDY } [363802.847121] ata1: hard resetting link [363804.979044] ata2: softreset failed (SRST command error) [363804.979047] ata2: reset failed (errno=-5), retrying in 8 secs [363804.979059] ata1: softreset failed (SRST command error) [363804.979064] ata1: reset failed (errno=-5), retrying in 8 secs [363812.847047] ata1: hard resetting link [363812.847061] ata2: hard resetting link [363814.979063] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 10) [363814.979106] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 10) .... [364598.751086] ata2.00: status: { DRDY } [364598.751091] ata2: hard resetting link [364600.883031] ata2: softreset failed (SRST command error) [364600.883038] ata2: reset failed (errno=-5), retrying in 8 secs [364608.751043] ata2: hard resetting link [364610.883050] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 10) [364610.884328] ata2.00: configured for UDMA/100 [364610.884336] ata2.00: device reported invalid CHS sector 0 [364610.884342] ata2: EH complete
我還將購買較短的屏蔽 eSATA 電纜,因為我想知道是否存在干擾。
這最終成為一個硬體問題
切換到新的屏蔽電纜並沒有幫助,但用這個替換舊卡:http: //www.amazon.com/gp/product/B000NTM9SY確實擺脫了錯誤消息和奇怪的行為。如果有任何變化,將發布新內容。
SATA 機箱的重要提示:
即使在完成上述操作後,只要驅動器空閒一段時間,任何驅動器操作都會非常緩慢(只需停止 10-30 秒)。我使用的機箱有一個 eSATA 介面,但由 USB 供電。我確定這是因為它沒有足夠的動力來旋轉,所以我嘗試了幾件事:
- 使用外部更高電流的 USB 電源(以防埠僅提供 500mA 的最小值)
- 禁用降速
hdparm -S 0 /dev/sdX
(這大大緩解了問題,但並沒有完全解決)- 通過禁用高級電源管理
hdparm -B 255 /dev/sdX
(同樣,沒有完全解決)最終,我發現 Western Digital 有一個用於降低功率旋轉的跳線設置 - 專為這個案例設計!
我使用的驅動器是:WD Red WD10JFCX 1TB IntelliPower 2.5" http://support.wdc.com/images/kb/scrp_connect.jpg
-B 255
請注意,我仍然在沒有所有電源管理和降速功能的情況下執行(仍然-S 0
在 hdparm 上)。最終判決
不幸的是,RPS 並沒有解決我所有的問題,只是降低了幅度和頻率。我相信問題最終是由於外殼無法提供足夠的電力(即使我使用 AC-USB 適配器)。我最終買了這個外殼:
http://www.amazon.com/MiniPro-eSATA-6Gbps-External-Enclosure/dp/B003XEZ33Y
在過去的三周里,一切都完美無缺。