小笠原 大治* 河野 義哉* 遠藤 司* 仮想環境構築自動化技術 堀口 金木 真理子* 佑介** Automation technology for virtual machine construction process 要 旨 多くの企業でサーバーの仮想化が進むにつれ,大量に VM と所要時間を大幅に削減し,OS とアプリケーション (Virtual Machine)を構築する要求が増えてきている。 の設定ミスを低減する。 そこで三菱電機インフォメーションシステムズ(株) 特長 2:定型的な運用作業の自動化 (MDIS)は,大量の VM を迅速に構築する“仮想環境構築自 大量のサーバーを構築した後の,日々の運用の中での 動化ソフトウェア”を開発した。 OS・アプリケーション環境の設定・更新作業を自動 本ソフトウェアは,大量の VM 生成と OS 設定,アプリケ ーションの導入・設定といった従来人手で行っていた作 化し,運用作業の効率化と手順誤り・漏れを無くす。 特長 3:仮想・物理混在環境への対応 業を,あらかじめ定義した情報を元に自動化する。 仮想・物理混在環境での構築・運用を自動化する。 本ソフトウェアの主な特長は,以下の 3 つである。 各々の環境を制御するために各ベンダが提供してい 特長 1:大量のサーバーの構築自動化 る API(Application Programming Interface)の違 1 台目の VM を雛形として 2 台目以降の VM を自動生成 いを本ソフトウェアで吸収しているため,マルチベン する機能と複数台のサーバーを並列に構築する機能 ダ環境にも対応できる。 により,類似したサーバーを大量に構築する際の工数 特長2 特長3 大量のサーバーの構築自動化 特長1 定型的な運用作業の自動化 仮想・物理混在環境への対応 ●類似したサーバーの構築 工数削減とミスを低減 ●日々の運用の中での環境 設定・更新作業を効率化 ●仮想・物理・ベンダの違いを 意識することなく自動化 ・仮想・クラウド環境 アプリケーション 運用担当者 OS 1台目のVM 構築担当者 他の仮想化 ソフトウェア 2台目以降を自動生成 ネットワーク切り離し ネットワーク切り離し アプリケーション アプリケーション OS OS VM VM VM VM 本番環境 本番環境 仮想サーバー起動 仮想サーバー起動 OS設定 OS設定 アプリケーション設定 アプリケーション設定 複数サーバー ・環境を 並列して 構築 VMware 検証環境 検証環境 クラウド 実施順序誤り や実施漏れを 無くし、 複数の手順 を一括して 確実に実施 ・物理環境 物理 サーバー 仮想・物理・ ベンダの違いは 本ソフトウェアが 吸収し、構築 ・運用を自動化 ネットワーク 機器 再起動 再起動 開発環境 開発環境 設定変更 設定変更 ・・・ 監視サーバー 仮想環境構築自動化ソフトウェア ※開発計画中のものも含む。 (注1) VMwareは、VMware,Inc.の登録商標である。 仮想環境構築自動化ソフトウェアの特長 大量のサーバーの構築自動化,定型的な運用作業の自動化,仮想・物理混在環境への対応,の 3 つの特長を持つ。アプリケーション導入手順や設定フ ァイル等のテンプレート情報を,対象サーバーに応じた処理情報に整形することで,複数台の対象サーバーの環境構築,更新を効率的に行う技術を有 している。なお,この技術は現在特許出願中である(出願番号:特願 2013-30940)。 *三菱電機インフォメーションシステムズ(株)**三菱電機(株)情報技術総合研究所 1. ま え が き 2.3 仮想・物理混在環境への対応 多くの企業でサーバーの仮想化が進み,構築・運用すべき サーバーの仮想化が進展している一方で,すべてのシステ 仮想マシン数が大幅に増えてきている。しかし,その運用管 ムを仮想環境へ移行しないケースもある。そのため仮想・物 理費用は横ばいのため,数年前と比べ同じ人数(費用)で 2 理サーバーが混在した環境での運用管理が求められる。また, 倍近い台数のサーバーをミスなく構築・運用することが必 サーバーOS の種類によって,OS・アプリケーション環境を設 要になってきた(1)。そこで MDIS は,大量のサーバーの構築・ 定するためのベンダ提供コマンド・API が異なるため,環境 運用の工数削減とミス低減を狙い,“仮想環境構築自動化ソ ごとに多くの技術知識や経験を習得するなどの対応が必要 フトウェア”を開発した。本稿では,本ソフトウェアの主な である。そこで,構築・運用を自動化する際は,仮想・物理 特長と適用事例・効果を紹介する。 の混在および OS の差異を意識させないことで利用者の利便 性をさらに高めることができる。 2. 仮想環境構築・運用時の課題 3. 仮想環境構築自動化ソフトウェア概要 2.1 大量サーバー構築時の工数削減とミス低減 システム構築作業では,本番システムだけでなくアプリケ “仮想環境構築自動化ソフトウェア”は,あらかじめ定義 ーションやシステムの開発環境と検証環境も構築するのが した情報を元に,大量の VM 生成と OS 設定,アプリケーショ 一般的である。さらに,BCP(Business Continuity Planning) ンの導入・設定といった,従来人手で行っていた作業を自動 用に本番とほぼ同じ構成の災害対策システム(BCP 環境)を 化するソフトウェアである。 構築することが増えている。 人手で類似した構成のサーバーを多数構築する場合,設定 本ソフトウェアを利用して,類似したサーバーを複数構 築・運用する場合の使い方を図 1 に示す。 誤りを引き起こしやすい。100 台以上のサーバーの構築設定 運用担当者 を手作業で行うと,IP アドレスを誤って設定してしまうこと ①VMテンプレート作成 アプリケーション OS テンプレート は,十分起こり得る(2)。 構築作業の自動化を実現すれば,構築作業全体の工数削減 ②パラメーター定義 パラメーター 定義 とミス低減を狙うことができる。 ③処理フローの作成 処理フロー 2.2 運用の効率化と運用容易性の向上 大量にサーバーを保有すると,日々の運用の中での OS・ア ⑤実行指示 実行ボタン 仮想環境構築自動化 ソフトウェア VM生成 構築担当者 アプリケーション アプリケーション OS アプリケーション OS VM VMOS VM シェル実行 VM起動 プリケーション環境の設定・更新作業も増えるため,その効 ④独自処理用スクリプト作成 (3) 率化が必要である 。 例えばインターネットからのアクセスを分散して処理し 図 1 独自処理 実行 スクリプト 仮想環境構築自動化ソフトウェアの使い方 ている Web サーバーが 10 台あり,これらすべての環境設定 を実施したい時,1 台 1 台ネットワークから切り離し,手作 ① VM テンプレート作成:元となる VM と,VM 作成後に配 業で設定を行わなければならない。大量のサーバーをインタ 置したいアプリケーション・設定ファイルの雛形を ーネット公開しているオフィシャルサイトの運用において 作成し,テンプレート領域へ配置する。 は,前述の作業を 3 日に 1 回実施しているケースもある。 ② このような定型的な作業を自動化すれば,時間や工数の削 ーター(VM テンプレート名など)と,サーバー固有の 減を狙うことができる。 パラメーター(IP アドレス,ホスト名など)を登録す また,運用の中では非定常的な作業も発生する。非定常的 な作業は,低頻度ではあるが作業項目が多岐にわたったり, パラメーター定義:複数のサーバーで共通なパラメ る。 ③ 処理フロー作成:サーバーの電源入・電源切・VM へ 担当者が作業に未習熟だったりするため,対応が容易ではな のファイルコピー・運用コマンド実行など,本ソフト い。 ウェアが提供する操作を組み合わせて,従来人手で行 例えば被災時の BCP 環境への切替作業は非定常的な作業で ある。被災時には緊急性が求められ,環境切替方法を確認す っていた作業を登録する。 ④ 独自処理用スクリプト作成:利用者が作成したアプ る時間が十分に確保できないことや,担当者が不在の可能性 リケーションを導入したい場合は,個別に独自処理を も考えられる。 実行するスクリプトを作成する。 非定常的な作業だからこそ,即座に判断・行動できる仕組 みを用意すれば,運用容易性を高めることができる。 ⑤ 実行指示:本ソフトウェアの管理画面から生成対象 サーバーを選択し,実行を指示する。 4. 特 長 本ソフトウェアの 3 つの特長を以下で説明する。 4.1 大量のサーバーの並列構築を自動化 (1) VM・OS・アプリケーション構築自動化機能 VM・OS からアプリケーションまで,システム構築手順を自 動実行する,本ソフトウェアの中心機能である。具体的には 元となる VM を複製し,複製した VM に対し MAC(Media Access Control)アドレスとネットワークへの接続設定を行い,VM と OS を起動(電源入)する。VM の起動後,OS に対し IP ア メーターとして定義し,テンプレート用のフォルダへ保存し ておく。本ソフトウェアがこのテンプレートを使った運用作 業を実行する時に,パラメーターに適切な情報をセットし, VM へのコピーと実行作業を自動で行う。 本機能ではパラメーターに加え,if 文と繰り返し (foreach)を行う制御構文も記述することができる。 図 2 は本機能の動作例である。httpd.conf という設定ファ イルのテンプレートに対し,IP アドレスとドキュメントルー ト文字列が設定される。 ドレス・サブネット・ゲートウェイなどのネットワークカ テンプレート <VirtualHost *:80> ServerName ${IPADDRESS} DocumentRoot ${DOCROOT} ードごとの設定と,ホスト名変更を行い,適宜 OS を再起動 して,設定を反映させる。OS の設定終了後,アプリケーショ ンを導入するためのファイル群を各 VM へコピーし,アプリ <VirtualHost *:80> ServerName 192.168.1.150 DocumentRoot /www/html/app ケーションを導入するためのスクリプトを実行する。 この機能によって,ホスト名と IP アドレスだけが異なる 図 2 VM を多数構築する場合,2 台目以降の構築はほぼ全自動で実 施できる。 (2) 並列実行機能 IPアドレスと ドキュメントルートをセット httpd.conf(設定ファイル) テンプレート化支援機能 (3) 管理画面開発用 動作例 通信インターフェース 本ソフトウェアは,定型的な運用作業の自動化を指示する 複数のサーバーに対する構築処理を並列で実行する機能 画面を利用者が自由に開発できるよう,通信インターフェー である。これにより,1台1台順に構築する場合と比べ,構 スを公開している。インターフェース形式は,インターネッ 築にかかる時間を大幅に短縮できる。並列処理数を手動調整 トでのサービス公開インターフェースとして一般的な REST することも可能なため,仮想化ソフトウェアの並列処理数の API (Representational State Transfer API)を採用するこ 限界値に合わせて,可能な限り並列処理を実行することで, とで,特定の開発言語に縛られることなく自由に開発するこ 構築時間を短縮することができる。 4.2 定型的な運用作業の自動化 (1) 一括実行・順序実行機能 とができる。 本ソフトウェアが標準で提供する管理画面(図 3)もこの API を使っている。 定型的な運用作業を複数のサーバーに対し一括,あるいは 順序に従い実行する機能である。 一括実行機能を活用することで,各 VM に対し時間がかか る運用作業をまとめて指示できる。実行指示した作業はバッ クグラウンドで処理されるため,実行指示した管理端末の電 源を切り,翌朝実行結果を確認する,という使い方もできる。 また,運用作業順序に依存関係がある場合は,順序付けを 行うことで,前の作業が終了してから次の作業を自動で実行 することができる。いくつかのサーバーで処理が失敗した時 は,失敗したサーバーだけを処理対象とする機能も有する。 これらの機能により,大量のサーバーに対する運用作業を 効率的に行うことができる。 図 3 4.3 管理画面 仮想・物理混在環境への対応 (1) VM・物理サーバー制御機能 また,被災時の BCP 環境への切替作業のような,非定常的 本ソフトウェアは,構築対象が VM か物理サーバーかを意 だが、定型的な運用作業を自動化することで,運用容易性を 識することなくサーバーを制御することができる。具体的に 高めることができる。 は VM の生成・削除・電源入・電源切・一覧取得と OS の再起 (2) テンプレート化支援機能 動・ファイルのリモートコピー・リモート実行といった代 定型的な運用作業を自動化するために,ユーザーが記述す る個別スクリプトファイルと OS・アプリケーション用の設 定ファイルのテンプレート化を支援する機能である。ファイ ル中の動的に値を変更したい箇所(IP アドレスなど)をパラ 表的な制御機能を抽象化し,ベンダ製品ごとの違いを知らな くとも VM・物理サーバーを制御できる。 図 4 は,本機能の動作例である。 サーバー1 サーバー1 仮想環境構築自動化 ソフトウェア httpd.conf httpd.conf サーバー1の 設定手順を登録 オペレーター リモートコピー VM 適用事例では,被災時の BCP 環境への切替作業を仮想化ソ フトウェアや本システムの専門知識がないオペレーターで も迅速・確実に実施できることが求められた。 そこで BCP 環境への切替手順を本ソフトウェアへ登録し, 構築対象の環境をソフトウェアで判断 画面開発用インターフェースを使って被災時専用画面を提 YES VM制御機能 供した。結果,オペレーターは専用画面上のボタンを押すだ サーバー 1はVM? NO 図 4 けで切替指示を確実に行うことができる(図 5 の②)。また, 物理サーバー 制御機能 いくつかの VM で処理が失敗した時は,“失敗した VM だけ再 仮想・物理混在環境での動作例 本ソフトウェアは構築・運用対象の環境に応じた制御手 順を選択することができる。そのため,図 4 の例のように 構築の処理対象にしたい”と指示するだけで,本ソフトウェ アが自動で対象を判断し切替作業を再開することができる ようになった。 httpd.conf という設定ファイルをサーバー1 へリモートコピ さらに目標復旧時間(被災した後,迅速に BCP 環境へ切り ーしたい時,オペレーターはサーバー1 が VM か物理サーバー 替わるまでの目標時間)についても,本ソフトウェアの並列 か知らなくとも,サーバー1 へリモートコピーを実施できる。 実行機能を活用することで,お客様の目標を達成した。 6. む 5. 適用事例と効果 す び 大手上場企業の商品紹介 Web システムでの適用事例を紹介 前述の適用事例を皮切りに,IT システムの構築・運用の自 する。このシステムは本番環境とそれに類似した環境(検証 動化を希望するお客様が MDIS においても急速に増えてきて 環境,開発環境,BCP 環境)を複数運用している(図 5)。そ いる。 のため大量サーバーの構築工数削減とミス低減,運用の効率 今後サーバー仮想化だけでなくネットワークやストレー 化が課題であった。本ソフトウェアを活用することで,大量 ジの仮想化が進展すると,仮想化ソフトウェアを使った IT のサーバーの構築や定型的な運用作業を自動化し,課題を解 システムの構築・運用の自動化が今まで以上に可能となる。 決することができた。 これは“Infrastructure as Code”(4)とも言われており,よ り大量のサーバーの構築と運用が効率良く行えるようにな 仮想環境構築自動化 ソフトウェア 被災時専用 画面 ①複数環境のコピー VM VM VM 検証環境 検証環境 ②BCP 環境切替 開発環境 開発環境 る。MDIS もこの潮流に追随すべく,さらなる構築・運用自動 化の機能拡充と対象プラットフォームの拡大を図っていく。 BCP環境 BCP環境 参 考 文 献 本番環境 本番環境 図 5 (1) IDC : "Green 適用事例 本適用事例では,環境構築後に本番環境の設定変更が発生 し,対応する BCP 環境の作り直しも数回発生した。BCP 環境 も大量のサーバーを有するため,すべてを手動で作り直すこ とは非常に手間がかかる。しかし本ソフトウェアを適用する ことで,BCP 環境の作り直し作業をすべて自動でかつミスな く実施でき(図 5 の①),結果,BCP 環境の再構築工数を大 幅に削減できた(図 6)。 the Competitive February 2008 (2) 林喜男:人間信頼性工学-人間エラーの防止技術-, 海文堂(1984) (3) 一般社団法人 日本情報システム・ユーザー協会 ソフトウェアメトリクス調査 2010,2011 (4) Theo Schlossnagle, Luke Kanies, Adam Jacob and Erik Troan:Infrastructure as Code,InfoQ, http://www.infoq.com/presentations/infrastructure-a 工数 削減 構築作業 再構築準備作業 構築結果確認作業 適用前 図 6 BCP 環境の再構築工数 Where's Advantage for CIO's?" , Doc # DR2008_3MEW , (1)大量のサーバーの構築自動化 構築 工数 IT: 構築結果確認作業 適用後 削減効果イメージ (2)運用の効率化と運用容易性の向上 s-code
© Copyright 2024 ExpyDoc