株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

NutanixがMicrosoft SQL Server環境の移行をシームレスにする

本記事の原文はNutanixコミュニティのブログNutanix Connect Blogの記事の翻訳ヴァージョンです。原文の著者はNutanix社のTechnical Marketing EngineerであるMike McGhee氏によるものです。原文を参照したい方はMaking Migration Seamless for Microsoft SQL Server Environmentsをご確認ください。情報は原文の投稿時のままの情報ですので、現時点では投稿時の情報と製品とで差異が出ている場合があります。

当社のNutanix社製品についてはこちら。本ブログのNutanix関連記事のまとめページこちら

Fig226

展開と利用が簡単なエンタープライズクラウド環境で管理者がアプリケーションについての業務に集中することができます。今日もっとも広くインストールされ、そして仮想化されているミッションクリティカルアプリケーションはMicrosoft SQL Serverです。SQL Serverの仮想化はリソースのより効率的な利用、可用性の改善、ハードウェアプラットフォームを跨いでの柔軟な可搬性を含む多くのメリットを提供します。SQL Serverのようなミッションクリティカルアプリケーションが仮想化のメリットを確実、惑うことなく享受できるようにすることは、究極的にはなぜ特定のプライベートクラウドまたはパブリッククラウドのテクノロジーを選ぶのかというところに至ります。

SQL Serverをシームレスに移行させることができるということはパフォーマンスが向上し、管理が簡単になって、究極的にはビジネス収益を改善できる昨今のテクノロジーを活用しようとした場合にはとても重要です。しかし、移行をするとなると常に怖さがつきまといます。現状のニーズと将来の成長についてサイジングし、移行先環境へベストプラクティスを施したSQL Serverを展開し、限られたダウンタイムの中で移行を実施するということは多くの配慮が必要ですし、心配事もつきません。

NutanixのエンタープライズクラウドMicrosoft SQL Serverにとって理想的なプラットフォームです。Nutanixへの移行を可能な限りシンプルで、そして簡単なものにしようという目的の元、NutanixはSQL Server Mobility Service(SSMS - SQL Server可搬サービス)を開発しました。SSMSは以下のような難題を含む移行タスクにおいて最初から最後までお手伝いをするツールです。

  • 現在のSQL Server環境の分析
  • SQL Serverワークロードのための移行先としてのNutanix環境のサイジング
  • Nutanixプラットフォーム、仮想化、そしてSQL Serverのベストプラクティスの定義
  • Nutanix環境へのカットオーバーを含むSQL Serverデータベースの移行の自動化

では、SSMSはどのように動作する?

まずSSMSはエージェントレスで動作します、つまり移行元や移行先の環境にソフトウェアをインストールする必要はありません。SSMS自身は仮想化アプライアンスで、OVAフォーマットで提供され、最小インストール構成のLinuxが動作しています。Linux内にはDockerベースのコンテナがインストールされており、そこでSSMSを動作させるNutanixイメージが起動します。OVAの展開に際してはIPアドレスが1つ必要で、標準ではDHCPで、または管理者が静的に割り振ることもできます。そのIPアドレス上でSSMSは標準のインターネットブラウザを利用してHTML5ベースのインターフェイス経由で操作を行います。インストールには数分ほどの時間がかかります。

SSMSへ接続すると4つのコアとなる操作が表示されます。スキャン、設計、展開、そして移行です。これらの操作はみなさんが定義する「プロジェクト」の下にグループされています。さぁ、これらのコンセプトの詳細を掘り下げていきましょう。

SSMS Projects: まずはじめに

プロジェクトはユーザーが定義する論理構造体でご自身の環境を構成するのに役立ちます。特定のSQLインスタンスを個別のプロジェクトに当てはめることもできますし、複数のSQLインスタンスで一つのプロジェクトを共有することもできます。皆さんの思うがままです。いつでもプロジェクトへ立ち戻る事ができますし、特定の操作を行うか、どうした操作が行われているのか確認することができます。

最初にSSMSにログインした際には新しいプロジェクトを作成するか、もしくは既存のプロジェクトのリストを検索するか訪ねてくるホームページがお出迎えします。

Fig227

プロジェクトを作成後はSQL Serverのスキャニングです。

SSMS Scans: 環境の自動探索

SSMSのスキャン操作はエージェントレスでのSQL Server環境の自動探索です。プロジェクト内でマルチスキャンを選択することができ、1つまたはいくつかのSQLインスタンスのスキャンを実行します。SSMSはこの操作をSQL Serverに対して直接実行しますので、ターゲットとなるSQLインスタンスに権限のあるアカウントが必要となります。接続が済むと、SSMSはトランザクションSQLのselect宣言の群とホストコマンドを幾つか実行します。最初のリリースのSSMSは大体40ほどのクエリを実行し、その中から以下の情報を取り出します:

  • OSとSQL Serverのヴァージョン
  • SQL Serverインスタンス名と利用しているネットワークポート
  • Active Directoryの詳細
  • OSとSQL Serverに割り当てられたメモリ
  • ホストに割り当てられたプロセッサコアとSQLアフィニティ設定
  • 割り当てられたストレージと消費量
  • データベースの構成とレイアウト
  • バックアップ履歴
  • パフォーマンス統計情報:
    • 現在のメモリ消費量
    • CPU利用率の履歴
      • 注 : CPUカウンターは4時間の間隔で浮動平均されます
    • ストレージの帯域とIOPSの履歴
      • 注 : ストレージの統計情報はそのインスタンスSQL Serverサービスが再起動されてからの平均の結果から取得されます

