ZFS では使えないハードディスクもあるようだ2009年03月04日 14時08分13秒

4GB のディスクは容量が少なくて大変なので、圧縮の行なえる ZFS を試してみることにした。

zfs 自体は調べた通りに作業を行なえば問題なくできた。zfs のコマンドに不慣れなので、どのコマンドを使えば良いかを調べるのに手間取ったりもしたが、しっかりと動いているように見えた。

しかし、zfs が時折エラーを吐く。


(da0:umass-sim0:0:0:0): SYNCHRONIZE CACHE. CDB: 35 0 0 0 0 0 0 0 0 0
(da0:umass-sim0:0:0:0): CAM Status: SCSI Status Error
(da0:umass-sim0:0:0:0): SCSI Status: Check Condition
(da0:umass-sim0:0:0:0): ILLEGAL REQUEST asc:24,0
(da0:umass-sim0:0:0:0): Invalid field in CDB
(da0:umass-sim0:0:0:0): Unretryable error
(da0:umass-sim0:0:0:0): SYNCHRONIZE CACHE. CDB: 35 0 0 0 0 0 0 0 0 0
(da0:umass-sim0:0:0:0): CAM Status: SCSI Status Error
(da0:umass-sim0:0:0:0): SCSI Status: Check Condition
(da0:umass-sim0:0:0:0): ILLEGAL REQUEST asc:24,0
(da0:umass-sim0:0:0:0): Invalid field in CDB
(da0:umass-sim0:0:0:0): Unretryable error
ZFSvdev I/O failure, zpool=scratch path=/dev/da0p2 offset=169369600 size=89088 e
rror=5
ZFSvdev I/O failure, zpool=scratch path=/dev/da0p2 offset=183566336 size=65536 e
rror=5
(da0:umass-sim0:0:0:0): SYNCHRONIZE CACHE. CDB: 35 0 0 0 0 0 0 0 0 0
(da0:umass-sim0:0:0:0): CAM Status: SCSI Status Error
(da0:umass-sim0:0:0:0): SCSI Status: Check Condition
(da0:umass-sim0:0:0:0): ILLEGAL REQUEST asc:24,0
(da0:umass-sim0:0:0:0): Invalid field in CDB
(da0:umass-sim0:0:0:0): Unretryable error
(da0:umass-sim0:0:0:0): SYNCHRONIZE CACHE. CDB: 35 0 0 0 0 0 0 0 0 0
(da0:umass-sim0:0:0:0): CAM Status: SCSI Status Error
(da0:umass-sim0:0:0:0): SCSI Status: Check Condition
(da0:umass-sim0:0:0:0): ILLEGAL REQUEST asc:24,0
(da0:umass-sim0:0:0:0): Invalid field in CDB
(da0:umass-sim0:0:0:0): Unretryable error

ディスクイメージからファイルを復旧している最中なので、ファイルを調べてみたが問題はない。しかし、ディスクが忙しいとき程このエーラが沢山出て来る。

エラーを良く見直してみると、見覚えのあるエラーだった。


GEOM_JOURNAL: Journal 2697262758: da0p2 contains journal.
GEOM_JOURNAL: Journal 2697262758: da0p1 contains data.
GEOM_JOURNAL: Journal da0p1 clean.
(da0:umass-sim0:0:0:0): SYNCHRONIZE CACHE. CDB: 35 0 0 0 0 0 0 0 0 0 
(da0:umass-sim0:0:0:0): CAM Status: SCSI Status Error
(da0:umass-sim0:0:0:0): SCSI Status: Check Condition
(da0:umass-sim0:0:0:0): ILLEGAL REQUEST asc:24,0
(da0:umass-sim0:0:0:0): Invalid field in CDB
(da0:umass-sim0:0:0:0): Unretryable error
GEOM_JOURNAL: BIO_FLUSH not supported by da0p2.
(da0:umass-sim0:0:0:0): SYNCHRONIZE CACHE. CDB: 35 0 0 0 0 0 0 0 0 0 
(da0:umass-sim0:0:0:0): CAM Status: SCSI Status Error
(da0:umass-sim0:0:0:0): SCSI Status: Check Condition
(da0:umass-sim0:0:0:0): ILLEGAL REQUEST asc:24,0
(da0:umass-sim0:0:0:0): Invalid field in CDB
(da0:umass-sim0:0:0:0): Unretryable error
GEOM_JOURNAL: BIO_FLUSH not supported by da0p1.

gjournal を使う時とエラーが同じだ。gjournal は IO の FLUSH が実装されていないと報告してくる。zfs も恐らく同じ理由だろう。

使っているとあまりにこのエラーが多くて、実用に耐えられなかった。結局、gjounral に戻した。この 1998 年製の 2.5 inch ディスクが悪いのか、USB アダプタが悪いのかは判らない。しかし、zfs に使うためには、FLUSH コマンドが使えるディスクでなければいけないようだ。

次回