57
XenServerによるお手軽開発 サーバ運用 BPStudy#47

XenServerによるお手軽開発サーバ運用

Embed Size (px)

DESCRIPTION

ビープラウドではXenServerを使って開発用サーバを運用しています。今回は運用方法の紹介や、こんな時に便利だったなどの話をしたいと思います。

Citation preview

Page 1: XenServerによるお手軽開発サーバ運用

XenServerによるお手軽開発サーバ運用

BPStudy#47

Page 2: XenServerによるお手軽開発サーバ運用

お前、誰よ

● 岡野真也 ● @tokibito● id:nullpobug

○偏った言語信者の垂れ流し ● 株式会社ビープラウド勤務

○Python○社内インフラ整備

Page 3: XenServerによるお手軽開発サーバ運用

今日の話題

Page 4: XenServerによるお手軽開発サーバ運用

XenServer

Page 5: XenServerによるお手軽開発サーバ運用

なぜXenServer?

Page 6: XenServerによるお手軽開発サーバ運用

BeProudで使ってます

Page 7: XenServerによるお手軽開発サーバ運用

BeProudはこんな会社(1)

● 主にWebシステムの受託開発をやってます○ Linux

■Debian/Ubuntu/CentOS ○ nginx/Apache○MySQL/PostgreSQL○Python/PHP/Ruby/Perl/Java

Page 8: XenServerによるお手軽開発サーバ運用

BeProudはこんな会社(2)

● 人数○ 10人ぐらい(2008) → 30人ぐらい(2011)

Page 9: XenServerによるお手軽開発サーバ運用
Page 10: XenServerによるお手軽開発サーバ運用

業務での課題

● 本番に近い環境 ● お客さんに見てもらう● 外部システムとの連携● バッチ処理● 作業再開が楽(gnu screenとか)● Wiki● プロジェクト/課題管理● ソースコードリポジトリ● 他にもいろいろ..

Page 11: XenServerによるお手軽開発サーバ運用

開発作業用のサーバがほしい

Page 12: XenServerによるお手軽開発サーバ運用

じゃあサーバを用意しよう

Page 13: XenServerによるお手軽開発サーバ運用

その前に

Page 14: XenServerによるお手軽開発サーバ運用

大事なこと(前提条件)

● コストをかけすぎない(お金、時間)○お金稼ぐのが本業

● 今やらなくていいことはやらない○過剰なものはいらない○必要以上に複雑にしない

■メンテナンスコスト■移行コスト

Page 15: XenServerによるお手軽開発サーバ運用

どういうサーバを用意する?

● レンタルサーバ○共用○専用サーバ○VPS

● 自前で用意○データセンターに設置○社内に設置

Page 16: XenServerによるお手軽開発サーバ運用

どういうサーバを用意する?(2)

● プロジェクトが増えたらどうする?○物理サーバ増やす?○HTTP/VirtualHost?○ chroot?○仮想化を使う?

Page 17: XenServerによるお手軽開発サーバ運用

考える...

● プロジェクトごとに別の環境を作りたい○共用サーバでは難しい

● 1プロジェクトの期間は平均でも1~3ヶ月○データセンターにサーバ設置は高い○専用サーバでもちょっと高い

Page 18: XenServerによるお手軽開発サーバ運用

じゃあ

Page 19: XenServerによるお手軽開発サーバ運用

社内にサーバ設置

Page 20: XenServerによるお手軽開発サーバ運用

それと

Page 21: XenServerによるお手軽開発サーバ運用

仮想化で。

Page 22: XenServerによるお手軽開発サーバ運用

コンピュータの仮想化って?

● 「仮想化」○単語にはいろんな意味がある

● ここで話題にしてるのは仮想マシン(Virtual Machine, VM)○ソフトウェアで仮想的にコンピュータを構成 ○ 1台のコンピュータで何台ものVMを動かす

Page 23: XenServerによるお手軽開発サーバ運用

それでXenServer?

Page 24: XenServerによるお手軽開発サーバ運用

なぜXenServer?

● VPSを借りるより自前サーバの仮想化○性能/機能面で有利

● KVMやXenは知識ないと大変そうに思った● 2009年4月当時VMwareESXiは4コア上限

○ 8コアマシン使いたかった● XenServerが無償で使えるようになると聞いて。

Page 25: XenServerによるお手軽開発サーバ運用

XenServerってどんなもの?

● Citrix Systemsの製品● サーバの仮想化向け ● 無償版がある

○機能の多い上位版がある● ハードウェアの上で直接動作するOS● LinuxやWindowsを動かすことができる

Page 26: XenServerによるお手軽開発サーバ運用
Page 27: XenServerによるお手軽開発サーバ運用
Page 28: XenServerによるお手軽開発サーバ運用

Xenとの関係は?

● Xenはオープンソースのソフトウェア(GPL) ● XenはXenSource Incが中心で開発● CitrixがXenSourceを買収● XenServerはXenをベースとした製品

Page 29: XenServerによるお手軽開発サーバ運用

じゃあハードウェアは?

Page 30: XenServerによるお手軽開発サーバ運用

ハードウェアはこんなの

● ハードウェアは20~30万円程度の据え置き型○お金あんまりかけられない○ラックは置き場所や電源に困る

■ 2009年当時のオフィスは4,5人でいっぱい○CPUはXeonで4コアか8コアマシン○メモリは4~16GBぐらい

