2010-06-30 :-(
_ 朝ッ
0520 起床
_ 仕事
0830 出勤
_ そういうのはオタク趣味ではなくポップカルチャーの一種でしかないんだよな。
( 強調は三輪による )
例えば声優で言うなら「僕は茅原美里ちゃん!」とか「僕は中島愛ちゃん!」とか言ってるうちはまだまだで「俺は斎藤千和が」「俺はまだ林原めぐみが捨てきれない」とか言えるようになって初めてという感じか。
|ω・)
_ ,
chikachan 阻止レースだったのかー
_ 「動画はYoutubeにあるから探すといいよ ><」
それアウトだから!
_ [NetBSD][翻訳][ZFS]NetBSD Blog - Google Summer of Code zfs-port project 翻訳
( 先日の ZFS 報告[ 20100625#p05 ] よりも前の記事 )
June 04, 2009 posted by Adam Hamsik
ZFS-port project introduction
ZFS 移植プロジェクト序説
ZFS is well known file system developed by Sun Microsystems, inc. for Solaris operating system. Its source code was released under the CDDL license. ZFS currently was ported to several other operating systems like Mac OS X and FreeBSD.
ZFS は Sun Microsystems によって作られたファイルシステムとして知られている。ソースコードは CDDL ライセンスのもとにリリースされた。現在 ZFS は Mac OS X や FreeBSD などのようないくつかのオペレーティングシステムへ移植されている。
ZFS port to NetBSD was started in Summer of code 2007 by Oliver Gould. Later Andrew Doran (my mentor in this project) worked on zfs port and released several versions of his work Partial zfs port.
ZFS の NetBSD への移植は Summer of code 2007 で Oliver Gould により始められた。その後 Andrew Doran ( このプロジェクトの指導者 )が zfs 移植作業をし、その zfs port の一部がいくつかリリースされた。
More about ZFS features and how it works can be found at presentation ZFS last word in file systems.
さらなる ZFS の機能と仕組みについて、ファイルシステム内の ZFS の最後の語( 訳: ????? )に説明されていることが分かる。
The ZFS file system contains two major modules ZVOL and ZPL.
ZFS ファイルシステムはおもに ZVOL と ZPL というモジュールを含んでいる。
The ZVOL is Logical Volume Manager module of the ZFS. It creates/manages Logical disk drives created from pools of disk space called ZPOOLS.
ZVOL は ZFS の論理ボリュームマネージャーモジュールである。ZVOL は、ZPOOLS と呼ばれるディスク領域を使い、論理ディスクを作成したり管理する。
The ZPL is file system layer used for creating ZFS file system on a ZVOL volume.
ZPL は、ZVOL ボリューム上の ZFS ファイルシステムを作成するために使われるファイルシステムレイヤーである。
【図は省略】
Deliverables
配布( 訳: ???? )
Mandatory (must-have) components:
必須コンポーネント( 無くてはだめ ):
- Finish port of ZFS ZVOL layer to NetBSD
- NetBSD へ ZFS ZVOL レイヤーの移植を完了させること
- Implement device partition properties. Change newfs, dm(4) and other logical disk drivers.
- デバイスパーティションプロパティを実装すること。newfs や dm(4) や他の論理ディスクドライバーを変更すること。
- Implement device disk(driver:model-revision-serial-etc) ids for identification of zfs disk.
- zfs ディスクのためにデバイスディスク( ドライバーのモデルとかリビジョンとか ) ids を実装すること。
- Port vfsops and vnodeops. ignore getpages/putpages.
- vfsops と vnodeops を移植すること。getpages/putpages は除く。
Optional (would-be-nice) components:
オプションコンポーネント( あればうれしい ):
- Implement getpages/putpages
- getpages/putpages を実装すること。
- Callbacks into arc, for reclaim of memory or kernel virual space.
メモリーまたはカーネル仮想領域の回収のための arc 内でのコールバック
- Maybe changing the order of arguments for pool_cache constructors.
- おそらく pool_cache 構造体の引数の順番を変更することになる。
- Implement nameiat and lookupnameat functions.
- nameiat 関数 と lookupnameat 関数を実装すること。
Progress zvol, modules, wedge like disks
zvol モジュールでディスクのように拡張する。
( 訳: 領域を増やすなどという意味だよね。↓のコマンドを見ると )
ZFS and solaris modules can be loaded to NetBSD system.
ZFS モジュールと solaris モジュールは NetBSD にロードできる。
Zvol is one of two basic parts of ZFS. This subsystem manages disk space added to ZFS pools. Administrator can create Logical Volumes/manage their size just like with LVM. Currently user can create zvols and use them as Logical Volumes for ffs file system.
Zvol は ZFS の基本構成の 1 つである。Zvol は ZFS 領域へ追加されたディスクスペースを管理する。管理者は、まるで LVM のように論理ボリュームを作成し、管理することができる。現在 ユーザーは zvol を作り、ffs ファイルシステムを論理ボリュームのように扱うことが出来る。
I have written small patch to support wedge like devices in newfs and all utilities using getdiskinfo() from partiutil.c file. Commiting patch was discussed here.
newfs でデバイス楔( 訳: ???? )サポートするために少しパッチを書き、すべてのユーティリティは partiutil.c ファイルの getdiskinfo() を使うようにした。コミットしたパッチは議論中。
Examples
例
# zpool create -f test /dev/wd1a # zfs create -V 200M test/ufs # /mod/newfs /dev/zvol/rdsk/test/ufs /dev/zvol/rdsk/test/ufs: 200.0MB (409600 sectors) block size 8192, fragment size 1024 using 5 cylinder groups of 40.00MB, 5120 blks, 9920 inodes. super-block backups (for fsck_ffs -b #) at: 32, 81952, 163872, 245792, 327712,
# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT test 260M 5.22M 255M 2% ONLINE -
# zfs list NAME USED AVAIL REFER MOUNTPOINT test 200M 27.9M 18K /test test/ufs 200M 223M 5.13M -
# mount /dev/zvol/dsk/test/ufs /mnt/ # mount /dev/wd0a on / type ffs (local) kernfs on /kern type kernfs (local) ptyfs on /dev/pts type ptyfs (local) /dev/zvol/dsk/test/ufs on /mnt type ffs (local)
In example zpool test is created from disk wd1a, later new zvol called ufs is created from it. newfs compiled with my getdiskinfo patch is later used to create file system on this zvol. File system is later mounted to /mnt.
この例で、zpool は wd1a ディスクから作成され、その zpool を使って ufs から呼ばれた新しい zvol が作成される。私の getdiskinfo パッチを当ててコンパイルされた newfs は、その後 zvol でファイルシステムを作成するために使われる。ファイルシステムはその後 /mnt にマウントされる。
Source code
ソースコード
Source code is managed in my own git repository at git://rachael.ziaspace.com/src.git. This code should be only used for review, getting some panics :). Be aware that it is Work in progress code which can panics/deadlocks a lot.
ソースコードは私の git リポジトリ git://rachael.ziaspace.com/src.git で管理されている。このコードはまだパニックするのでレビュー専用にしてほしい :-) このコードはまだ作成中なのでパニックしたりデッドロックすることがあることを知っておいてほしい。