SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
はてなでの仮想化技術の使い方

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




                  現在
   2001年当時
はてなの紹介
歴史
         有限会社はてな創業 京都 人力検索サイトはて
 2001年
 な
         はてなアンテナ
 2002年
         はてなダイアリー
 2003年
         東京進出
 2004年
         はてなブックマーク
 2005年
         シリコンバレー
 2006年
         はてなスター はてなハイク
 2007年
         京都移転
 2008年
   はてなブックマークリニューアル
   うごメモはてな
はてなのサービス群
仮想化技術
ハードウェアを抽象化し、複数のOSが動作で
きるようにする
 Xen, VMware, QEMU, UML, KVM, OpenVZなど
古くは..
 メインフレームの技術
 Linux chroot, FreeBSD jail
仮想化技術のメリット
可用性の向上
 動作中の仮想マシンをほぼ瞬時に別ハードウェアに移動することがで
 きるため、ハードウェアのメンテナンスやアップグレードがサービスを停
 止せずに行える。
柔軟性の向上
 仮想マシン間でCPUやメモリなどの資源配分を指定することで、ニーズ
 に応じて適切な資源を無駄なく割り当て活用できる。
運用コストの低下
 サーバ群において、他のサーバに環境を構築するのが容易である。
セキュリティの向上
 仮想マシン環境は互いに隔離されており、ある仮想マシンで動作する
 有害なソフトウェアがほかの環境や仮想マシンモニタに悪影響を与え
 ることはできない。

                         出典: Wikipedia
はてなでの仮想化
Xen
Xen
 もともとはケンブリッジ大学の研究プロジェクト
 XenSource, Inc
  Citrix Systemsが買収 2007.10.25
Xenにおける仮想化のモデル
準仮想化(ParaVirtualization)
  仮想的なハードウェアを再定義するため、仮想ハードウェ
  アは、操作をするためにはハイパーバイザコールを呼び出
  す
  エミュレーションのオーバーヘッドを最小限に抑えられる
  OSをXen仮想ハードウェア上に移植することが必要
完全仮想化(FullVirtualization)
  実ハードウェア用のOSがそのまま動作
    WindowsなどのOSも動作
  エミュレーションのためのコストが大きくなる
  デバイスドライバのみ準仮想化とすることも可能
はてなのサーバ台数
 サーバ 500台 → 仮想化して890台
はてなのシステムの全体像と解説
三層構造
 リバースプロキシ
 アプリケーションサーバ
 データベース/ファイルサーバ
バックエンドシステムの三層構造
                                                 ロードバランサ
                        LVS               LVS

リバースプロキシ
                proxy         proxy


                        LVS               LVS
アプリケーションサーバ

    mod_perl   mod_perl   mod_perl    mod_perl


                        LVS               LVS
データベースサーバ
               MySQL          MySQL
全体像
 三層構造がサービス毎に
 サーバー台数の割合
  Web : DB = 4 : 6 ~ 6 : 4
  全体の 6 ~ 7 割が Web or DB
  それ以外
    ネットワーク関連、ファイルサーバ、管理用、メール、
    分散ストレージサーバなど
 非同期システムが増量中
  MapReduce計算クラスタなど
仮想化サーバの構築ポリシー
ハードウェアリソースの利用率の向上
 空いているリソースを主に利用するDomUを投入
 CPUが空いている → ウェブサーバ
 IOが空いている → DBサーバ
 メモリが空いている → キャッシュサーバ


同居を避ける組み合わせ
 同じ傾向、かつ、負荷の高い用途同士
  別サーバのウェブサーバ同士など..
仮想化サーバ
  ウェブサーバ
          メモリ量: 4GB                  メモリ量: 8GB
ハードウェア                   ハードウェア
          Dom0: 0.5GB                Dom0: 0.5GB
          ウェブサーバ 3.5GB               ウェブサーバ 5.5GB
 ウェブサーバ                   ウェブサーバ     キャッシュサーバ 2GB


                         キャッシュサーバ
     主にCPU-bound


                                  主にメモリを消費
                                  CPUは消費しない
仮想化サーバ
  データベースサーバ
              メモリ量: 4GB                  メモリ量: 8GB
ハードウェア                      ハードウェア
              Dom0: 0.5GB                Dom0: 0.5GB
              DBサーバ 3.5GB                DBサーバ 3.5GB
 DBサーバ                        DBサーバ      ウェブサーバ 4GB


                             ウェブサーバ
         主にIO-bound


                                      主にCPU-bound