スキャンはインスタンスあたり大抵1分ほどですので、煩わしいものではありません。スキャン結果のサマリ概要とインスタンス内で見つけてきたデータベースについて表示するデータベースレベルでのサマリが得られます。

Fig228

SSMSによってスキャンの結果が表示され既存の環境についてより深く理解ができることでしょう。更には移行の計画のためのベースラインとなる要件も表示されます。ですが、SSMSは単に情報を取得してくるだけのためだけに設計されているのではありません。理想的なターゲット構成を自動化するためにも利用が可能です。これは次のステップ、設計のフェーズでお目見えします。

SSMS Design: ベストプラクティスの定義

設計操作は取得したスキャンデータとベストプラクティスルールエンジンを利用して自動的にターゲットの構成を行います。SSMSによって推奨された構成を以下で確認することができます、またはスキャンで取得した入力情報とシンプルなYAML TOSCA仕様に則ったデザインテンプレートフォーマットの両方を含む設計情報をダウンロードすることもできます。

Fig229

Fig230

Fig231

ルールエンジンは多くのNutanixの、そして仮想マシンSQL Serverレベルでのベストプラクティスを含んでいます、以下はその一部です:

  • Nutanixストレージコンテナ構成とインライン圧縮
  • vmxnet3ネットワークアダプタと複数のPVSCSIアダプタなどの特定の仮想化ハードウェア
  • 一時DB(tempdb)やユーザーデータベース用の複数の仮想化ディスク、vCPUの数も考慮に入っています
  • アロケーションユニットサイズ64KBでSQLファイル用に仮想化ディスクをフォーマット
  • 既存のニーズと将来の成長を考慮した仮想化ディスクのサイズの割当
  • 以下のようなSQL設定
    • インファントファイルの初期化
    • メモリ上でのロックページ
    • エクステントサイズの混在の回避
    • ファイルの自動拡張
    • メモリでラージページ割当を利用、SQL Serverに割り当てられたメモリから

設計仕様はその後ターゲット構成の作成に利用されます。これはSSMSの次のパートである展開フェーズで行われます。

SSMS Deploy: 移行先を自動的に生成

SSMSはデータベースを移行元と移行先の間のSQL Serverインスタンス間でコピーすることで移行を実行します。移行計画を実行する前に、SSMSはまずベースOSとSQLインスタンスを展開し、利用できるようにします。最初のリリースではターゲットOSとSQLインスタンスは利用中のヴァージョンと同じでなくてはなりません。これまた最初のリリースではNutanix環境はESXiが動作しているものでなくてはなりません。

SSMSが展開手順を開始すするために以下の情報が必要です:

これらを入力すると展開のサマリスクリーンが表示され、ここからは自動化された操作が行われます。

Fig232

展開の最中、SSMSはタスクを順次実行していきますが、最初はターゲット環境の作成が行われます。このタスクにはNutanixクラスタへのストレージコンテナの構成が含まれています。指定された仮想マシンテンプレートがクローンされますが、これにはNutanixのVAAIベースのファーストクローンを利用するため、非常に高速に行われます。クローンされた仮想マシンは指定されたActive Directoryへと追加され、SQL Serverがインストールされて、以前言及したベストプラクティスが適用されます。

Fig233

この処理が完了するとSQL Serverが動作している仮想マシンが移行先のNutanix上で動作している状態となります。さぁ、最後のフェーズに差し掛かりました。移行です。

SSMS Migrate: 自動化されたデータベース向けレプリケーション

SSMSの移行プロセスは移行元のSQLインスタンスと新しく展開された移行先の間の自動化されたデータベース、インスタンスのセキュリティ(ユーザーアカウント)、ジョブ(msdb経由)のレプリケーションを実現します。データベースはネイティブのSQL Serverバックアップと復元を使って移行されます。ログを利用した移行とよく似たとてもシンプルな概念での移行です。

処理は非常に簡単に実行できます、移行先のSQLインスタンスを選択して単に移行プランを作成すればこれまでに利用していたバックアップ操作が見つかります。もしネイティブSQLバックアップがアレばバックアップターゲットが簡単のために呼び出されます。もし移行先のシェアが利用できるのであれば既存のバックアップが利用されます。もし必要であればSSMSはSMBシェアのバックアップ先を利用して完全バックアップとログバックアップを実行するため、既存のバックアップは必要ありません。

