ラベル P2V の投稿を表示しています。 すべての投稿を表示
ラベル P2V の投稿を表示しています。 すべての投稿を表示

2017-09-07

太古の FileMaker システムを延命させる! ― 後日談


 今年の4月に FileMaker Pro 5.5 を運用する Windows Server 2008 (32bit版、Remote Desktop Serviceを運用)をP2Vにより仮想マシン化するプロジェクトに関する記事を書きました。
 あれから4カ月、先月末、ようやく納品が終わりました。いろいろあってとっても苦労しました、トホホ… 以下、古いFileMakerシステムを仮想マシン化して Hypervisor 上で運用したい、という方の参考に多少ともなれば幸いです。

1. FileMaker Pro 5.5/6を仮想マシン上で運用する

今回、特に問題となったのは、仮想マシン上のFileMaker Pro 5.5/6(FMP)からFMSにアクセスしたときの操作が極端に遅くなること。今回、新マシン(下図のVM)と旧マシン(下図Win Server 2008)上の FMP から FileMaker Server 5.5(FMS)上の郵便番号.fp5(レコード12万件)に対しソートを実行し、この実行時間を遅速判断の1つの基準としました。




 12万件ソートの時間計測は、異なる5つのHypervisor機(Dell PowerEdge 2台、HP Proliant 1台、Lenovo X 2台)上に仮想マシンを作成し、様々なチューニングを試しながら繰り返し行いましたが、最速で20秒、最遅では2分強と、サーバ個体やNICの設定により結果が大きく異なったのには閉口しました。

 では、仮想マシン上の Remote Desktop Service に FMP を乗せ、FMSにアクセスするシナリオで、旧マシンに比べ仮想マシンが遅い場合の対処方法を小社の今回の経験からご紹介します。

※一つずつ試してください。
  1. 物理NICが Broadcom NetXtreme Gigabit Ethernet の場合、NICの詳細設定で Virtutal Machine Queues を Disable にするとともに、Hyper-V Manager の仮想マシンの「ネットワークアダプター」で「仮想マシンキューを有効にする」のチェックを解除。
  2. NICの詳細設定で、「TCP/UDP Checksum Offload (IPv4)」と、「TCP/UDP Checksum Offload (IPv6)」を Disable にする。
  3. Hyper-V Manager で、(普通のネットワークアダプターではなく)レガシネットワークアダプターを構成する。
  4. ネットでHyper-Vのチューニング情報を漁って試す(例:Performance Tuning for Hyper-V Servers)。
  5. そもそもロジックボード設計が Hyper-V に適していない→マシンを変える
 小社の今回の経験では、上記3が有力と思います。5の状況にならないようにするには、導入前にベンダーのSEに聞いてみるか、導入実績のあるサーバを導入するか、試用機を借りて事前テストする、位でしょうか。


2. FileMaker Server 5.5 を仮想マシン上で運用する

これについては、レガシネットワークアダプターよりも、普通のネットワークアダプタの方が有利(速い)というテスト結果です。

 同じ仮想マシンであるにもかかわらず、サーバとして利用するのと、クライアントで利用するのとで、採用すべき仮想NICの構成が異なるというのは不思議です。


土屋企画では、FileMaker レガシーシステムの延命、拡張、仮想マシンへの移行に関するご相談を請け賜わっております。


(土屋)

2017-04-25

太古の FileMaker システムを延命させる!

 小社では 「売上猫くん 4.0」という自社製パッケージ製品(一部改変)をもう20年程、社内の見積・売上・請求管理システムとして使用しています。 「売上猫くん」は初期には FileMaker 3/4 により開発されたものです。 この太古のシステムは現在、  仮想マシン(Windows Server 2008)上のFileMaker Server 5.5 で公開され、Windows 10 を含む最新のWindows 機上のFileMaker Pro 5.5/6 から毎日アクセスされて使用されています。
 小社同様、FileMaker 5.x/6.0 でシステムを運用している企業・組織は一定数あり、当方の客先にも何社かはそのようなところがあります。
 このような FileMaker のレガシーシステムを運用する場合、まずネックとなるのがハードウェアの老巧化や故障によるリプレイスです。 本稿では「FileMaker レガシーシステムの仮想化による延命方法」を小社の客先である某社を例にご紹介します。

1. 某社の状況

