Windows Serverのサイジング

#初めに

Windows Serverを設計する際、サイジングに頭を悩ませる時間を削減するため、備忘録としてサイジングの指標を記載する。

尚、ここに記載している指標はあくまでも各サイトやこれまでの経験により導き出したもので、いかなる環境でも同じサイジングで動作することを担保するものではなく、最終的な判断は読者に委ねるとともに当方はその責任を一切負わないので悪しからず。

個人的にはAzure、AWS、GCP等のクラウド環境に適当なスペックで構築し、リソースが足らなければ増やせば良いと思うのだが、そうはいかないのがこの世の常。

# 最小要件

Windows Server 2019の最小要件は以下の記載通り。

https://docs.microsoft.com/ja-jp/windows-server/get-started-19/sys-reqs-19

上記URLからスペックだけ抜粋

CPU:1.4 GHz 64 ビット プロセッサ
メモリ:2GB
HDD:32GB

# Active Directory

ユーザ数、ドメイン、フォレストの数など考慮する内容はあるが、基本的にはユーザ数でサイジングすれば良いであろう。

Active DirectoryにはCALが必須である。

障害を考慮してDomain Controllerは2台以上用意しておくのが良い。

尚、Active DirectoryにはWindows NT時代とは違い、DCの役割が同じになったためPDC、BDCという役割はない。

### ADサイジング参考サイト

https://docs.microsoft.com/ja-jp/windows-server/administration/performance-tuning/role/active-directory-server/capacity-planning-for-active-directory-domain-services

https://docs.microsoft.com/en-us/previous-versions/cc268208(v=technet.10)?redirectedfrom=MSDN

http://social.technet.microsoft.com/wiki/contents/articles/14355.capacity-planning-for-active-directory-domain-services.aspx
(Microsoftのフィールドエンジニア、Ken Brumfield氏がADのサイジングについて詳細を記録したサイト)

2つ目と3つ目のサイトの情報は5年以上前に書かれたと思うが、ADなのでそこまで違いはないと思う。

##### CPU
最初のサイトにはCPUは1000ユーザあたり1コアとあるが、2つ目のサイトでは500ユーザあたり1コア(プロセッサ)あれば良さそうである。

##### メモリ

メモリについてはWindows OSの最低限のメモリ積んどきゃ良いじゃんなる記述が見られる。

##### ハードディスク容量

1ユーザあたり、40KB～60KB見ておく必要がある。

### ADサーバ参考スペック

上記のサイト等を参考に、一応これまで実績のあるスペックを記載しておく。

|Users|CPU|RAM|DISK|
|---|---|---|---|
|~100|1core~|2GB~|100GB~|
|~500|2core~|4GB~|100GB~|
|~1000|4core~|8GB~|200GB~|

# ファイルサーバ

検討事項としては
・ユーザー数
・データ量
・ファイル、ディレクトリ数
とくにデータ量については企業によりまちまちなため一概には言えない。

一番ボトルネックになるのはI/Oであるため、SSDが望ましいものの大容量となるとコストがかなり上がるため、そこは別途検討する必要がある。

SSDがダメならせめてディスクの回転数が15Krpmのものが良いが、ここもコストとの兼ね合いで容量の大きなものは価格も上がるため、10K rpmぐらいに落ち着くことが多い。

CALは必要だが、AD環境で利用する場合がほとんどと思われる。その場合、CALを2重で購入する必要はない。

### FSサイジング参考サイト

https://ascii.jp/elem/000/000/577/577239/

http://nuboteknologio.blogspot.com/2017/08/windows-2016.html

https://social.technet.microsoft.com/Forums/ja-JP/676f812f-34a6-4369-95bc-f74a3739752f/12501124491245212523124691254012496123921237512390123981251312?forum=windowsserver2008ja

ディスク容量やI/O速度に言及しているサイトはいくつか確認できたが、CPU、メモリといったところはあまり参考になるサイトはなかったため、ベンチマークしているサイトのリンクも貼り付けておく。

https://www.lenovojp.com/business/solution/download/001/pdf/server_fileserver.pdf

https://jp.fujitsu.com/platform/server/primergy/technical/construct/pdf/fileserver-replace.pdf

##### CPU
どのサイトにも明確な記載はないもののそれほどは要らないといえよう。
数百ユーザなら1～2コア程度で十分であろう。

##### メモリ

メモリについてはIO性能の次に重要となるようだ。

