id:stanakaによる、はてなの仮想化について
- 月間ユニークユーザ:1000万 / 月間PV:10億
- サーバ台数:約500台(仮想化して890台)
- Xenを採用
- CentOS 5.2 / Xen 3.0.3(CentOS標準バージョン)
- 準仮想化を使用し、完全仮想化はしていない
- 完全仮想化はオーバヘッド大きい(そもそも基本的にはLinuxなので、完全仮想化は不要)
- ストレージはローカルHDD/SSDを採用し、Linux Volume Managerを使用
- ネットワークストレージは、高価なので使っていない
- ネットブート(PXEブート、aufsでイメージ展開)は試している(テスト環境で稼働中)
仮想化を行う上でのポイント
- サーバを同居させることで、H/Wリソースの利用率向上を考える
- 空リソース:CPU -> Webサーバを同居
- 空リソース:I/O -> DBサーバを同居
- 空リソース:MEM -> Cacheサーバを同居
- 同じ傾向、負荷の高い用途同士は、同居させない
はてなの仮想化の運用
- 新規仮想サーバ作成は、スクリプト一発で
- 独自開発の管理ツール
- サーバ構成(親子関係)や負荷状況を表示
- Railsで開発したらしい
- xentop
- ライブマイグレーションは利用していないので、仮想サーバの移動やコピーはddで(結構強引だけど、上手く動いている)
- MyDNSを利用し、管理ツールと同期
- monitによる、DomUの強制再起動
- 運用でのポイント
- DomUが迷子にならないようにする(親子関係の把握)
- サーバの単機能化(1OS1機能)
- 自動設定ツールやpuppetによる仮想サーバの統一化、標準化