1998年: 某社より生産・購買・販売・在庫管理システムの開発業務を受注。FileMaker 4 により開発を開始。数ヶ月後に首尾よくリリースに漕ぎ着ける。某社本社の Macintosh 上に FileMaker Server 5.5 を配置し、NTTの専用線  Digital Access による WAN を介して複数拠点で運用を開始。

2001年: FileMaker 5.5 へアップグレード。fmj から  fp5 へのファイル構造の変換が伴うアップグレードにも関わらず、難なく終了。 この際、サーバを Windows Server 2000 に変更。

2008年*1: Windows Terminal Service (後のRemote Desktop Service)を導入し、FileMaker Pro 5.5 をインストール。拠点のユーザはこのサーバ上の FileMaker クライアントを実行することにより、アプリの実行速度を改善。この際、FileMaker Serverを運用するサーバ機も Windows Server 2008 に変更(参考記事)。さらに、ネットワークの高速化とコスト低減を目的に Digital Access から インターネットVPN へ変更。  インターネットVPNへの変更に伴うセキュリティ上のリスクへの備えとして、SonicWALL による IPS 、Gateway Antiviurs 等も併せて導入。

導入以来、数多の仕様変更を繰り返しながら、現在もFileMaker 5.5 の環境で運用中。

*1
2008年当時、小社内で Windows Server 2008 と FileMaker Server 5.5 の組み合わせによる運用実績はあったのですが、このようなレガシーシステムの運用はベンダーによる動作保証の対象外となることを事前に客先に十分説明しなければなりません。 レガシーシステムの延命は客先のリスクに関する理解と許容が重要だと思います。

2. さらなる延命へ

2008年に導入した RDSサーバですが、経年劣化によるリプレイスを検討するように、客先に数年前からお願いしていたところ、先ごろ、ようやくリプレイス案を出すように求められました。 ただ、運用実績のある Windows Server 2008 は既に発売中止になっていました。そこで以下のような図と共に提案書を客先に提出しました。

仮想環境はWindows Server 2012/2016 Standard 付属のHyper-V(ゲストOSが2ライセンス付属)

A案は単純リプレイス型ですが、新サーバを導入し、そこに現行のOS(Windows Server 2008)をインストールし、RDTアカウントやFileMakerが動作する環境を新たに構築し直す、というものです。 問題となるのは、前述のように Windows Server 2008 に公式対応するサーバ機が2017年現在ほとんど存在しないので、それを覚悟の上での実装となります(参考:Microsoft社のサポート期限一覧)。

B案は現行サーバを P2V (Physical to Virutal)し、これを Hyper-V 2.0 で運用するというものです。これが上手くいくと 旧サーバのハードディスク情報をそのまま仮想マシン化でき、OSやアカウント情報の再構築・再設定が不要になるので、大変便利です。 半面、まったく異なるハードウェア環境へ移動することになるので、各種ドライバでエラーが発生したり、悪くすると初回起動時にブルースクリーンが表示されたりします。 安定運用期に入るまで気をぬけません。

C案は 新規にWindowsサーバを導入、ゲストOS も新たに作成し、その上にRDTアカウント等の再度設定しなおすものです。ゲストOS上での作業はほとんどA案と同様になります。P2Vに比べハードウェアの差異によるエラーやブルースクリーンやらの可能性はほぼなくなりますが、すべて一からの作業となります。

 提案書と概算見積をご提示した後に打ち合わせをしました。結果、サーバ故障時やリプレイス時に仮想マシンであれば迅速に復旧可能であることも勘案し、Windows Server 2016 を使用したB案で進行することになりました。ただ前述のように P2Vが失敗するリスクがあることをご説明し、B案不首尾の場合は、A案、C案、さらには Windows Server 2016 の 2012 へのダウングレード(D案*2) もバックアップとしてご提示しました。

*2
D案の提案理由は  SATO のあるラベルプリンタが Windows Server 2012 へは公式対応している一方、Windows 2016 に非対応であることによります。重要な周辺機器との互換性もレガシーシステムの延命を行うときには“要注意”となります。

3. テスト環境での実装

