OSC 2009 Tokyo/Sprint 2st Day

はてなでの仮想化技術あれこれ

はてなの紹介
  • 700万ユーザ
  • 10億PV
仮想化技術
  • ハードウェアを抽象化し,複数のOSが動作できるようにする
  • 古くはメインフレームの技術らしい
  • 仮想化のメリット(from Wikipedia)
    • 可用性・柔軟性の向上
    • 運用コストの低下
    • セキュリティの向上
はてなでの仮想化
  • Xen を利用
  • Xen における仮想化モデル
    • 仮想化モデルとは
      • 準仮想化
        • エミュレーションオーバーヘッドを最小に押さえられるが,OS 側の対応が必要
      • 完全仮想化
        • 実ハードウェア用OSがそのまま動作するが,エミュレーションオーバーヘッドが大きくなる
  • はてなにおける仮想化の歴史
    • CentOS 5 系への移行した際に,Xen を試し始める(2007 前半)
    • 2007 夏頃から,スモールスタートで適用開始
      • サーバ管理ツール開発開始,仮想化対応
  • サーバの台数
  • はてなシステムの全体像と解説
    • 三層構造
    • 各所に LVS でロードバランス
    • サーバ台数の割合
      • Web:DB = 4:6 〜 6:4
      • 全体の6〜7割が Web/DB
      • その他は,ネットワーク関係・ファイルサーバ・管理用・メール・分散ストレージサーバ
    • 非同期システムが増量中
    • 仮想化サーバの構築ポリシー
      • あいているリソースを主に利用する DomU を投入
        • CPU があいているなら Web サーバ
        • IO があいているなら DB サーバ
        • メモリが空いているなら キャッシュサーバ
      • 同じ傾向で,かつ負荷の高い用途同士は避ける
  • はてなでの Xen
  • ストレージ選択のパターン on Xen
    • LVM -> はてなでは LVM を利用している
    • USB メモリで起動して起動後は RAM Disk に展開
    • ネットワークストレージを使う
    • ネットブート(PXE ブート & aufs イメージを RAM Disk に展開)
  • Xen の運用
    • install_xen.sh というコマンド1発で作成している
      • IP/Memory/root size などを指定すると,7〜8分で作成できるスクリプトを用いている
    • 親子関係の負荷を見ている
      • ラックに含まれるサーバの構成を負荷と共に見られるようにしている
    • 負荷の監視は xentop で
    • 仮想 OS の移動・コピー
      • dd でイメージコピー
      • LVM のスナップショットをコピーしている
    • DNS との連携
      • MyDNS(MySQL をバックエンドに使った DNS) と連携
        • hostname.domain の Dom0 を parent.hostname.domain とすることで,わかりやすく
    • DomU の強制再起動
      • monit で
      • たとえば,30秒間 httpd にアクセスできないと強制再起動
        • Xem DomU の destroy/create している
      • 突然落としても問題ないものだけ
  • Xen の使っていない機能
    • ライブマイグレーション
      • 信頼性の高いストレージが必要
        • コストが高くなる
    • 完全仮想化
      • すべて Linux なので
      • オーバーヘッドを嫌っている
  • Xen のデメリット
    • ホスト数の増加
      • Dom0 の台数分は増加
    • 1物理サーバあたり,IP アドレス3つ消費
      • ホスト x 1
      • ゲスト x 1
      • IPMI(or AMT) x 1
        • 用途毎に IP アドレス帯を分割
    • 不可解なバグの発生
      • NIC ドライバの不具合(Realtek ?)
      • 突然ネットワークに接続なる
        • Dom0 の再起動で解消(過去2回)
    • パフォーマンスの低下
      • メモリアクセス
        • ランダムアクセス時に顕著で 10% 程度
      • I/O 性能
      • I/O処理でバッファのメモリコピーが発生
        • ネットワーク負荷が高いサーバでは厳しそう
      • ディスク性能
        • 2〜3% の低下
  • Xen の運用上の注意ポイント
    • DomU が迷子にならないようにする
      • DomU から Dom0 の情報は得られない
    • サーバの単機能化
      • サーバの管理負荷低減と不具合の影響範囲の最小化
        • かなり小さな機能に分割するのがいいようだ
  • 仮想化によって得られるもの
    • 物理的なリソース制約からの解放
    • VM 環境の統一化・標準化
    • 冗長化によるリソース利用効率の低下を最小限に
今後の展開
  • 仮想ホストの自動制御
  • 他の仮想化技術の検討
管理ツール
  • リソースに空きがある物理サーバを探している
  • 撮影禁止だったようだ
Q&A
  • なぜ Xen を導入したのか
    • 空きのあるリソースの有効活用をするために Xen を導入した
      • リソースの有効活用のためというのは,非常に納得できる理由

オープンソースでシステム監視!統合監視ソフトウェア ZABBIX の機能と利用事例のご紹介

