IDCF テックブログ

IDCF テックブログ

クラウド・データセンター・ビッグデータを提供するIDCフロンティアの公式テックブログ

セルフクラウドへ仮想マシンの持ち込み(インポート)

※この記事は公開されてから1年半以上経過しています。情報が古い可能性がありますのでご注意ください。

こんにちは、梶川です。

今回は、どちらかというとIDCフロンティア セルフクラウドに特化した話です。
(ポータビリティーの高い仮想マシンイメージといった意味では、参考になるかもしれません。)
仮想マシン持ち込み(インポート)サービスについて、セルフクラウド上での実践を交えて紹介します。

IDCFで提供しているクラウドはマネージドクラウドセルフクラウドの2種類がありますが、それぞれにインポートサービスがあります。仮想マシンの持ち込みとは、IDCF以外で作成された仮想マシン(p2vなども含む)をIDCFのクラウドサービス上へインポートし利用することです。

他社クラウド、オンプレミス環境、お手元の開発環境などからの移設を想定したサービスとなります。

 

なお、持ち込みイメージの作成など面倒、よくわからない、などといった場合は「クラウド移行おまかせサービス(VMインポート)」をご利用いただくこともできます。

持ち込み元の仮想マシンイメージは、IDCFのクラウドサービスに合わせた形で作成していただく必要があります。具体的には下記の設定でイメージを作成してください。

  マネージドタイプ セルフクラウド
テンプレート形式 OVA(推奨)、OVF、VMX+VMDK OVA
テンプレートファイルサイズ上限 100GB(目安) 60GB(目安)
ハイパーバイザー VMware ESX/ESXi 4.1
仮想マシンHWバージョン v7
ディスク数上限 3 1
1ディスク容量上限 500GB
ディスクコントローラの種類 制限なし
(LSI Logicパラレル推奨)
IDE(2013/06現在、
今後LSI Logicパラレルへ変更予定)
ネットワークアダプタ数上限 2 1
プライベートコネクトご利用時は2
ネットワークアダプタの種類 制限なし(E1000推奨) E1000
サポートゲストOS VMware Compatibility Guide参照

セルフクラウドの場合、固定要素が多いですね。最大の注意点はディスクの数が1台までという事になるかと思います。また、ROOTディスクに関しては後からサイズ変更も出来ないため、十分に考慮したサイズをご検討ください。

マネージドタイプはセルフクラウドと比べると制限事項は緩やかですし、合致しない場合についても要相談でご対応可能な場合が多いので、一旦ご相談いただく方が良いです。なお、マネージドタイプはディスクサイズを増やすことができます。ただし、減らすことはできません。(ディスクサイズは大きくできますが、ファイルシステムが大きくできるかは別の問題です。こちらはOS依存の話です。)

双方にいえることですが「仮想マシンHWバージョン」「v7」としていただく必要があります。これは、バックエンドのハイパーバイザーがESX4.1のためとなります。(2013/6現在)

それ以外に障壁になるのは、ドライバー周りでしょうか。こちらに関してはインポート完了後のOS起動に関わる部分となるため、ある程度は後から修復が可能な場合多いです。例えばLinuxの場合で、起動に関わるドライバーが無いので起動できない、と言ったような場合にはCD-ROMでRescueブートし、initrdを再作成することで解決できる場合が多いです。この手が使えるため、Linuxについては「ディスクコントローラの種類」「ネットワークアダプタの種類」に関しては制限事項として考えなくても良い、ということになるかもしれません。(IDCFのクラウドサービス上では上記のHW構成で作成されることになります。)

「サポートゲストOS」については、少し注意が必要です。特にライセンスがあるタイプのOSやソフトウェアを持ち込む場合には、そのOSやソフトウェアがクラウド上で動作させることに問題がないことを必ず確認してください。例えば、Windowsなどはライセンスの関係から基本的にはクラウド上で動作させることができません。(問題無いライセンスも存在します。)