仮想化サーバ
  雑用サーバ
          メモリ量: 8GB
ハードウェア
          Dom0: 0.5GB
          メールサーバ 1GB
 メールサーバ
          ファイルサーバ 1GB
          監視サーバ 1GB
ファイルサーバ
          バッチサーバ 1GB
          空き 3.5GB
 監視サーバ

 バッチサーバ

           いずれもCPU・IOと
             もに軽い
はてなでのXen
CentOS 5.2
Xen 3.0.3

LVM上にパーティション作成
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
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
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, 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
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
Xenの使っていない機能
ライブマイグレーション
 信頼性の高いストレージが必要
完全仮想化
 オーバーヘッドが大きすぎる
Xenのデメリット1
ホスト数の増加
  Dom0の台数分は増加
Xenのデメリット2
不可解なバグの発生
  NICのドライバ不具合
   rebootでMACアドレスがリセットされる
   物理的な再起動で回復
   e1000を利用することで回避
  突然ネットワークに接続できなくなる
   過去2回発生 → Dom0 再起動で解消
Xenのデメリット3
パフォーマンスの低下
  メモリアクセス
   ランダムアクセス時に顕著 10%程度
  IO性能
   IO処理でバッファのメモリコピーが発生
  ディスク性能
   2,3%の低下
Xenの運用上の注意ポイント
DomUが迷子にならないようにする
 探すのに苦労
 DomUからDom0の情報は得られない
サーバの単機能化
 サーバの管理・制御が容易となる
 不具合の影響範囲を最小化できる
仮想化によって得られるもの
物理的なリソース制約からの解放
 リソースの動的な変更
 VMのマイグレーション・複製
 異常動作時の局所化
 ホストの制御が容易となる


VM環境の統一化・標準化
 自動設定ツール puppet
 VMの自動的なインストールを可能に


冗長化によるリソース利用効率の低下を最小限に
今後の構想
仮想ホストの自動制御
 再起動
 負荷に応じた増殖・移動・削減
イメージの自動バックアップ
まとめ
はてなの紹介
仮想化技術
 Xen
はてなでの取り組み
 Xenの利用ポリシー
 Xenの運用
 Xenのデメリット
今後の構想

Contenu connexe

Tendances

Sentokyo Kansai(20070126)
Sentokyo Kansai(20070126)Sentokyo Kansai(20070126)
Sentokyo Kansai(20070126)真 岡本
 
Modern Front End Evolution
Modern Front End EvolutionModern Front End Evolution
Modern Front End EvolutionKUAN-CHING CHOU
 
136 Ch
136 Ch136 Ch
136 Chanjaan
 
gfw工作原理及突破技术
gfw工作原理及突破技术gfw工作原理及突破技术
gfw工作原理及突破技术Daniel Cheung
 
Cybozu Inc 10th anniversary event - developing section.
Cybozu Inc 10th anniversary event - developing section.Cybozu Inc 10th anniversary event - developing section.
Cybozu Inc 10th anniversary event - developing section.cydn.cybozu.co.jp
 
Fmrms Whitepaper.Cnaa
Fmrms Whitepaper.CnaaFmrms Whitepaper.Cnaa
Fmrms Whitepaper.Cnaajijiegg
 
【13-B-3】 企業システムをマッシュアップ型に変えるには
【13-B-3】 企業システムをマッシュアップ型に変えるには【13-B-3】 企業システムをマッシュアップ型に変えるには
【13-B-3】 企業システムをマッシュアップ型に変えるにはdevsumi2009
 
中小企業E化最新趨勢與效益分析
中小企業E化最新趨勢與效益分析中小企業E化最新趨勢與效益分析
中小企業E化最新趨勢與效益分析Alex Lee
 
331 Ch
331 Ch331 Ch
331 Chanjaan
 
Namo Web Solution
Namo Web SolutionNamo Web Solution
Namo Web Solutionbenson56
 
Hyper Estraierの設計と実装
Hyper Estraierの設計と実装Hyper Estraierの設計と実装
Hyper Estraierの設計と実装Hiroshi Ono
 

Tendances (20)

Sentokyo Kansai(20070126)
Sentokyo Kansai(20070126)Sentokyo Kansai(20070126)
Sentokyo Kansai(20070126)
 
16 Ch
16 Ch16 Ch
16 Ch
 
Utagoe intro
Utagoe introUtagoe intro
Utagoe intro
 
Modern Front End Evolution
Modern Front End EvolutionModern Front End Evolution
Modern Front End Evolution
 
