SPARKCREATIVE Tech Blog

https://www.spark-creative.jp/

【クラウド時代にオンプレミスなファイルサーバーを構築する①】Ubuntu上にSambaとWebminで構築編

初めまして、情報システム部エンジニアの伊良波です。
今回初めてブログを書くことになりました。

今回の内容はファイルサーバー構築についてです。
スパーククリエイティブ社内ではファイルサーバーが使われています。
とはいえデータの保存は基本的にクラウドにしていますので、ファイルサーバーはあまり使われていないのが実情です。

そんな状況のファイルサーバーですが、諸事情により再構築をすることになりましたので、せっかくなので再構築についての記事を書きます。

​再構築の背景

そもそもどうしてファイルサーバーについての記事を執筆するのかを説明するところから始めます。
冒頭でも触れましたが、弊社ではデータを主にクラウドに保存していますが一部の業務ではオンプレミスなファイルサーバーへ保存しています。
主にクラウドストレージを使う前から走っていた業務で利用されています。すべてのデータをクラウドストレージへ移行したいところではありますが、タイミングや部門との調整なども含めるとなかなか実行に踏み切れない状況にあります。こういった古い業務との兼ね合いはどこの組織でも共通の問題ではないでしょうか。
とはいえコストや効率の観点から見ると、クラウドストレージとオンプレミスなファイルサーバーを同時に運用するのは必ずしも得策であるとは言えません。
弊社でもその認識はあり、ゆくゆくは完全にクラウドへシフトしてファイルサーバーは廃止する予定です。
そういった問題を認識しつつもなんだかんだとファイルサーバーを運用しているうちに年月も経ちいろいろと綻びが見え始めています。

具体的には、

  • 慢性的にストレージ容量が不足している
  • 稼働させているコンピューターのスペックが低くてレスポンスがいまいち
  • Windows上で直に構築しているためメンテナンスがしづらい
  • 他の社内サービスも同居しているのでさらにメンテナンスがしづらい

といった感じです。

ストレージの問題は単純に増設をするなどすれば解決するので現状の運用でも対応は可能です。
問題はそれ以外のメンテナンス性の方で、現在の状況のままでは何かあった際にいろいろと大変な事態になるので再構築することにしました。

構築の方針

背景で触れたとおりゆくゆくは廃止にする計画なので、構築や運用はシンプルにしてコストが最小限になることを優先する必要があります。

まずは大前提として、ファイルサーバーのみを稼働させるコンピューターとして構築します。
次に構築するOSですが、現状はWindowsですがLinuxを使い慣れているということもあり、Ubuntu 20.04上にSamba環境を構築することにしました。
何かあった際にターミナルさえあればどうにかなるのはメリットですからね。

とはいえ通常の運用や監視をターミナルから行うのも面倒なので、基本的な運用はWebminを用いてブラウザーから行うことにしました。

構築の手順

OSはUbuntu-Server 20.04を使用します。
Ubuntuは下記のURLからダウンロードお願いします。
jp.ubuntu.com

Sambaをインストール

最初にパッケージ一覧を更新します。

$ sudo apt update
$ sudo apt upgrade

Sambaをインストールします。

$ sudo apt install samba -y

Webminインストール

パッケージマネージャーを使用してWebminをインストールおよび更新できるように、Webminリポジトリを追加します。
リポジトリを/etc/apt/sources.listファイルに追記します。

$ sudo vi /etc/apt/sources.list
ファイルの下部に下の行を追加して新しいリポジトリを追加します
deb http://download.webmin.com/download/repository sarge contrib

:wpでファイルを保存して抜けます

その後、wgetでWebmin PGPキーをダウンロードし、システムのキーリストに追加します。

$ wget -q -O- http://www.webmin.com/jcameron-key.asc | sudo apt-key add

Webminリポジトリを含めたため、パッケージ一覧を更新します

$ sudo apt update

Webminをインストールします

$ sudo apt install webmin

Webminをインストール後、下記のように表示されるとインストール完了です。

Webmin install complete. You can now login to
https://your_server:10000 as root with your
root password, or as any user who can use sudo.

サーバーのipアドレスを確認します。

$ ip a

ip aでipアドレスを確認して下記のURLをブラウザで開きます。
URL: https://ファイルサーバーのIPv4アドレス:10000/

サーバー証明書を設置していない場合下記画像のように表示されます。
社内のIPアドレスである場合などアクセスしても問題ない場合はファイルサーバーのIPv4アドレスに進む(安全ではありません)を選択します。
f:id:spark-iraha-masayoshi:20211008143622p:plain:w600:h400
アクセスできればログイン画面が表示されます。