何れにせよ、インポート出来ない可能性の考慮と、ブートできる/できないに関しての調査はお客様でご対応いただく必要があります。(お手伝いはさせていただきますが、やはりインポート不可の可能性はあります。)

それでは、実際に持ち込みイメージの作成とインポートをやってみたいと思います。

インポート先

ここでのインポート先ターゲットは、自分でインポート可能なセルフクラウドをターゲットにします。(マネージドタイプのインポート作業はIDCF側の作業となります。)

インポート元の作成

インポート元は、先ほどの表にあるようにIDCFのクラウドサービスへ合わせていただければ、基本的にはトラブル無しで移行可能です。とはいえ、実際にはすでに作成済みの仮想マシン(または物理環境からのp2v)を移行することが多いと思われますので、ちょっとしたトラブルシュート込みでやってみましょう。(もっとも、Blogでのご紹介は1例でしか無いのですが。)

ここでは、もっとも普及していて、オンプレミスでもかなり利用されている(そしてIDCFのクラウドサービスでも利用されている)であろうVMwareからの移行をターゲットにします。

セルフクラウド(マネージドタイプも)へのインポートの場合、一番重要なことは「仮想マシンHWバージョン」です。現在最新のESXi5.1でデフォルトになっているv9は、そのままインポートすることができませんので注意が必要です。v9やv8を取り込む場合「VMware vCenter Converter」などを利用し、HWバージョンを変更する必要があります。

今回は、vSphere Clientの標準構成で作成した、最も利用されているであろうCentOSの6系で作成した物を利用したいと思います。ゲストOSとして「Red Hat Enterprise Linux 6 64-bit」を指定して作成した場合になります。標準構成でRHEL6 64-bitを指定した場合、下記のHW構成になります。(問題が出そうな部分のみ抜粋。)合わせて「Red Hat Enterprise Linux 5/CentOS 4,5 64-bit」も載せておきます。(vSphere Client 4.1 + ESXi4.1の組み合わせです。バージョンによって多少異なる可能性があります。)

  Red Hat Enterprise Linux 6 64-bit Red Hat Enterprise Linux 5/CentOS 4,5 64-bit
ディスクコントローラ 準仮想化 LSI Logicパラレル
ネットワークアダプタ VMXNET3(準仮想化) E1000

標準構成の場合、IDCFのクラウドサービスに合わないHWが選択されており、うまくインポートできなそうなことが分かります。今回はトラブルシュート込みなので、このデフォルト構成のまま突き進みます。

仮想マシンのエクスポート(OVA形式での作成)

それでは、vSphere Clientを利用して、仮想マシンをOVAファイルにエクスポートしてみましょう。

vSphere Clientで、エクスポートしたい仮想マシンを選択し[ファイル]->[エクスポート]->[OVFテンプレートのエクスポート]を選択します。

名前と保存ディレクトリの選択、フォーマットを「単一のファイル(OVA)」としてください。セルフクラウドではOVAフォーマット以外はサポートしていません。(マネージドタイプはOVFもインポート可能ですが、単一ファイルの方が扱いやすいためOVAを推奨しています。)

エクスポートが完了すると、指定したディレクトリに指定した名前のOVAファイルが出来上がっているはずです。(エクスポートの時間は仮想マシンのディスク使用量に依存します。)

IDCフロンティア セルフクラウドへのインポート

セルフクラウドのOVAインポートに関してはご利用ガイドをご確認ください。

上記リンク先にもありますが、OVAからのインポートはIDCフロンティア セルフクラウド上では、テンプレートとしてインポートすることになります。

インポートにあたっての注意点は、インポート元OVAの指定方法がブラウザでローカルのファイルを指定といった形が取れず、httpで場所を指定することしか出来ません。(要するに、どこかのWebサーバーにOVAファイルを置いて、クラウド側からアクセスできる環境が必要になります。httpでアクセス出きれば良いので、最近よくあるクラウドストレージなどでも大丈夫だと思います。)改善していきたい項目の一つではありますが、現状はhttpしか指定出来ませんので、ご了承ください。