新しいサーバ機の納品までしばらく時間があるため、客先の旧サーバを予め P2V してVHD(X)にし、当方の Windows Server 2016 の Hyper-V に入れ、事前にテストを行いました。仮想マシンを起動するとエラーイベントが複数発生していたので、一つ一つ潰していきました。 次に FileMaker Pro 5.5 (以下、FM5.5)を起動してテストを実施。 下図のようにクライアントPCから仮想サーバにRD接続。 FM5.5 を使用し FileMaker Server 5.5 (以下、FMS)上の12万件のデータが入った郵便番号ファイルを開き、ソートを実行・・・ 「ん? 」、なんかかなり遅い感じ。

確認のため、仮想サーバではなく、別の物理マシンのRDS から郵便番号ファイルにアクセス(クライアントPC→物理マシンRDS+FMP→FMS)すると、なんと3倍!速い。 クライアントPC→Win Server 2016 RDS+FMP→FMSで実行してもやはり3倍速い。

 ならば、仮想サーバ上に郵便番号.fp5 を配置して、ネットワークを介さずローカルで実行するとどうか? 一瞬 = 数秒~10秒程度!で終了してしまいます。 ということで、仮想サーバの通信速度(上図の「FMP⇔FMS接続」)に問題があることが判りました。 実はここからがすごく大変で、 「Hyper-V ゲストOS 遅い」や「Hyper-V Guest OS slow」などをキーワードに、数日間、ググって試す、ググって試すを繰り返しました。 ググってまず最初に出てくるのが、NICの仮想マシンキュー(VMQ、Virtual Machine Queue)を オフ にせよ、というもの。これは内外のいろいろなところで書かれており、小社の別のHyper-V環境下のゲストOSでは劇的な効果があったのですが、今回の仮想マシンについては全く効果無しでした。 NICの「IPV4チェックサムオフロード」をオフにしろ、という記事も多く見かけましたがこれもダメ。
NICの設定は、ホスト側からだけではなく、仮想マシンからもいじってみましたがうまくいかず。
万策尽きたか、と思ったところで、突然光明が差しました。 それは、「レガシーネットワークアダプタ」の使用(下図)。



 仮想マシンのネットワークアダプタを作成する際、「ハードウェアの追加」を選択。この時、通常は「ネットワークアダプタ」が推奨されますが、ここで「レガシ ネットワーク アダプター」を図のように選んで“追加”します。 これを行うことにより、

ping -l 60000 hostname

の応答時間も劇的に改善し、12万件の郵便番号ソートも劇的に速くなりました。

 今回のゲストOSは Windows Server 2008 で、このOSは Hyper-V の「統合サービス」に対応しているので、上図では「ネットワーク アダプター」を選択するのがセオリーだと思うのですが、、、
ネットで調べてもレガシはオバーヘッドが多いので、「ネットワークアダプター」を使いなさいという記事しか見当たらりませんでしたが、レガシーのままテストを続行することにしました。

尚、上記の記事に関する後日談はこちらをご覧ください。


土屋企画では、FileMaker レガシーシステムの延命、拡張、仮想マシンへの移行に関するご相談を請け賜わっております。ご希望の方はこちらからお問い合わせください。



(土屋)


追記
「売上猫くん3.0」は1997年に FileMaker Pro 3 により開発されたものですが、 いまだにご愛用頂いているお客様がいらっしゃいます。 ただ、ハードウェアの老巧化の問題があるのでできる限り新バージョンへのアップグレードをお勧めしてます。 それはそれとして、 FileMaker Pro 3/4 のシステムを Windows NT 4.0 の仮想マシンで運用するというのは、実際やったことはありませんが、チャレンジしてみたい気もします。


参考リンク:
今なお輝くFileMaker 5.5/6
物理マシンを Hyper-V 仮想マシンに移行する(P2V)
Performance Tuning for Hyper-V Servers
Hyper-V network adapter differences
Windows Server 2012 Hyper-V の SR-IOV 構築手順 (1)

2011-05-20

P2V 変換した Windows Server 2003 の仮想マシンに統合サービスセットアップディスクをインストールできずに泣かされる

 前々回の記事で、本ブログで物理マシンを仮想マシンに変換して Hyper-V で運用する方法について説明しましたが、disk2vhd で変換された仮想ディスクを使って起動した仮想マシン(Windows Server 2003)に統合サービスセットアップディスクを入れようとすると、「HAL をアップグレードしています」というダイアログが表示され、その後にマシンを再起動すると、このメッセージが再び表示される(つまりループ状態となる)現象が発生しました。


 二日間ほど悩んでネットを探し回った結果、以下の方法にたどり着きました。

