サーバ/インフラTECH MEETING
これいってきました。
http://gihyo.jp/event/2008/24svr-tech-meeting
以下メモ。
テックミーティング
ひろせまさあき
この本を書いたわけ
むち、発想力の欠如。
当時、こんな本が欲しかった。
内容は、ストーリー仕立て。
問題提議/情報共有、あれこれ考える、実践のイテレーション
読み物的にも読んで面白いはず。
外に出す。
何か情報をだせば、何か反応があります。
いろんな人と話す事ができる。
情報交換、お互いの成長・向上・切磋琢磨
[24svr-TechMTG]
まとめ
ノウハウをつたえたい
つながる様にしたい。
mod_cidr_lookupっていうのをつくっている。
ipアドレスで、どこからのアクセスかまとめたデータベース的な物から
アパッチに環境変数として取り込む。
うれしい事、
webアプリでつかったり、
apachiのなかでもつかえるので、googleのクローラだったらそれ用のサーバにとばすとか、
携帯だったら携帯用のドメインに飛ばすとかする。
カーネルのソースを読んでよかった事。
根拠が無く問題を解決していた。
根拠が無いので対処療法しかない。
今、理解して問題を解決できる。
抽象レイヤーが透けて見える。
詳解Linuxカーネルを読んだ
osがローレイヤーを理解する事のポイント。
本読みながらgrepしたら案外わかった。
モノシリックなので、案外シンプル
使ってる道具
emacs
global
App::Ack
GNU GLOBAL
ソースコードタグシステム
関数の定義場所、呼び出し場所にジャンプ
Emacsと連携
書籍数冊
詳解linuxカーネル
linuxカーネル解読質
linuxカーネル解析入門
紙とペン
処理の流れをメモしながら進める
コールスタックが深いと迷子になりやすい。
linux kernel hack japan
http://hira.main.jp/wiki/index.php
ソースコードをよむ5つのこつ
1.読む対象を絞る
隅々まで読もうとしない。
テーマを決めて読む[〜を調べるとか]
2.いきなり読まない
全体を把握する、ソースツリーの構造を知る。
-本を読む本
3.外観を知った上で読む
書籍で知りたい箇所の概観をつかむ
4.重要なデータ構造を把握しておく
重要なデータ構造
5.テストプログラムを活用
プログラムを適当に作って、straceするとよい。
必要な知識
c言語
gcc拡張
gnu開発ツール
cpuの機能(x86) 本64ビットがわかる
オブジェクト指向
簡単なパターンをつかってる。
まとめ
巨大なソースにあたるにはこつがある。堀から埋めていけ
カーネルのソースを読むと負荷分散に強くなる。自信がつく。
カーネルのソースをよむことでOSの動作原理を知る事ができる。
最後に
知りたいと思う最初の動機を大切にしましょう。
DSASのこれから
安井真伸
DSASとは、ダイナミックサーバアサインシステムの略
300台ぐらいサーバがある
オープンソースでできている
サイトごとのサーバ台数を動的に変更できる。
工夫
・すべてのサーバのディスク内容を同じに保つ
・必要なクラスローダのみを起動する。
・ファイルの更新はマルチキャストで一括転送(この仕組みをossで公開するとのこと)
自動的にサーバを追加するには
サイトごとのトラフィック推移を記録しないと
ロードバランサの機能を拡張するとできるかな
トラフィック測定はIPVSモジュールでやるとよさそう
サーバを増やす前にTOMCATを再起動しないと
懸念点、疑問もいっぱい出てきます。
IPVSの機能を拡張するにはどうするばいい?
カーネルモジュールってどうやって
つくるの?
カーネルモジュールとユーザプロセスの通信方法?
実現に向けてやる事
IPVSのソースを読んで構造を理解する
カーネルモジュールを書いてみる
カーネルの内部情報を参照する方法を調べたり。
drbd
まとめ
運用は楽しい
夢を見るのは大切。
気が向いたら自分で実装してみるのもいいかも
・たとえだめでも、作ろうとする事で得る物がある。
一見地味だけど、クリエイティブな仕事。
インフラって楽しいよ。
はてなインフラ今昔
田中慎司
サーバ350台→仮想化して500台
14ラック、ピーク時240Mbps
インフラ初期
perlCGI / Apachi / PostgreSQL
初期
Reverse proxyで切り分け
自作サーバ、mysqlのマスタスレーブ型
はてなダイアリー開始
mod_proxy_balancer
サービスラッシュ
SPOF亜数
回線ベストエフォート100M回線
太い少量回線を借りるほどのお金がない
電力不足
はてなインフラ2.0
LVSを導入
SPOD解消、運用効率化
さくらインターネットiDCへ
インフラチーム発足
基幹ネットワークを全面的に設計し直し
centOSに統一64bit化
LVS三層構造
一部商用サーバを利用
64bitをのおかげで、メモリ4GBの壁を突破
テーブル分割の必要性が下がる。
mysqlのマルチマスタ化
お互いにお互いのスレーブ関係
ACTIVE-BACKUP
KeepAlived
LVS、KeepAlived、DRBD、Squid
はてなインフラの今
Xen
idleが長いサーバは集約
任意のタイミングで化そうホストを別ハードに移動
hadoopを導入
mapReduceのOSS版
分散ファイルシステム
並列計算クラスタ
サーバ管理ツールを作っている
サーバホストの情報管理
ホスト情報はサーバから自動取得
負荷情報
他ツールと連携
negios設定ファイル
Capistranoのでプロイサキ
社内IRCサーバ
サーバセットアップの簡略化
OS自動インストールシステム
PXE Bootでインストール
Puppet
はてな内RPMりぽじとり
課題
求められるインフラとしてのレベル
様々なトレードオフ 安い←→
まだまだ不安定
頻度は低下した物の、まだまだ急所はある。
微妙にこわれる。。
インフラはクリエイティブだ。
それより、アマゾンで予約購入してたのに届かなかったのが残念。
しかも、当日このイベントで売ってた。とほほ。