インポートした仮想マシンの起動

インポートしたOVAはテンプレートとして利用できるようになります。仮想マシンの作成時にテンプレートを指定する箇所がありますが、マイテンプレートの方に登録されていますので、こちらで仮想マシンを作成してください。仮想マシン作成についての詳細はご利用ガイドをご確認ください。

いかがでしょうか?ちゃんと起動出来ましたか?ディスクコントローラが準仮想化からIDEに変わっていますが、起動できてしまいました。実はCentOS6系はinitrddracutで作成されるようになっており、udevにより大抵のモジュールはブート時に動的に読み込めるようになりました。そのマシン固有のinitrdというよりは、汎用的なinitrdに変わっています。そもそも元にした標準構成では、IDEコントローラが非表示になってりるだけで存在しています。(仮想マシンのプロパティ->ハードウェア->すべてのデバイスを表示で確認できます。)よって、CentOS5系のマシン固有のinitrdであったとしても、IDEに変わる分にはドライバーを持っていることになり、起動も問題なく出来てしまいます。つまらないですね、トラブルシュートになりません(^^;)本当はブートできるけど、起動しないといったあたりの事を書こうと思っていたんですけどね。

ネットワークはどうでしょうか?ifconfigで確認してみましょう。

eth0のはずですが、eth1と認識されてしまっていますね。CentOS6系であれば、設定ファイルとしては「/etc/udev/rules.d/70-persistent-net.rules」となりますので、中を確認しMACアドレスを修正するか、面倒であればファイル自体を削除し、リブートすれば自動的に作成してくれます。なお、IPアドレスを設定する「/etc/sysconfig/network-scripts/ifcfg-eth0」にもHWADDRでMACアドレスを指定出来ますが、CentOS6系では最初の方のファイル(udev)で指定する方が良いと思いますので、記述が残っているようであれば消してしまいましょう。(CentOS5系はこのファイルのHWADDRを変更すればOKです。)IPアドレスの設定はDHCPになりますので、こちらも合わせて設定してください。

おまけのトラブルシュート

セルフクラウドへのインポートはIDEが利用されるので、先程も書きましたが大抵うまくいってしまいます。せっかくなのでインポート完了後、ブートできるけどrootデバイスが見つからずに起動しないパターンを修復してみます。これは、マネージドタイプ(ディスクコントローラがLSI Logicパラレル)へのインポートで役に立つかもしれません。

このように、ブートできるがrootデバイスが見つからずに起動しない(Kernel panic)場合、大抵はinitrdの問題であることが多いです。initrdに起動に必要なドライバが足りずに、ブートできないといったケースです。先程も書きましたが、initrdがマシン固有なCentOS5系では多く起こりえます。

このような時は、一旦インストールDVDでレスキューモードでブートし、initrdを作り直します。

DVDでブートし、最初の画面で「boot: linux rescue」と指定して起動します。

途中、言語環境とキーボードとネットワークを聞かれますが、適当で問題ありません。

最後に、既存環境を調べてマウントするかどうかを尋ねられるので「Continue」で進めてマウントします。

既存環境は「/mnt/sysimage」へマウントされます。また、「chroot /mnt/sysimage」することで、既存環境へchroot(rootを切り替える)することができます。

それでは、chrootしてinitrdを作り直しましょう。

まず、chrootして既存環境へ行きます。そして、古いinitrdをバックアップします。initrdのイメージが複数ある場合、基本的にはブートしたいカーネルのinitrdが対象になりますが、普通は最新のkernelをブートしていると思いますので、最新を対象にすれば良いと思います。最後にmkinitrdコマンドでinitrdを作り直して完了です。exitでchrootを抜けて、再度exitでレスキューモードを終了します。

どうですか?今度はきっとブートできるはずです。initrdの作り直し方は、知っておいて損はないです。v2v,p2v以外でも役に立つ時がきっとあります。覚えておきましょう!

Copyright © IDC Frontier Inc.