disk2vhd で作成されたディスクはデュアルブートになっている

 仮想マシンを起動した直後は、以下のようなデュアルブート選択画面が表示されます。
 待ち時間はデフォルトで 3 秒間なので、素早く Disk2vhd でない方(下)を選択して起動します。



 この手順で起動した方のシステムに統合サービスセットアップディスクをインストールすると成功します。


デュアルブートのブート順を入れ替える

 上記で統合サービスセットアップディスクのインストールに成功したら、今度のためにもブート順を入れ替えておいた方が良いでしょう。

 上記の要領でシステムを起動してから、コンピュータのプロパティを表示させ、「詳細設定」タブの「起動と回復」セクションに表示されている“設定”ボタンをクリックします。



 表示されるダイアログの「起動システム」セクションで、Disk2vhd という表記がない方のシステムを選択し、“OK” をクリックします。 



 これによって、次回の起動時より Disk2vhd でない方のシステムがデフォルトとして選択されるようになります。
 今後も起動するシステムを選択したい場合は、上記の画面で待ち時間を 10 秒くらいにしておくと選択するときに慌てなくてよいでしょう。


参考:Integration services cannot upgrade HAL(英文ページ)

サイズ可変の仮想ディスクを固定にしてサイズを縮小する方法

 サイズ可変の仮想ディスクが異様に膨れ上がったことにより、物理ディスク領域を圧迫したために起動しなくなるというトラブルを以前経験したことがあり(詳細はこちら)、当方では固定ディスクの使用を推奨しておりますが、最初にサイズ可変の仮想ディスクを作成してしまった場合、固定ディスクに変換すると、そのサイズが 5 倍~ 6 倍にも膨れ上がることがあります。

 たとえば、10G だったはずのサイズ可変仮想ディスクを固定ディスクに変換したとたん、サイズが 50G に膨れ上がってしまい、物理ディスク領域を圧迫してしまう可能性があります。

 この場合、以下の手順を踏むことで固定仮想ディスクのサイズを縮小することが可能です。
 (縮小率は使用済み領域によって左右されますのでご注意ください。)

1. サイズ可変ディスクのサイズを縮小する。

 ホストマシン(Windows Server 2008)から「スタート」→「管理ツール」→「コンピュータの管理」の順に選択し、左ペインに表示される項目より「記憶域」→「ディスクの管理」の順に選択して右クリックし、サブメニューより「VHD の接続」を選択します。



 サイズを縮小したい可変仮想ディスクを選択すると、そのディスクが接続されますので、接続後にパーティションを右クリックすることによって、サイズを縮小することができます。
 サイズは可能な限り小さくしてください。
 ディスク領域が縮小されると、残りのパーティションは未使用領域として表示されます。



 処理が終わったらディスク名(上図ではディスク 6)を右クリックし、「VHD の切断」を選択してください。

2. 仮想ディスクを固定にする。

 Hyper-V マネージャを開き、右ペインに表示されるメニュー項目から「ディスクの編集」を選択し、ウィザードに従ってディスクを固定に変換します。


 
 この時点でディスクサイズが数倍に膨れ上がります。

3. 専用のツールを使って固定ディスクのサイズを縮小する。

 vmToolkit で配布されている無償のツール vhdresizer をダウンロードします。

 vhdresizer をインストールしてから起動すると、ディスク指定画面が表示されますので、上記 2. で固定化した仮想ディスクを指定します。



以下を指定してから“Resize” をクリックすると、ディスクサイズが縮小されます。

[Destination Vhd] に変換後のディスクの名前を入力。
[Type]が Fixed (固定)になっていることを確認。
[New Size]に可能な限り小さな値を指定。上図では、指定可能最小サイズが 17gb となっているが、17 では Resize ボタンがアクティブにならないため、18 を指定。

“Resize” ボタンをクリックすると、指定したサイズにが縮小されます。


参考:この操作によって、手順 1. の可変ディスクの縮小時にできた「未使用領域」がなくなるため、ディスクの中は一つのパーティションとなります。

2011-05-17

