Plan9日記

2014-12-01

OSv雑感

次のスライドは@syuu1228さんの「OSvの概要と実装」。

  • ライブラリOSが流行っている感じもするので、そのうちまとめておきたい。USENIX ATCのOSvの発表を聞いて、タネンバウム教授がexokernelと何が違うみたいな質問をしてたそうな。
  • ユーザ空間がなくカーネル空間のみという割り切りはすごい。ハイパーバイザが最後の砦になるので、よいという判断。カーネルじゃなくてライブラリと考えればそんなものかとも思うが、カーネルアプリが同じメモリプールからmallocするとなると、ちょっとしたオーバランでカーネルをぶっ壊してしまいそう。
  • アプリからPF filterやnet channelにフックを仕込んでパケットを奪って処理することが可能。実装の雰囲気としてはカーネルモジュール
  • ttyないのでエディタを開発するのは難しい。REST APIを利用して外部からファイルを流し込むのがOSv流。
  • Dockerと狙いがかぶってそう。完全なisolationが一つの鍵か?
  • Virtual Appliance的な利用を想定しているようだ。
  • 元々ゲストOS上で動くことしか考えてなかったが、実はベアメタルで動きそうなぐらいレガシーデバイスがサポートされつつある。もう一息でベアメタルで動いてしまったり?
  • Huaweiがaarch64サポートを実装。

2014-09-29

[] AWSおさらい

Amazon Web Services 基礎からのネットワークサーバー構築」という本が出ていたので、AWSのおさらいも兼ねて読んでみる。AWSの上で、インフラ技術を学ぶという趣旨。クラウドが当たり前になって、クラウドじゃないレガシーなシステムが目の前から消えていくと(半分現実になりつつある気がするが)、近い将来にはこんなテイストのテキストが普通になるのかなと感じた。本書はAWSの入門に必要最低限のネットワーク周りの解説が載っているけど、教科書的解説+クラウドで演習といった形式でね。

さて、VPCを触るのは初めてだけど、VPCを作って、その中のインスタンスApacheを動かすところまで確認した。Tokyo regionだと、RTTは9秒強ぐらいだな。

インスタンスをstopして、続きはまた明日。

余談だけど、Amazon Linuxはちゃんとshellshock対策されてるね。

[ec2-user@ip-10-0-1-10 ~]$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test

2012-09-03

Open vSwitchの存在意義はOpenFlowだけじゃない

最近、Open vSwitchについて調べたことを、某所でお話しする機会があったので少し忍ばせた(「I/O仮想化最前線」)。スライドのP37から数枚がそう。

Open vSwitchはOpenFlowに対応したソフトウェアスイッチということで大いに注目を集めたし、自分もそのコンテストで理解していた。だけど、おそらく最初からOpenFlowスイッチを作ろうという目的があったわけではなく、VMをホスティングするためのまともなソフトウェアスイッチが欲しいということでプロジェクトが開始したんじゃないかな。あまり昔のドキュメントが見つからなかったので、本当のところはわからないけど。

例えば、VLANを使ってテナント毎にトラフィックを隔離したいと場合も、レガシーブリッジよりも簡単に実現できる。add-portするときにtag引数を追加するだけだ。

# ovs-vsctl add-br br0
# ovs-vsctl add-port br0 eth0
# ovs-vsctl add-port br0 tap0 tag=101
# ovs-vsctl add-port br0 tap1 tag=102

これでVMから出るトラフィックにはそれぞれのVLAN IDが付加され、VMに入るトラフィックからはVLAN IDが削除される。つまり、ゲストOS (VM)ではVLANの設定を気にする必要はない。

また、話は変わるけど、最近CloudStackを触っている。CloudStack 3.0ではOpen vSwitchを使っているものだと思っていたけど、少なくともハイパーバイザがKVMの場合は、レガシーブリッジを使っているようだ。なんでだろう?

2007-08-30

[] Plan9でFortran?

ちょっと前から"Everything is a directory"というスレッドが盛り上がっていて、いくつか面白い話も出ているけど、今日は別の話題。

Plan9でFortranが使えないかという投稿があって、(Plan9 on BlueGene/Lの開発者である)Eric氏がレガシーなHPCアプリケーションをサポートする計画があって(予算が付くかまだわからないけど)、Fortanサポートも含まれるかもとのこと。

どうせならレガシーとか言わずに、尖った言語を作ってくれるといいのに。何万プロセッサもある計算機上でスケールする並列プログラミング言語って面白いテーマだと思うけどな。

そして、アプリ屋にプログラムを新規開発、移植してもらうためには、生産性の高い言語ってのがポイントになってくると思う。今でも、データの前処理、後処理はperlなどのスクリプト言語でやって、肝の部分はFortranってのが多そうだけど、肝の部分を置き換えていくためには何が必要か(あ、当事者達は別にFortranで困ってないかもしれないな)。あと、Fortranプログラマってデバッグプリントをいっぱい埋め込んでデバッグしているというイメージがあるのだけど、実際のところ、どうやってデバッグしているんだろう?TotalViewみたいなデバッガ使う?