RAIDZはRAID5に近い方法で、パリティをつくりデバイスの冗長性を担保する。
ソフトウェアRAID5は書き込みが遅く悪名をとどろかしたが、RAIDZの性能は比較的良いようである。
後で拡張できるかを確かめたいので、とりあえず1つディスクを余らせて作ってみる。コマンド1つでできて簡単だ。
# zpool create zfsz raidz c0t0d0s0 c0t0d0s1 c0t0d0s3 c0t0d0s4 c0t0d0s5
----確認
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
zfsz 24.9G 87K 24.9G 0% ONLINE -
→5GB×5で25GBになっている。パリティ的なものはないのかな?
# zpool status
pool: zfsz
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
zfsz ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c0t0d0s0 ONLINE 0 0 0
c0t0d0s1 ONLINE 0 0 0
c0t0d0s3 ONLINE 0 0 0
c0t0d0s4 ONLINE 0 0 0
c0t0d0s5 ONLINE 0 0 0
errors: No known data errors
→5GBが5本組み込まれている。
----とりあえずファイル作成
# timex mkfile 1g hogehoge
real 2:06.93
user 0.34
sys 16.57
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
zfsz 24.9G 1.25G 23.6G 5% ONLINE -
→1GBを作ったのに、1.25GB消費したことになっている。パリティ分余慶に消費したということみたい。
# df -h /zfsz
Filesystem size used avail capacity Mounted on
zfsz 20G 1023M 19G 6% /zfsz
→良くみるとサイズは20GBになっている。zpoolとdfではサイズの考え方が違っているようだ。どっちでもいいがわかりにくい。
---- ディスクをとりあえず追加してみる
# zpool add -f zfsz c0t0d0s6
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
zfsz 29.8G 1.25G 28.6G 4% ONLINE -
> sudo zpool status
pool: zfsz
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
zfsz ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c0t0d0s0 ONLINE 0 0 0
c0t0d0s1 ONLINE 0 0 0
c0t0d0s3 ONLINE 0 0 0
c0t0d0s4 ONLINE 0 0 0
c0t0d0s5 ONLINE 0 0 0
c0t0d0s6 ONLINE 0 0 0
errors: No known data errors
# df -h /zfsz
Filesystem size used avail capacity Mounted on
zfsz 24G 1023M 23G 5% /zfsz
→zpool statusを見る限り、変な形で追加されているようにもみえる。
zpool listでは使用量が変化していない。RAIDZにもし組み込まれているのであれば、パリティ率も変化するのでサイズも変化しているが、ここに変化は見られない。やっぱりRAIDZ+コンカチ見たいになっているようだ。。。。失敗!!
とりあえず、取り除いて、作り直す。
# zpool remove zfsz c0t0d0s6
cannot remove c0t0d0s6: only hot spares can be removed
→removeできないとおっしゃるようで。
# zpool offline zfsz c0t0d0s6
cannot offline c0t0d0s6: no valid replicas
→offlineもききません。removeもofflineも聞かないとなると、戻すコマンドはない。
この辺はまづいつくりですね。もう一度作り直し。。。
# zpool destroy zfsz
---- 再作成、今度はaddの後にraidzを指定する
# zpool create zfsz raidz c0t0d0s0 c0t0d0s1 c0t0d0s3 c0t0d0s4 c0t0d0s5
# zpool add zfsz raidz c0t0d0s6
invalid vdev specification: raidz requires at least 2 devices
→addするには2つ以上のデバイスが必要らしい。もう一度やり直し。
# zpool destroy zfsz
---- 今度は追加デバイスを2個用意する
# zpool create zfsz raidz c0t0d0s0 c0t0d0s1 c0t0d0s3 c0t0d0s4
# zpool add -f zfsz raidz c0t0d0s5 c0t0d0s6
---- 確認
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
zfsz 29.8G 287K 29.8G 0% ONLINE -
# zpool status
pool: zfsz
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
zfsz ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c0t0d0s0 ONLINE 0 0 0
c0t0d0s1 ONLINE 0 0 0
c0t0d0s3 ONLINE 0 0 0
c0t0d0s4 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c0t0d0s5 ONLINE 0 0 0
c0t0d0s6 ONLINE 0 0 0
errors: No known data errors
→よくわからないことになっている。とりあえず書き込みテストしてみる。
# timex mkfile 1g hogehoge
real 2:31.86
user 0.34
sys 16.29
→なんか少し遅い。。
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
zfsz 29.8G 1.50G 28.3G 5% ONLINE -
→1.5GB使用ということは1.5倍なので、3本RAID5みたいなことになっている。。
# df -h /zfsz
Filesystem size used avail capacity Mounted on
zfsz 20G 1.0G 19G 6% /zfsz
→使用できる容量が20GBということは4本分。最初の4本RAIDZで3本分、次の2本RAIDZで1本分の計4本ということのようだ。つまり、RAIDZのストライピングみたいになっているようだ。
==== きれいな形にするので、もう一回作り直し
# zpool destroy zfsz
# zpool create zfsz raidz c0t0d0s0 c0t0d0s1 c0t0d0s3 c0t0d0s4 c0t0d0s5 c0t0d0s6
---- 確認
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
zfsz 29.8G 85K 29.7G 0% ONLINE -
# zpool status
pool: zfsz
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
zfsz ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c0t0d0s0 ONLINE 0 0 0
c0t0d0s1 ONLINE 0 0 0
c0t0d0s3 ONLINE 0 0 0
c0t0d0s4 ONLINE 0 0 0
c0t0d0s5 ONLINE 0 0 0
c0t0d0s6 ONLINE 0 0 0
errors: No known data errors
→できた。でもオンラインでの追加は難しいようだ
0 件のコメント:
コメントを投稿