レガシィなサーバを物理クローンした後、仮想化する
お客様のところで使っているシステムのオンプレサーバが Windows2008 R2 Std でハードウェア的にももう限界とのこと。2008ならWin 7(Vista?)ベースだもんね。軽く10年選手ですね。
一般論として、レガシイなサーバが社内システムのオンプレサーバとして動いてる場合は担当のシステム会社にお願いしてハードウェア、OS、サーバサイドシステム、まるごと更新して貰うのが安心です。
今回はちょっと…諸般の事情があって仮想化の流れになりました。
物理サーバからの仮想化を検討している方全般に言えることですが、仮に作業が上手くいったとしても考えられるリスクとして
- 今のシステム会社との関係性が悪くなる可能性が高いこと
- 結果、今後システム絡みのトラブルが発生しても対応を渋られる可能性があること
- 仮想化しても古いものは古いままなのでその辺のリスクは棚置きになってるだけということ
- 万が一、将来新しいシステムに変えたいとなっても、MS SQL のバージョンが古すぎてデータが抜けず、蓄積されたデータの再利用が出来なくなる可能性があるということ
- 当然、上記リスクは仮想化を行った人間(今回で言えば私)も全部負えるわけではない(=対応が出来かねる事態が出てくるかも
ということは作業前に承知して頂いてもらったほうが良いと思います。
物理クローンディスクの作成
替えが効かない現サーバ上での作業は危険すぎるので、先ずはUSB起動のクローンソフトを使ってクローンディスクの作成を行う。今回は Easeus ToDo Backup 12 を使用。
現サーバとほぼ同じ年代の、在庫で持っているPC(DELL Optiplex 3020)に突っ込んで起動するも
原因はGPTパーティション(クローン先SSD)にMBRパーティション(元サーバのパーティション)をクローンしてた事でした。超凡ミス。
クローン先のSSDをMBRに変更してリトライ。
SecureBootを切って、Legacy Bootに切り替えて起動するもブルースクリーン。
原因はSATAの動作モードがAHCIのままになっていてATA(IDE)にしてなかったこと。ちなみに物理サーバはSASのRAID構成っぽかったです(よく見てない)
今回は単純な原因でしたが、サーバ機だと下記記事なんかも原因としてありそうだなーと覚え書き。
ディスククローンで複製したWindows7で起動時に0x0000007Bエラー | GentooやIoTの覚え書きブログ
BIOSはこんな感じ。
あっさりと起動。
ネットワークデバイスのドライバーインストール
DELLの公式から落としてきたネットワークドライバを入れようとしたらエラー
プロシージャ エントリ ポイント AddDllDirectory がダイナミック リンク ライブラリ
KERNEL32.dll から見つかりませんでした。
エラーの根本解決については、Windows Updateをある程度かけてから取り掛かりたい(原因となる要素をなるべく減らしたい)ので、一旦ネットワークドライバをインストールすることに専念。
自己解凍の時点でエラーが発生しているなら、強制的に解凍してinfファイル辺りから手動でドライバを当たられるはず…ってことで別PC上で7Zipを使ってexeを解凍。
inf使うまでもなくsetup.exeの実行でドライバのインストールができました。文字化けしてるけど…。
とりあえずここまでできれば現サーバがぶっ飛んでも動作環境が保持できるので一安心。
仮想サーバの作成…をする前にランタイムのDLLエラー沼にハマる
仮想サーバ化には VMware vCenter Converter Standalone を使用。DLにはVMwareアカウントが必要になります(無料)
お、インストールできそう、と思いきや
コンピューターに api-ms-win-crt-runtime-l1-1-0.dll がないため、プログラムを開始できません。この問題を解決するためには、プログラムを再インストールしてみてください。
Microsoft Visual C++ 2015 再頒布可能パッケージ Update 3
C++ のランタイムがない事に起因するエラーなので、ランタイムをインストールしようとするも…失敗。
なるほど、じゃあランタイムが含まれる Windows Update はどうかな → 失敗。
Windows 7 用更新プログラム (KB2999226)
Windows Server 2008 R2 x64 Edition 用更新プログラム (KB2999226)
この際なんでSP2当てちゃおう、とISOをDVDに焼いてインストールを試みるも「この更新プログラムはお使いのコンピュータには適用できません」となって失敗。
Windows Server 2008 Service Pack 2 および Windows Vista Service Pack 2 (5 言語用スタンドアロン版) DVD ISO (KB948465)
しゃーない、あんまやりたくなかったけどネットにつないでUpdateしよう → 80072EFEエラー
Windows Server 2008 R2 x64 Edition 用更新プログラム (KB3138612)
→ この更新プログラムはお使いのコンピュータには適用できません
更新プログラム KB3140245
→ この更新プログラムはお使いのコンピュータには適用できません
SP1ならいけるかな。
Windows Server 2008 R2 Service Pack 1 for x64-based Systems (KB976932)
→ お、いったか?
行けた。一時間ちょっとくらいかかったかな。再起動中にフリーズしてたので電源押しての強制シャットダウンを一回行いました。
とはいえ再度チャレンジの自動Updateは相変わらず 80072EFE エラーを吐くし、SP2も「この更新プログラムはお使いのコンピュータには~」エラーで当たらないので手動でUpdateをかけていく。
さっきはインストールできなかった
- KB3138612
- KB3140245
がインストールできたので
自動Updeteにチャレンジ、三度目の正直…いけた!Update にすっごい時間がかかるので、ほっといて寝ます。
翌朝確認すると無事Update完了していました。
そろそろ Microsoft Visual C++ 2015 のランタイム、いけるんじゃないか…?
いけたー
気を取り直して、仮想サーバの作成
再度 vCenter Converter Standalone をインストール → DLLエラーも出ず、無事完了。
vCenter Converter Standalone を起動して、ファイルメニュー[FILE] -> [New] -> [Convert machine]
Name は元のサーバ名(NetBIOS)と一緒でOK。Location は VM を出力するフォルダを指定。
吸出しは特にエラーもなく35分くらいで完了。
VM を動作させるホストPCでVMwareを起動して(今回は動作評価を行いたいので Player v16 を使用)[ファイル] -> [新しい仮想マシン] で先ほど VM の出力先に指定したフォルダ内にある [サーバ名].vmx を選択。
ログイン後真っ青な画面でフリーズ…失敗か?と思ったらいけました。次の起動からはすぐデスクトップが描画されますが、最初は結構待ちます。
起動を確認したら VMware Tools をインストールして終わり!
サーバOSにUpdateさえ順当にかかっていれば特に苦労はなさそうですね。