uechi.io/source/_posts/2021/server-2020.md

72 lines
6.2 KiB
Markdown
Raw Normal View History

2021-02-14 15:47:14 +09:00
---
title: 新しい自宅サーバーの構成
date: 2021-02-13T00:00:00
---
10 年ぶりにサーバーを更新しました。初めての AMD、初めての DDR4、初めての NVM Express です。
2021-02-26 00:02:08 +09:00
# 用途
2021-02-14 15:47:14 +09:00
2021-10-11 12:24:57 +09:00
- セルフホスト (Docker)
2021-02-14 15:47:14 +09:00
- メールサーバー
2021-02-28 12:40:24 +09:00
- Nextcloud(ファイル、カレンダー、連絡先等)
2021-02-26 00:02:08 +09:00
- プライベート Docker レジストリ
2021-10-11 12:24:57 +09:00
- VPN 等
2021-02-14 15:47:14 +09:00
- 計算実験
2021-10-11 12:24:57 +09:00
- Docker Swarm マスターノード
2021-02-26 00:02:08 +09:00
- VS Code Remote SSH のホストマシン
2021-02-14 15:47:14 +09:00
2021-02-26 00:02:08 +09:00
# スペック
2021-02-28 12:40:24 +09:00
重いタスクを並列してやらせたいので最優先は CPU とメモリです。メモリはデュアルチャンネルにしたいので [DDR4-3200 32GBx2](https://shop.tsukumo.co.jp/goods/4582353591719/) を、CPU は昨今のライブラリのマルチコア対応を勘案して [Ryzen 9 3950X](https://www.amd.com/en/products/cpu/amd-ryzen-9-3950x) を選びました。CPU クーラーは Noctua の [NH-D15 Black](https://noctua.at/en/nh-d15) です。
2021-02-14 15:47:14 +09:00
2021-02-25 22:36:19 +09:00
> 結果から言うとメモリはもっと必要でした。巨大な Pandas データフレームを並列処理なんかするとサクッと消えてしまいます。予算に余裕があるなら 128GB ほど用意したほうが良いかもしれません。
2021-02-14 15:47:14 +09:00
2021-10-11 12:24:57 +09:00
> 追記: メモリ異常を起因とするシステム誤動作により、`/sbin` 以下がゼロ上書きされカーネルが起動しなくなるなど様々な厄災に襲われました。後日 Hynix 製のチップを搭載した V-color 社の ECC 付き U-DIMM に交換してからは、サーバーが安定動作するようになり現在に至ります。やはり 365 日稼働し続けるサーバーには最初からケチらずに ECC 付きメモリを選んでおいた方が賢明です。
2021-02-25 22:36:19 +09:00
GPU は古いサーバーに突っ込んでいた NVIDIA GeForce GTX TITAN X (Maxwell)を流用しました。グラフィックメモリが 12GB ちょっとですが、最大ワークロード時でも 5GB は残るので今のところ十分です。必要になったタイミングで増やします。
2021-02-14 15:47:14 +09:00
2021-02-26 00:02:08 +09:00
記憶装置は WD HDD 3TB 2 台と Samsung 970 EVO Plus 500GB M.2 PCIe、そして古いサーバーから引っこ抜いた Samsung 870 EVO Plus 500GB SSD です。NVMe メモリは OS 用、SSD/HDD はデータとバックアップ用にします。
2021-02-14 15:47:14 +09:00
2021-02-28 12:40:24 +09:00
マザーボードは、X570 と比較して実装されているコンデンサーやパーツがサーバー向きだと感じた[ASRock B550 Taichi](https://www.asrock.com/mb/AMD/B550%20Taichi/) にしました。
2021-02-14 15:47:14 +09:00
2021-02-28 12:40:24 +09:00
電源は今後 GPU を追加することを考えて [Seasonic PRIME TX 850](https://seasonic.com/prime-tx) を選びました。実際にサーバーを稼働させながら使用電力を計測したところ、アイドル時に 180W 前後、フル稼働時でも 350W を超えない程度でした。今後 UPS を買う場合はその付近+バッファを考慮したグレードを選ぶことにします。
2021-02-14 15:47:14 +09:00
2021-02-26 00:02:08 +09:00
ケースは Fractal Design の [Meshify 2](https://www.fractal-design.com/products/cases/meshify/meshify-2/Black/) です。
2021-02-14 15:47:14 +09:00
2021-02-26 00:02:08 +09:00
OS は長年付き合ってきた Ubuntu と袂を分かち、[Arch Linux](https://archlinux.org/) を選びました。ミニマルなところが好きです。本当に何も用意してくれません。セットアップウィザードとかないです。`which`すらインストールしなければ使えません。
2021-02-14 15:47:14 +09:00
Arch Linux のセットアップは[個別に記事](https://uechi.io/blog/installing-arch-linux/)を書いたので読んでください。入力したコマンドを全て記録しました。
2021-02-26 00:02:08 +09:00
2021-11-09 17:14:39 +09:00
また、AUR (Arch User Repository)にパッケージを公開したい人向けに、Docker 自動ビルド・テストツールを[GitHub で公開](https://github.com/uetchy/archpkgs)しました。そちらもご覧ください。
2021-02-26 00:02:08 +09:00
# パーツ選定時のポイント
2021-06-06 21:56:40 +09:00
- [PCPartPicker](https://jp.pcpartpicker.com/)でパーツのコスト計算をする
2021-02-26 00:02:08 +09:00
- [Bottleneck Calculator](https://pc-builds.com/calculator/)で CPU と GPU の組み合わせを選び、そのうちどちらが性能のボトルネックになるか調べる
- [UserBenchmark](https://www.userbenchmark.com/)でユーザーが投稿したベンチマーク結果を眺める
2021-06-06 21:56:40 +09:00
- パーツ購入前に [Linux Hardware Database](https://linux-hardware.org/) を見て、インストールする予定の Linux ディストリと相性が良いかチェックする
2021-02-26 00:02:08 +09:00
- CPU クーラーは大口径の方が静か
2021-02-28 12:40:24 +09:00
- メモリはデュアルチャンネルによる高速化を目指し 2 枚構成にする
2021-02-26 00:02:08 +09:00
- PSU は Seasonic が評判良い
- 東芝 D01 が HGST の系譜
2021-06-06 21:56:40 +09:00
- [B550](https://www.amd.com/en/chipsets/b550) は長期運用に向いている(らしい)
2021-02-26 00:02:08 +09:00
- B520 は廉価版
2021-02-28 12:40:24 +09:00
- TSUKUMO eX. の自作 PC コーナーのスタッフはガチ勢なので信頼できる
2021-06-06 21:56:40 +09:00
- 不明な部分があれば根掘り葉掘り聞く
2021-02-26 00:02:08 +09:00
# 組立ての勘所
2021-10-11 12:24:57 +09:00
- 半年間はすべての箱・書類を取っておく
2021-02-28 12:40:24 +09:00
- 筐体は無視してまずマザボ、CPU、クーラー、(オンボードグラフィックが無い CPU なら)グラボ、そして電源を繋いで通電・動作テストをする
2021-10-11 12:24:57 +09:00
- [MemTest86](https://www.memtest86.com/)でメモリの動作テストを最後までやる(エラーが出たら交換依頼)
2021-02-26 00:02:08 +09:00
- USB ブートで OS の起動確認
- Ethernet が死んでいる場合は USB-Ethernet アダプターでまずネットを確保する
2021-06-06 21:56:40 +09:00
- ほとんどの場合 Linux カーネルのバージョンを上げると(デバイスドライバーも新しくなり)直る
- Arch Linux の場合: `linux-lts`が駄目なら`linux`に切り替えて試す
2021-02-26 00:02:08 +09:00
- Ubuntu の場合: [kernel.ubuntu.com](https://kernel.ubuntu.com/~kernel-ppa/mainline/?C=N;O=D) から探してアップデートする([https://itsfoss.com/upgrade-linux-kernel-ubuntu/](https://itsfoss.com/upgrade-linux-kernel-ubuntu/))
2021-06-06 21:56:40 +09:00
- 駄目ならマザボまたはアダプターメーカーからアップデートを探す
2021-02-26 00:02:08 +09:00
- 安い筐体のネジは柔いことがあるため、強く押し込みながら少しずつ回す
- 山が潰れてきたらゴムシートを挟む
2021-06-06 21:56:40 +09:00
- すべて動いたら、[Probe を送信](https://linux-hardware.org/index.php?view=howto)してデータベースに貢献