2012年12月7日金曜日

私が田胡研サーバを仮想化したわけ : 序

みんなー!! 文化してるぅー!? 田胡研の超時空シンデレラこと sakura だよ☆ミ

この時点で 「うわっ気持ち悪っ 近寄らんとこ・・・」 って思った人はブラウザ閉じて,ついでにPCも落として,二度とこのブログを見ない事をオススメします.

最近,町がクリスマスじみてきて非常に腹立たしいデスね! (凸守ちゃん可愛い)
私はクリスマスは嫌いですがクリスマスソングは好きなので,この季節になると自室で一人クリスマスソングを聞きながら自らを戒めています. なんなんでしょうね,人生って.


そんなどうでも良い事はさておき,田胡研アドベントカレンダーも 7回目 を迎えました.
本日は私 (sakura) が担当させて頂きます.

テーマは何にしよっかなーって迷ってたんですが 「サーバ仮想化」 について書きます.

みんなプログラミングや Tips のお話を書いているので,万人向けの知識ではないかもしれないけど私は違う路線で行くよ!

※ 予想外に長い記事になってしまったので,前編後編に分けました.


昔のお話


まず,私が田胡研サーバを担当する前は一部ノード (coreserver) を除き,全てのノードは物理ノードに直接 OS がインストールされ,運用されていました.

別にそれが悪いとかそんな事は全くありません

田胡研には何故か「これ普通にサービスの運用に使えるやろ」ってくらいしっかりしたサーバ筐体がいくつか存在します.
そのサーバ群に OS をインストールして使っていたんだから,いたって普通の構成です.

しかし,物理ノードが停止した場合はどうすればいいのでしょうか?
電源やメモリが壊れたなら交換すれば良い話です.
では,OS のインストールストレージ (HDD or SSD) が壊れたら・・・・?


田胡研サーバで運用されている研究室内サービスは,他の研究室に比べてかなり活用されているサービスと言えます.( 研究室内サービス ・ サーバを全て学生が運用しているってのも少ない方です )

これも色々とサービスを作ってくれる "キレイなお尻" でお馴染みの kawa○uray さんのおかげですね.

しかし,あくまで一つの研究室内のサービスを運用する為のサーバ群です.
そんなにハイスペック ・ ハイレスポンスな必要があるでしょうか?

私の考えは 「多少,レスポンスを犠牲にしても運用の手軽さを優先すべき」 という考えです.

「サービスが止まらない」 そんな事は当たり前だろと思うかもしれませんが,結構難しい事なんです.


では,高い可用性を実現する為にはどうすればよいでしょう.

その答えの一つが 「仮想化」 なのです.


仮想化って色々あるよね


そんなこんなでサーバ群を仮想化する事を決めた私.
仮想化と一口に言っても色々ありますよね.

皆さんがパッと思い付くのは次のようなものではないでしょうか.

VMware Player, VirtualBox, etc....

これらはホストOSを必要とする "ホストOS型仮想環境" と呼ばれています.


ホストOS型仮想環境はその名の通り,ホストOSを必要とする仮想環境の事です.
これも立派な仮想化の一つですが,ホストOS上にゲストOSを起動させる為,オーバーヘッドが大きく,ホストOSの分もリソースが必要となります.


そこで,田胡研サーバでは 「VMware ESXi」 (以下,ESXi) という仮想環境を使用しています.

この ESXi は "ハイパーバイザ型仮想環境" と呼ばれ,ハードウェア上で直接動作する仮想環境です.


ホストOSが必要ない為,実行効率が良く,多数の仮想マシンを動かせるという特徴があります.

要するに画像に示したように,すんごく小さなOSが入っていて,その上で仮想的なハードウェアが構築され,さらにその上でゲストOSを動かしてると思ってもらえば良いと思います.

ESXi の場合は本体は約30MB程しかなく,GUIのインタフェースはありません.
ほとんどの操作を "vSphere Client" というソフトウェアで制御します.

ソフトウェアのダウンロードとかは 公式サイト でね.


仮想化によって得たメリット


仮想化によって具体的にどんなメリットを得たのでしょうか.
メリットとしては,色々とありますが次のようなものがあります.

  • テスト環境提供の容易化.
  • 運用コストの削減.
  • 管理ノード ・ コンソールの集約化.
  • バックアップの簡略化.

では,これらについて一つずつ見ていきましょう.


テスト環境提供の容易化


まぁ,よくある 「VM ください」 ってやつです.
仮想化によって,IPアドレスの個数さえ足りてれば,気軽に VM を提供する事が可能になりました.
みんなも一つは持っているかな? 欲しかったら鯖管に一声かけてね.

これによって,開発環境や実験環境の提供が容易になりました.
いちいち "まだ使えるマシンをゴミ置き場から探す" 必要がなくなりました.

週に1度しか使わない実験環境に物理ノードなんて勿体ないでしょ?


運用コストの削減


