はじめに
この記事では、私が約6年半開発を続けたファイルサーバ開発の歴史について紹介していこうと思います。この記事は第一号となるので文章がおかしい部分などその他もろもろあるかもしれませんが、ご理解ください。
また、この記事に関しましては一部省略し、以下の項目「ファイルサーバ第二号(業務用サーバ)からの説明につきましては、研究内容が多いため大幅に省略しています。
1.ファイルサーバの開発に着手したきっかけ
当初は、単純に使っていたPCのストレージ容量が圧迫していたため、ストレージの空き容量を増やすためにファイルサーバの開発設計に着手しました。
2.ファイルサーバ第一号(自作PC)
このサーバ第一号サーバでは、シンプルにOSを動かすためのHDDとデータを保存するためのHDDでraid構成を使用せず使用していました。
この時では、sambaサーバとして稼働させ、また、wifiネットワークのローカル上で稼働させていました。
3.ファイルサーバ第二号バージョン2(業務用サーバ)
バージョン1に関しましては、サーバ構成システム構成が複雑なため、改良型バージョン2の内容を記載させていただきます。
第二号機サーバから業務用サーバに切り替えサーバの物理故障によりデータ破損を防ぐための構成としてRAID1+ホットスワップのシステム構成として運用を始めました。また、サーバ台数も2台でシステム構築を行いました。
サーバの構成について
・一号サーバ(メインサーバ)※1
・二号サーバ(データベースサーバ)※2
※1ホットスワップ機能無効、予算の関係上無効となっています。
※2ホットスワップ機能有効
3.1. セキュリティの強化
第二号機サーバからwifiローカルネットワーク上の稼働から新たに自作サーバ用オフラインローカルネットワークシステムをL2switchで構築し、クライアント側からの攻撃以外を物理的に防止するネットワーク環境を構築しました。
3.1.1. (Vlanを使ったサーバ管理システム)ローカルネットワークとファイルサーバディレクトリアクセス専用ローカルネットワークに分離
L2switchでVlanを2つ構築し、クライアント側の万が一の乗っ取りによる、起こりえるリスクマネジメントをした結果、サーバ管理システムローカルネットワークと分離したほうが良いと判断し、2つのVlanを構築しました。
3.2. サーバの安定性、安全性、内部システム構成の単純化
第二号機ファイルサーバは、安定稼働・安全性・システムの単純化を重視し開発を行っています。
まず第一に、サーバを安定的に稼働させることが重要という考えから内部システムの構成の開発を行いました。
開発において重要視した点が以下の項目です。
・安定した運用が可能なこと
・安全で確実なデータ送受信できること
・停電時やHDD故障時でも早急な修復を行い、完全な復旧作業が行えること
・サーバの稼働状況を確認できること
上記の課題から「安心性+安定性=安定性」と考え、リスクマネジメントとしてシステムの単純化や自動修復システムの構築設定が必要だと判断しました。
安定した稼働
この課題に関しては、Linux OS のUbuntu-Serverを使用することにより現在も安定した稼働を継続できています。
ファイル通信プロトコルについては、SFTPを採用しFileZillaでのデータ管理を行うことにより、データをサーバに確実に転送することが可能になり、また、リスクマネジメントとして万が一、データの転送に失敗した時もログと通知でお知らせしてくれる機能がある点からこの組み合わせを使用しています。
災害時停電やHDD故障時における復元及び修復作業
災害時の停電については、予算の関係上UPSを設置することが不可能なため停電時でも安定的に起動可能にするため、Ubuntu-Serverを使用し、インストールするシステムを最小限に抑え、システムの破損を最小限に抑える目的でUbuntuを選択しました。
またHDD故障時の修復については、サーバ付属システムである、ホットスワップ機能をデータベースサーバに搭載することにより、HDD故障時の自動修復システムが有効となり、より安定した稼働が実現できるようになりました。
サーバシステムの見える化
サーバの稼働状況の把握や安定性を確認するため、Grafanaを活用した監視システムの構築を行いました。
重点監視項目は以下の項目に絞りました。
・サーバ温度
・ストレージ容量
・service稼働状況
・CPU状況
・メモリ状況
Grafanaシステムの導入により、長期的なサーバ稼働状況の確認が可能になり、安定性の研究評価が行えるようになった。また、上記の項目については、家庭内共有サーバとしても活用しているため、家族が見ても状況を把握できるようにする目的で上記項目に絞りました。
漏電によるブレーカダウン時のサーバダウン(実体験)
深夜、天候雨の時に突然家庭内の外部コンセントが漏電を起こし全ブレーカーがダウンした。この時サーバもダウンし、サーバに大きな負荷をかけてしまう事態が発生しました。
早急に電気システムの復旧作業を行い漏電箇所以外のコンセントや家電システムは復旧させることができた、結果としてサーバ自体のシステム損傷はなく完全に復旧することができました。
まとめ
ここまで読んでくださりありがとうございました。この記事は初めて書いた記事なので理解しにくい点など様々な問題点があったかと思います、そういった意見を今後の記事に生かしていければと考えておりますので、ぜひ皆さんの貴重な意見を教えていただけますと幸いでございます。