FreeBSD

FreeBSDでのhostidについて

FreeBSD 10.2から11.0にあげたらブート時のzpool importが失敗してあせったが、どうやら/etc/rc.d/hostidに変更が入って、ブラックリストにのっているhostidは認めないということになっているようだ。私のところの環境でいうと/etc/hostidに00020003-0004-0005-0006-000700080009(これはkenv -q smbios.system.uuidで得られる値)が記録されていたのだが、そんないい加減な値はダメだってことでブート時にuuidgenで新しい値をつくられてしまったので、zpool importするときに

Solaris: WARNING: pool 'POOLNAME' could not be loaded as it was last accessed by another system (host: HOSTNAME hostid: 0xHOSTID). See: http://illumos.org/msg/ZFS-8000-EY

といわれてzpool importが失敗していた。

ルートディレクトリが含まれているプールzrootはうまくimportされていたのでfreebsd-updateがうまいことやってくれたのかなぁ(しらん)。

第21回FreeBSDワークショップ

freebsdworkshop

ストリーミングで参加。回線はIIJmioでクーポンoffだと途切れてしまうのでonにしてタブレットで視聴。2時間で300MBくらい。

[2016-09-30 19:12]

自己紹介タイム

  • ほとんど常連さんだけど、いつもの前口上で。
  • 日本人のメンバーは減ってしまった。
  • ZFSでトラブったという話がちらほら。
  • NFS4.1になるとかんぜんじょうちょうけいがくめる
  • 端末エミュレータはどれつかってもおなじ。ktermはパッチがなくなった。
  • opensslやめたいけど、なかなか。暗号化の専門家が書いたコードだからソフトの専門家からみるとアヤシイコードになっている。しばらくは膿はでつづけるのではないか。

プロジェクト近況

  • 11.0R 11/5リリース予定 FTPミラーサイトに置くところまでいったけどやりなおし。
    • 8月頭: libarchiveのパッチがなかなか完成しなかった,bsdiffの修正が遅れた,リリース作業おわったころにopensshの問題が。
    • それなりに非互換の部分がるので注意。DSA鍵がつかえなくなるなど。
  • jenkinsが新しくなった(8月末くらいから)。buildworld/buildkernel/isoimageはここからもってくるのが最新。一般ユーザがパッチをつくってgithubからビルドできるサービスを考えている。
  • 11.1Rからbaseはtarballからpkgに変更になる。カーネルとユーザランド一括で全部で4つくらいのpkgになる予定。最終的にはlinuxみたいにコンポーネント単位(minimum)とかにpkgになる予定。pkg rm -aしたときにbaseまで消えないようにはする。baseのカテゴリをつくる。
  • libresslにおきかえる作業はlibcryptoつかっているportsの対応作業をいれてい最中。将来的にlibresslがぜんぜん違うものになる可能性もあるし。
  • EuroBSDConの採択率は60%くらい。
  • netmapをつかってbridgeをつくるプロジェクト: ドライバからユーザランドに上げてringbufに渡す。カーネル内のネットワークスタックは使わない。このシステムをL3に利用したい。ルーティングテーブルからMACADDR:NEXTIFの表を生成して速くならないか検討しているらしい。radixtreeからhashtblにする。DXR。パケットフォワーディングはHWならT-CAM(v6はしらん)、SWだとパテントが。
  • COSCon2016中国: 英語のアナウンスがないの。。

[2016-09-30 20:07]

[2016-09-30 20:11]

FreeBSDのIntel Graphicsサポートについて / 内藤祐一郎

  • 資料
  • status report 2016 Q2でおもしろそうだったのでしらべてみた。
  • github FreeBSDDesktop/frebsd-base-graphics
  • xterm/firefoxはさくっと動いた。
  • libreoffice impressを動かしたらsegvでおちた。
  • chromeはちょっとあやしい。
  • 安定して使いたいときはscfbドライバで。UEFIブートならつかえる。アクセラレーションはない。
  • linuxからの移植らしいのでライセンスの扱いで慎重に。intelからのコードはGPLじゃないけど。

[2016-09-30 20:29]

  • Q: マルチスクリーンは?
  • A: わからない。
  • Q: openGLが動いてない?
  • A: カーネルのログはとってなかった。カーネルにログが出るらしい(NetBSDでは)。

[2016-09-30 20:34]

[2016-09-30 20:35]

FreeBSDで作るデーターロガー / @yamori813

  • 資料
  • 東電に連絡するとアクセスキーをもらえる。
  • Rubyもいれて6MBくらいにおさまる。
  • 5分おきに書いてると1年くらいでflashの寿命がきちゃう。
  • 冷蔵庫が50%くらい電気をくってることが可視化された。

mrubyで赤外線リモコン / @yamori813

  • 資料
  • PCにUSBでつないで赤外線リモコンになるデバイスをうっている。
  • ソリッドステートリレーのON/OFFしてbuildworldがおわったらPCの電源をonするようなのを考えている。

[2016-09-30 20:47]

  • 250円のリレーで25Aもながせる。すごい。電気工事二種もっているので600Vまでいける。
  • 売るにはPSEがたいへんなので商品はむつかしい(コスト的には)かも。
  • 学習リモコンの需要はあるはずだが。数がでないと。

[2016-09-30 20:52]

[2016-09-30 20:55]

PythonでGPIO操作 / 鈴木光宏 @s_mitu

  • 資料
  • FreeBSD用にライブラリがある。
  • 戦車が動く: web->flask->fbsd_gpio->GPIO->explorer hat pro->moter
  • i2cで障害物までの距離がとれる。

[2016-09-30 21:13]

告知

  • 次回: 10/20
  • AsiaBSDCon 2017 2017/3/9-12 東京理科大 スポンサー募集中

[2016-09-30 21:17]

第8回 FreeBSDワークショップ

image

ビデオ配信で参加。

[2015-06-30 19:13]

自己紹介タイム

  • HGST->Toshiba: HGSTは安全寄りだけど遅い。
  • type PでFreeBSDが動く。

