妄想日記 by 妄想エンジン


FreeBSD で AFT の HDD を扱う

という題名でいろいろいろ書こうと思ったが、結果的には何も面白いことはない。
とりあえず、
しののの - FreeBSD/BigSector HDD
http://homebsd.homeunix.net/~shino/pukiwiki/index.php?FreeBSD%2FBigSecto...
とか
FreeBSD(with ZFS)でWDのAFTなHDDを使う
http://d.hatena.ne.jp/nawolets/20100826/1282844451

を参考にさせていただきました。私のところには上記のページ以上のネタはありませぬ。

ということで、ちょっと前と先日、二度にわたってメインのファイルサーバのHDDが昇天した。メインのファイルサーバは RAID Z2 で RAID を組んであるので2つまでは HDD が逝っても大丈夫だが、やはり心配だし、お仕事のデータもいろいろ入っているのでその都度交換した。
もともとは 1.5TB x 6 で組んであるのだが、容量的にちょっと心もとないし、HDD の価格が落ち着いてきたらまた交換しようと思うのでとりあえず2台とも 3TB のものにした。で、当然のことながら、最近の 3TB の HDD は AFT で 4K セクタでアクセスし容量を稼ぐようになっている。だが、 FreeBSD 8.2 の zfs では 4kセクタに対応していないから、512bセクタのエミュレーションになってしまい、速度が出ないらしい。
ということで、前回は gnop コマンドを使って、 4kセクタでアクセスする技を試みたのだが、zpool を resilver するさいに、

cannot replace /dev/ad8 with /dev/ad8.nop: devices have different sector alignment

と、怒られてしまったのであった。

で、今回もgnopで4Kセクタアクセスはあきらめたのだが、領域を確保するさいに、4kの境界で切り分けると1.5倍程度速くなるという情報を見て、試してみることにした。

ということで、まずは何も設定しない状態。

> time sudo dd if=/dev/zero of=/dev/ad8 bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 10.028821 secs (107065609 bytes/sec)
0.007u 0.758s 0:10.06 7.4% 42+1618k 0+8192io 0pf+0w

まあ大体100MiB/sec くらい書き込みで出てる。

つぎに、gnop で4kセクタアクセス

>sudo gnop create -S 4096 ad8
>time sudo dd if=/dev/zero of=/dev/ad8.nop bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 11.118189 secs (96575246 bytes/sec)
0.000u 0.770s 0:11.16 6.8% 40+1534k 0+8192io 0pf+0w

あれ、あんまり変わらないぞ?

では gpart で 4k境界を考えつつパーテーション作成。

> sudo gpart create -s gpt ad8
ad8 created
> sudo gpart add -b 40 -t freebsd ad8
ad8s1 added
> gpart list ad8
Geom name: ad8
state: OK
fwheads: 16
fwsectors: 63
last: 5860533134
first: 34
entries: 128
scheme: GPT
Providers:
1. Name: ad8s1
Mediasize: 3000592944640 (2.7T)
Sectorsize: 512
Mode: r0w0e0
rawuuid: 0c5c1933-26c5-11e1-a735-001b21287388
rawtype: 516e7cb4-6ecf-11d6-8ff8-00022d09712b
label: (null)
length: 3000592944640
offset: 20480
type: freebsd
index: 1
end: 5860533134
start: 40
Consumers:
1. Name: ad8
Mediasize: 3000592982016 (2.7T)
Sectorsize: 512
Mode: r0w0e0
> time sudo dd if=/dev/zero of=/dev/ad8s1 bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 12.209801 secs (87940977 bytes/sec)
0.035u 0.828s 0:12.37 6.8% 53+1640k 0+8192io 0pf+0w

あ、あれ?ちょっと遅い?

最後に、さらにgnop を重ねてみる。

> sudo gnop create -S 4096 ad8s1
> time sudo dd if=/dev/zero of=/dev/ad8s1.nop bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 9.835190 secs (109173470 bytes/sec)
0.000u 0.380s 0:09.98 3.8% 23+1315k 0+8192io 0pf+0w

あらら?

ということで、残念ながらあまり変化なしという結果になりました。

おまけ。

> sudo zpool replace zp ad8
> zpool status
pool: zp
state: DEGRADED
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scrub: resilver in progress for 0h3m, 0.00% done, 2738h11m to go
config:

NAME STATE READ WRITE CKSUM
zp DEGRADED 0 0 0
raidz2 DEGRADED 0 0 0
ad14 ONLINE 0 0 0
ad12 ONLINE 0 0 0
ad10 ONLINE 0 0 0
replacing DEGRADED 0 0 0
ad8/old UNAVAIL 0 0 0 cannot open
ad8 ONLINE 0 0 0 21.2M resilvered
ad4 ONLINE 0 0 0
ad6 ONLINE 0 0 0

errors: No known data errors

しばらくすると時間はおちついてくるけど、前回の記録は100hくらいかかってるので、今回もそのくらいかな。

ツイート
|top |アフィリエイト |windowsネタ |料理メモ |コンタクト |twitter |
さわやかなエロスを目指す--妄想エンジン ©1996-2022
コンテンツ配信