Fig234準備完了したら、移行をスタートさせることができます。最初のステップではもしもターゲットにフルバックアップを戻す必要がある場合にはフルバックアップが実行されます。SSMSはSQLインスタンスに既存のスケジュールで取得されたすべてのログバックアップを問い合わせます。SSMSはインスタンスを継続的に監視し、これらのログバックアップを移行先に対して適用します。ログバックアップ監視プロセスが終了するとSSMSは2つのオプションを提供します。一つはテストカットオーバーで、もう一つは新しいインスタンスへの移行です。

テストカットオーバーではSSMSは既存のインスタンスをそのままにして、単にターゲットデータベースをリカバリモードから読み書き状態へと移行させます。この時点で移行プロセスが完了したと考えることができ、もともとの本稼働インスタンスとそのコピーのデータベースを新しいSQL Serverインスタンス内に持っていることになります。もし、後から本稼働インスタンスを移行しようと考える場合には単に新しい移行計画を作成し、同じバックアップと復元のプロセスを再度実行するだけです。テスト移行は移行プロセスが快適なものであると確認するために良いものですし、最終カットオーバー前にテスト環境としてステージングを行う他、簡単なPOC環境を作るのにも利用できます。

もし移行を実施するを選択した場合、移行元のSQLデータベースはシングルユーザーモードへと移行され、最終バックアップとトランザクションログの復元が実行されます。完全な移行が完了するためにはクライアントやアプリケーションを新しいSQLインスタンスへとリダイレクトしなくてはなりません。環境内でエイリアスを利用しているのであれば単にそのエイリアスに新しい移行先のインスタンスを追加すれば良いだけです。ですが、ファイナルテストカットオーバーや移行のステップが完了する前にSSMSは移行先のデータベースに幾つかのアクションを施します。

SQL Serverの観点から重要なベストプラクティスとして、単一データベース内のファイルグループでサポートできるデータファイル数があります。SSMSはMicrosoftの推奨事項を利用し、Write割当競合の回避のためのデータベースへのデータファイルの追加し、より多くのディスクへとストレージワークロードを拡張することができます。

Fig235

SSMSはまず最初にインスタンスアサインされているCPU数と検出したストレージワークロードから追加データファイルをデータベースへと追加します。もし追加ファイルが追加されると追加ステップとして既存のデータファイルの縮退と既存のインデックスの再生性が行われます。このプロセスは既存のデータと新しいファイルのデータのバランスと偏りの除去です。これらの統計が更新された後、checkdbが実行されます。

これらの最終ステップはNutanix上の移行先のデータベースで可能な限りの最高のパフォーマンスを保証するためのもので、こうした退屈な作業をデータベース管理者が行う手間を削減することができます。

試してみる準備はできましたか?

構成管理はミッションクリティカルアプリケーションの一貫性のある環境とパフォーマンスを維持するためにより重要な役割を果たすようになってきています。構成管理の大原則を利用し、移行が確実にうまくいくことを保証しながら、ベストプラクティスを適応していくことは実に理にかなっています。もしここまで読み進めてきてSSMSを利用してみたいと思ったのであれば、ご提供いたします。SSMSはすべてのStarter、Pro、Ultimateいずれのエディションをご利用のNutanixのお客様へフリーで提供されます。もしもこのフレームワークが気に入ったのであればぜひ教えて下さい。我々は将来追加アプリケーションやユースケースSQL Serverの枠を超えて提供していこうと考えています。Nutanix NEXT communityに参加し、SQL Server Mobility Serviceを動作させてどう思ったのか、教えて下さい!

Disclaimer: This blog may contains links to external websites that are not part of Nutanix.com. Nutanix does not control these sites and disclaims all responsibility for the content or accuracy of any external site. Our decision to link to an external site should not be considered an endorsement of any content on such site. Please send us a note through the comments below if you have specific feedback on the external links in this blog.

© 2017 Nutanix, Inc. All rights reserved. Nutanix is a trademark of Nutanix, Inc., registered in the United States and other countries.  All other brand names mentioned herein are for identification purposes only and may be the trademarks of their respective holder(s).

記事担当者: マーケティング本部 三好哲生 (@Networld_NTNX

Ntc2017_2

Nutanixはあらゆるものをシンプルにしていこう、これだけを突き詰めているように見えます。Googleがあらゆるものを検索可能にし、Amazonがあらゆるものを1クリックで世界中どこにいても手に入るようにしてきたのと同じく、彼らの行動原理であるとおもいます。今回はSQL Serverの移行をシンプルにしてくれるツールがリリースされました。今までと動いているプロセスは同じなのですが極端に自動化して手間を省いてくれることはもちろん、その可読性をあげることでそれを実行する恐怖も取り除いてくれます。

もっとも仮想化されているデータベースであるSQL Serverの移行はそれだけで利用効果も高く、非常に面白いものですが、このSQL Server近年にもLinuxで動作するものがリリースされてきますし、中身はContainerで起動されるそうです。SQL ServerをWindowからLinux仮想マシンからContainerへとこの分野のニーズは今後非常に大きなものになっていくのではないでしょうか。

ACSSSPの統合でVMもコンテナも1クリックにしてきたNutanix社の次なる一手が垣間見えながら、さらにそれだけでも有用、SSMS今後注目の機能です!