執筆者: Juergen Thomas (MSFT)
このポストは、2018 年 11 月 2 日に投稿された Moving SAP on SQL Server and Windows into Azure – what SQL Server and Windows release should I use の翻訳です。
Azure は、SAP アプリケーションのようなミッション クリティカルなワークロードのデプロイ先として非常に人気の高いプラットフォームとなりました。これは安全性と拡張性が高いことが理由の 1 つであり、マイクロソフトは今よりもさらに簡単にアプリケーションを Azure に簡単に移行していただけるよう取り組みを続けています。その取り組みの 1 つが、下記のブログ記事で紹介されています。
上記の記事では、Windows Server 2008 (R2) と SQL Server 2008 (R2) の無料延長セキュリティ更新プログラムが、通常 10 年間のサポート ライフサイクル終了後も提供されることを紹介しています。魅力的なオファーではありますが、いくつかの理由から、SAP ユーザーの皆様には、自社のミッション クリティカルなシステムを最新の Windows Server と SQL Server に移行することを先延ばしにできるこの延長サービスを利用するかどうかを、よく検討していただきたいと考えています。
マイクロソフトは、SAP ワークロードや他のミッション クリティカルなエンタープライズ アプリケーション用にこれらの古いバージョンの Window Server と SQL Server を使用することを推奨していません。それはなぜでしょうか? 簡単に言うと、Windows Server 2012 ファミリや Windows Server 2019、最近のSQL Server には、SAP ワークロードのスムーズな処理に適した機能が数多く追加されており、Azure を IaaS プラットフォームとして使用するための統合が強化されているからです。SAP NetWeaver ベースのシステムでは通常、企業の最重要ビジネス プロセスが実行されているため、10 年前のオペレーティング システムやデータベース プラットフォームで運用を続けるべきではありません。
最近の Windows Server と Azure では、統合性、拡張性、信頼性が大きく強化されていますが、中でも特に注目なのは以下の点です。
- Azure の高速ネットワークは、Azure で稼働する SAP システムの拡張性を大きく向上させる重要なテクノロジであり、VM 間のレイテンシを大幅に抑えることができます。この機能は最新の Windows Server OS がゲスト OS となっている場合のみサポートされます。参照: https://docs.microsoft.com/ja-jp/azure/virtual-network/create-vm-accelerated-networking-powershell
- Azure では、すべての VM で旧バージョンの Windows Server を実行できるわけではありません。たとえば、vCPU 数が 64 以上の M シリーズの VM は、Windows Server 2016 以降をゲスト OS として実行する必要があります。
- Windows Server の記憶域スペースは、Windows Server 2012 から大きく機能が向上しました。Windows 記憶域スペースは、データベースのデータやログ ファイルを Windows ゲスト OS 上でホストするためのハイ パフォーマンス ボリュームを作成する際の既定の方法となっています。これは、旧バージョンの Windows で提供されていたストライピングよりも優れた機能です。参照: https://docs.microsoft.com/ja-jp/windows-server/storage/storage-spaces/overview (英語)
- Windows Server のクラスタリング機能は、この 6 年間に大きく強化されました。主なものは以下のとおりです。
- クラスター ノードのローリング アップグレード: Windows Server 2016 で導入されました。参照: https://docs.microsoft.com/ja-jp/windows-server/failover-clustering/Cluster-Operating-System-Rolling-Upgrade
- Azure 環境向けクラウド監視: 特に Azure にデプロイする場合、Windows Server 2016 で導入されたこの Azure クラウド監視機能を使用すると、Azure の SAP デプロイメントの信頼性が大幅に向上します。参照: https://docs.microsoft.com/ja-jp/windows-server/failover-clustering/deploy-cloud-witness
- Windows Server 2016 のスケールアウト ファイル サーバー (SOFS)を使用して、Windows クラスタリング機能でSAPセントラルサービスのHA化ができます。参照: https://docs.microsoft.com/ja-jp/azure/virtual-machines/workloads/sap/sap-high-availability-infrastructure-wsfc-file-share
上記が古いソリューションを推奨しない主な理由です。上記以外でも、最新の Windows カーネルには多数の機能強化が行われており、SAPユーザーが遭遇する問題を削減できます。拡張性と信頼性における大きな改善は、最新 OS にとって重要な要素であり、多くのケースで仮想環境内の SAP ワークロードが効率化されます。以上のことから、マイクロソフトが Azure にデプロイする SAP のオペレーティング システムとして Windows Server 2016 を推奨している理由がおわかりいただけたかと思います。
SQL Server においては、より大きな改善が行われています。SQL Server 2012 の機能強化や、最新リリースで強化された点を見ていきましょう。
SQL Server の列ストアは、SAP BW だけでなく、他の NetWeaver ベースの SAP ソフトウェアでも活用できる画期的な機能です。列ストアに関する SAP 関連の記事をご覧ください: https://blogs.msdn.microsoft.com/saponsqlserver/tag/columnstore/ (英語)
SAP BW 用に列ストアを利用することに加え、SQL Server 2016 では、更新可能な非クラスター化列ストア インデックスが導入されました。これは SAP ERP システムや、BW以外の SAP NetWeaver アプリケーションのインデックスにも適用できます。
- SQL Server AlwaysOn は、SQL Server データベース ミラーリングに関する重要な機能強化です。高可用性と災害復旧を実現するだけでなく、セカンダリ ノードでのバックアップ実行も可能です。Windows Server 2016 のクラウド監視、SQL Server の分散型可用性グループとの組み合わせにより、Azure IaaS上での高可用性と災害復旧を構成するための理想的な機能となります。
- SQL Server のクエリ ストアでは、クエリ パフォーマンスを長期にわたって追跡できます。パフォーマンスの低下が発生した場合に、クエリの実行を最善のパフォーマンスが得られていたものにロールバックできます。参照: https://docs.microsoft.com/en-us/sql/relational-databases/performance/monitoring-performance-by-using-the-query-store?view=sql-server-2017
- 再開可能なオンライン インデックスでは、負荷を抑えながら段階的にインデックスを構築できます。この機能は SQL Server 2017 で導入されました。参照: https://www.mssqltips.com/sqlservertip/4987/sql-server-2017-resumable-online-index-rebuilds/ (英語)
- SQL Server の一貫性チェック (CHECKDB) は、SQL Server 2016 で大きく強化されました。その結果、CHECKDB のスループットが改善され、効果的にリソースを管理できるようになりました。
Azure の機能活用を支援する SQL Server のその他の重要な機能強化は、次のとおりです。
- Azure Blob Storage へのバックアップは、最新の SQL Server で導入されました。この機能では、Azure Blob Storage に直接バックアップを取ることができます。参照: https://docs.microsoft.com/ja-jp/sql/relational-databases/backup-restore/sql-server-backup-and-restore-with-microsoft-azure-blob-storage-service?view=sql-server-2017
- Azure へのマネージド バックアップでは、バックアップを自動的に Azure ストレージに保存できます。参照: https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/sql-server-managed-backup-to-microsoft-azure?view=sql-server-2017
- データとログ ファイルを Azure Blob Storage に直接格納できます。参照: https://docs.microsoft.com/ja-jp/sql/relational-databases/databases/sql-server-data-files-in-microsoft-azure?view=sql-server-2017
- SQL Server のスナップショット バックアップは、Azure Blob Storage を使用している場合に利用できます。参照: https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/file-snapshot-backups-for-database-files-in-azure?view=sql-server-2017
- SQL Server の Transparent Data Encryption (TDE) を大幅に機能強化しました。また、Azure Key Vault を使用できるようになりました。これらは SQL Server 2014、2016、2017 の Service Pack とパッチに含まれています。旧バージョンの SQL Server は、Azure key Vault に似たサードパーティ製 EKMM ツールを何度も呼び出す必要があり、SQL Server TDE を使用している場合にデータベースのバックアップと復元の操作が遅くなるという問題がありました。
他にも、以下の機能が強化されています。
- SQL Server 2016 では、SAP CDS ビューとそれに関連する機能の実行を高速化する機能が導入されました。
- 最新の SQL Server で、DMV に対して変更と追加が行われ、NetWeaver の DBACockpit の機能が向上しました。
新しい Windows Server と SQL Server のリリースの新機能と機能強化をご紹介させていただいたとおり、これらがあるとないとでは、SAP ワークロードの実行には大きな差が出てくることがわかります。SAP ワークロードを Azure IaaS に移行する場合は、少なくとも SQL Server 2016、できれば SQL Server 2017 への移行をご検討ください。発売から 10 年近く経つ古い Windows Server や SQL Server は、Azure に最適化されておらず、新しい SAP やその機能 (SAP CDS ビューなど) にもうまく対応していないのです。