ProxmoxでVMのネットワークブートを試す（ついでにリンククローンの動作をみる）

Proxmoxでは共有ストレージから直接VMを起動できます。図にすると以下のような感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/d78e5ae3-b572-1ca7-b1f5-19572e736ead.png)

# メリット
:::note info
- **ディスク単位でOSのイメージ管理**ができ、可用性がたかまる
- ネットブート元の**ファイルサーバーの恩恵をくみあわせられる**
　→ 重複排除・ReFS・バックアップなど
- **かならずしもクラスターを作らなくていい**
　→ 障害時にほかの筐体から縮退運転でき、管理がシンプルになる
- 3Tier構成とハイパーコンバージド、あとからどっちにも転用できる
- バックアップ&リストアとちがい、IPのつけかえだけですむので**ダウンタイムが少ない**
:::

# デメリット
:::note warn
- 1GbEだと遅いのでネットワークやワークロードの対処が必要
- **ネットワークが切れたら起動できない**
　→ 筐体内の仮想ネットワーク内であれば故障はなく、速度も10GbEなのでこれらは低減される
　→ つまり3TierではなくHCIな使い方ならデメリットが減る
- HCIにする場合、**筐体間のレプリケーションの設計や運用がむずかしい**
:::

# ファイルサーバーの作成

Proxmoxで8TBのディスクを追加します。物理SSDは256GBですがシンプロビジョンで作成できます。
ただしくは8192GBですね(笑)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/36de3489-aeca-b6d7-8455-c448780215ee.png)
NTFSでDドライブを作成。ReFSにしてもよかったと思います。また検証します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/cc1a6df2-7b13-da76-51c9-3a759d37380d.png)

# フォルダを共有

今回QCOW2というフォルダを作り、共有します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/944d3de1-fb63-d9bf-3495-4a1c4ca17651.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/0445c2d8-240f-b92f-0727-c7e392508cd6.png)

# Proxmoxにストレージ追加

SMB/CIFSストレージとして追加します。用途は「ディスクイメージ」のみにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/c5458259-d779-332a-206d-a815002cdaf4.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/b6e7a4d4-2c87-ec98-0180-f6844da3ff5c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/aa11f3e5-5125-5c03-ed86-ccae812daf70.png)

# VMを作成

テンプレートから作成します。Windows ServerのテンプレートがLocal-ZFS上にあるため完全クローンにします。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/9c8bea78-ccfe-b284-c649-6635d5fe4220.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/013c7515-0839-a73f-9f46-d03a7aae616d.png)

共有フォルダ上にVMを作ったら再テンプレート化し、そこからリンククローンします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/e4ec1ac3-9c41-5c90-26ab-0d4136e7bf9f.png)

base-という名前でWindows11のOSテンプレートが作られました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/c2cf872b-f8dd-1424-726d-f7d40f2a0a41.png)

テンプレートからリンククローンで作成したVMは、差分なのでディスク消費はありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/a0937453-081c-ef00-c5da-9d58a045807c.png)

# VMを起動、サイズ確認

Win11を起動し、コンピュータ名を変更します。シャットダウンすると差分が767MB増えていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/0dacfbf5-2aed-2184-3274-384de6af3040.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/ae778420-63cb-4642-3e92-c88ad04ca728.png)
QCOW2フォルダを見ると、16.7GBの使用でした。圧縮が効いていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/dc5dc4e1-20d7-7c18-b473-c9ac435ff66b.png)

リンククローンのフォルダは、圧縮されていませんでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/78ac1fb1-9961-ac05-a953-d9961e8d536c.png)

見た目はわかりませんが、このCドライブはファイルサーバー上から起動しているということになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/0527332c-e04c-07ec-40ef-6ef795a8422d.png)

# 障害テスト

VMのディスクイメージを置いている**ファイルサーバーがダウンしたと想定**します。IPアドレスを変更します。

Proxmoxストレージを削除し、新しいIPで再度設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/eb60cf90-05f0-0f3f-c1b6-b7c02b0fce5a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/c9a0ad27-bf1b-5e7c-37bf-8622e73e71e8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/ccb7bd9f-06f6-4375-fc98-b265af04ecfb.png)

VMを起動すると、エラーになりました。ストレージIDが同じでないといけないようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790864/34777550-55bf-7f28-bea3-248923a36b9c.png)
同じWS-VMShareの名前で再作成すると、起動しました。

:::note info
- **ストレージIDを同じにすること**
- **共有名を同じにすること**
:::
この二つを満たしていれば大丈夫のようです。

# まとめ & メモ

- Proxmoxのクラスターはいろいろ問題があり、たとえばdatacenter.cfgといったコンフィグが常に同期され、間違えるとすべてのサーバーが復旧不能になります。
- **無停止運用が必須でなければ**、ファイルサーバーを共有してそこから復旧できるような環境にするのが、運用コストとのバランスが良いと思います。
- ProxmoxローカルZFSでの重複排除はメモリを大量消費します。ネットワークブートであれば**より高機能なWindows ServerのReFSや重複排除**を使えるのもメリットです。

# 参考にさせていただいたサイト
**ファイルやフォルダの【サイズ】と【ディスク上のサイズ】が違うのはなぜ？**
https://www.partitionwizard.jp/partitionmanager/size-vs-size-on-disk.html