136 Ch
136 Ch136 Ch
136 Ch
 
gfw工作原理及突破技术
gfw工作原理及突破技术gfw工作原理及突破技术
gfw工作原理及突破技术
 
XS Japan 2008 Ganeti Japanese
XS Japan 2008 Ganeti JapaneseXS Japan 2008 Ganeti Japanese
XS Japan 2008 Ganeti Japanese
 
Ext Ncs 20081029
Ext Ncs 20081029Ext Ncs 20081029
Ext Ncs 20081029
 
Cybozu Inc 10th anniversary event - developing section.
Cybozu Inc 10th anniversary event - developing section.Cybozu Inc 10th anniversary event - developing section.
Cybozu Inc 10th anniversary event - developing section.
 
T2@java-ja#toyama
T2@java-ja#toyamaT2@java-ja#toyama
T2@java-ja#toyama
 
XS Japan 2008 App Data Japanese
XS Japan 2008 App Data JapaneseXS Japan 2008 App Data Japanese
XS Japan 2008 App Data Japanese
 
91 Ch
91 Ch91 Ch
91 Ch
 
Fmrms Whitepaper.Cnaa
Fmrms Whitepaper.CnaaFmrms Whitepaper.Cnaa
Fmrms Whitepaper.Cnaa
 
【13-B-3】 企業システムをマッシュアップ型に変えるには
【13-B-3】 企業システムをマッシュアップ型に変えるには【13-B-3】 企業システムをマッシュアップ型に変えるには
【13-B-3】 企業システムをマッシュアップ型に変えるには
 
中小企業E化最新趨勢與效益分析
中小企業E化最新趨勢與效益分析中小企業E化最新趨勢與效益分析
中小企業E化最新趨勢與效益分析
 
331 Ch
331 Ch331 Ch
331 Ch
 
PHP at Yahoo! JAPAN
PHP at Yahoo! JAPANPHP at Yahoo! JAPAN
PHP at Yahoo! JAPAN
 
Namo Web Solution
Namo Web SolutionNamo Web Solution
Namo Web Solution
 
Hyper Estraierの設計と実装
Hyper Estraierの設計と実装Hyper Estraierの設計と実装
Hyper Estraierの設計と実装
 
About OSGeo.JP
About OSGeo.JPAbout OSGeo.JP
About OSGeo.JP
 

Plus de Shinji Tanaka

Mackerelによる
簡単サーバー管理入門と発展形
Mackerelによる
簡単サーバー管理入門と発展形Mackerelによる
簡単サーバー管理入門と発展形
Mackerelによる
簡単サーバー管理入門と発展形Shinji Tanaka
 
Lightweight wrapper for Hive on Amazon EMR
Lightweight wrapper for Hive on Amazon EMRLightweight wrapper for Hive on Amazon EMR
Lightweight wrapper for Hive on Amazon EMRShinji Tanaka
 
MySQL Multi-master on EC2
MySQL Multi-master on EC2MySQL Multi-master on EC2
MySQL Multi-master on EC2Shinji Tanaka
 
Original Server Conference
Original Server ConferenceOriginal Server Conference
Original Server ConferenceShinji Tanaka
 
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web ServiceShinji Tanaka
 
Hatena's Infrastructure from the beginning
Hatena's Infrastructure from the beginningHatena's Infrastructure from the beginning
Hatena's Infrastructure from the beginningShinji Tanaka
 

Plus de Shinji Tanaka (8)

Mackerelによる
簡単サーバー管理入門と発展形
Mackerelによる
簡単サーバー管理入門と発展形Mackerelによる
簡単サーバー管理入門と発展形
Mackerelによる
簡単サーバー管理入門と発展形
 
Lightweight wrapper for Hive on Amazon EMR
Lightweight wrapper for Hive on Amazon EMRLightweight wrapper for Hive on Amazon EMR
Lightweight wrapper for Hive on Amazon EMR
 
Using Windows Azure
Using Windows AzureUsing Windows Azure
Using Windows Azure
 
MySQL Multi-master on EC2
MySQL Multi-master on EC2MySQL Multi-master on EC2
MySQL Multi-master on EC2
 
Original Server Conference
Original Server ConferenceOriginal Server Conference
Original Server Conference
 
Scala on Hadoop
Scala on HadoopScala on Hadoop
Scala on Hadoop
 
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
 
Hatena's Infrastructure from the beginning
Hatena's Infrastructure from the beginningHatena's Infrastructure from the beginning
Hatena's Infrastructure from the beginning
 

How to use Virtualization Technology in Hatena