BSDCan2015

  • keynote
    • bourne shellの作者の昔話
    • 内部解説を書いた日本人をさがしているらしい。 (中村さん,4.3BSDの訳本の中心事物,東芝)
  • libucl
    • 設定ファイルの書式を統一しよう、というやつ。
    • /usr/src/contrib/libucl
    • Apple: proplist, Windows: registry.
    • JSON風
    • 向こう5年くらいでやるかもしれない..
    • syslog.confみたいな1行で終わるものが複数行になるのは嫌かも..
  • CTSRD
    • DARPA CRASH: 耐障害・セキュリティ
    • FreeBSD/POSIXへの移植
  • Capsicum
    • MACのようなガチガチシステムではなく、
    • ファイル記述子とプロセス記述子にケーパビリティを追加したもの。
    • pdfork(2)を追加。権限は自プロセスが宣言する。それ以降は権限昇格できなくなる。
    • googleのfundうけてlinuxでも動くようになっている。
    • libcがcapsicum化されるとcapsd経由ですべてやることになる。
  • CHERI
    • 記述子だけでなくポインタにもケーパビリティをつける。(Fat Pointer;よくあるやりかた)
    • ハードウェア(FPGA;ボード60万円くらい)からつくっている(MIPS64)。例外がとぶ。
    • コンパイラも。
  • DCTCP
    • データセンターTCP。FreeBSD11にははいっている。
    • ECN(RFC3158) 輻輳通知ビット。サポートするスイッチはいっぱいある。つかってるところは少ないけど。
    • TCPのウィンドウ制御にECNをつかおうというやつ。
    • スイッチのキューが溢れないようにコントロールできるようになる。スループット・ジッタも安定する。
  • QEMUでarmパッケージビルド
    • QEMUのユーザモードエミュレーション
    • システムコールやハードアクセスはホストに投げるようにCPUエミュレーション。
    • binmiscctl
    • 速い。
  • Netsted Kernel
    • カーネルのなからかカーネルの書き換えをできないようにする。
    • MMUを守ればよい。ふつうのカーネルコードからはMMUをいじれないようにする。
    • CR0/CR3(ロード時コード書き換え)とページテーブル(readonly設定)を書き換え禁止に。
    • mmapがかなり遅くなる(2.5x)。forkも遅くなる(3x)。
    • アプリケーションレベルでは1%くらいしか遅くならないとの報告。
    • マイクロカーネルほどサービスを一般化したものではない。
  • 学術系だと「つくりました」系は発表しにくいので、

[2015-06-30 20:58]

最近の話題

  • SA-15:09.ipv6
    • RAでホップリミット(TTL)を小さくできてしまう。(1にされるとDoSになる)
    • プロトコルの問題。てきとうなパッチを書いて済ませた。どうでもよい。
  • SA-15:10.openssl (logjam)
    • 鍵長を短かくできてしまう問題。情報漏洩系。
  • EN errta/noticeは出すようになった。火曜日に出す。
  • EN-15:05:ufs
    • 10.1Rのインストーラでジャーナリング(SU+J)有効になるが、freebsd-updateで/sbin/initとかの書き換えがあると再起動時にデッドロックする。
    • データロストはない。リセット/電源再投入でなんとかなる。
  • EN-15:06.file
    • ローカルからのDoSはセキュリティ問題ではないとの立場→EN
    • ただ、パッチをあてるとEUCをつかってる人はfile(1)が動かなくなる。(xlocaleのバグ;currentでは直ってたがstableに降りてなかった)
    • あさってパッチをだす。
  • EN-15:07.trim
    • ZFS TRIMでパニックすることがある。ARCでメモリリークもあった。
  • EN-15:08.sendmail
    • 15:10の修正のせいで、sendmailが512の鍵長をつかおうとして通信不能に。
    • パッチ不十分だったのでrevisedで出るよてい。
    • sendmail.cfに鍵長をちゃんと書くように。
  • EN-15:09.xlocale
  • EN-15:10.iconv
  • 8.4RのEOLが6月末なので8月に延ばす予定
    • 8系をすてるとports管理がらくになる..

[2015-06-30 21:19]

[2015-06-30 21:21]

えびはらさんレポート

  • つかってもらうにはルートのパスワードをつけちゃだめ
  • 9月/10月はイベントがつづく..
  • もうすぐでMLよりもfacebookの方が大きくなる..

[2015-06-30 21:37]

[2015-06-30 21:40] 終了

Samuel J. Leffler
丸善
1991-07


第7回 FreeBSDワークショップ

_1320832_1320833

_1320834

[2015-05-15 18:51]

  • 日曜は人があつまらなかったので平日夕方に戻した。
  • conpass登録15名
  • 人があつまれるよう、場所と機会を提供する会。
  • 意見をすいあげる場所でもある。

_1320838_1320839

[2015-05-15 19:00]

自己紹介タイム

  • マイクロソフトのcoreCLRをためしている
  • boot loaderにLUAがはいったのをためしている
  • forthって後置なんじゃ? → そのままforthのインタプリタが動いているのではなく、裏で動いているので入力は別。
  • 家でZFSつかっていてSSDをキャッシュにしているのでけっこう速い。
  • linux emulatorの64bitは、ゆっくりは進んでいる。(単純作業だけどBHyVeに人をとられている状態)
  • FreeBSDのcurrentが終了時にPANICする。
  • dhcpdcdのパッチがはいってないのはなぜ? → 忙しくて作業できてない。
  • DADはFreeBSDはカーネルでやる方針(デーモンが落ちると状態がわからなくなってしまうため)。
  • VIMAGEのときにjailごとにデーモンたてるのはもったいない、設定めんどう。
  • ZFS slogははずせるはず。エラーメッセージだしてないならでないかも。ほかのpoolでためしてみるとどうなる?
  • systemdになったので、それじゃあFreeBSDに戻ろうと。
  • ZFSは不安定なのでつかいたくない派。もっと上のレイヤでやった方がいいのでは? (クラウド屋さん)
  • systemdに移行するのは企業ユーザからすると嫌だが起動が速いのはうれしい。
  • chefなどでOSがなんでもよくなってしまえばちがってくるかも。
  • ハードオフで100円ルータ買ってきてFreeBSDに替えてあそんでるが、hostapdでWPAでつながった直後に切れちゃう。ハードのせいかも?
  • FreeBSD研究部をFBにつくっている。
  • freebsd-updateは2つ前(メジャー)までしかサポートしてない(基本は)。ロールバックも動いている(雑だけど)。
  • pkg upgradeでperlやpythonをアップグレードをするときにハマることがある。ツールで依存パッケージを調べるがコンフリクトしてたり、一時的に一貫性がくずれてるとうまくいかなかったり。リリースのタイミングではきれいになっているはず。
  • いまはパッケージのチェックがきびしい。ファイルの上書きもだめ。
  • FreeBSD 11以降ではしっかりしたパッケージシステムが出てくる予定。

[2015-05-15 19:49]

休憩

  • 放送機材はAsia BSDconで関係した会社から借りてる。シンガポール経由なので遅延2分くらい。

_1320840

[2015-05-15 20:12]

_1320841

パケットキャプチャのすすめ / ならず者技術者 Hiroki "sabotage" Mori

  • 会社の企画屋さんに話した。
  • Sniffer高かったよね。
  • miruo (KLabの@pandax381さん作): みやすいtcpdump。サーバの障害調査用につくったもの。
  • iOSでつかってみた。remote virtual interfaceでMacからパケットがみられる。
  • rvictl -s
  • rviはether headerがついてない。miruoはether headerがついているのを仮定してたのでプルリクエストだした。

[2015-05-15 20:24]

海老原さんレポート

  • xfc12
  • bananapi 上海問屋でかえる
  • 5年サポート: security officerが死にそう..
  • 記録が残るとまずい(法律がらみ)ときは(記録がのこらないように)チャットではなくて電話とか直接会ったり。

_1320842_1320843_1320844_1320845_1320846_1320847_1320848_1320849_1320850

[2015-05-15 20:55]

NetBSDでmiruo

  • FreeBSD portsをNetBSD pkgsrcに移植した!

_1320851_1320852_1320853

[2015-05-15 20:57]

  • AsiaBSDconは3/10〜の予定でほぼ決まり。

[2015-05-15 20:59]