Page 31: XenServerによるお手軽開発サーバ運用
Page 32: XenServerによるお手軽開発サーバ運用

インストールしてみた

Page 33: XenServerによるお手軽開発サーバ運用

インストールについて(XenServer)

1. Citrixのサイトでアカウント作成後にisoをダウンロード2. isoイメージからCDを作成してインストール3. XenCenterを管理用端末にインストール4. ライセンスファイルを取得5. XenCenter経由でライセンスファイルをインストール

○無償版ライセンスは1年ごとに更新

Page 34: XenServerによるお手軽開発サーバ運用

XenCenterについて

● Windows用です...● XenServerとXenServer上のVMを管理/操作● リモート接続(HTTPS)● OpenXenManager

○XenCenterクローン ○オープンソース○PyGTK

■Ubuntuなら比較的動かしやすいかも?

Page 35: XenServerによるお手軽開発サーバ運用
Page 36: XenServerによるお手軽開発サーバ運用

インストールについて(ゲストOS)

● XenCenterから操作 ● テンプレートを使う

○WindowsやRedHat, SUSE, Debianなど ● isoイメージからインストール

○Windows共有(CIFS)などでファイルを共有

Page 37: XenServerによるお手軽開発サーバ運用

ここが便利(1)

● XenCenter○GUIだし複数ホストの管理も楽

● スナップショット○壊しても戻せる

● バックアップと複製○VM単位でバックアップできるので復元が楽○同じ構成の環境を簡単に作れる

■VMのテンプレート■数分ですぐに使えるVMを用意できる

Page 38: XenServerによるお手軽開発サーバ運用

ここが便利(2)

● リソース割り当て○CPU/メモリ/ハードディスクの割り当てを変更しや

すい○別のホストにVMを移動して動かすとか

Page 39: XenServerによるお手軽開発サーバ運用

やった!これで便利になった!

Page 40: XenServerによるお手軽開発サーバ運用

運用開始からしばらくして...

Page 41: XenServerによるお手軽開発サーバ運用

さらなる課題

● 設定が面倒くさい ○ネットワークの設定が面倒くさい

■ IPを固定にしたり■ホスト名を書き換えたり

○ユーザの追加が面倒くさい■パスワード設定とそれの通知が大変

■→鍵認証に変更■ LDAPも考えたけどまだ早い

Page 42: XenServerによるお手軽開発サーバ運用

とりあえずスクリプト書いた

Pythonで...

Page 43: XenServerによるお手軽開発サーバ運用

https://gist.github.com/1113337

Page 44: XenServerによるお手軽開発サーバ運用

設定用のスクリプト

● 設定ファイルの内容をテキスト置換○ /etc/hostname

■ホスト名をスクリプトで設定○ /etc/hosts

■自分のホスト名をスクリプトで設定○ /etc/network/interfaces

■ IPアドレスをスクリプトで設定 ● ユーザ作成時の作業を簡単に

○ /etc/skel/○公開鍵をスクリプトで設定

Page 45: XenServerによるお手軽開発サーバ運用

運用管理

● VMの管理○スプレッドシートで管理表作成(IPや用途)○不要なVMは停止する(リソース確保)

● VMの作成○ルーチンワーク化を進める

Page 46: XenServerによるお手軽開発サーバ運用
Page 47: XenServerによるお手軽開発サーバ運用

(demo)

Page 48: XenServerによるお手軽開発サーバ運用

ルーチンワーク化する

● プロジェクト開始○→開発用サーバの申請(ユーザ,IPなど)

■→管理者が手順に従ってVM作成● リソース不足

○→リソース追加申請■→管理者が手順に従ってリソース追加

Page 49: XenServerによるお手軽開発サーバ運用

"今は"これで足りてます

Page 50: XenServerによるお手軽開発サーバ運用

じゃあ今後は?

Page 51: XenServerによるお手軽開発サーバ運用

今後...

● バックアップの強化○ハードウェア障害怖い ○定期的にVMを自動バックアップ

■ S3に保存するとか

Page 52: XenServerによるお手軽開発サーバ運用

今後.......

● もっと会社の人数が増えたら○サーバ数増

■設定がさらに大変になる■自動化をさらに進めるとか...

■ネットワークの問題■帯域とかアドレス割り当て

○ユーザ数増■ユーザ管理が大変になる

■PAM/LDAPとか...

Page 53: XenServerによるお手軽開発サーバ運用

必要になったら考える!

(上位の製品使用の検討とかも)

Page 54: XenServerによるお手軽開発サーバ運用

おまけ

Page 55: XenServerによるお手軽開発サーバ運用

APIを使ってみる

● XenServerはXMLRPCのAPIを使える● SDKがあるよ ● XenAPI.py

○ http://community.citrix.com/display/xs/XenServer+Python+API+Samples

● xswizard○XenAPI.pyのラッパーモジュール○作ってみました○ easy_install xswizard

Page 56: XenServerによるお手軽開発サーバ運用

from xswizard.api import API# APIオブジェクトを取得 api = API( 'http://192.168.100.1/' , 'username' , 'password' )# テンプレートのクローンを作成 vm = api.get_instant_template_by_name( 'ubuntu10.04-server' ) ¥  .clone( 'new-ubuntu-server' )# テンプレートからVMにする vm.provision()# VM起動 vm.start()

Page 57: XenServerによるお手軽開発サーバ運用

おしまい

ご清聴ありがとうございました