f:id:spark-iraha-masayoshi:20211008143624p:plain:w600:h400
Webminへのログインに用いる「Username」と「Password」は、サーバーに存在するユーザーアカウントになります。

Webminからユーザーやグループ、共有ディレクトを設定する

Webminから

を設定します。

1.ユーザーを作成します
System->users and Groups->LocalUsers->Create a new user
f:id:spark-iraha-masayoshi:20211008180611p:plain:w600:h400

Usernameとpasswordを設定します
※Username: staff01, pass: 123456で設定しています
f:id:spark-iraha-masayoshi:20211008180851p:plain:w600:h400

2.グループを作成します
System->users and Groups->LocalUsers->Create a new group
f:id:spark-iraha-masayoshi:20211008180957p:plain:w600:h400

fileserver_staffというグループを作成して、user in groupにstaff01をユーザーに追加します。
f:id:spark-iraha-masayoshi:20211012144841p:plain:w600:h400

3.共有ディレクトリを作成します
var->shareにshare01というディレクトリを作成します。
f:id:spark-iraha-masayoshi:20211008181411p:plain:w600:h400

share01ディレクトリの権限を変更します。
f:id:spark-iraha-masayoshi:20211008181622p:plain:w600:h400

Owner、Group、Othersに✅マークを入れます
f:id:spark-iraha-masayoshi:20211008181934p:plain:w600:h400

Servers->Samba Windows File Sharing->Create a new file share
f:id:spark-iraha-masayoshi:20211008182149p:plain:w600:h400

Share nameにshare01
Directory to shareに/var/share/share01
を入力します。
f:id:spark-iraha-masayoshi:20211008182258p:plain:w600:h400

Secutiry and Access Controlをクリックします
f:id:spark-iraha-masayoshi:20211008182424p:plain:w600:h400

Valid groupsにfileserver_staff
Read/write groupsにfileserver_staff
を入力してSaveします
f:id:spark-iraha-masayoshi:20211008182500p:plain:w600:h400

Servers->Samba Windows File Sharing->Windows Networking
f:id:spark-iraha-masayoshi:20211012125102p:plain:w600:h400

Server name: Fileserver
Default service: share01
に変更してSaveします。
f:id:spark-iraha-masayoshi:20211012125116p:plain:w600:h400

Share01が追加されていることを確認してSambaをスタートもしくはリスタートさせます
f:id:spark-iraha-masayoshi:20211008182657p:plain:w600:h400

設定が終わったら、実際に、エクスプローラーからファイルサーバーにアクセスしましょう。
※今回はshare01を作成しました
f:id:spark-iraha-masayoshi:20211008183456p:plain:w600:h400

アクセスできました。
Webmin上のSamba Share マネージャで設定したSambaユーザー名とパスワードを入力するとアクセスできます。
f:id:spark-iraha-masayoshi:20211008183514p:plain:w600:h400

このように、Webminを使えばターミナルでログインすることなくSambaの設定ができ、運用のコストは小さくなりそうです。
また通常の運用においてはLinuxやSambaの高度な知識を必須としないので、手順書を整備すれば専門知識のあるエンジニア以外でも行うことができそうです。

構築して判明した問題点

とりあえずLinux上でSambaを稼働させてWebminで運用することに問題はなさそうなことがわかりました。
しかしながら、実際に構築して簡単に試験運用してみるといろいろと問題があることが判明しました。

  • Webminからの操作ではヒューマンエラーを防ぐことができない(現状とあまり変わらない)
  • サーバーが故障した時の再構築が手動なのでこちらもヒューマンエラーを防ぐことができない(現状とあまり変わらない)
  • 社内に複数のファイルサーバーが稼働しているためファイルサーバーごとにマシンが必要になる

特に複数あるファイルサーバーの構築と運用をどうにかしてシンプルにすることは重要です。
そもそもの目的が、今後ファイルサーバーが廃止されることを見越して構築や運用をシンプルにすることですので。

複数のSambaを1つのマシンで稼働する手法はありますが、手順や概念がやや複雑になる、つまりメンテナンスや運用が複雑になるので、できれば必要十分なSambaの知識で運用できるようにしたいところです。
あとWebminからのSamba操作について、たとえ手順書に則って運用したとしても人間による作業だとエラーの可能性は排除できず、別のより安全な運用方法があればここもどうにかしたいという結論になりました。

こういった問題の解決が必要になったため、Ubuntu上でSambaをWebminで運用する方法でのファイルサーバー再構築はいったん保留とし、さらなる調査が必要になりました。
次回以降どのように問題点を解決してファイルサーバーを構築したのか、そして構築方法が意外な方向へ展開したかについて説明しますのでご期待ください。

最後まで読んでいただきありがとうございました。

参考資料
qiita.com
www.digitalocean.com