gvirstor 再挑戦2006年10月03日 06時48分53秒

givrstor を再度挑戦。今回は使えた。まずは、md デバイスを準備。

# dd if=/dev/zero of=md.1 seek=999 bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes transferred in 0.032176 secs (32588744 bytes/sec)
# dd if=/dev/zero of=md.2 seek=999 bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes transferred in 0.033871 secs (30957988 bytes/sec)
# dd if=/dev/zero of=md.3 seek=999 bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes transferred in 0.033340 secs (31451011 bytes/sec)
# mdconfig -a -t vnode -f md.1 
md2
# mdconfig -a -t vnode -f md.2
md3
# mdconfig -a -t vnode -f md.3
md4

gvirstor の構築は前回と同じ。


# cd /var/tmp
# tar xf ~/gvirstor-beta3.tbz
# cd gvirstor/
# make
Warning: Object directory not changed from original /var/tmp/gvirstor
@ -> /usr/src/sys
machine -> /usr/src/sys/i386/include
cc -O2 -fno-strict-aliasing -pipe -g -DINVARIANTS -DINVARIANT_SUPPORT -DWITNESS 
...
# make so
gcc -o geom_virstor.so -lgeom -shared -export-dynamic -Wall -I/usr/src/sbin/geom geom_virstor.c
binstream.c g_virstor_md.c /usr/src/sbin/geom/misc/subr.c
strip geom_virstor.so
ln -f -s /sbin/geom gvirstor
# make install
install -o root -g wheel -m 555   geom_virstor.ko /boot/kernel
kldxref /boot/kernel

ここまでは、前回と一緒だったが、シンボリックリンク作る作業が一つ抜けていたらしい。


# (cd /lib/geom/; ln -s /var/tmp/gvirstor/geom_virstor.so)
# ls -ls /lib/geom/geom_virstor.so 
0 lrwxr-xr-x  1 root  wheel  29 Oct  2 17:37 /lib/geom/geom_virstor.so -> /var/tmp/gvirstor/geom_virstor.so
# ./gvirstor
usage: gvirstor clear [-v] prov ...
       gvirstor dump prov ...
       gvirstor label [-h] [-v] [-m chunk_size] [-s vir_size/MB] name provider0 [provider1 ...]
       gvirstor destroy [-fv] name ...
       gvirstor stop [-fv] name ... (alias for "destroy")
       gvirstor add [-vh] name prov [prov ...]
       gvirstor remove [-v] name ...
       gvirstor help
       gvirstor list [name ...]
       gvirstor status [-s] [name ...]
       gvirstor load [-v]
       gvirstor unload [-v]

なお、ファイルの名前は geom_virstor.so なのに注意すること。gvirstor.so をやっても、意味がない。間違えて最初に作ってしまった。./gvirstor help を見ればすぐに問題があるのが分かる。

ごく普通の geom デバイスとして使える。


# ./gvirstor label -v -s 500 test md2 /dev/md3
Resizing virtual size to fit virstor structures
New virtual size: 512 MB (3 new chunks)
Total virtual chunks: 128 (4 MB each), 512 MB total virtual size.
WARNING: Virtual storage size < Physical available storage (536870912 < 2097152000)
Clearing metadata on md2 /dev/md3.
Writing allocation table to md2... (0 MB, 1 chunks) 
Storing metadata on md2 (250 chunks)  /dev/md3 (250 chunks)  Done.

合計 2 GB のデバイスから 500MB の仮想デバイスを作った。5 GB を作ろうとして、ゼロを一つ忘れた間違いだが警告された。

# newfs -U /dev/virstor/test 
/dev/virstor/test: 512.0MB (1048576 sectors) block size 16384, fragment size 2048
        using 4 cylinder groups of 128.02MB, 8193 blks, 16448 inodes.
        with soft updates
super-block backups (for fsck -b #) at:
 160, 262336, 524512, 786688
# ./gvirstor label -v -s 5000 test md2 /dev/md3
Resizing virtual size to fit virstor structures
New virtual size: 5120 MB (30 new chunks)
Total virtual chunks: 1280 (4 MB each), 5120 MB total virtual size.
Clearing metadata on md2 /dev/md3.
Writing allocation table to md2... (0 MB, 1 chunks) 
Storing metadata on md2 (250 chunks)  /dev/md3 (250 chunks)  Done

今回は問題なくできた。

# newfs -U /dev/virstor/test
/dev/virstor/test: 5120.0MB (10485760 sectors) block size 16384, fragment size 2048
        using 28 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
        with soft updates
super-block backups (for fsck -b #) at:
 160, 376512, 752864, 1129216, 1505568, 1881920, 2258272, 2634624, 3010976,
 3387328, 3763680, 4140032, 4516384, 4892736, 5269088, 5645440, 6021792,
 6398144, 6774496, 7150848, 7527200, 7903552, 8279904, 8656256, 9032608,
 9408960, 9785312, 10161664

newfs も他のデバイスに対してやるのと同じように出来る。

一応、動作はするみたいだが、まだ開発段階だとのこと。もし興味のある方は、テストに参加して欲しいらしい。

前回

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2006/10/03/546319/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。