終了

_1320856_1320860

新宿ヨドバシでカメラ館のぞいてから帰る。

_1320868

第4回FreeBSDワークショップ

夜から朝まで雪が降っていたが都心はほとんど雪は積らなかった。

会社を出るのが遅くて5分遅刻。しかし開始時間は20分ずらされてて18:50に。

_1260762_1260720_1260756

今回は告知が3日まえと急だったにもかかわらず、けっこうな参加者が多い。

_1260721

会場のコンセントは床埋め込みなので直差しアダプタの人は要注意。

_1260723

前半の自己紹介タイム

[2015-01-30 18:50]

  • 飲み物は紙パックなので飲み切ってください。
  • 開発者だけど日本でプロモーションする担当だけど、さて何すればいいのか?
  • 何をやればいいのかの調査の場でもある。
  • 海老原さん: ライントニングトークなら何時間でもやれるぜ!
  • 佐藤さん: 2006年から任期2年で4期目
    • 喧嘩の仲裁が仕事。開発者が離脱してはこまるので、電話したりして、大人の対応をしてもらうしごと。
    • 個人だと企業でつかってもらいにくいので、法人ができた → FreeBSD Foundation
    • 2006年まではドメイン freebsd.org も個人の所有だった。
  • 自己紹介: 名前(所属)・開発者/利用者・興味/話題など。
  • 若い人を呼び込むには: googleサゼスチョンでFreeBSD→就職 って出るように! (linuxではでるので)
  • プロモーション: だれに向いてやってるの? 研究者と大学学部生で変えないと。
  • 大学生: aptおそくてFreeBSD入れてみた。仮想環境をつくれるようにしてほしいのと、WiFiのタップがとれないのが困るのと。

[2015-01-30 19:47]

  • Q: libiconv両方必要なのは?
  • A: FreeBSD10でbaseのでportsをコンパイルしてみたらエラー多数。widechar=unicodeの仮定しているコードはパッチあてようがない。baseのiconvはめちゃくちゃ遅いしサイズ(ディスク)もでかい。エラーリカバリーのしかたがcitrusとGNUとで違う(POSIXに規定なし)。そのせいでlibxmlが動かなかったり。FreeBSD9→10で動かなくなったソフトはレポートを上げてほしい。
  • Q: デスクトップをなんとかしてほしい。
  • A: PC-BSDの人たちががんばっているが、linux並になるのは困難だし、そもそもlinuxでもシェアがとれていないし、そもそも日本語の壁もあるし、
  • Q: 仮想環境なんとかしてほしい
  • A: para-virtualization対応はMSやVMwareに要望はだしているので、良くなる方向。ユーザサポートに言うべし。
  • A: bhybeはほとんどのOSが動くレベルになってきた。コア部分はいいけど、周辺部分がまだまだ。負荷かけても落ちない。スタートアップ企業もあるので開発が止まることはない。libvirtで設定できるところまでは開発されるはず。FreeBSD10ではコアは動くけど設定はまだまだ大変。
  • Q: Go言語
  • A: haskell,scala,erlangなどはFreeBSD上でつかっている人がいるのでメンテされている。Modulaは消された。
  • Q: PPC対応
  • A: Mac PPCには対応している(デスクトップが動く)が、組込は開発者が2人くらいしかいない(arm/mipsに比べるとサポートが弱い)。
  • Q: openSSLのバージョン
  • A: どのバーションをつかうかはportsメンテナが決める。opensslを切り替えるのはけっこうめんどくさい。
  • Q: FreeBSDのデスクトップは日本語入力もできるしFirefoxも動くし、update機能が弱いのは実は普通のユーザは気にしてない? アンチエイリアスが効いてないのはなんとかならんのか?
  • A: デスクトップはどうしてもlinux後追いになってしまうのはしかたない。

[2015-01-30 20:08]

_1260724

休憩時間

  • 原岡さん: FreeBSDのNFSはなぜか遅い。

後半のLTタイム

[2015-01-30 20:20]

_1260725

FreeBSD on Panasonic CF-Y8 / Ryo ONODERA

  • FreeBSD10.1でWiFiがつかえない。NetBSDだと動く。
  • wpa_supplicantのバグ?
  • ファームウェアがロードされてない? もしかして解決?

[2015-01-30 20:27]

_1260727

海老原

  • Q: poudriere?
  • A: 英語圏ではプードリエ。
  • Chromebook(arm)でFreeBSD/OpenBSDが動く。NetBSDが動かないのは現行機種だから! FreeBSDのchromebookはお金が出てる!
  • デスクトップはだめだけど、組込はこの分野で唯一。
  • 言語設定は書いておくものだ。
  • mlterm-fb: 遅いマシンでは便利。画面の回転もできる。

_1260731_1260733

[2015-01-30 21:02]

_1260734

OpenBlocks IoT BX1 / 民田

[2015-01-30 21:15]

_1260742

[2015-01-30 21:20]

RaspberryPi GPIO / 鈴木

  • gpioctl(1)でLEDを点滅させる
  • libgpioがはいったので、GPIOをつかったCプログラミングかんたんにできるようになった。

_1260747

[2015-01-30 21:37]

_1260753

[2015-01-30 21:38]

使ってみようVIMAGE Jail / 佐藤

http://people.allbsd.org/~hrs/FreeBSD/sato-FBSDW20150130-1.pdf

  • 複数台の物理サーバを1台に集約する..
  • VIMAGEはネットワークだけを仮想化する。
  • jailとVIMAGEは別モジュールだけど統合したほうが便利
  • vnetと呼ぶひともいる。
  • 100kBくらいのオーバヘッドで、MP環境でも(スタック間で)ロック競合は発生しない。threadごとにvnet (td_vnet)を設定。
  • jailにvnet persistオプションつけるとプロセスなくてもjailが生きつづける。
  • 今は/etc/jail.confでたいていのことはできるようになった。
  • NICつかうやりかた3
    • (1) ifconfig em1 vnet serverA ;;ホストからjailにNICが移動する。ホストからは見えなくなる。外からは区別つかないレベル。
    • (2) ホストにbridgeつくってepairでホストとjailの中をつなぐ。epairはハブでつながっている一対のNICにみえる。
    • (3) 2とは違いブリッジではなくNATやルーティングでつなぐ。
  • バグ: start/stopでメモリリークする。理由: ネットワークスタックは止められるように作ってない。数10Bくらいリークする(実用上問題ない量)
  • ezjail: 手が混んでいるので、トラブルシューティングが難しくなる。make installで同じファイルがたくさんあっても気にならない人ならjail.confでやる方が簡単。
  • FreeBSD11ではgenericに入れたい。
  • em0のアドレスはbridgeにつけないつ通信できない(BSDのいやらしいところ)

[2015-01-30 22:04]

  • AsiaBSDCon 2015は超有名人が来るよ
  • Q: jailの中とばれないようにしたい。
  • A: ps で J が付いてでるし、sysctlしたらばれるし、ありえないところでpermission deniedになるし。dmesgがjailで分離されてないし。

[2015-01-30 22:08]

2Fロビーのソファーで時間つぶししてから渋谷へ。

_1260757_1260760_1260763