OSS統合監視ソフトウェア ZABBIX のご紹介
  • 機能紹介
    • 監視機能
    • 表示機能
    • 障害見知,通知機能
  • 対抗
    • Cacti(かくたい)
    • Hinemos(ひねもす)
  • 他の製品の課題
    • テキストベースで設定しないといけないので,管理コストが大変
    • Nagios + Cacti の組み合わせで監視することも管理コストの増大になる
    • 商用製品は,非常に高価で使わない機能も多い
  • ZABBIX の特徴
    • オープンソース
    • さまざまな OS に対応した専用エージェント
    • Web インターフェースから選択式による監視設定が/表示が可能
    • 監視設定・収集データを RDBMS で一元管理
      • 生データをそのまま保存できるので,あとでいろいろ再利用可能
    • テンプレートが使えるので,大量のサーバにも比較的対応しやすい
  • 動作環境
  • ZABBIX エージェント
    • 導入するだけで,基本的な項目はすべて監視できる
  • 表示機能
    • 生データを表示できる
    • レポート作成できる
      • 月刊レポートなどの資料になる
  • 通知機能
    • メール本文に復旧手順を入れるなどできる
    • 障害レベルの設定に応じて,通知するグループ・ユーザを設定可能
      • かなり柔軟にできるようだ
    • スクリプトの実行
      • エージェントにより,各サーバの shutdown/restart などが可能
  • まとめ
    • 中小規模のシステム監視に最適
    • シェルスクリプトMRTG の Replace として
      • ここは有用そうです.うちの linode とかで試してみよう
ZABBIX による Web システムの監視事例
  • 環境3
    • 小規模 ASP サービス
      • Cacti が入ってた
        • 監視間隔を短くしたいとか,メールを送りたいとか
          • メール送信には plig-in が必要だったり,監視追加・変更が大変
      • なので,ZABBIX
  • Summary
    • ZABBIX の DB は週に1回,MySQL の DB 再編を行ってデータの増加を防ぐことが重要
ZABBIXによるネットワーク機器のパフォーマンス測定検証事例
  • ZABBIX の選定理由
  • とりあえずやってみるが,あまり深追いしない
    • わりと重要な考え方

オープンソースの本を書きましょう!

まとめ
  • 自分出版で,本を印刷する直前まで作って出版社に持ち込み,印刷代も自分で払って名刺代わりに!

勉強会大集合 ー スピーカーへのススメー

開催の趣旨
  • 勉強会の悩み事
    • 話す人がいなく,いつも同じ人になる
  • 知ってもらう,感じてもらう
    • なぜ話すの?どう話すの?
  • 何を伝えたいか
    • みんなスピーカーになろう!
      • メリット,喜び,成長感など
    • スピーカに慣れる場所を探そう!
      • 社内勉強会もいいよ!
      • 内輪勉強会でやれば,気軽にできそうだよね!
    • 重要なのは実践すること
  • 心の壁を作らずに聞いて欲しい
    • 「あの人だからできる」とは感じないで欲しい