物理マシンを Hyper-V 仮想マシンに移行する(P2V)

 本ブログでは、Hyper-V の仮想マシンに OS をインストールしたり、仮想マシンを別のコンピュータの仮想マシンとして移行したりする方法を紹介してまいりましたが、今回は、運用中の物理マシン(タワー型マシン)の環境をごっそり仮想マシンに変換(P2V)して、Hyper-V で運用する方法について紹介します。

 手順は次の 3 ステップとなります。

1. 物理マシンのドライブをそれぞれ仮想ハードディスク(.vhd)に変換する。

MicroSoft 社の Windows SysInternals で提供されている disk2vhd というツールを使うことによって、物理ドライブを仮想ディスクに変換する。



注意:Hyper-V で運用可能な仮想ディスクを作成する場合は、ダイアログボックス右上の [Prepare for use in virtual PC]というチェックボックスに必ずチェックを入れてください。

 私が使っているマシンのディスクドライブは、C、E、F に分かれているため、C、E、F 個別に変換を行い、計 3 つの仮想ディスクを作成しました。

 外付けデバイス、CD/DVD-RW ドライブは変換しないようにしてください。

注意: C、E、F を一度に変換すると、場合によっては作成される仮想ディスクファイルが 1 つになったり、2 つになったりする可能性がありますが、この内部基準に関することは今のところはっきりとわかっておりません(調査不足ですみません)。
ドライブを複数に分けている場合は、個別に変換されることを強くお勧めします。

2. Hyper-V マネージャを開き、新しい仮想マシンを作成し、仮想ディスク接続先を 1. で作成した 3 つのドライブにする。
(参考:今回は仮想環境の C、E、F ドライブにするディスク領域を iSCSI で構築しています。)

 移行先のホストマシンに、1. で作成した 3 つの vhd を格納するディスクドライブを用意します。
 一度に全部の環境を一度にバックアップを取るようにスケジュールするのであれば、3 つの vhd を一つのドライブに入れても良いですが、データドライブのみ、アプリケーションドライブのみ、といったようなバックアップスケジュールを組みたい場合は、vhd を格納するドライブをそれぞれ分けた方が良いでしょう。


 以下の例は、ホストOS から見た H ドライブにゲスト OS の変換済みのドライブ E の vhd ファイルを配置したところです。
 このように、1 ドライブに 1 つの vhd ファイルを配置しても良いですし、一度に仮想マシン全体をバックアップする予定であれば、1 ドライブに 3 つの vhd ファイルを配置してもかまいません。



 ここまで終わったら、Hyper-V マネージャを開き、仮想マシンを新規作成した後で、それぞれの vhd ファイルを関連付けます。

 当方で動作検証したところ、SCSI コントローラで vhd を関連付けたところ E/F ドライブが認識されなかったため、IDE コントローラーで関連付けを行いました。

 IDE コントローラを使って C、E、F ドライブの関連付けを行うと、以下の図のようになります。



3. 仮想マシンを起動して、E、F ドライブを認識させる。

 上記のとおり設定を行ったところで、仮想マシンを起動します。
 disk2vhd でうまく vhd 変換できていれば、OS は正常に起動できると思います。

 起動直後は、以下のようなライセンス認証ダイアログが表示されることがありますので、期間内にライセンス認証を行ってください。



 「スタート」→「管理ツール」→「コンピュータの管理」の順に選択し、左ペインに表示される「ディスクの管理」を開きます。E および F ドライブのディスクがオフライン状態となっていることがありますが、ディスク名を右クリックし、「オンライン」を選択することによってディスクをオンライン状態にできます。

 すべてのディスクをオンライン状態にすると、ディスク構成は次のようになります。



 上記でおかしな点は、ディスク 1 に E と F というドライブ名がついていますが、ディスク 2 のドライブ名は設定されていないことです。
 ディスク 1 に E、ディスク 2 に F というドライブ名が設定されることを想定しているにもかかわらず、ディスク構成が上記のようになってしまうことがあります。

 disk2vhd の変換機能の仕様によるものなのかもしれませんが、ドライブ名を正しく指定するには、ディスク 1 の二番目のパーティションを空欄にし、ディスク 2 の二番目のパーティションに F を指定すると、想定しているディスク構成で元のファイル群を参照できるようになります。


 しかし、この方法ですと、ディスク 1 の二番目のパーティション、ディスク 2 の先頭のパーティションがゴミとして残ってしまいますので、専用のツールを使ってパーティションの削除、移動をする必要があります。