第2回FreeBSDワークショップ

出かけるのがおくれてぎりぎり。でも開始が5分おそくなってて間に合った。

_1250206_1250207_1250209_1250212x

[2014-11-30 16:06]

前半

  • 今回新規登録3名
  • 国内ではあまり聞かなくなってきたが、海外では使われてるよっと。
  • 日本・アジア圏では発表中は参加者がだまってるけど、海外ではしゃべりたいようにしゃべるので、「しゃべらないでください」というほど。
  • コアチームのしごとは喧嘩の仲裁。基本、入れたい機能は自由に入れていいが、衝突したときにコアチームが「ダメ」っていったらダメ。反論不可。
  • コアチームは意思決定するけど、法律・お金のことはFreeBSD Foundation。2000年にできて、まともに動きだしたのは2004年くらいから。
  • 自己紹介タイム
  • つかってないひとは今回は来なくなったっぽい。
  • 今回13人+1人

[2014-11-30 16:42]

  • GPLv2はライセンスもってるひとが全員承諾しないとv3に移行できない。v2以降ならなんでもokというのは別。
  • ghostscriptは企業まるがかえしててAGPLに切り替えたので、postscriptつかったサービスはあぶない。
  • FreeBSDではGPLv2からv3にスイッチしたら取り込まない。最終的にはGPLをなくす方向で。
  • 社内サーバ利用はどんどん減ってる。Linuxに対してのメリットがほぼない。
  • セルフビルドはbuildworldにメモリを喰うのがllvmのC++のせい。swap込みで1GBくらい必要。
  • 発言力はamd64とarmしかない。お金・人・時間の消費を考えると。
  • int64_tつかって32bitマシンで動かない状況になりつつある。ベンダーのコードに多い。
  • デバッグシンボルも消さなくなってきた。
  • PAEはつかえなくても動く。GENERICには入ってない。ubuntuはインストーラがうごかないらしい。
  • 日本人に関係するportsは声を上げないと消えちゃう。
  • dotがコアダンプするのはずっと昔から?

[2014-11-30 17:24]

休憩

  • Javaに3000万

_1250211x_1250213

[2014-11-30 17:40]

後半

  • Yahoo!
    • 日本とアメリカは独自路線になってる。
    • 1990年 2.0.5Rから。HTTPを大量にさばくワークロードはまだ一般的じゃなかったころ。select()つかってた。
    • www.freebsd.orgはながいことyahooが提供してくれてた。
    • 今はだいぶ減ってきている。
    • accept_filterもyahooから。
  • Netflix
    • ビデオレンタルの会社。1970年代からある。ストリーミングに方針転換。
    • CDN独自構築。Netflix OpenConnectをISPに置くと勝手にBGPでpeerはってキャッシュする。
    • youtubeの2倍の通信料をさばいている。
    • amazonにデータは置いてる。amazon→|[IX]→OriginServer→IXCache→|[ISP]→EmbdedCache
    • 1Uサーバで20000 connection, 20Gbpsをさばく。カーネルとユーザ空間のあいだのコピーをへらしたいが。SSLがある。
    • SSLをカーネル内に入れて解決!
    • カーネルを理解してるから使っている。元yahooとか元LSIの人が入ってきている。
    • GPLじゃないのも重要。GPLでいいコードもあるけどライセンス管理コストがある。
  • TaxiMagic
    • gocurb.com
    • タクシー配車
    • ZFS,DTraceが採用理由。DTraceはログや性能測定が柔軟にできる。カーネルの再コンパイルは不要。
    • 最初の開発者がFreeBSDをしってたのもある。
  • WhatsApp
    • メッセンジャーをつくっている会社。facebookに買収されたけど。
    • タクシー配車とおなじでクライアント数が多いのが特徴。webサーバに比べてもおおい。
    • Erlangをつかっている。
    • SMPの性能がFreeBSDでスケールしたのも採用理由。創始者がyahooの人なので、ちょっとfairではないかも。
  • EMC Isilon
    • イシロン?アイシロン?
    • IsilonはEMCに買収された。
    • ストレージ製品をつくっている。
    • ファイルシステムはそのままつかっているわけではない。
    • 組込機器でGPLはつかえない。
  • Juniper
    • そのままOSとしてつかっている。MIPSとかも。FreeBSD4のころには動くコードがあった。
    • 組込機器なのでライセンで。
  • Dell KACE
    • アプライアンス(1U,VM on EMX)管理につかっているらしい。
    • つかってるならおかねくれっていったらおかねくれた。
    • つかっている理由は不明。。。
  • NetApp
    • ストレージの会社。
    • 客先でGPLのコードを入れないといけないケースでは、VMのなかでLinuxを動かして。
    • CitrixのXENサポートで貢献。
    • GPL抜きで出荷してから、客先でVMごとインストールすることでライセンスを回避。(ぬけみちとして)
  • Apple
    • プロジェクトとは仲がよくない。ただつかうだけで貢献してくれない。。
    • BSDのコードをつかってるだけ。
    • MachにBSDのネットワークのコードを入れているがVMはMachのものをつかっている。
  • SmartCom
    • ブルガリアの通信会社。EuroBSDConで発表。
    • キャリア向けのスイッチルータを安価に提供している。
    • 30〜40Gbpsを出さないといけない。
    • Netgraphでうけとった情報をTCAMに。
    • NetgraphがつかえるからFreeBSDをえらんだ。(技術的優位性)
    • R&Dプロジェクトなのであまりライセンスは関係ない。
  • SpectraLogic
    • ストレージ。FreeBSDをつかってるのはストレージかネットワークか。。。
    • テープライブラリとか。金融とか防衛とか。
    • テープにインターフェースを維持しつつ裏はHDDになってるとか。
    • ZFSが安定してつかえるのが選定理由。
  • iXsystems
    • FreeBSDといちばん繋りがつよい。
    • BSDiのハード部門でサーバ屋。組み立ててるだけ。
    • 個人・中小企業がターゲット。
    • FreeNAS. TrueNAS.
    • ハードを売るためのソフトなのでタダでくばっている。
  • Microsoft
    • 交渉の結果、Hyper-Vの公式サポートをやってくれる。
    • FreeBSD 10.1では試験提供。
    • Microsoftも使われかたを知りたがっている。
  • FreeBSD Foundation
    • 「ストレージのコードは出さなくてもいいから、コミュニティを維持するおかねをください」という感じで。
    • 1億円くらいあつまるようになってきた。
  • ISP/ASP/CDN での利用は伸びてない グルーポンもこれ
  • クラスタコンピューティング での利用の伸びてない
  • アプライアンス/組込 が今のメイン。
    • ARMは需要があるのでLinuxよりも早くという方向でうごいている
  • 大食い症候群: コミュニティと協調しないとマージコストがおおきくなる。重要じゃない部分は公開して!
  • Spectra Logic: プロジェクトに3人おくりこんでいる。重要じゃないコードは定期的に同期してコミュニティに戻す。
  • なぜFreeBSDをえらぶ?
    • ツールキットしてまとまっている。部品としてのFreeBSDをつかうときにつかいやすい。(1つの組織でメンテされている)
    • ライセンス。組込やSaaSはGPLを避ける傾向。(訴訟でどうなるかは別だが、GPLで騒ぎになってほしくない) portsでもGPLv3は避けるようにしている。
    • 見通しが良く中立性が高い。Linuxは派閥があって入りにくい。
    • 知っているから。
    • DTrace。
    • Permissiveなライセンス。CDDLはぎりぎりOKという会社。だめな会社はZFSを削る。
    • ZFSが安定して動く。Oracleがコードだしてくれない。OpenSolarisは足りないコードをメンテしているコミュニティが小さすぎる。
  • Q: 組込機器で、FreeBSDのバージョンサイクルは気にしてる?
  • A: あまり関係ないようだ。
  • Q: PC-BSDはなぜFreeBSD?
  • A: 知らない。完全に趣味のプロジェクトだったところに金を投下したもの。
  • Q: linux emulator と VM のつかいわけ
  • A: bhyveとjailとのつかいわけみたいなもの。そもそもlinux emulatorで動かしてうれしいものある? adobe reader/firefox/chrome/operaなどを動かす需要がった。64bitエミュレーションの需要もある(あんまり積極的に開発がすすんでない)。
  • Q: linux emulatorの方がnvidiaドライバの性能が出る場合がある。
  • A: HPにFreeBSDでネイティブコンパイルさせてほしいといっても関心なし。日本HPは客がいるが本社には少ない。LSIでファームウェアのアップデートができるのか、とか?
  • Q: latclock? は放置されている? FreeBSD 10の目玉機能だったはずだが。
  • A: 覚えてないので後でしらべる。