参考になる資料が見つけられないため、BuffaloやIO DataのWindows Storage Serverを搭載したNASのスペックを確認したところ、4~8GBがほとんどで、特に容量の大きなものであれば8GB積んでいるケースが多いようだ。

##### ハードディスク容量

ディスクのサイズについてはデータ量から決定し、費用と勘案して以下の優先順位で選ぼう。

SSD（SAS型）＞HDD（SAS型）＞HDD（ニアラインSAS）＞HDD（SATA型）

### FSサーバ参考スペック

一応ユーザー数に応じたスペックを記載する。

|Users|CPU|RAM|DISK|
|---|---|---|---|
|~100|1~2Core|2GB~4GB|as you need|
|~500|2core~4core|4GB~8GB|as you need|
|~1000|4core~|8GB~|as you need|

小規模であれば、メモリは2GBでも動くと思うが、空きメモリはキャッシュとして使用されるため大き目にしておいて良いと思う。
ディスクへのページアウトが発生するようなら、メモリを増やす必要が出てくる。

# Windows Server Update Services

Windows Server Update Services(WSUS)についてはユーザ数、およびディスク使用量を考慮してサイジングする必要がある。

WSUSにもCALは必須である。

また、WSUSとActive Directory(Domain Controller)を同一筐体にインストールすることはサポートされるが、意図しないトラブルが発生する可能性があるため非推奨となっている。
https://docs.microsoft.com/ja-jp/archive/blogs/jpwsus/wsus-15

実際、ADが無い環境でWSUSを運用するのは極めて難しいのだが、同居非推奨ってあり得ないでしょ。
こんなんばっかだからWindows OSは…てなこと言うと西和彦氏に怒られるのかな。

### WSUSサイジング参考サイト

マイクロソフトのサイトにシステム要件の記載がございます。

https://docs.microsoft.com/ja-jp/windows-server/administration/windows-server-update-services/plan/plan-your-wsus-deployment

https://docs.microsoft.com/ja-jp/security-updates/windowsupdateservices/21743245

https://docs.microsoft.com/ja-jp/security-updates/windowsupdateservices/18128267

https://docs.microsoft.com/ja-jp/security-updates/windowsupdateservices/18128207?redirectedfrom=MSDN

また、マイクロソフトのサイトとは別に以下のサイトも参考にさせてもらいました。

https://sys-guard.com/post-17279/

https://milestone-of-se.nesuke.com/sv-basic/windows-basic/wsus-design-guide/

##### CPU
1.4 GHz の x64 プロセッサ (2 GHz 以上推奨)

2つ目の英語のサイトには1GHz か 1.5GHz以上との記載がある。

3つ目、4つ目のサイトにはクライアント数毎のサイジング情報が載っているが、概ね2GHz以上のCPUにしておけば良いであろう。
※英語のサイトと日本語のサイトでクライアント数毎のサイジングが若干違うのが気になる人は3GHz以上にしておけば問題ない。

クライアント数が少ない場合はそもそもWSUSが本当に必要か否かも検討すべきであろう。

##### メモリ

WSUS用に2GBあれば、という記載内容になっているが、これはきっちりメンテナンス(クリーンアップやDBの再構築)している環境での前提条件のようである。

実際クライアント数が多いと、以下のURLの例のように、WSUS Poolのメモリ割り当て量ではさばききれず、HTTPステータス「503」が頻発するであろう。

https://social.technet.microsoft.com/Forums/ie/ja-JP/a7bea215-c980-474c-af66-409feee84067/wsusws2012r2vm?forum=wsusja

クライアント数が数百としても、WSUS用に8GB程度のメモリが必要であろう。

##### ハードディスク容量

参考にした1番目のサイトには40GB以上を推奨とあるが、これもメモリ同様メンテナンスをしっかりできていない環境であれば、もっともっと余裕を見ておく必要がある。

また、ハードディスク容量については、クライアントOSの種類の数にも依存することになる。

マイクロソフト以外のサイトに記載があるが、700GB~800GB程度あれば良しとしているようだ。

実際にはきりよくOS領域も含め1TB程度あれば充分であろう。

### WSUSサーバ参考スペック

上記のサイト等を参考に、一応これまで実績のあるスペックを記載しておく。

|Clients|CPU|RAM|DISK|
|---|---|---|---|
|~500|2core~|4GB~|700GB~|
|~1000|2core~|8GB~|1TB|
|1000~|4core~|16GB~|1TB|