FreeBSD 9新機能、さらに先の未来10へ : 最小特権オペレーションを実現する「Capsicum」 #kernelvm

第七回 カーネル/VM探検隊&懇親会 http://atnd.org/event/kernelvmseven 後藤大地さんによる発表です。
5
Yoshikazu GOTO @goto_ipv6

後藤さんによる「FreeBSD 9新機能、さらに先の未来10へ : 最小特権オペレーションを実現する「Capsicum」」です。 #kernelvm

2012-04-22 16:02:49
Yoshikazu GOTO @goto_ipv6

後藤さん:FreeBSD committer: ・unionfsの再設計と再実装あたりが有名かも #kernelvm

2012-04-22 16:05:00
Yoshikazu GOTO @goto_ipv6

後藤さん:FreeBSD Expert 2012 Digital Edition: ・技評デジタルパブリッシングから購入可能 →FreeBSD Expertの電子版です。 →EPUBとHTMLで販売中です。 #kernelvm

2012-04-22 16:07:04
Yoshikazu GOTO @goto_ipv6

後藤さん:ファイルシステムの新機能:ZFSv28 ・先日、出版されたSDの最新号でも特集が。 ・ZFSで運用しているところも出てきているが、ZFSのバージョンを上げないことが、安定運用の際の鉄則。v15からv28の間に入った新機能を使いたい場合は上げる。 #kernelvm

2012-04-22 16:09:45
Yoshikazu GOTO @goto_ipv6

後藤さん: ・currentで試した中では、上げることでFSが壊れることがあった。 ・新しいバージョンを使いたい場合は、別途サーバをたちあげて、そちらで #kernelvm

2012-04-22 16:10:19
Yoshikazu GOTO @goto_ipv6

後藤さん: ・重複解除の機能が一番使われるだろうと →常に同じ内容が入っているバックアップを取る場合とかに有効 #kernelvm

2012-04-22 16:10:48
Yoshikazu GOTO @goto_ipv6

後藤さん: ・ZFSは、実装上、メモリを多く使うので、最低でも4Gのメモリがほしい。amd64を使うようにしてください。i386では動きますが、あまり安定して動きません。 #kernelvm

2012-04-22 16:11:24
Yoshikazu GOTO @goto_ipv6

後藤さん: ・ZFSは、オラクルさんが今後どういう行動に出るかわからないので、v28移行のソースが出るのかわからない。 →GEOMで暗号化する方法もあるので、でなくても支障はないとも言える。 #kernelvm

2012-04-22 16:12:15
Yoshikazu GOTO @goto_ipv6

後藤さん:Capsicumの実装がデフォルトで入った: ・Capabilityの実装の一つ →あとで説明します。 #kernelvm

2012-04-22 16:12:51
Yoshikazu GOTO @goto_ipv6

後藤さん:NFSv4: ・新しい実装に置き換わった。 →9.0での実装は良くなった。 #kernelvm

2012-04-22 16:13:18
Yoshikazu GOTO @goto_ipv6

後藤さん: ・nfsuserdというデーモンが増えている。 ・exportsファイルの書き方が一箇所変更されている。 #kernelvm

2012-04-22 16:17:08
Yoshikazu GOTO @goto_ipv6

後藤さん:FreeBSDらしいNFSの使い方: ・/usr/portsをみんなで →read onlyで共有する場合は、WRKDIRPREFIX環境変数を設定すると良い。 #kernelvm

2012-04-22 16:18:18
Yoshikazu GOTO @goto_ipv6

後藤さん:UFS2 Software Updatesにジャーナリング機能が: ・メタデータと実際のデータが合わないという不整合が発生する場合があった。 →メタデータの操作の順序を変えることで、削除などが高速になる機能が入った。 →スナップショットも取れる。 #kernelvm

2012-04-22 16:20:52
Yoshikazu GOTO @goto_ipv6

後藤さん: テラバイト級になった場合に、起動時にfsckが長時間動いてしまう→backgroundで動作するように →しかし、高負荷なので、問題視されるように →Software Updateの操作に対してログを取るように(ユニークなところ) #kernelvm

2012-04-22 16:22:28
Yoshikazu GOTO @goto_ipv6

後藤さん: これにより、ログの大きさが 1Mbyteくらいにしかならないだろうと。 →実際にPCで使う場合でも、ほぼ瞬時にファイルシステムチェックが終わる。 #kernelvm

2012-04-22 16:23:06
Yoshikazu GOTO @goto_ipv6

後藤さん: ・UFS2ではブロックサイズとフラグメントのサイズが2倍に。性能は上がるが、しかし無駄が生じることでもある。 #kernelvm

2012-04-22 16:24:41
Yoshikazu GOTO @goto_ipv6

後藤さん: ・dumpfsコマンドで確認できる #kernelvm

2012-04-22 16:25:03
Yoshikazu GOTO @goto_ipv6

後藤さん: ・小さいファイルが大量にある場合は、ZFSよりもUFSの方が高速にアクセスできる。 #kernelvm

2012-04-22 16:25:48
Yoshikazu GOTO @goto_ipv6

後藤さん:BSD Install: ・インストーラが変更に。 ・今まではsysinstall。 ・最近の機能をインストール時に利用できない欠点が。 #kernelvm

2012-04-22 16:26:34
Yoshikazu GOTO @goto_ipv6

後藤さん: ・BSD Installは、シェルスクリプトで作成。Dialogコマンドを呼び出し。 ・C言語を使うよりも、シェルスクリプトの方が柔軟に変更できる。またモジュール化も容易。 ・PC-BSDも同じ動き。 #kernelvm

2012-04-22 16:27:34
Yoshikazu GOTO @goto_ipv6

後藤さん: ・GUIのインストーラが欲しい場合は、PC-BSDを使ってください。 ・PC-BSDも、FreeBSDコミッターから見ると、ディストリビューションの一つに見える。 #kernelvm

2012-04-22 16:28:34
Yoshikazu GOTO @goto_ipv6

後藤さん:ネットワークの新機能: ・TCP輻輳制御アルゴリズムのダイナミック変更に対応 →複数のモジュールが →sysctlの値を見てみると。cc_* というカーネルモジュールになっているので sysctlで変えることができる。 #kernelvm

2012-04-22 16:29:42
Yoshikazu GOTO @goto_ipv6

後藤さん: ・この本では、jail+VIMAGEで、仮想ネットワークを構築し、どのような違いがあるかを試す例が。 →VIMAGEでは、jailごとに独自のネットワークスタックをもてます。 #kernelvm

2012-04-22 16:30:41
Yoshikazu GOTO @goto_ipv6

後藤さん: ・現在の実装onlyでは、無線LANのNWに対して輻輳制御するのと、10GのNWに対して輻輳制御をすることについて、ひとつのアルゴリズムで対応するのは良くないので、すぐに変えられるようにした。 ・また、モジュール化されているので開発もしやすい。 #kernelvm

2012-04-22 16:32:50
Yoshikazu GOTO @goto_ipv6

後藤さん:IPv6 onlyのカーネルも作ることができる: ・既存のアプリやツールがちゃんと動く?IPv4が影響して問題が?など切り分けできない。 →9.0からは IPv4 only/IPv6 only/IPなし でカーネルを作ることができる。 #kernelvm

2012-04-22 16:33:50