サーバ/インフラTECH MEETING

これいってきました。


http://gihyo.jp/event/2008/24svr-tech-meeting


以下メモ。


テックミーティング

ひろせまさあき
この本を書いたわけ

むち、発想力の欠如。
当時、こんな本が欲しかった。

内容は、ストーリー仕立て。
問題提議/情報共有、あれこれ考える、実践のイテレーション
読み物的にも読んで面白いはず。


外に出す。
何か情報をだせば、何か反応があります。
 いろんな人と話す事ができる。
 情報交換、お互いの成長・向上・切磋琢磨
 [24svr-TechMTG]

まとめ
 ノウハウをつたえたい
 つながる様にしたい。

mod_cidr_lookupっていうのをつくっている。
ipアドレスで、どこからのアクセスかまとめたデータベース的な物から
アパッチに環境変数として取り込む。
うれしい事、
webアプリでつかったり、
apachiのなかでもつかえるので、googleのクローラだったらそれ用のサーバにとばすとか、
携帯だったら携帯用のドメインに飛ばすとかする。




伊藤直也
linuxカーネルの読み方

カーネルのソースを読んでよかった事。
根拠が無く問題を解決していた。
根拠が無いので対処療法しかない。

今、理解して問題を解決できる。
抽象レイヤーが透けて見える。

詳解Linuxカーネルを読んだ
osがローレイヤーを理解する事のポイント。
本読みながらgrepしたら案外わかった。
モノシリックなので、案外シンプル

使ってる道具
emacs
global
App::Ack

GNU GLOBAL
ソースコードタグシステム
関数の定義場所、呼び出し場所にジャンプ
Emacsと連携

APP::Ack
grepより良いソースコード検索ツール


書籍数冊
詳解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

LVSKeepAlived、DRBD、Squid


はてなインフラの今
 Xen
 idleが長いサーバは集約
 任意のタイミングで化そうホストを別ハードに移動

hadoopを導入
mapReduceのOSS
 分散ファイルシステム
 並列計算クラスタ

サーバ管理ツールを作っている
 サーバホストの情報管理
  ホスト情報はサーバから自動取得
 負荷情報
 他ツールと連携
 negios設定ファイル
 Capistranoのでプロイサキ
 社内IRCサーバ

サーバセットアップの簡略化
OS自動インストールシステム
 PXE Bootでインストール

Puppet
 はてな内RPMりぽじとり

capistrano

selenium

課題
求められるインフラとしてのレベル
 様々なトレードオフ 安い←→

まだまだ不安定
 頻度は低下した物の、まだまだ急所はある。
 微妙にこわれる。。

インフラはクリエイティブだ。





それより、アマゾンで予約購入してたのに届かなかったのが残念。
しかも、当日このイベントで売ってた。とほほ。