若干他人のふんどしで相撲をとった感じの内容なのですが、世の中にお困りの方も多いと思うので、アイデアとして共有しておこうと思います。
(セットアップしたのは私ではないという意味で。運用・保守はしています。)
ちなみにここで書かれている方法を実践される場合は自己責任で。
ファイルサーバーの容量が足らなくなる問題
今いる会社では、開発の資料や、容量が大きくなりがちなデザインファイル、アプリのバイナリー、もっというと容量が大きくてVMに乗り切らない(社内にVMサーバー用のワークステーション機がある)ものは、NFSで別のファイルサーバーに逃がしています。
数年前は合計4TBで足りてたのに、年々容量不足になっていっています。
ファイルサーバーをセットアップ
外付けHDDでも認識すれば、RAIDは組めます。
今の会社にはちゃんとしたサーバールーム的なものがないので、ラックマウント型の装置を起きづらい。
どこで割り切るかですが、ファイルサーバーをどうするかは以下になるのかなと思います。
- 高価で爆音のディスクアレイ装置を設置して装置自体の信頼性を高めるか。
- 多少のネットワークトラフィックと、従量課金してクラウド化してファイル保全の安全性を高めるか
- 専門業者に依頼でファイルサーバーを設置するか
- ケチって手間をかけて自前で構築するか
今の御時世にはあってない考えかもしれないですね。
今の会社の場合、本当に重要なファイルは別の場所でちゃんと管理されていたりするみたいなんですが、容量を大量に消費する開発ファイルは、自前で作ってしまってます。サーバーやっているっていうプライドみたいなものもあるのかもしれませんが。
ちなみに以下の構成は少し変えればご自宅でもできると思います。
ハードウェア構成
- 本体
- 普通のPCにLinux(CentOS)をインストールしたもの。
- できればUSB3に対応した機材がいい。
- ディスクアレイ
- その他パーツ
- 裸族のスカイタワー 10Bay USB3.2 Gen2 IS (CRST1035U32CIS)対応用
- ORICO PCI-E拡張カード USB3.2 Gen2(20Gbps) Type-C インターフェースカード 増設PCIeボード PCI-E x4(3.0) PCI-E x8 PCI-E x16対応 SATA 15PIN電源 ASM3242搭載 Windows 8/10 / Linuxに対応 PE20-1C-BK
- UGREEN Type C ケーブル USB 3.1 Gen1 PD対応 最大60W/3A 急速充電 4K 60HZビデオ伝送 高耐久ナイロン編み 5Gbps Macbook Pro、Galaxy S9 S9 Plus、Huawei P20 P20 Pro、Xperia XZ、 等対応 2M
- HDD(NAS用でOK。裸族は1スロットあたり18TBまで認識するらしいのでコスパのいいものを選んで)
- 裸族のスカイタワー 10Bay USB3.2 Gen2 IS (CRST1035U32CIS)対応用
お断り
- 本体によっては、認識しないことがあるかと思います。最近のものであれば大丈夫でしょう。
- ケーブルがUSB3 Gen2に対応していないので、対応したものを探すといいでしょう。
- Linux OSによってはUSB3 Gen2に対応してない場合があります。Kernelの問題なんだとか。CentOS 7を使ったのですが微妙だったかも。Ubuntu 20ぐらいならよかったかも。
- RAID1で構成します。mdを使いますので、ディスク障害が起こったときは自力でリカバリーする必要があります。
構成案(追加)
スカイタワーを2台用意して、各ディスク同士をRAID1で構成すれば、ハードウェア障害を低減できるかも。
一応、スーパーブロックにどのディスク同士でRAIDを組んでいたかの情報が記録されているらしく、Linux本体を変えても、ファイルを復旧できるみたいです。
ファイルサーバーの運用は難しい
私はサーバー系ですが、プログラマなので、社内サーバーの管理は厳密には仕事ではないと思っています。
ですが、扱える人が少ないのと歴史的経緯で見てしまっているところがあります。
みんなや同じ職種の人に言ってもあまり理解してもらえないのですが、資源は有限、足らなくなったら開発する必要がありますし、資源を維持するコストもかかると私は考えています。
なので、
- 無駄にバックアップなどの大量のファイルを作っているのであれば、定期的に整理する。
- 大きなファイルを扱うときは、別途ストレージを用意する。
- 終了案件は、アーカイブ用のディスクに保存する。
などしてほしいところです。
まぁ、クラウド化もあまりしていないし、拠点間バックアップもしていない(バックアップ先の拠点がない)、専門部隊が存在せず開発部プログラマの仕事になっているということで、わたしもそれぐらいにしか考えていませんが。
クラウド化にしていないのは、単純にファイル転送速度の問題もあったりするので、ローカルエリア内においておきたいというのもあります。
以上。