2007-10-01から1ヶ月間の記事一覧

どこまでもHashが出てくるHash

Rubyで。 class InfinityHash < Hash def initialize super {|hash,key| hash[key] = InfinityHash.new } end end hash = InfinityHash.new p hash[1][2][3][4][5][6][7][8] #=> {}

「○日で×を作るプロジェクト」を開始したい

候補: 2週間でWikiForme新版を作るプロジェクト もう2週間でGUIまでつくるプロジェクト もう1週間で記法を作りまくるプロジェクト 1ヶ月で分散ブロックデバイスを作るプロジェクト(ファイルシステムは1ヶ月では間違いなくムリ) 3週間で次期RUNESを…

分散ファイルシステム設計メモ

コネクション 全部TCP パッシブコネクションとアクティブコネクション こちらからリクエストを投げるときはアクティブコネクションを使う パッシブコネクションは待ち受け専用 通信の衝突が起きないのでスケーラビリティが良くなる コネクションは贅沢に張る…

libpioの件

初版は8月27日に作ったものだったりする。mixiに貼ってある。2ヶ月前の着想をここに来て実装。 非同期IOでスループットがどうのとベンチマークをしてもちょっと視点がずれていると思うのだけど、実はあまりスループットも落ちていないんじゃないか。ソース…

V-FIELDのメモ

Makefile:33: grep -n -E "XXX|FIXME|TODO" `hg locate` > memo argparser.cc:16: // FIXME: このメッセージは適切でない argparser.h:159: // FIXME: メッセージが微妙 argparser.h:185: // FIXME: メッセージが微妙 common/bufferedreq.h:13:// TODO: メモ…

VIVER COREをARMに移植したらおもしろい?

GLANTANKとか玄箱PROとかとか。いわゆるシンクライアント? 玄箱PROに至ってはPCI-Express x1が付いていて普通にVGAも使えそうだし、特にがんばらなくても動きそう。PXEは使えないから、カーネルとinitramfsは内蔵させるか、Etherbootを焼くか。 画面転送型…

VIVER CORE Server残り

後はどんな機能を追加するか。 VIVER CORE breakpoint ブートログの転送 NBDサポート iSCSIサポート Fake NFS-Root 無線LANサポート Serverパッケージ WOL送信ツール pxelinux.cfg/を書きやすくするツール NBD Server iSCSI Target Capistrano Nagios とか H…

分散ファイルシステムで中間プロトコルに9pを使うアイディア

9pは非常にシンプルで素晴らしい。 LinuxのDocument/filesystems/9p.txtを読むと、マウントオプションにrfdno=nとwfdno=nというのがある。 rfdno=n the file descriptor for reading with proto=fd wfdno=n the file descriptor for writing with proto=fd p…

Gentoo+OpenVZをインストール中…

お騒がせしております。残念ながらデータはほぼすべて無事ですよ。SolarisとFreeBSDのディスクイメージが無くなったくらいで。 バックアップ重要。 そんなこんなで、ただいまGentooをインストール中…は終わって、OpenVZなカーネルをコンパイル中。ホスト: Ge…

sendfile()はsplice()で実装されるようになったらしい

…この英語が良く理解できない…ぁぁ… http://kernelnewbies.org/Linux_2_6_23#head-c8fd2455c44d9559429c0f72dbc85cd54a62470d For the particular case of sending the data from a file descriptor to a fd socket, there's been always the sendfile() sys…

mDNS+DNS-SDで分散メタネームサーバを作るアイディア

またしても書きながら考えるメモ。dRuby+Ringか、mDNS+DNS-SDか。今はDNS-SDの方が良さそうな気がしている。なんというか普通にDNS-SDそのもの。ただしSRVレコードは勝手に定義。そう堅いこと言わずに。 mDNSは、DNSをマルチキャストで行う。いわゆるクライ…

問題は山積している

整理する。書きながら考えるメモ。 まず、VIVER CORE Serverに入れるファイルサーバー。適当なネットワークファイルシステムが見つからない。ファイルが共有できないと、いろいろできない。と言うか、何もできない。 現状、500MB超のシステムをメモリのぶち…

codaの全自動インストールスクリプト

#!/bin/sh dest=$HOME/self/test/coda # dep # readline-devel # lwp wget http://www.coda.cs.cmu.edu/pub/coda/src/lwp-2.3.tar.gz || exit 1 tar zxvf lwp-2.3.tar.gz || exit 1 cd lwp-2.3 || exit 1 ./configure --prefix=$dest || exit 1 make -j3 || …

Cluster File Systems, Inc.がSunに

Webサイトをのぞいてみたら、Sunになってた。 http://www.clusterfs.com/ http://www.sun.com/software/clusterfs/index.xmlSunはマジか?あるいはネタか気まぐれか? Cluster File Systems, Inc.と言えばLustre。Solarisに搭載する気かな?普通にHPC向けだ…

VMware Virtual Applianceを使うアイディア

VMware Virtual Applianceには、インストール済みのVMware用ディスクイメージがたくさん置いてある。サーバーOSから組み込みアプライアンス、Linux、FreeBSDと幅広い。 それから、rBuilder Onlineには、rBuilderで作られたディストリビューションのインスト…

DHCPに触らずにPXE

できた。4011/udpは待ち受けなくてもいいらしい。67/udpに飛んできたDHCPDISCOVERに対して、Vendor Optionsのtag 6(PXE_DISCOVERY_CONTROL)に8(第3ビットが1)を指定して、filenameとsiaddrにTFTPサーバーのアドレスを指定したDHCPOFFERを返すと、動いた…

CORE

昨日VIVER CORE Server 0.0.1をリリース。土日月の3日で書いた!やればできるモンだ。実は本体のコード自体はかなり短い。全部で800行程度。 苦労したのは本体のコードではなく、クロスコンパイル環境の構築をMakefileで自動化すること。しかしおかげで、私…

initramfsにrubyを入れる

入れても752KBくらい。 /bin/busybox 424KB /usr/bin/ruby 612KB /lib/libuClibc 262KB /lib/libpthread 48KB /lib/libcrypt 12KB /lib/libdl 12KB /lib/libm 44KB 諸々と合計 1,640KB これをgzipで圧縮すると752KB。uClibc&builcrootスバラシ。このinitram…