[2014-11-30 19:11]

[2014-11-30 19:18]

_1250217_1250216_1250218_1250220

第34回FreeBSD勉強会 使ってみよう分散ファイルシステム(1) OpenAFSの巻

_1240859_1240860_1240861_1240863_1240864_1240865_1240866_1240868

  • 分散ファイルシステム: 個人でつかうものではないので表にでてこない。
  • AFS(Andrew File System): 30年の実績がある。(1983年)
  • 今回はシングルボリュームの話まで。
  • 佐藤先生: FreeBSDの中でさわってないところはないぜ!
  • AFSが出てきたのは1980年代。NFSなどネットワークファイルシステムはあった。
  • 分散ファイルシステム: サーバが複数ですべてのクライアントに同じ名前空間(ビュー)をみせたい。
    • NFSだとクライアントのマウントポイントが制御できない。
    • NFSには同期や一貫性制御がない。
  • AFS: 5000〜10000台を目標だった(当時)。
    • どれくらいスケールするかが問題。クライアントが2倍になったら負荷が2倍程度におさまるようなシステムであるかどうか。
    • サーバを増やせるか(スケールアウト)?
    • 管理が簡単か?
  • AFS: カーネギーさんもメロンさんもアンドリューだったのでAndrew(File System)。4.2BSDに実装された。
  • DCE(distributed computing environment)という統一規格(ポシャった)のなかのDFSになった。
  • OpenAFS: いまだメンテされているが、透明性がたかいとはいえない年寄集団。。。
  • Arla(オーラ),Coda(コーダ): AFSの欠点を解消しようとするプロジェクト。もうぜんぜんメンテされていない。
  • Stanfordの学生のホームディレクトリで使われている。IBM社内でもつかわれている?
    • AFSはインターネットのような貧弱な環境でも機能する。
  • アメリカ以外であまりつかわれていなかったのはKerberos(カーベラス)があった輸出規制があるから。
  • webからでもつかえる。(いまならdropboxがあるけど)
  • AFS: クライアント・サーバ・システム。P2Pではない。
  • Venus(ビーナス): クライアント (ハードコーディングされているので名前は変更負荷)
  • Vicea(バイス): ボリュームサーバ (ファイルを格納;ディレクトリ構造はもってない)
  • KDC: Kerberosの認証サーバ (アクセス制御)
  • DBS: データベースサーバ群
  • 十数年単位でノンストップで運用できる。
  • NFSとちがってAFSではプロトコルでキャッシュの挙動が規定されている。
  • AFSのNFSv4のアクセス制御はほぼ同じNTモデル。
  • FreeBSD7,8ではNFSサーバを構成変更して再起動するとfilehandleが変ってしまって(ブロックデバイスに依存してるので)、クライアントがreconnectできない問題があった。
  • AFSはサーバにログインしなくてもクライアントから管理ができる。
  • AFSのセマンティックス:
    • openしたときにサーバからファイルを全コピーする。
    • read/writeはクライアント上で行われる。サーバの負荷が上らないメリットがある。
    • closeでアップロードする。キャッシュは破棄される。
    • 複数クライアントがopenした場合、最後にcloseしたものが残る。
      • 勝手にマージされないのでファイル内の一貫性が保たれるメリットがある。ロック不要。
      • 書き込みはほぼ1箇所からと仮定する。たとえば昼は大学から夜は自宅から。
    • callback: 同じファイルopenするたびにコピーするのは無駄なので、ファイルが更新されたときに通知(サーバ→クライアント)を受け取るしくみ。
  • sequential read: AFSはファイルサイズが大きくなるとキャッシュが効いてきてNFSよりも速くなる。NFSだとキャッシュからあふれる可能性があるため。
  • sequential write: AFSは大きいファイルをちょっとだけ書き換えるときに性能が非常に悪い(open時に全readしたあとclose時に全writeするため)。
    • AFSにDBのファイルを置くのは無理。

[2014-11-13 20:05]

休憩

[2014-11-13 20:11]

  • 設定:
    • Heimdal(ヘイムダル) (Kerberos)
    • BIND (DNS)
      • 昔は/etc/hostsみたいなものが保守されていた。
      • 最初のデータベースサーバに繋ぐのに必要。
      • インターネットに公開してないゾーンサーバを立てればok。
      • _kerberos._tcp SRVレコードをつかう。_kpasswdとか _udpとかも設定する。
      • _kerberos TXTレコードでレルムを書く。
      • サービスディスカバリーになる。
      • セキュリティリスク: DNSのっとられたどうするの? → DNSくらい自分で守れよ!
      • セル名でアクセスできるように @ IN AFSDB 1 xxx.domain. でセル登録
      • _afs3-vlserver._tcp SRV (ボリュームロケーション)
      • _afs3-prserver._tcp SRV (プロテクションサーバ;アクセス制御する;認証はKerberos)
    • OpenAFSサーバ
    • OpenAFSクライアント
  • インストール: cd /usr/ports/net/openafs; make install;
    • 2週間前から壊れてたがが今日直した。カーネルモジュールが関係するので。。。
    • /var/openafsにファイルとかメタデータが入る。ログもここ(デフォルト設定ではsyslogには送らない)。
  • ルートは必ず/afs。その下は /afs/セル名。セル名はドメイン名にする必要はない。
  • /usr/local/etc/openafs の下のファイルはそのままでは使えない。。。
  • AFSができたときはKerberosは発展途上だったので鍵のフォーマットが特殊(AFSKEYFILE)。
  • AFSはいろんなプロセスがあるのでBOS(Basic Overseer Server)がセルを担当する。
  • bos -localauthオプションは認証の設定がおわるまでは必要。
  • /usr/local/etc/openafs/CellServDBは#の後はコメントじゃないので編集しないように。
    • [ ]がついてたらviでもつかって消さないといけない。。。条件は複雑。。。
  • pts createuser ... -id 1 -localhost で指定する-id 1はUIDとは関係ない。ローカルでユニークになってればok。
  • pts adduserはアクセス制御目的でグループにユーザを追加する意味がある。
    • グループsystem:anyuserは全ユーザ(自動的に追加される)、グループsysteem:authuserは認証を受けたユーザ。
  • 設定はBoSConfigに記録される。
  • もしサーママシンでAFS管理コマンドを実行したい場合はクライアントデーモンを起動しておく必要がある。
  • ボリューム名は vicepa,vicepb,.. をつかう。変えるとハードコーディングされてるものがたくさんあって困る。。。pはパーティション。バイス・パーティション・エー。
  • root.afsはいらないんだけど作らないとroot.cellをぶらさげられない。
  • NFSみたいにexportはできなくて、AFSでは独自DBになっているのでコピーする必要がある。ファイルは/vicepaの下に置かれる。
  • kinit ユーザ名/サービス名 が慣例。 e.g. kinit hrs/afs@ALLBSD.ORG
  • cronでつかうときは鍵をあからじめとりだしておく。

