[2020-06-06 13:30]
オープニング @satoru_takeuchi
- 時間どおりスタート
- ぐだる配信が多いなか、時間どおりにトラブルなく始まるのはすごい
- zoomからyoutube liveの遅延が1分ほどあるのでリアルタイムはむり
- 質問はtwitterでうけつけて、発表がおわったあとに回答する形式で
[2020-06-06 13:32]
Network Boot from Bell Labs / @retraga
- 資料
- 動画
- pxe(ピクシー) boot, http bootの2つがある。
- pxeはtftpサーバが必要
- http bootはuefi2.5からサポート
- httpsもつかえる
- UEFIで3行で書ける。
- UEFIでモジュールはプロトコルとよばれる。ネットワークのプロトコルとは関係ない。
- simple file system protocolはデフォルトではFATしか対応してない。
- rootkit: rkloader, LoJax はNTFSをあつかえる。
- ネットワークFSがつかえるとうれしい。
- そこで9P (Plan 9 File Protocol)
- 9Pはつかわれている: v9fs, virtio-9p, WSL2
- 世の中は9Pの支配下にある!
- UEFIドライバ: 9pfsPkgをつくっている。
- それだけだとおもしろみがない。
- proxy bootをつくってみた: GCS(google cloud platform storage)のバケットをあつかえる。
- gcsfuseをつかった。
- bitvirorをロードできた。
- あくまでもローカルファイルシステムにみえている。
[2020-06-06 13:58]
- 質問なし
- root fsは
[2020-06-06 13:58]
ipftrace: A Linux Function Tracer for Network People / @YutaroHayakawa
- 資料
- linuxのネットワーク機能のデバッグツール
- 関数コールトレーサー
- パケットの処理をトレースできる。
- timestamp, cpu id, funcname, user defined data
- ネットワーク機能はソースコードをよんでもわかることがすくない。
- systemtap, bpftraceは手がかりがない状態だとトレースする対象を絞りにくい。
- ftraceは楽につかえるが特定のドメインだけのトレースがとれない。
- TCP 80版のパケットだけトレースをとりたい。
- 関数トレーサ + パケット処理だけ + パケット単位で + スクリプトが書ける
- sk_bufを引数にとる関数をすべてフックして
- sk_bufにマークがついていたらログをだす。
- DWARF or BTFで一覧を得る。
- kprobeでフックしてeBPFをさしこんでperf_eventでログをだす。
- マークはskb->markがあり自由につかえる。netnsをまたぐと消える(コンテナ内のトレースにつかえる)。
- Luaで拡張を書ける: emit()->追加のデータをあつめるeBPFのバイトコードを吐く, dump()->文字列にする。
- sk_bufは安定した構造体ではない問題: デバッグ情報をLuaから参照できる: iptf.offsetof,sizeof,typeof.
- SRv6のデバッグにつかえた。
[2020-06-06 14:18]
- Q: メモリが再利用されてskbアドレスがぶつかったら?
- A: キャッシュのヒット率上げるために再利用するのでこまる。人間がみればわかるが。
[2020-06-06 14:21]
[2020-06-06 14:22]
コンテナ目線で考えるmicroVMとunikernelな構成の話 / @_inductor_
- 資料
- コンテナとは雑に言えばすごいchroot
- dcokerがはやったのはdockerfileと配布技術がつかい勝手がよかった
- runC: イメージを展開するおしごと
- runCに特権が必要だけど避けたい→MicroVM(Firecracker:Rust製 by Amazon)
- ホストOSをいじるかわりにVMをたてちゃう。
- AWSではFargate。
- リソース割当が柔軟
- VMレイヤの起動オーバヘッドになる。
- Unikernel: ライブラリOS
- カーネルのレイヤをうすくする
- IBM Nabla Containersでつかわれている。
- 既存のdocker imageがつかえないので専用のイメージをつかう。
- runnc -> hostos - SoloS - libOS - app
- 環境を分離せずプロセスとしてつくられるので早い
- 不要なカーネル機能をふくまないのでホストOSとの接点がすくない
- gVisor: ...
- kata container: コンテナがvmのうえでうごく
- 結論: 課題がなければdockerでいいんじゃない?
[2020-06-06 14:44]
10分休憩
- 表示されてる時計と比べると遅延は35秒くらいか。
- 早送り再生するとライブにおいつけるらしい。しらんかった。
[2020-06-06 14:55]
俺の仮想マシンルーターがこんなに遅いはずはない / @tnishinaga
- 資料: 未公開
- トラブルで前録り動画を再生
- 在宅ワークがふええてPPPoE IPv4がおそい、DS-Lite(v4 over v6)も速くない。ルータの性能限界。
- devianをいれてKVM上で構築。
- 速度低下は問題ないと予想していたが、そうでもなかった。
- 物理ホスト上:
- iperでNICスループットを測ったが問題なかった。
- ブリッジでも問題なし。
- パケットフォワードも問題なし。
- ipip6 tunnelも問題なし。
- VM上:
- 6割程度の性能しか出てない。
- 結論: 物理マシンをつかうのがよい。
[2020-06-06 15:19]
- Q: 市販のルーターとLIVA Zとでランニングコストはどうちがう?
- A: 測ってないけどファンレスなのでそんなに違わないのでは?
- Q: VMにちょくせつPCIさわらせたら?
- A: PCIeパススルーはいけそう、SRIOVは対応してなさそう(realtekなので)。
[2020-06-06 15:20]
[2020-06-06 15:21]
Architecture Overview of Fuchsia OS / @kurun_pan
- 資料
- フューシャ
- Flutter: 言語Dartで UIフレームワーク。
- Fuchsia: googleのOS。 Google Nest Hubでつかわれてるらしい。カーネルはZiron(linuxとはちがう)
- far: Fushia archive
- 各アプリはURLをもつ manifestあり
- アプリはsandboxで実行される capabilityはmanifestに書く
- FIDL(Fuchsial IDL): gRPCみたいなもの IPC用
- Zircconはマイクロカーネルではない(モノリシック)。POSIX非互換だがlibcはある。fork,pthread一部はない。
- Zirconにはhypervisorがはいっている。linux KVMにちかいかんじ。linux runnnerがあり動かしてみたが例外でおちてしまった。
[2020-06-06 15:33]
[2020-06-06 15:33]
RISCVマイコン情報アップデートと Tang FPGA試用メモ / @takeoka
- 資料
- RISC-Vが焼かれている 日本で2600円くらい
- キャッシュはないが ITCM,DTCM (SRAM)がある。
- ESP32はicacheぽいがlongjmpできない(大変残念)
- PDP-11 セグメントをまたぐサブルーチン呼び出しはセグメントローダ経由が必要
- IDEは中華製 あやしくはなさそうだが 念のためにVMでうごかした。
[2020-06-06 15:48]
[2020-06-06 15:49]
BCCをRubyからも使えるようにした話 / @udzura
- 資料
- eBPF
- gdb,straceはptraceでシステムコールをおいかけるがプログラムが一瞬止まるのでパフォーマンス影響がある。本番環境ではつかいにくい。
- perfは中間 ユーザランドの負荷が高まる。
- bpftraceは副作用がすくない。
- BCC: BPF Compiler Collection. Python,LuaのFFI経由でバインディングを用意している。
- Rubyでもつかえるようにした。
- BPFQL: SQLライクにトレースポイントを指定できる
[2020-06-06 16:03]
休憩10分
[2020-06-06 16:15]
HVFの中身 / @Mach0xFF
- 資料
- hypervisor framework
- apple製hypervisor
- kextをくみこんだ形 prelinkedkernel
- kext: kernel module
- XNU
- machdepでマシン非依存のシステムコール
[2020-06-06 16:30]
- "0x"を「ゼロエックス」じゃなくて「オーエックス」といってるとおもったら「Nought-X」だとのこと。
[2020-06-06 16:30]
Falling down from FreeBSD / @yamori813
- 資料
- FreeBSDは16MBのRAMと4MBのflashがあれば動くらしい。
- YABM: mrubyをベアメタルで動くようにした。 yet another bare metal
- ARMはMMUサポートないと35倍くらい遅いので(0を0にマッピングするのしかしてない)
[2020-06-06 16:41]
[2020-06-06 16:41]
HSEとは何か / @fadis_
- 資料
- 動画
- heterogeneous-memory storage engine
- KV store
- ストレージエンジンはトランザクションを提供する
- ファイルシステムとストレージエンジンの両方で構造化ログをもつ構造
- FTL(flash translation layer)でも構造化ログ相当のものがある。
- ログ構造化ファイルシステムはflashメモリにやさしい。
- F2FSはログ構造化ファイルシステムを採用。
- Don't Stack your Log on My Long: 構造化ログのつみかさねが性能低下
- メタデータが各層で追加されていくため。
- ブロックサイズが一致しない可能性。
- TRIMしてない
- 上のGCが下に負荷をあたえる
- 酷いケースで書き込みが2倍にふえる。
- mpool: ファイルシステムに似ているがVFSを提供しないカーネルモジュール。
- mpoolはblock_idでアクセス 要アライン
- mlogはobject_idでアクセス メモリはアラインしてなくてよい
- mdc: gcできるmlog mlog2本使用 (copy gc?)
- mcache: 上のレイヤがつかえるキャッシュ
- kvdb:
- 古典的SSD,zoned namespace(100MBオーダーのブロックでFTLの仕事を減らす),
- dm-zonedが4KiBページをみせるもがある。
[2020-06-06 17:05]
- Q: mpoolのアラインメントは自動?
- A: 作成時にSSDのブロックサイズを指定する。(SSDがブロックサイズを公表してるのが前提)
[2020-06-06 17:07]
クロージング
[2020-06-06 17:08]
あたまおかしい発表があると観衆からおぉ〜って声があがるのがkernelvmのライブだが、オンラインだとその反応がtwitterだけなのがちょっとさみしい。