パネルディスカッション
  • 初めて発表したキッカケ
    • さとうようぞうさん
      • 社内で自分で話したいと思ったから
        • 社内のレベルを自分で上げないといかないという危機感
    • ヨシオリさん
      • ひがなんとかさんに,「おまえも発表しろよ」と言われたから
      • 最近は緊張感を愉しんでいる
    • 五十嵐さん
      • LT を見て楽しそうだなと思ったから
        • そのときに2つ山があった
          • 登壇者のレベルが高い気がした
            • 発表のレベルは聴衆が決めるんだから,気にしても仕方ない
          • 完璧じゃないと発表できないんじゃないか
            • 世の中に埋もれてしまう前に,6〜7割までできたら出した方がフィードバックとかあっていいよ
    • あまのりょーさん
      • 20~30年生きてきて,5分ぐらいなら発表するネタがあるだろうから,それを気楽に話してみるのがいいんじゃないか
      • 気楽な場所
        • 何回か出た勉強会とかで
    • とっちゃんさん
    • さとう@LINDさん(モデレータ)(PHP勉強会の人)
      • 大きな場所でやるのは今日が初めて
      • 自分がやってきたことを人に伝えたいと思ったから
  • スピーカーのメリット
    • とっちゃんさん
      • 名前を覚えてもらえる.非常に大きなメリット.
    • あまのりょーさん
      • 人とつながりが出来る,のは言われてしまった
      • 資料を作ると再度勉強し直せるのがメリットじゃないか
      • ヨシオリさんが,「あの発表が良かったよ」と言われるのが嬉しいと言ってました
    • 五十嵐さん
      • LT での発表資料を作っているときに,考え直せる
        • そのネタで雑誌に記事を書けたりしたので,よかった
    • ヨシオリさん
      • お金に関するメリット
        • 発表するとチケットがただで手にはいるとか,控え室で電源の心配がないとか
      • ブログなどで反応があるのが嬉しい
      • 他のコミュニティから呼ばれることも嬉しい
    • さとうようぞうさん
      • 名刺が大量に減る
      • 控え室にいる著名な人と会えるとか
  • 発表した内容の反応で嬉しかったことは?
    • とっちゃんさん
      • 大阪のイベントに四国から来てくれた人がいた!
        • わざわざ来てくれた人がいると嬉しい
  • 社内勉強会をして評価あがった?
    • 表情で察していただければ・・・・首にはなってないし
  • MISAO
    • 発表中に IRC のメッセージをプレゼンの上にのせられる
  • メリットとして
    • 乱入が出来る
    • 発表者間の内輪感を楽しめる
  • 勉強会の開催について
    • さとうようぞうさん
      • 発表の敷居を出来るだけ下げる
        • Genesis Lightning Talk では何でもありにしている
        • 勉強会で得たことを次に生かせる,何かアクションを起こせるような内容になれば,いい勉強会になるんじゃないか
    • ヨシオリさん
      • 自分が聞きたいので勉強会を主催している(java-ja)
      • 「勉強会」と言う名前をつけてない
        • 堅苦しい感じがするので,発表者と聴衆の溝が広がる
    • 五十嵐さん
      • LINDさんのために話しているという感じ?
      • 高専というマイノリティの集まり.他の場所とのつながりや,学校とのつながり
        • 学校の先生が雑談だけの授業をやってほしいと思ってる
    • あまのりょーさん
      • 同僚と朝スタバとかで本の感想を言い合う感じ*1
        • 朝だと気分良く一仕事追えた感じで,業務に入れる
        • 名前も「読書会」と書いてはいない
      • 勉強会の最小開催人数は2名
    • とっちゃんさん
  • 仲間を誘うときのコツなど
    • あまのりょーさん
      • 話のわかる上司がいる.その上司を巻き込める
    • さとうようぞうさん
      • 仲間にも恵まれている
  • 上司から「その勉強会やってどう成果が出るの?」に対する切り返しは?
    • さとうようぞうさん
      • 成果を数字で出せば上司は納得する
        • 社内勉強会の開催前後で,アンケート・テストを行う
          • その内容が成果に繋がる
    • ヨシオリさん
      • そこまでやって社内でやる意味がないのなら,社外でやればいいんじゃないか
  • 社外でやるばあいの場所は?
    • とっちゃんさん
    • 五十嵐さん
      • 企業の会議室を借りる
        • 貸してくれる会社さんのメリットが出れば,Win-Win の関係になる
    • 鈴木@LINDさん
      • 勉強会勉強会の会議室一覧を参考にしては
LT 大会
  • さとうようぞうさん
    • スピーカー楽しいヨ!
    • Ruby Business Commons の裏方やってます
    • リハーサルで時間配分をやる
    • ビデオを撮って練習するのがいいかも
    • 次は 2/25(水)
  • ヨシオリさん
    • java-ja温泉で検索!
    • 資料作成方法
      • 楽しさ = 正義
        • 「伝えたいこと + 楽しさ」を心がけている
    • 前日に作る
    • メモは emacs で書いている
      • そのファイルを DropBox を使って共有している
  • 五十嵐さん
    • 大事なことは何度も言う
    • 発表で失敗することの方が難しい
  • あまのりょーさん
    • PFPの人
      • Project Facilitation Project
    • 次回WS 3/18(水)
    • 資料制作 Hacks
      • ノンデザイナーズ・デザインブック
  • とっちゃんさん
最後のお願い
  • 今日聞いたことを是非実践してください
  • フィードバック
    • ブログとかに書こう!

ライトニングトーク&大抽選会&閉会式

IPA「第2回オープンソースソフトウェア活用ビジネス実体調査」のご紹介
  • みずほ総研の人
  • 報告書は Javaオープンソースとして扱っている
  • Ruby を使いたい人が多いらしい
    • Matz 効果か
Tech Seminor Timemap
MoodleMoot Hakodate 参加リポート
  • Moodle とは,OSS の e-Learnign 構築できるもの
学校現場でのオープンソースの話題
COCO - 管理者により社内監視システム
  • 社内 LAN の監視システム
  • DNS と連携できる
  • nmap で異常検出
  • 社内PCの場所と IP アドレスの対応をグラフィカルに表示できる
  • DHCP/LDAP/nmap/IP-Sentinel
Linux+Webカメラでハムスター観察
  • ハムスターかわいいよ!
milter manager フリーソフト迷惑メール対策
  • rabbit の人
  • milter manager
    • 安心メールを素通し
  • rabbit++
インターネットと危機管理 怪文書
  • Ruby がマイブーム
  • インターネットで遭遇した怖い話
  • 知らない人を煽るのは止めた方がいいと言うお話

抽選会

  • いない!ので,所属がわかってる人に
  • OSC で商用ソフトウェアが抽選される事態はちょっと面白い

まとめ

*1:これはいいスタイルじゃないでしょうか