2008年1月26日 星期六

zfs again

今天才發現我弄錯了,昨天那篇提到的只是不會 cache,不會導致 kmem_map too small。

http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c

version 1.4 調了一些參數試圖緩和 memory 用光的情形...

2008年1月25日 星期五

zfs 雷

i386 跑 zfs 很容易會遇到 kmem_map too small,然後 panic。(搞錯了,不是這個 patch,請看下一篇)

剛才 rafan 貼了一段 message 給我

Change type of kmem_used() and kmem_size() functions to uint64_t, so it
doesn't overflow in arc.c in this check:

if (kmem_used() > (kmem_size() * 4) / 5)
return (1);

With this bug ZFS almost doesn't cache.

Only 32bit machines are affected that have vm.kmem_size set to values >=1GB.


src/sys/compat/opensolaris/kern/opensolaris_kmem.c#rev1.3,還有 diff


搞笑 XD

2008年1月20日 星期日

SCSI--

這一兩個學期來,實驗室買了幾台 RAID 來裝大家實驗用的資料。幾個禮拜前,file system 爆炸,我們損失了不少資料 :(

重點提要:

  1. 同一個 channel 不要接超過三組 RAID

  2. 同一個 channel 不要接不同廠牌的 RAID

  3. SCSI 線跟 terminator 是消耗品



接 RAID 的機器是跑 FreeBSD 7.0-PRERELEASE。一開始發現異常,是 zfs 說他寫進去的資料跟讀出來的 checksum 不一樣,於是就爆了三個 zfs 的 partition。接在同一個 SCSI channel 的 RAID 共有四台,三台 proware 跟一台 festora(?),zfs 叫有 error 的是其中兩台 proware,所以我們懷疑是 RAID 本身有問題。

後來找了 proware 的工程師來幫我檢查 RAID,他說我們接四組 RAID 太多了... 小時候學到的 SCSI device 不就是要用串的嗎,可是沒想到四組就算太多 orz 而且最好不要把不同廠牌的 RAID 接在一起... 因為訊號可能會互相干擾 @@ (我以為這應該有標準,可是看起來接在一起的確不太好...)

於是我們把四台 RAID 分到兩張 scsi 卡上(之前因為某些原因沒這麼做),其中一個 channel 是一組 proware + 一組 festora。然後今天下午一直發現 zfs 又開始抱怨了... 一個月前這麼接還沒事的耶 orz 真是 ooxx 現在改成三組 proware 接同一張 scsi card,另一組自己接一張,zfs 就不叫了。

(%&$#@!*(%!#@^!)