SharePoint のドキュメント ライブラリと OneDrive ではバージョン管理の履歴を制限できるようになります。これまで、バージョン履歴がストレージの容量を圧迫してしまうことも少なくありませんでした。そこで、Microsoftは新しいバージョンの制御方法を導入することにしたのです。
ドキュメント ライブラリと OneDrive のバージョン履歴の制限の概要 (プレビュー)
従来からドキュメント ライブラリの所有者はライブラリ単位でのバージョンの制限は設定できていました。既定ではメジャーバージョンを500作成するようになっていますが、これを容量の圧迫を考慮して必要に応じて少なくするといった対応をとってきていたわけです。しかし、今回のアップデートにより、システムが自動的に判断して(インテリジェントに)、バージョンの世代や復元の確立などの要素を考慮して保持するバージョンを決定するように構成できます。ただし、従来通りの手動での管理の余地も残すため、要件に合わせて選択肢の幅が増えることになります。
📅パブリック プレビュー期間
2024年5月上旬からロールアウトを開始し、2024年6月下旬までに完了予定。この期間は既定でオフなので、必要に応じてオプトインする必要があります。
📅GA
2024年8月下旬よりロールアウトを開始し、2024年10月中頃まで完了予定。
事前設定
パブリックプレビュー中はこの機能は既定でオフになっています。オプトインするにはテナントレベルの管理者が SharePoint Online 管理シェルを使って有効化する必要があります。管理シェルのバージョンは 16.0.24810.12000以上が必要です。
利用するコマンドは次の通りです。
Set-SPOTenant -EnableVersionExpirationSetting $true
上記の設定を行うと SharePoint 管理センターの「設定」ページに次のように「バージョン履歴の制限」という管理項目が追加されます。
設定
バージョン管理の履歴を制限する設定では SharePoint と OneDrive の双方に対して組織全体としてバージョン管理をどのように行うのかを決定します。
オプションとして自動と手動があります。既定値は “手動” です。
手動
手動では単純に時間の経過をベースに古いものを削除します。
メジャーバージョンの数の既定値はこれまで通り "500" であり、この数を超えると自動的に古いものから削除される仕組みです。
時間は、一定の期間を経過したバージョンを削除するというものですが、既定では"しない" になっています。
メジャーバージョン数は従来のチームサイトの設定と同様に最低100、最大50,000を指定できます。
時間は、既定値は “しない” ですが、これ以外に次の選択肢があります。
- 3か月
- 6か月
- 1年
- ユーザー指定
このUIからは30日未満の値は指定できません。公開されているAPI経由では30未満にすることはできますが、ユーザーによる不注意からデータが損失してしまう可能性が高くなるためMicrosoftはこうした設定は推奨していません。
自動
自動設定が推奨値です。自動オプションに関しては、特に指定する項目はありません。こちらは単に時間の経過だけを考慮するのではなく、アクティビティを考慮するというのがポイントです。
この設定では、最近作成したほとんどのバージョンにアクセスできますが、古いバージョンで保持されるバージョンが少なくなります。
利用する確率の高そうなバージョンのみを残し、使わないであろう古いバージョンは適宜、間引いていくアプローチです。このようにしてストレージ使用量を最適化します。
Microsoft の資料(Plan version storage for document libraries(Preview) - SharePoint in Microsoft 365 | Microsoft Learn)を見ると次のような例が挙げられています。3つのオプションでの比較です。
- 手動: 60日経過すると削除
- 手動: 500バージョン以上は古いものから削除
- 自動
3か月間、バージョンが追加された後の経過がどうなるのかを示しています。60日経過すると削除するパターンでは、3か月以上経過すると保持されるバージョンが0になり容量は最も節約できますが、反面、以前のバージョンに復元することはできなくなります。
従来の500バージョン保持だと、6月時点で最大500バージョンに達しているため、これ以降も継続して500バージョン保持したままです。容量が減ることはありません。その代わり、保持している500バージョン中の任意のバージョンに復元できます。
自動の場合は、6月時点で保持するバージョン数を必要な数に抑えてくれているので103 まで減っています。8月以降、何も編集などされなかった場合も最低17バージョンは保持しているので、容量を抑えつつ、以前のバージョンに戻せる余地を残しています。
ここまでをまとめると次のことが言えます。
バージョン制限 | メリット | デメリット |
---|---|---|
手動: 保持日数の制限 | 容量を最大限節約できる | 編集しない期間が長くなると、以前のバージョンに戻せなくなる (バックアップが全くない状態) |
手動: 保持バージョン数の制限 | 容量はあまり節約されない | 保持しているバージョンからいつでも復元できる (バックアップが機能している) |
自動 | 容量を節約しつつ、バックアップとしても機能する | 保持するバージョン数は少なくなる |
設定単位
テナントレベルでの設定はテナント全体でこれから新規に作成されるドキュメント ライブラリすべてに適用される既定値を指定することになります。
ただし、サイト単位、ライブラリ単位での設定も可能です。ライブラリ単位での個別の設定が最も優先されます。
サイト内に新規にライブラリが作成されるときに、サイトレベルでのバージョン履歴の制御設定があるかどうかが確認され、なければテナントレベルの設定を適用する。あれば、そのサイトの制御を適用するということになります。
なお、サイト単位の設定は PowerShellコマンドを使用する必要があります。
サイトのバージョン履歴の制限を変更する (プレビュー) - SharePoint in Microsoft 365 | Microsoft Learn
OneDrive (Business) に関しても基本的にはテナントレベルの設定を引き継ぐことになりますが、ユーザー単位での設定も可能でこれは PowerShellを利用する必要があります。
PowerShell (プレビュー) を使用して OneDrive のバージョン制限を設定する - SharePoint in Microsoft 365 | Microsoft Learn
SharePoint ドキュメント ライブラリ
ドキュメントライブラリの設定にある「バージョン管理」では、新たに「バージョンの時間制限」という項目が追加されます。
新規に作成するライブラリでは、既定ではテナントレベルの設定が適用されます。スクリーンショットでは「自動」になっています。この項目からライブラリごとにテナントレベルやサイトレベルとは異なる個別の設定ができるわけです。
既存のドキュメントライブラリについては、今回のアップデートの影響は受けず設定はそのままで、勝手に設定が変更されることはありません。また、既存のライブラリのバージョン管理設定を “自動” に変更した場合は、その後に作成されるバージョン以降が自動管理の対象となります。
ちなみに、ファイルのバージョン履歴を確認してみると新たに「有効期限」という列が追加されていることがわかります。各バージョンがいつ頃削除されるかがわかるということですね。
自動でかつマイナーバージョン管理を行う場合は、従来と異なり、保持するマイナーバージョン数は指定できません。これも自動的に管理されることになります。
この状態でバージョン管理はどうなるのかということですが、試すと一定の規則性は見いだせましたが確実ではありません。ただ、時間が経過すると古いバージョンが間引かれていくことはわかります。
保持されるバージョン
最初のバージョン、最新のメジャーバージョン、現在のバージョンの3種類
有効期限が設定されるバージョン
基本的にマイナーバージョンは30日後に削除されます。ただ、試すと一部、60日保持するものもあるようです。また古いめじーバージョンも基本的には公開後、30日経過すると削除されます。
ちなみに、次のスクリーンショットは1か月以上前のバージョン履歴の状態です。
次は7月21日現在の状態です。古いバージョンが間引かれているのがわかりますね。
自動設定によるバージョン履歴の削除のアルゴリズム
自動設定によるバージョン履歴の削除アルゴリズムが公開されています。最大500保持の原則は変わらりませんが、30日以内のバージョンは基本的に制限500個内ではあるが全バージョン保持する方向で、1か月を超えると、徐々に時間単位、日単位、週単位で最初のバージョンという具合に減っていきます。
既存バージョンについて
すでに説明した通り、既存のライブラリは新たなバージョン管理の対象とはならず、また既存のライブラリでも設定を個別に変更した場合は変更後に作成されるバージョンからが新規ロジックによる制御対象になります。
実際に既存のライブラリでバージョン履歴がどうなるのかを試した結果が次の図です。
既存バージョンのトリミング
ここまで確認してきたように、既存バージョンは従来通り残ります。ストレージ容量を節約できるよう新たにトリミングするための PowerShell コマンドが利用できるようになっています。これはサイト単位またはライブラリ単位の設定です。
指定できるオプションは次の通りです。
- 期限切れとする日数を指定します。これにより対象となるバージョンはトリミングジョブをキューに入り非同期にバッチ処理されます。
- 保持するメジャーバージョン数を指定します。これにより対象となる古いメジャーバージョンはトリミングジョブをキューに入り非同期にバッチ処理されます。
- 推定自動トリミング アルゴリズムを使用してバージョンを削除するよう指定します。
他にも進行中のトリミングジョブの状態を取得したり、ジョブを中止するコマンドなども用意されています。詳しくは次のリンク先を確認してください。
サイト、ライブラリ、または OneDrive (プレビュー) の既存のバージョンをトリミングする - SharePoint in Microsoft 365 | Microsoft Learn
バージョンストレージの使用状況レポートの生成
現状を把握し、バージョン履歴の制御計画を立てるために現在のバージョンストレージの利用状況レポートを生成できます。
レポート生成は PowerShellを使ってサイト単位で出力します。出力結果はあらかじめ指定した SharePoint のドキュメント ライブラリにCSVファイルが生成されます。ジョブは数日間にわたって非同期に実行されるため完了までに小規模なサイトやライブラリの場合は24時間以上、大規模な場合は数日かかります。
レポートは徐々に作成されるため生成されるCSVファイルを覗くことで途中経過を確認できますが、ファイル自体を編集していけません。これを行うとジョブが失敗するとのこと。
詳しくは下記のリンク先を確認してください。
サイトのバージョン ストレージ使用状況レポートを生成する (プレビュー) - SharePoint in Microsoft 365 | Microsoft Learn