デモ

[2014-11-13 21:45]

  • 細かいコマンドがたくさんあってドキュメントが少ないので、とっつきにくい。
  • subversionのリポジトリはバイト・レンジ・ロックできないといけないのでAFSに置けない。。
  • Q: ディレクトリのキャッシュ管理は?
  • A: ファイルと同じ。デモでうまくいかなかったのは回線が細かったため。

[2014-11-13 21:48]

告知

  • Startup Weekend Tokyo Tech

_1240872_1240873

[2014-11-13 21:54]

告知

  • 35回FreeBSD勉強会 12/15 FreeBSD10.1 後藤さん

[2014-11-13 21:55]

  • Q: system:authuser に追加されるタイミングは?
  • A: ビルトインのやつは動的にグループに追加削除され、認証が通った時点で追加される。
  • Q: atimeはどうなってる?
  • A: AFSには時刻は1つしかなくて、mtimeがctime,atimeになる。

_1240875_1240876_1240877

_1240878_1240881_1240886

いってきた: 第28回 FreeBSD勉強会 数千台のFreeBSD Jailホストを管理する技術、実務実践からのテクニック

  • 第28回 FreeBSD勉強会
  • 数千台のFreeBSD Jailホストを管理する技術、実務実践からのテクニック
  • 講師: 浅川倫之氏 @asakawaya
  • 日時: 2014-04-18 19:00-21:00
  • 場所: KDDIウェブコミュニケーションズ会議室
  • http://atnd.org/events/48054
  • #FreeBSDStudy
  • http://togetter.com/li/657083

久し振りのFreeBSD勉強会。社内システムで一桁台のJailをつかっているので運用テクニックを求めて。

_1170951_1170982_1170953_1170952_1170954

[2014-04-18 19:00]

  • jail: 発音はジャイル? ジェイル?
  • 性能的に1台で済むところをイベントトラフィックに耐えられるよう複数台のクラスタにするとコストがあわなくなるので複数ユーザでクラスタを共用する。
  • 基本構成は Internet -- LoadBalancer -- Server(cluster) -- DB
  • jailはオーバーヘッドがないので、性能を測ったことすらない。
  • muninのグラフをかくのにサーバがいそがしい。 urchinというログ解析のソフトはバッチで動いてCPU100%つかう。
    • _1170955
  • リリースディスクイメージをそのままマウントして、jail用のディスクは別途用意。
  • ezjailはつかったことないから知らない。使おうとおもったことはあるが、使う意味ないなぁとおもって使わなかった。
  • qjailは4年くらい前から後藤さんの記事をよんでつかっている。後藤さんはつかってないらしいが。
  • qjail3になってマルチIF(1つのjailに複数のアドレスをつける機能)がつかえなくなった。qjailはperlで書いてあるので書き換えてもいいがメンテナンスで心中したくはないので、そのまま使っている。/etc/rc.jailが書き換えられるのもいや。
  • mysqlは複数jailで起動できるが、postgresqlは共有メモリの関係で競合してして動かない。
  • 基本的にFreeBSDバージョンや32/64bitは親とjailとで違っていても動くが、ps/topなど(kmemみるやつ?)は動かないことがある。jailに親のps/topを入れると動くことが多い(が見られる必要もない?)。バージョン違いで動かすのは、古いpostgresqlを入れてデータのサルベージするのにつかったり。

_1170956_1170957_1170958_1170959_1170960_1170961_1170962

[2014-04-18 19:29]

10分ほど休憩タイム

[2014-04-18 19:36]

  • Q: FSはなにをつかっているか?
    • UFSをつかっている。
    • ZFSをつかってないのは容量はあまり必要ではないため。ファイルでいちばん大きいのはapacheのログだが、これも外に追い出している。
    • 昔はSCSIつかってたが今はATAでRAID0(6本)にして高速化している。ZFSだとオーバヘッドがもったいない。
    • UFSだと死んだときのサルベージの経験があって安心感がある。
  • Q: 一元管理はどうしているか?
    • 何かミスして全滅すると怖いので、40台しかないし、手でやってる。
    • 監視はmuninでみてるだけ。張り付いて監視している人はいない。
    • プログラム(CMS)は自社製でmysqlのマスタが死んでもすぐにスレーブをマスタに昇格できるようにスクリプトは組んである。
    • 内容は単純にコピーしてつかっている。
  • Q: Bonding(Teaming)・VLANは?
    • グローバルとプライベートのセグメントを分けてる。バックエンドであるクラスタサーバはプライベートにしか繋がないようにしている(ただし過去のしがらみはある)。
    • VIMAGE(ネットワークスタックの仮想化): そろそろほしくなってきた。客によっては専用線を使いたい案件があり今はファイアウォールでやっているがプライベートアドレスの衝突が起って困ることも。現状はカーネルを作りなおさないといけないのがイヤなところ。
  • nullfs: qjailがnullfsをつかっている。/sharedfsで共有されてる。portsも共有されるので親をアップデートすればjailもアップデートできるがliveではできず一旦止めないといけない(今後のsnapshotに期待)。
  • qjailとjailコマンド直のは混在可能。
  • qjailはzoneがつくれるが/usr/jails決め打ちなのがイヤ。
  • qjail: defaultsに設定を書いておけばコピーされるので便利。/usr/localも共有してる(設定ファイルは変えないといけないけど)。

[2014-04-18 19:58]

  • jailの中からfreebsd-updateができない。外からfreebsd-update -bでできる。qjailならupdate -bとか-pとか。jailごとにdistfilesもってきてしまう。

_1170963_1170964_1170965_1170966_1170967_1170968_1170969_1170970_1170971_1170972_1170973

qjail/jail実演:

  • ちょいはまる

