Microsoft 社のStefan Goßner さんのブログに下記の記事が公開されていましたので、日本語で要約しておきます。詳細は原文を参照ください。
SharePoint では更新プログラム適用時に、まずバイナリをインストールし、次に SharePoint 構成ウィザードを実行する(データベースの更新)という2つのステップがあります。
バイナリのインストールでは、SharePointに関係する Windows サービスや IIS Webサイトの停止と再開が必要となるため、ダウンタイムが発生します。そもそも、SharePoint 2013 まではこのバイナリも非常に大きいサイズになっており、GB級であったため、場合によっては数時間かかかります。しかし、一斉にすべての SharePoint サーバーに適用する必要はないため、従来のバージョンのSharePoint でも、 サーバー ファームではサーバーを冗長化しておくことでゼロ ダウンタイムを達成できるようにしてきたわけです。
さて、すべてのSharePointサーバーにバイナリがインストールできたら、すべての SharePoint サーバー上で SharePoint 構成ウィザードを実行していかなくてはなりません。SharePoint 2013 以前ではこの部分が避けられないダウンタイムになっていました。このウィザードを実行する際に、実行中に全サーバーで共有しているデータベースに対して更新プログラムを適用します。SharePoint で使用するストアドプロシージャ、ビュー、トリガー、制約などが対象です。場合によっては、更新プログラムによってはこれらを一旦削除し作り治すこともあります。このため、データベースのアップグレード中は SharePoint コンテンツへのアクセスはサポートされていなければ、動作テストもされていないということです。
SharePoint 2016 では、更新プログラムの MSPファイル数もかなり削減され、パッチ適用時間が短縮できるようになりました(なお、SharePoint Server 2016 はすでに 4月の更新プログラムがリリースされています。このファイルは200MB未満で、以前に比べるとかなり小さくなっています)。また、データベースのアップグレードに関する部分が大幅に改善されています。例えば、ストアド プロシージャが更新前の古いバージョンとの下位互換性を保てるようになっていたり、ストアドプロシージャを削除せずに更新できるようにしているようです。つまりは、製品構成ウィザード実行中に SharePoint コンテンツにアクセスできなくなるという状況がなくなるわけです。しかし、誤解してはならないのは、製品構成ウィザードを実行するサーバーへの IIS 等のアクセスはできなくなりますので、冗長構成が前提です。利用規模や予算の都合上、SharePoint は1台のみしかないというケースも多々ありますが、この場合はダウンタイムは必ず発生します。
ということで、以上を整理すると、冗長構成を前提とする場合は次のように変わります。
更新プログラムの適用フェーズ |
SharePoint 2013 以前でのファーム全体としてのゼロダウンタイムの達成 |
SharePoint 2016におけるファーム全体としてのゼロダウンタイムの達成 |
更新プログラムのインストール |
YES |
YES |
アップグレード(DB) |
NO |
YES |
さて、記事では、アップグレードのスピードを上げるために、従来通り Upgrade-SPContentDatabase コマンドを使って、複数のコンテンツDBを並行してアップグレードすることなどは可能であると記載されています。本件についてはTechNet 記事(Install a software update for SharePoint Server 2016)には次のように記載されていますので、ご注意ください。同一の SQL Server ボリューム上では2つのコンテンツデータベースまでにしておいたほうが良さそうです。
You can also upgrade individual content databases in parallel for a very small number of content databases at the same time. However, do not attempt to upgrade too many content databases in parallel because it will slow down the overall upgrade process. We recommend that you do not upgrade more than two content databases on the same SQL Server volume at a time. ...