これは上記の "テスト環境提供・・・" とも関係していますが,物理ノードの数を限定する事でお金の面でコストを削減する事が出来ました. (ぶっちゃけ俺の金じゃないからどうでもいいけど)

ところで,みなさんが保持している VM (開発・実験環境) の平均 CPU 使用率をご存知でしょうか?

大体平均 1~5% くらいです. (一部基地外ノードを除く)

もし物理ノードだった場合,9割以上の時間は CPU を遊ばせているわけです.
だったら,それ相応のスペック (低いスペック) のノードでいいのに!とは思いませんか.

仮想化によって,これらのサーバを VM として一つの物理ノードにまとめる事で,無駄なリソースをなるべく活用出来るようにしました.


せっかく大金を払って買った CPU (ぱそこん) だもん.1命令でも多く仕事させなくちゃ.


管理ノード ・ コンソールの集約化


鯖管はほとんどのノードについて,どういう状態が把握しておかないとなりません.
少なくとも,把握できる手段を用意しておくべきと私はそう思ってます.

何か問題が起きた時に責められるのはどうせ鯖管なのです.


では,物理ノードが5台あった場合の運用を考えましょう.

大体の場合は KVMスイッチ (Keyboard, Video, Mouse Switch) なんかを繋いで一つの画面と入力装置で管理しますよね.

「SSH使えばいいじゃん!」 と誰もが思いますが,どうしても物理的なコンソールでログインする必要がある時があるんです.

例えば,インストール直後とか主にネットワークの設定を行なっている時ですね.
何らかの事故で SSH ログインが出来なくなってしまった時なんかも物理的なコンソールから入るしかないわけです.

ここでは,5台の場合なので KVM で事足ります.


しかし,田胡研サーバ群 (OSSも含む) では現在 約60台 のノードが稼働しています.

それだけのノードを一つの場所に集約して KVM で管理するなんて鳥肌が立つレベルで嫌です.
問題が起きた時だけ KVM ケーブルを繋げばケーブルの数は節約できますが,非常に面倒です.

色々と書きましたが 要するに管理するのが非常にめんどい わけです.

では,ESXi の場合はどうでしょうか.
ESXi では,"vSphere Client" によって次のようなインタフェースが提供されています.


なんという事でしょう.
各 VM の IPアドレス や使用状況が全て見れるではありませんか.

また,この管理画面から (仮想化された) 物理的なコンソールが開けるではありませんか.


こんな感じでみんなのVMの状態が把握できるわけです.

VM にログインする必要すらありません.
なので,root パスが変えられてようが,私のユーザが作成されてなかろうが,そんなの関係ねぇわけです.
( そもそもログインしたければ,レスキューで強制的にログインします )




とりあえず,序の終わりに


ここまで見てきて

「面倒くさがりでヘナチョコなお前が管理しやすいのは分かったけど,サーバの稼働率とかどこが増えてんだよ!逆に ESXi 動かしてる物理ノードが死んだら多くのサービスが死ぬだろうが!」

って思った方.

正解です.その通りです.


ここまでは,"いかに私が楽をするか" を中心に記述しました.
しかし,実際に仮想化によって田胡研サーバが救われた事例はよくあります.

それについては,次回 「私が田胡研サーバを仮想化したわけ : |┃」 でお話します.
( 破,Q は制作の都合上省きます )


最後に.
こんな活字だらけでわかりにくい文章を最後まで読んでくれてありがとう.

たぶん,全く興味ない人も多いだろうけど,次回はメリットとして挙げたけど説明していない 「バックアップの簡略化」 を中心に記述します.

興味ある人は,お楽しみに!
この次もサービス! サービスぅ!!


続きを書きました => 「私が田胡研サーバを仮想化したわけ: |┃

1 件のコメント:

  1. Mohon ijin berpromosi. service Ac segala jenis merk. kami service Ac mencakup wilayah coverage seluruh Surabaya, Gresik, Sidoarjo. kami juga menerima jasa service perbaikan AC bongkar dan pasang AC. pekerjaan kami cepat, tepat, profesional, harga kompetitif di banding harga jasa luaran.
    service ac split sidoarjo
    tukang service ac sidoarjo
    service ac surabaya sidoarjo
    service ac surabaya selatan
    service ac surabaya timur
    service ac surabaya barat
    service ac surabaya utara
    service ac kota surabaya

    SPLIT-TYPE AIR CONDITIONERS
    MULTI-SPLIT AIR CONDITIONERS
    CHILLED WATER FAN COIL UNITS
    VRF AIR CONDITIONERS
    CHILLERS
    WINDOW-TYPE AIR CONDITIONERS

    http://jualjasaacsurabaya.blogspot.com
    Segera hubungi kami, dan kami akan datang kerumah Anda 24 Jam Non Stop.
    (Hari Sabtu / Minggu / Hari Libur buka)
    PIN BBM : 54BE0B4B / 5474CD93 / TELP : 085645475574

    返信削除