[2014-04-18 20:24]

  • リモートからFreeBSDバージョンを上げるには: 本来はmakeするんだけどバイナリ上書きで。東京から札幌のマシンをアップデートしたり。/etc/passwdが上書きされることがあるので、リブートする前にパスワードを設定するのを忘れずに。

_1170976

質問タイム

[2014-04-18 20:30]

  • Q: linuxのjailはどう?
    • 動くらしいが使ってないので知らない。linux/32bbitでしか動かないKDDIのガラケー課金モジュールがあって困るがエミュレータで動かしている。ちなみに64bit版のlinuxエミュレータはまだない。
  • Q: Jailでうまく動かないことはあるか?
    • 通常はjailだから動かない、ということはない。
    • 親でpsするとJailで動いているプロセスにはJがついてわかるが、jailの中でpsしてもJがついちゃうのはイヤ。sysctlもみえているので、ぜんぜん隠せていない。
    • 昔はloopbackがつかえなかったのでlocalhostに自分の(jailの)アドレスをつけていた。
    • jail内でlistenしてないポートは親につながれてしまう問題がある。
  • Q: リソース(lxcとか)の管理は?
    • 最近はできるようになったらしいが、必要性がないのと、オーバコミット状態で運用しているのでちゃんとリミットつけると動かせるjail本数が少なくなってしまう。
  • FreeBSDはlinuxとちがってて教育コストが低い。(社員はlinuxをつかおうとしてない!)
  • (物理サーバの管理)

_1170977

[2014-04-18 20:46]

[2014-04-18 20:47]

告知 by 佐々木

  • 技評版FreeBSD勉強会が5/22にある。
  • FreeBSD勉強会 #29は6/2
  • FreeBSD VendorSummitはBSD系ならだれでも参加ok
  • BSD Researchは佐藤先生が立ち上げ中。LPICのようなBSD認定検定ができるらしい。海外では3000人くらい受けてて半分くらい合格してるらしい。日本語でできるようになるらしい。

_1170978_1170981

[2014-04-18 20:57]

懇親会

_1170983_1170993_1170984_1170985_1170987_1170998_1170994

閉会 22:50

_1180005_1180001_1180002_1180006_1180007_1180008_1180009_1180011

いってきた: 第24回 FreeBSD勉強会 初のライトニングトーク×FreeBSD忘年会'13!

_1140133

_1140136

_1140138

_1140139

_1140140

_1140141

_1140142

_1140143

_1140144

_1140145

_1140146

_1140147

_1140148

_1140149

_1140150

_1140151

_1140152

_1140153

_1140154

_1140155

_1140156

_1140157

_1140158

_1140159

_1140160

_1140161

_1140162

_1140163

_1140164

_1140165

_1140166

_1140167

_1140169

_1140170

_1140171

_1140172

_1140173

_1140174

_1140175

_1140176

_1140177

_1140178

_1140179

_1140180

_1140181

_1140182

_1140183

_1140184

_1140185

_1140186

_1140187

_1140188

_1140189

_1140190

_1140191

_1140192

_1140193

_1140194

_1140195

_1140196

_1140197

_1140198

_1140199

_1140200

_1140201

_1140202

_1140203

_1140204

いってきた: 第17回 FreeBSD勉強会 マルチコアとネットワークスタックの高速化技法

_1030270_1030275

[2013-04-22 19:00]

BSDコンサルティング / 後藤大地さん

DSC05804DSC05807DSC05809DSC05805

  • 浅田さんがわすれものをしたので後藤さんが20分ねばる..
  • 技評さんも来てない..
  • 4月は金曜は会議室が空いてなかった..
  • 勉強会は単発でやってたがKDDIが会議室を貸してくれることに。
  • 講師の睡眠時間の対価として参加費の8掛けをお支払いしている。
  • 史上最後のFreeBSDの日本語の本が出るので記念に買ってください。。。
  • 電子書籍もかなり売れている → 逆に考えると電子書籍はあまり売れていない..
  • 18thは講師がみつからなかったのでBSDCanの話をしようかと..
  • FreeBSD Expert Digital Edition 2はビッグデータの話もまとめてある
    • 今のアーキテクチャではメモリバスがネックになっている
  • BSDc-NEC HW 検証サービス
    • NEC Express5800のサーバでFreeBSDが動かないというクレームが! → BSDcがパッチ作成を引き受け (夏移行のリリースには含まれるはず)
    • FreeBSD6系7系をつかっている人がおおいが.. 新しいハードでは動かないし... 性能も出ないし... ぜひBSDcに相談を!
  • BSDCan
    • Euroより安い 宿も
  • 鼓遊チャリティーコンサートやってる (和太鼓)
    • 6/9 14:00〜 駒沢学園
    • ハードなので4年で20kgくらい体重が減った?!
  • ネットワークの機能を全部NICに入れていまうとBPFとか入れられなくなるし。
  • 5年後くらいには400GbpsのEthernetがデータセンターに入るだろう。
  • リング状のトポロジにしてパケット落ちを避ける方向も検討されている。
  • Netgraphはgeomのようなもの。
  • accept filter: カーネルモジュールでメールの処理するのに使える(スパムフィルタなど)

DSC05810

[2013-04-22 19:34]

マルチコアとネットワークスタックの高速化技法 / 浅田拓也さん

