How to use Virtualization Technology in Hatena

7,547
-1

Published on

Published in: Technology
0 Comments
13 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,547
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
113
Comments
0
Likes
13
Embeds 0
No embeds

No notes for slide

How to use Virtualization Technology in Hatena

  1. 1. はてなでの仮想化技術の使い方 はてな 田中 慎司 stanaka @ hatena.ne.jp
  2. 2. アジェンダ はてなの紹介 仮想化技術 Xen はてなでの取り組み Xenの利用ポリシー Xenの運用 Xenのデメリット 今後の構想
  3. 3. はてなの紹介 2001年 創業 人力検索はてな 質問をすると人が答えてくれる 現在 2001年当時
  4. 4. はてなの紹介 歴史 有限会社はてな創業 京都 人力検索サイトはて 2001年 な はてなアンテナ 2002年 はてなダイアリー 2003年 東京進出 2004年 はてなブックマーク 2005年 シリコンバレー 2006年 はてなスター はてなハイク 2007年 京都移転 2008年 はてなブックマークリニューアル うごメモはてな
  5. 5. はてなのサービス群
  6. 6. 仮想化技術 ハードウェアを抽象化し、複数のOSが動作で きるようにする Xen, VMware, QEMU, UML, KVM, OpenVZなど 古くは.. メインフレームの技術 Linux chroot, FreeBSD jail
  7. 7. 仮想化技術のメリット 可用性の向上 動作中の仮想マシンをほぼ瞬時に別ハードウェアに移動することがで きるため、ハードウェアのメンテナンスやアップグレードがサービスを停 止せずに行える。 柔軟性の向上 仮想マシン間でCPUやメモリなどの資源配分を指定することで、ニーズ に応じて適切な資源を無駄なく割り当て活用できる。 運用コストの低下 サーバ群において、他のサーバに環境を構築するのが容易である。 セキュリティの向上 仮想マシン環境は互いに隔離されており、ある仮想マシンで動作する 有害なソフトウェアがほかの環境や仮想マシンモニタに悪影響を与え ることはできない。 出典: Wikipedia
  8. 8. はてなでの仮想化 Xen
  9. 9. Xen もともとはケンブリッジ大学の研究プロジェクト XenSource, Inc Citrix Systemsが買収 2007.10.25
  10. 10. Xenにおける仮想化のモデル 準仮想化(ParaVirtualization) 仮想的なハードウェアを再定義するため、仮想ハードウェ アは、操作をするためにはハイパーバイザコールを呼び出 す エミュレーションのオーバーヘッドを最小限に抑えられる OSをXen仮想ハードウェア上に移植することが必要 完全仮想化(FullVirtualization) 実ハードウェア用のOSがそのまま動作 WindowsなどのOSも動作 エミュレーションのためのコストが大きくなる デバイスドライバのみ準仮想化とすることも可能
  11. 11. はてなのサーバ台数 サーバ 500台 → 仮想化して890台
  12. 12. はてなのシステムの全体像と解説 三層構造 リバースプロキシ アプリケーションサーバ データベース/ファイルサーバ
  13. 13. バックエンドシステムの三層構造 ロードバランサ LVS LVS リバースプロキシ proxy proxy LVS LVS アプリケーションサーバ mod_perl mod_perl mod_perl mod_perl LVS LVS データベースサーバ MySQL MySQL
  14. 14. 全体像 三層構造がサービス毎に サーバー台数の割合 Web : DB = 4 : 6 ~ 6 : 4 全体の 6 ~ 7 割が Web or DB それ以外 ネットワーク関連、ファイルサーバ、管理用、メール、 分散ストレージサーバなど 非同期システムが増量中 MapReduce計算クラスタなど
  15. 15. 仮想化サーバの構築ポリシー ハードウェアリソースの利用率の向上 空いているリソースを主に利用するDomUを投入 CPUが空いている → ウェブサーバ IOが空いている → DBサーバ メモリが空いている → キャッシュサーバ 同居を避ける組み合わせ 同じ傾向、かつ、負荷の高い用途同士 別サーバのウェブサーバ同士など..
  16. 16. 仮想化サーバ ウェブサーバ メモリ量: 4GB メモリ量: 8GB ハードウェア ハードウェア Dom0: 0.5GB Dom0: 0.5GB ウェブサーバ 3.5GB ウェブサーバ 5.5GB ウェブサーバ ウェブサーバ キャッシュサーバ 2GB キャッシュサーバ 主にCPU-bound 主にメモリを消費 CPUは消費しない
  17. 17. 仮想化サーバ データベースサーバ メモリ量: 4GB メモリ量: 8GB ハードウェア ハードウェア Dom0: 0.5GB Dom0: 0.5GB DBサーバ 3.5GB DBサーバ 3.5GB DBサーバ DBサーバ ウェブサーバ 4GB ウェブサーバ 主にIO-bound 主にCPU-bound
  18. 18. 仮想化サーバ 雑用サーバ メモリ量: 8GB ハードウェア Dom0: 0.5GB メールサーバ 1GB メールサーバ ファイルサーバ 1GB 監視サーバ 1GB ファイルサーバ バッチサーバ 1GB 空き 3.5GB 監視サーバ バッチサーバ いずれもCPU・IOと もに軽い
  19. 19. はてなでのXen CentOS 5.2 Xen 3.0.3 LVM上にパーティション作成
  20. 20. DellサーバとAMD製プロセッサ AMDの仮想化支援機能と省電力を重視 10%程度電流コストを抑えられる 性能面でも遜色なし CPUの性能差よりメモリ搭載量を重視 RVI*1などの支援機能も貢献 *1 Rapid Virtualization Indexing コードは差さっているが, アイドル時[A] stress時[A] 電源off時[A] PE2970 0.2 1.43 1.82 PE1950 0.14 1.77 2.17 http://global.phoronix-test-suite.com/index.php?k=profile&u=rsakamot-14435-6560-5900
  21. 21. Xenの運用1 新規サーバ作成 install_xen.sh コマンド一発 % ./install_xen.sh hostname: ip addr: mem size: 2048MB root size: 10GB hostname must be specified. ./install_xen.sh: -h hostname -i ip_addr -m size_memory[MB] -s size_root[GB] % ./install_xen.sh -h test -i 192.168.0.1 -m 1024 -s 20
  22. 22. Xenの運用2 負荷の監視 サーバ管理ツール サーバの親子関係と、子 サーバの負荷を一覧
  23. 23. Xenの運用2 その2 あるラックに含まれるサーバ の構成を負荷とともに一覧
  24. 24. Xenの運用3 xentop xentop - 18:43:20 Xen 3.0.3-rc5-8.1.15.e 4 domains: 1 running, 3 blocked, 0 paused, 0 crashed, 0 dying, 0 shutdown Mem: 8387168k total, 8386812k used, 356k free CPUs: 4@2000MHz NAME STATE CPU(sec) CPU(%) MEM(k) MEM(%) MAXMEM(k).. Domain-0 -----r 1461082 0.0 925840 11.0 no limit haikuback1 --b--- 4017856 0.0 3145536 37.5 3145728 haikudb1 --b--- 608099 0.0 3145520 37.5 3145728 wwwback1 --b--- 2072610 0.0 1048380 12.5 1048576
  25. 25. Xenの運用4 仮想OSの移動・コピー ddでイメージコピー dom0a$ time dd if=/dev/mapper/vg00-commondb02root_snapshot | gzip -c | nc 192.168.0.2 9210 20971520+0 records in 20971520+0 records out 10737418240 bytes (11 GB) copied, 1096.59 seconds, 9.8 MB/s real 18m16.651s user 9m5.082s sys 0m59.292s dom0b$ nc -l 9210 | gunzip -c | dd of=/dev/vg00/domu2root 20971520+0 records in 20971520+0 records out 10737418240 bytes (11 GB) copied, 1111.61 seconds, 9.7 MB/s
  26. 26. Xenの使っていない機能 ライブマイグレーション 信頼性の高いストレージが必要 完全仮想化 オーバーヘッドが大きすぎる
  27. 27. Xenのデメリット1 ホスト数の増加 Dom0の台数分は増加
  28. 28. Xenのデメリット2 不可解なバグの発生 NICのドライバ不具合 rebootでMACアドレスがリセットされる 物理的な再起動で回復 e1000を利用することで回避 突然ネットワークに接続できなくなる 過去2回発生 → Dom0 再起動で解消
  29. 29. Xenのデメリット3 パフォーマンスの低下 メモリアクセス ランダムアクセス時に顕著 10%程度 IO性能 IO処理でバッファのメモリコピーが発生 ディスク性能 2,3%の低下
  30. 30. Xenの運用上の注意ポイント DomUが迷子にならないようにする 探すのに苦労 DomUからDom0の情報は得られない サーバの単機能化 サーバの管理・制御が容易となる 不具合の影響範囲を最小化できる
  31. 31. 仮想化によって得られるもの 物理的なリソース制約からの解放 リソースの動的な変更 VMのマイグレーション・複製 異常動作時の局所化 ホストの制御が容易となる VM環境の統一化・標準化 自動設定ツール puppet VMの自動的なインストールを可能に 冗長化によるリソース利用効率の低下を最小限に
  32. 32. 今後の構想 仮想ホストの自動制御 再起動 負荷に応じた増殖・移動・削減 イメージの自動バックアップ
  33. 33. まとめ はてなの紹介 仮想化技術 Xen はてなでの取り組み Xenの利用ポリシー Xenの運用 Xenのデメリット 今後の構想

×