0
はてなでの仮想化技術の使い方

     はてな 田中 慎司
  stanaka @ hatena.ne.jp
アジェンダ
はてなの紹介
仮想化技術
 Xen
はてなでの取り組み
 Xenの利用ポリシー
 Xenの運用
 Xenのデメリット
今後の構想
はてなの紹介
2001年 創業
人力検索はてな
 質問をすると人が答えてくれる




                  現在
   2001年当時
はてなの紹介
歴史
         有限会社はてな創業 京都 人力検索サイトはて
 2001年
 な
         はてなアンテナ
 2002年
         はてなダイアリー
 2003年
         東京進出
 2004年
...
はてなのサービス群
仮想化技術
ハードウェアを抽象化し、複数のOSが動作で
きるようにする
 Xen, VMware, QEMU, UML, KVM, OpenVZなど
古くは..
 メインフレームの技術
 Linux chroot, FreeBSD jail
仮想化技術のメリット
可用性の向上
 動作中の仮想マシンをほぼ瞬時に別ハードウェアに移動することがで
 きるため、ハードウェアのメンテナンスやアップグレードがサービスを停
 止せずに行える。
柔軟性の向上
 仮想マシン間でCPUやメモリなどの資...
はてなでの仮想化
Xen
Xen
 もともとはケンブリッジ大学の研究プロジェクト
 XenSource, Inc
  Citrix Systemsが買収 2007.10.25
Xenにおける仮想化のモデル
準仮想化(ParaVirtualization)
  仮想的なハードウェアを再定義するため、仮想ハードウェ
  アは、操作をするためにはハイパーバイザコールを呼び出
  す
  エミュレーションのオーバーヘッドを最...
はてなのサーバ台数
 サーバ 500台 → 仮想化して890台
はてなのシステムの全体像と解説
三層構造
 リバースプロキシ
 アプリケーションサーバ
 データベース/ファイルサーバ
バックエンドシステムの三層構造
                                                 ロードバランサ
                        LVS               LVS

リバ...
全体像
 三層構造がサービス毎に
 サーバー台数の割合
  Web : DB = 4 : 6 ~ 6 : 4
  全体の 6 ~ 7 割が Web or DB
  それ以外
    ネットワーク関連、ファイルサーバ、管理用、メール、
    分...
仮想化サーバの構築ポリシー
ハードウェアリソースの利用率の向上
 空いているリソースを主に利用するDomUを投入
 CPUが空いている → ウェブサーバ
 IOが空いている → DBサーバ
 メモリが空いている → キャッシュサーバ


同居を...
仮想化サーバ
  ウェブサーバ
          メモリ量: 4GB                  メモリ量: 8GB
ハードウェア                   ハードウェア
          Dom0: 0.5GB      ...
仮想化サーバ
  データベースサーバ
              メモリ量: 4GB                  メモリ量: 8GB
ハードウェア                      ハードウェア
              Dom...
仮想化サーバ
  雑用サーバ
          メモリ量: 8GB
ハードウェア
          Dom0: 0.5GB
          メールサーバ 1GB
 メールサーバ
          ファイルサーバ 1GB
       ...
はてなでのXen
CentOS 5.2
Xen 3.0.3

LVM上にパーティション作成
DellサーバとAMD製プロセッサ
    AMDの仮想化支援機能と省電力を重視
        10%程度電流コストを抑えられる
        性能面でも遜色なし
            CPUの性能差よりメモリ搭載量を重視
       ...
Xenの運用1
新規サーバ作成
   install_xen.sh
   コマンド一発
 % ./install_xen.sh
 hostname:
 ip addr:
 mem size: 2048MB
 root size: 10GB
 h...
Xenの運用2
負荷の監視
 サーバ管理ツール
            サーバの親子関係と、子
             サーバの負荷を一覧
Xenの運用2 その2
              あるラックに含まれるサーバ
              の構成を負荷とともに一覧
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...
Xenの運用4
 仮想OSの移動・コピー
       ddでイメージコピー
dom0a$ time dd if=/dev/mapper/vg00-commondb02root_snapshot | gzip -c
| nc 192.168.0...
Xenの使っていない機能
ライブマイグレーション
 信頼性の高いストレージが必要
完全仮想化
 オーバーヘッドが大きすぎる
Xenのデメリット1
ホスト数の増加
  Dom0の台数分は増加
Xenのデメリット2
不可解なバグの発生
  NICのドライバ不具合
   rebootでMACアドレスがリセットされる
   物理的な再起動で回復
   e1000を利用することで回避
  突然ネットワークに接続できなくなる
   過去2回発...
Xenのデメリット3
パフォーマンスの低下
  メモリアクセス
   ランダムアクセス時に顕著 10%程度
  IO性能
   IO処理でバッファのメモリコピーが発生
  ディスク性能
   2,3%の低下
Xenの運用上の注意ポイント
DomUが迷子にならないようにする
 探すのに苦労
 DomUからDom0の情報は得られない
サーバの単機能化
 サーバの管理・制御が容易となる
 不具合の影響範囲を最小化できる
仮想化によって得られるもの
物理的なリソース制約からの解放
 リソースの動的な変更
 VMのマイグレーション・複製
 異常動作時の局所化
 ホストの制御が容易となる


VM環境の統一化・標準化
 自動設定ツール puppet
 VMの自動的な...
今後の構想
仮想ホストの自動制御
 再起動
 負荷に応じた増殖・移動・削減
イメージの自動バックアップ
まとめ
はてなの紹介
仮想化技術
 Xen
はてなでの取り組み
 Xenの利用ポリシー
 Xenの運用
 Xenのデメリット
今後の構想
Upcoming SlideShare
Loading in...5
×

How to use Virtualization Technology in Hatena

7,378

Published on

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

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

No notes for slide

Transcript of "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のデメリット 今後の構想
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×