DSC05811

  • ネットワークの実装は繰り返し見直しされている。1GbpsのNICが出たときとか。
  • NIC:1GbE→10GbEになったときに、CPU:1GHz→3.2GHz。CPUの性能向上はいまいち。メモリはCPUの1/10のペースで向上。
  • 1コアあたりの性能が足りてない → マルチスレッド必須
  • お題: 割り込み頻度の問題・オフローディング・データ移動に伴うオーバヘッド・プロトコル処理の並列化
  • 4.3BSDの受信処理の図: パケット→パケット受信→プロトコル処理→ソケット受信処理→ユーザプログラムDSC05812
  • 割り込み頻度の問題
    • パケット→パケット受信: NICに着信するたびに割り込みが発生する実装が単純だが、NICが速くなると割り込みが多すぎて他の処理が実行できなくなる。割り込みにともなうコンテキスト切り替えコストが高いので。
    • interrupt coalescing: いまどきのNICなら載ってる。個数・期間でパケットをまとめて1つの割り込みに。遅延が増える欠点。
      • Interrupt Moderation on ixgbe(4): パラメータをsysctlかブート時のパラメータで変更。かしこいNICなので流量に応じて動的に割り込み頻度を調整できる。割り込みが多すぎるとドライバかドライバがおかしいとしてメッセージを出すのでリミットは上げておくべし。FreeBSDはマニュアルがいまいちなのでLinuxで実験してみた。iperf(GbE)で負荷をかけると24000〜31000くらい割り込みが入るところ。割り込み頻度を下げすぎるとバッファあふれやレイテンシ増大の問題。固定値なら8000intr/secくらいにするのがよさげらしい。
    • Polling: NICの割り込みを無効化してタイマーでパケット受信。Linuxにはない。CPUが遅い場合には効果があるがHZ=1000以上じゃないと遅いので上げるべし。でも10GbEではHZ=1000じゃ足りないとおもう。
    • ハイブリッド方式: 通信料が多くなると割り込みを止めてポーリングにする。リングバッファが空になったら割り込み動作に戻す。
  • Low latency interrupt (LLI): Coaleasingすると遅延が増える → 低レイテンシが重要なパケットはすぐに割り込みをかけてくれる高級NICがある。LinuxにはあるがFreeBSDにはない。
  • オフローディング
    • プロトコル処理が重い(特に小さいパケットが大量に届くと小さくてもプロトコル処理はある程度かかるので負荷がかかる)ので。
    • TOE(TCP Offload Engine): TCP/IPをハードで処理できる。TOEにセキュリティーホールがあったらどうする? OSのネットワークスタックと協調しないといけないので複雑になるしメーカーによって仕様が違うし対応NICも少ないし。Linuxはやらないといっている。
      • FreeBSDにはtoecoreがある。カーネルは mbuf⇔app のコピーをするだけ。 options TCP_OFFLOAD + ifconfig cxgbe0 toe で。
    • iWARP, iSCSI, FCoE: TOEよりもハードでたくさん処理。
      • iWARP: RDMAでゼロコピー。InfiniBandと同じインタフェースで。通信はTCPをしゃべるが。
      • iSCSI: OSにはSCSIデバイスにみせて実はiSCSIをしゃべってたり。
      • HTTPにはつかえないよ。。
    • Checksum Offloading: IP,TCP,UDPのチェックサムを計算する。TOEと比べてOSでの対応が容易。
      • linuxでテストしてみた: 6.66Gb/s → 7.99Gb/s ちょっと速くなった。
    • Large Segment Offload (LSO), TCP Segmentation Offload (TSO): MTUにあわせてパケットのフラグメント処理をNICでやる。
      • OSからはMTUがおおきなデバイスにみえる
      • 実験: 9.00 →8.96Gb/s なぜか遅くなってしまった。
    • Large Receive Offload: LSOの逆でちっちゃなパケットをくっつけてくれる。UDPでは意味なし。プロトコルスタックの呼出回数が減るメリット。
      • 実験: 7.84→8.03Gb/s ちょい速くなった。
    • LinuxではLSO・LROをソフトウェアで実装している。ドライバのレイヤでパケットをくっつけてしまうことで上位レイヤの処理を減らすということらしい → GSO・GRO (FreeBSDにはない)
  • データ移動に伴うオーバヘッド
    • TOEは大きなパケット(>8KB;DBとかストレージとか)には効くが小さなパケットが多い場合にはにはあまり効かない。
    • iWARP,iSCSI HBAは既存のアプリが載らない。
    • TOEをローエンドのNICにのせたりするとCPUで処理した方が速くなる可能性も..
    • プロトコル処理よりもデータ移動が大きいのでは(NIC-memory-cache)
    • Intel QuickData Technology: (Intel I/O AT) NICのバッファからappの転送をDMAでやってCPU負荷を下げる。Xeonの一部のチップセットに載ってる。DSC05816
    • Intel Data Direct I/O Technology (DDIO): (DCA?) NICが(メモリに書かないで)CPUキャッシュに直接転送する。新しいXeonと10GbEで対応。OS側は対応不要らしい。
  • プロトコル処理の並列化
    • 受信キューがプロトコルごとに1つしかなかった。
    • マルチスレッドにしてRUNキューにつんでスケジュール・direct dispatch・
      • net.isr.dispatch=deferredにするとRUNキューに積んでワーカースレッドが処理。スレッド毎に受信キューがある。スレッドをCPUにboundすることもできる。
      • どのスレッド選ぶか? → etherならNETISR_POLCY_SOURCEでNICが違えばスレッドがちがう。
    • direct dispatch: net.isr.dispatch=directDSC05813
      • 割り込みコンテキストでプロトコル処理する。いちおうCPUをつかみっぱなしにならないように工夫している。
    • ハイブリッド: net.isr.dispatch=hybrid
  • 問題: 1つのNICからは1つの割り込みしかしない → 1つのCPUでしか処理されない → 1コアで処理しきれなくなったら?
  • 解決方法: MSI-X割り込み
    • PCI-Exでサポート。デバイスあたり2048個のIRQをもてるのでIRQごとにCPUを選べるようにすればok.
      • TCPの場合はパケット到着順序が重要なので単純にパケット処理を並列化できない。(UDPの場合は順序保証がそもそもないので問題なし)
      • キャッシュ競合もある。
    • Receive Side Scaling (Multi Queue NICとも)DSC05818
      • パケットヘッダのハッシュ値をもとに受信キューふりわけ。
      • dmesgとか vmstat -i でみるとIRQわりあてがわかる。
      • 問題: 受信プロセスと受信処理スレッドと違うとキャッシュ競合の無駄が
      • ハッシュ値は下位4bitだけしかつかってないので簡単に衝突。
        • Intel Ethernet Flow Director (ixgbe): フローとキューの対応を完全にとれる。CPUがどれなのかはドライバがだいたい考えてくれてるらしい。DSC05820
    • RPS(Linux)
      • オンボードNICでRSS非対応のものを救う実装(google製)
      • ソフトでRSSを実装する。ソフトウェア割り込みのときにCPUをばらけさせる。IPIで他のCPUに受信通知。
    • RFS(Linux)DSC05819DSC05821
      • 受信待ちプロセスのいるCPUで受信処理させたい。
    • RPS/RFS for FreeBSD: GSoC(Kazuya)で実装したがマージされてない... 性能向上は確認されているが...
  • まとめ
    • 関係する範囲は広いしハードウェアも関係してくるので大変。
    • とりあえずRSS対応のNIC買え。

[2013-04-22 20:51]

  • 後藤さん: RPS/RFSは佐藤先生のチェックは済んでる。おおまかに問題なし。どうやってマージするか相談しましょう。
  • 後藤さん: LSOで性能が落ちたのはパケットサイズが小さすぎるため。iperfのパケットサイズを増やすべし。InfiniBandはなにもしなくても性能が出る。
  • Q: 結局性能はどこまででるの?
  • A: (浅田)10GbEでも工夫なしでもフルレートがでる。PPSは不明。(後藤)FreeBSDではインテル製のドライバをそのままつかう方針でパラメータは自動調整されている。インテルとチェルシオはベンダーサポートが厚い。ブロードコムはあやしい。
  • Q: 10GbE NICを10枚刺して100Gbpsをやろうとしている友人がいるが
  • A: (後藤)NIC6〜7ポートくらいでメモリバスが飽和するのでどうしようもないとおもう。
  • Q: SSL(トンネル)との相性は?
  • A: (浅田)よくわからない。

[2013-04-22 21:01]

  • アルコールタイム!
    • 高級なワインが出てきた!

DSC05824DSC05825DSC05826DSC05827

_1030274

_1030284

記事検索
月別アーカイブ
アクセスカウンター

    タグ絞り込み検索
    ギャラリー
    • 今日の練習 2023-11-30
    • 今日の練習 2023-11-27
    • 今日の練習 2023-11-27
    • 今日の練習 2023-11-27
    • 今日の練習 2023-11-24
    • 2024年の手帳
    Amazon
    楽天市場
    adby google
    LINE読者登録QRコード
    LINE読者登録QRコード