【初心者】Windows Serverデータ重複除去をつかってProxmoxの定期バックアップ先にしてみる


# 構成
つぎのような順序でやってみます。構成は検討の余地がたくさんあると思います。

:::note info
1.　WindowsファイルサーバのEドライブをバックアップ専用に追加
2.　Eドライブに重複除去を設定し、ネットワーク共有
3.　ProxmoxのVMの定期バックアップ先に指定
:::

# 重複除去のインストール

```.ps1
Install-WindowsFeature FS-Data-Deduplication
Get-WindowsFeature *Dedup*
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/5fb40817-da20-e44e-a07b-42fe7bfd04c1.png)

# バックアップ用のディスクを追加

重複除去専用のドライブＥ：を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/402317a0-cac2-6c91-a634-1cfb0db9d259.png)

ファイルシステムはReFSにしてみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/36fbd51f-b885-18e0-6805-50e25bb47754.png)



Windows Server 2019からこのような説明がありました。

:::note warn
ReFS ファイルシステムの重複除去と圧縮を使用して、同じボリュームに最大 10 倍のデータを格納します。 (Windows Admin Center で、わずか 1 クリックで有効にするだけです)。オプションで圧縮もできる可変サイズのチャンク ストアを使用すると最大限の削減率になり、マルチスレッドの後処理アーキテクチャでパフォーマンスへの影響を最小限に抑えることができます。 最大 64 TB のボリュームをサポートし、各ファイルの最初の 4 TB を重複除去します。
:::
https://learn.microsoft.com/ja-jp/windows-server/storage/data-deduplication/whats-new#windows-server-2019


# 重複除去の設定

サーバーマネージャから設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/7d035a71-8e95-6add-a392-afc1a09e3857.png)

「仮想化バックアップサーバ」を選択し、経過日数は0とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/effd4c71-aba1-dd42-7a6a-accc180f4445.png)

スケジュールの設定もできるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/8a12c209-a2d3-a64b-f508-d703a2992cc7.png)


# ダミーファイルの作成

10GBのファイルを作成し、4つコピーします。（合計50GB）
```.ps1
Fsutil file createnew "E:\DummyFile01" 10737418240
Read-Host "続けるには Enter キーを押してください..."
2..5 | foreach{
    Copy-Item -Path "E:\DummyFile01" -Destination "E:\DummyFile0$_"
}
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/789fed56-958d-52be-1e82-fc91bb8dea5c.png)

エクスプローラーでは109GBの利用という表示でした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/10fb7ab5-557b-127d-037c-95a8a6f69500.png)


# 重複除去の適用
PowerShellで即時おこないます。
```.ps1
Start-DedupJob E: -Type Optimization
Get-DedupJob
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/c2c56d2a-6108-b5c7-f13a-9b1814f2f2a5.png)

サーバーマネージャでも確認することができます。右上のボタンで表示を更新できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/029ab9bd-cab9-394d-fe5e-05a4de3d1c59.png)


CPU負荷はまったくありませんでした。ファイルの数や種類によって高くなるのかもしれません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/409cb236-75f0-9722-44fb-f0cafe73812f.png)

Get-DedupJobで戻り値がなければ、完了しているようです。重複除去率は44%で、50GBの節約という表示になりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/a092a8c7-f7c3-2f4d-3aae-29f1b6800d49.png)


エクスプローラーでも効果が確認できます。109GB　→　62GBになっていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/da4d17c1-398d-c38f-3b72-98951de84669.png)

# PVEのバックアップ先に指定

共有設定をし、VMのバックアップ先に指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/301df1f1-3c2b-2c00-59cf-8470b5ddec15.png)


用途は「VZDumpバックアップ」のみにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/15bdd001-f170-f90c-f40a-2ceaf2169c41.png)

# ファイルサーバ自身のディスクを除外

ファイルサーバは以下のような構成になっていますが、今回ファイルサーバ自身もバックアップするため、Eドライブを除外します。

:::note warn
- C: Windowsサーバー OSディスク　→　バックアップにふくめる
- D: PVEのVMストレージ　→　バックアップにふくめる
- E: PVEのバックアップストレージ　→　**バックアップにふくめない**
:::
「バックアップ」のチェックを外し、"backup=0" のステータスにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/7cb3d6db-c8fe-f4c3-e240-8115936f2002.png)

# バックアップスケジュールの設定

データセンターメニューから新規作成します。5分ごとにファイルサーバのEドライブに差分バックアップという設定にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/abda8a96-3608-a8e7-0671-cfaf7c2246b8.png)


# バックアップ
初回でフルバックアップのためか、かなり時間がかかっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/eed8703c-68e5-2755-f0db-c526d26f4a1c.png)


圧縮しているからか、バックアップ動作中はCPU・ストレージIOともに高くなりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/9eb04cbe-503f-f2a6-f283-cdca42675465.png)

# まとめ & メモ
- 重複除去が有効になったディスクへのVMバックアップは、ワークロードによりますが、一般的には以下のような使い方になるのではないでしょうか。

:::note info
- VM差分バックアップは数時間～1日おき
- 重複除去スケジュールは1日～1週間おき（夜中）
:::






# 参考にさせていただいたサイト

**Windows Server 2022 重複排除有効化手順**
https://tech.willserver.asia/2022/12/09/win-duplication/

**Powershellでループを書かずに指定回数処理を繰り返す**
https://mk-55.hatenablog.com/entry/2016/12/17/115632