[Freebsd]余りものPCでファイルサーバーを構築
自宅内ファイルサーバー
自宅サーバーをDIYで構築します
社内で使うサーバー構築経験がある程度なので、専門家と比べると知識が劣ります
少しPC知識のある人でも分かりやすい表現を使っているので、そんな言い方しないなどありますが、余ったPCを再利用できるかもしれない位でお読みください
データ共有の不便を解消
自宅にサーバーがあると便利だと思う時があります
- macとWindowsを使っている
- 複数のPCで容量の大きなファイルを扱う
- 家族で同じファイルを共有・閲覧
- クラウドの容量を増やしたくない
- USBメモリ・HDDは面倒
BUFFALO NAS LS220D0202G
設定も簡単そうなので、バッファローのNASを導入しました
メーカー認定中古品があったから、安さ優先で買いました
運用は簡単
購入して、簡易マニュアルの通り設定すれば、家庭内ファイルサーバー構築は終了
無線LAN非搭載
無線LAN(Wi-fi)を搭載していないので、無線子機を中継して、使用しています
使い勝手が悪い
データを表示する場合、頻繁に考え込み正直イライラします
また、Windowsでファイルをコピーする場合も、途中で止まって考え込むことがある
買い替えを検討
以前の職場で、作業効率を上げるためファイルサーバーを構築していたので、実績のある方法でサーバーを構築することにしました
導入候補
またストレスを貯めたくないので、導入実績のあるものを検討します
- QNAP NAS TS-233
- 使ったことがある機種の後継機
- 自作ファイルサーバー
- 余りものPC+FreeBSD + SAMBA(NetaATalk)
QNAP NAS TS-233
先のバッファローNASからHDDを取り出せば、ケースのみ購入すれば構築可能
メリット
- インターフェイスが使いやすくNAS構築しやすい
- ケースのみ購入ですむ
- 機能豊富でNAS以外の用途も考えられる
デメリット
- 先に失敗しているのに、またコストがかかる(3万は高いな)
- 機能豊富が、逆にオーバースペック
余りものPCでサーバー構築
部署内でのデータ移動が面倒だったので、あまりものPCで構築したのが始まりなので、実績が多く得意な方法
メリット
- 自分ですべて設定するので、カスタマイズ可能
- 必要最低限の機能だけにできる
- WindowsXP時代から使っており、ストレスを感じたことがない
- OS・アプリケーションともに無料(タダ)
デメリット
- 余っているPCがない
- フリマで全部売った
構築する
PCは中古品集めて組立てればいいので、コストも抑えられるし、数年放置した実績もあるのでFreeBSDサーバーを構築します
余りものPCでサーバー構築
PC本体など必要なものを集めていきます
準備
Windows10(Windows7でも可)動作していたPCなら何でもいいので、フリマサイトで探します
必要なもの
あまりお金をかけない方法で考えます
- PC本体
- メーカー・PC構成は何でも可能(Windowsベース・有線LAN搭載)
- ノートPCでも可能ですが、放置するときに画面が邪魔になる
- OSをインストールするために、DVD・CDドライブが必要
- 記録用HDD
- 用意するPCにHDDがあれば購入する必要なし
- 必要な容量を用意する(今回は2TB)
- 外付けUSBでも可能ですが、放置するときに邪魔
- OS用HDD(オプション)
- 記録用HDDにOSもインストールすればHDD1個で済みます
- インストールする時間が早くなったら良いなの期待を込めてSSDを検討
- FreeBSDインストールディスク
- 公式サイトからダウンロードしてディスクに焼きます
FreeBSDを使う理由
UNIX系のOSは進化したものやmacOSのような綺麗なインターフェイスなどありますが、必要最低限で動かせて、安定しているので、FreeBSDを使います
- 動作が安定している
- OSインストールが簡単
- アプリケーション(サービス)インストールは、ほぼ全自動
- 設定後、画面を見ることがないので、余計なものにリソースを裂きたくない
- リモートアクセス可能になれば、コンソール画面での作業が楽
- 外部ネットに接続させないので、最新を気にしなくていい
FreeBSDを用意する
公式サイトからダウンロードし、ディスクを作成します
公式サイト
英語サイト・日本語公式サイトのどちらからでもダウンロードできます
ディスクの用意
① 公式のダウンロードページを開く
※ググった時に、怪しいサイトへ誘導される可能性があるので、公式かどうかチェックしてください
② 最新OSのi386(Intel用)をクリックする
AMDベースならamd64を選んでください
③ CD用・DVD用を選んでダウンロードする
④ ダウンロードしたファイルをメディアに焼く(画面は、MacOS)
- CD・DVDドライブに空メディアを挿入する
- ダウンロードしたファイルを右クリックして「~を焼きこむ」をクリック
- Windowsの場合は、「ディスク作成」をクリック
- 画面の指示に従って、ディスク作成
- 焼きあがるのを待つ
⑤ ディスク作成(分かるように何か書いておく)
※手持ちのメディアが古かったのか、CDは容量オーバーになり、DVDで用意しました
SAMBA
ファイル共有アプリケーション(サービス)は、ダウンロードしたものにインストーラーが含まれているので、そちらの準備もできています(インストール時に本体のダウンロードが必要)
PCの準備
フリマサイトで購入したPCなど
PC本体
フリマで、HDD・電源ケーブルなしのWindows8時代のスリムPC(ビジネス用モデル)を購入しました
背面ポート古いな
HDD・SSD
インストール用SSDとデータ記録用HDDを用意しました(フリマで中古購入)
HDDが2台あるのは、予備になるかなとセット売りを買ったからです
ケーブル類
電源ケーブルなしだし、ビジネスPCには予備のケーブルはないが、自作歴が長いと予備ケーブルは沢山ある
ケーブルなどは買うと地味に高いもの
動作確認後、トラブル
とりあえず、モニターやキーボードをつないで動作確認
仮インストール
トラブルがなければ、このままインストールを続けるのですが、問題発生
NIC故障
オンボードLANが不安定で、壊れているようです(この時代のPC故障理由は大体これ)
追加ボード購入
LANが使えないと何をしたいのか分からないので、通販で購入
ギガビットLAN(1000Mbps)なら、最安で十分
PCIスロットがあったので、そちらをつないでも良かったけど、PCI-exにしました
OSインストール
動作させるPC(サーバー)が用意できたので、インストールしていきます
CMOSクリア
ボタン電池(CR2032)交換をしておく
※起動できれば交換しなくても問題はないのですが、電池切れしていると色々面倒なことが起こる
BIOS設定
普通に仕事やゲームでPCを使っている人は触らわない項目ですが、本体の設定を変更します
このPCは、起動時にF10(ファンクションキー)を押せば起動しました
詳しくはメーカーHP参考
各メーカー毎に、設定画面の起動などが違うので、調べてください
- ストレージ項目にある起動順序変更(CDを1番にする)
- 時計が狂っていたら、大体合わせておく
- 不要な便利機能を切っておく
※言語設定を見やすく日本語に変更しています(デフォルトは英語が多い)
記録用HDDは外す
OSをインストールするときには、不要なので記録用HDDの電源は抜いておきます
※設定をちゃんと理解しているなら、インストール時に好み設定をしてください
CD起動
BIOS設定変更したので、CDからインストーラーを起動します(ほうっておけば起動する)
インストール設定
インストール設定をしていくのですが、OSのバージョンで微妙に違いますが、先人の記事を参考に作業をすすめます
デフォルト(設定変更なし)で作業を進めますが、必ず設定しておきたい項目のみ記載しています
ports設定
ほとんどの記事で、不必要とされているportsの項目にチェックしてください
OS起動後、最新版をダウンロードする方がいいのですが、動けばいいので、手間を省きます
パーティション設定
Windowsなどのインストールと違い、色々と条件があるので、面倒なのでオート設定を選びます
AUTO(UFS)を選択しました
ZFSとUFSの違い
ネットワーク設定
ネットワーク設定はIPv4とDHCP有効をしておく(IPv6は不要)
※固定IPは設定が全て終わってから行います
SSH設定
SSH(リモートアクセス機能)は必ずチェックしてください(デフォルトはオン)
ユーザー作成
root(管理者)以外に、個別ユーザーを設定するときに、その他のグループを追加する時に、「”wheel”(管理者になれる権限あり)」を入力しておく
再起動
全ての設定とインストールが完了したら、再起動を選びます
PCが起動する前に電源を一旦落とします
電源を抜く
CD(DVD)からインストールができたら、CD・DVDドライブは不要なので、電源・SATAケーブルを抜いておきます
ドライブを取り外して、5インチパネル(蓋)をつけるのもありです
エアーフローをよくするためのファンをつけるなども出来ます(静音性は下がる)
記録用HDD接続
インストール時外しておいたHDDを接続します
ソフト・サービス設定(ローカル)
OSをインストールできたので、ここから必要なソフトをインストールしていきます
※ここから個人情報が多くなるので、写真は減ります
起動確認
電源を投入し、ログイン画面を確認します
ログイン名:root(管理者)
パスワード:任意設定したもの
以下の作業は、管理者権限で行います
早速トラブル発生(キー配列)
日本語キーボード(JP106)を設定していたはずが、何かを間違えていたようです
キー配列を日本語キーボードに変更
/etc/rc.conf書き換え
viコマンド(メモ帳みたいなソフト)を使って、設定ファイルに必要な項目を追加します
「/etc/rc.conf」に「keymap=”jp.kbd”」を記入する
説明の最初なので、基本的な編集の仕方を記載します(以下の説明では省略)
- コンソール画面操作
- 「vi /etc/rc.conf」を入力+ENTERキーを押す
- 適当な行へ移動する(カーソルキー操作)
- キーボード【i】を押す(インサートモード)
- 「keymap=”jp.kbd”」を記入する
- 【esc】キーを押す(インサートモード解除)
- 「:wq」を入力+ENTERキーを押す
- 英語キーボードになっているので、”:”は、【shift】+【;】
- コンソール画面で、「reboot」を入力しENTERを押す
- システムを再起動し、動作確認
※動作確認の再起動は、サービスを停止・再始動がサーバーを設定するうえで一般的ですが、環境によって変わってくるので、単純に分かりやすいシステムごと再起動で説明します
bashインストール
コンソール画面でも、快適に使うためのサービス(bash)をインストールします
※投稿者の好みで選んでいるだけで、必須ではない
portsを利用する
OSインストール時に用意しているportsを使ってサービス(パッケージ)をインストールします
「/usr/ports/shells/bash」をインストールする
上記ディレクトリに移動して、インストール作業を行います
- 「make」を入力し、環境設定を自動で行う
- 設定ダイアログは、そのままOK(カーソルを左右に移動してENTERを押す)
- 「make install」を入力し、パッケージをインストール
- 設定ダイアログは、そのままOK(カーソルを左右に移動してENTERを押す)
- 「make clean」環境設定したものを削除
①~③を同時に行う方法もあります(「make install clean」で一括実行)
※上記以外に、細かい設定を行うべきですが、それをしなくても動作するのがFreeBSDの良さ
make中(コンパイル)にエラーが出た場合は、問題の項目のパッケージに移動して、個別にインストールしたら解決する場合が多い
- 問題のportsパッケージに移動する(cdコマンド)
- コンパイル中のパッケージを消す(make cleanコマンド)
- パッケージのインストール(make installコマンド)
- 先ほどのportsパッケージに移動する(cdコマンドを使って戻る)
- インストール再開
※上記で解決しない場合の対処法はネット検索してください
動作確認
インストールが完了した時に出るメッセージを確認すれば動作方法など出ていますので、必ず読みましょう
「/usr/local/bin/bash」で動作確認
※シェルが変われば、動作しています
設定変更
毎回使うものなので、設定項目を変更します
「chsh」で個人設定変更する(「Shell: /usr/local/bin/bash」に書き換え)
※動作を確認するため、「alt」+「ファンクションキー」で別画面に切り替えて、ログインしてみる(間違えていたら、面倒なことになるので、画面を切り替えて、しっかり項目を確認する)
再起動
動作を確認できたら、再起動する
IPアドレスの確認
DHCPを利用しているので、ネットワーク設定は流動的になります
「ifconfig」を実行し、ネットワークIPをメモする
インストール時に、ネットワークカード名を見ていると思うので、その項目を確認する
SSHの動作確認
インストール時に設定しているSSHが起動しているか確認する
Windowsの場合
標準機能で説明します
- 画面下部の「検索」に「cmd」を入力し、コマンドプロンプトを起動する
- 「ssh (サーバーのIP) -l (ユーザー名:インストール時に設定したもの)」を入力
- 記入例「ssh 192.168.1.100 -l hogehoge」
- 初回は、メッセージが出るので、「yes」のままENTER
Macだと、ユーティリティ(cmd +uで開く)に入っているコンソールで同じことができます
メリット
ここからは、日ごろ使いなれたPC環境で設定を行っていけます
- 分からないことを検索しながら、設定作業を行える
- 項目のコピー&ペースト可能
- サーバーの画面・キーボードを外せる(電源とネットワークケーブルのみ接続)
- 完全に動作を確認するまで、ラックなどに収納するのは時期早々
管理者に変更
SSHでサーバーへのアクセスを確認後、管理者にユーザー変更します
「su -」を入力し、シェル名がrootになっていることを確認する
ソフト・サービス設定(リモート)
SSH接続確認後は、サーバー機の前から離れ、自分のパソコンで作業を進めます
※投稿者はMac派
HDDマウント
インストール時外しておいたHDDをマウントします
HDDを「UFS」フォーマットに変更しマウントする
HDDの接続名を検索
追加するHDDのFreeBSDがどう認識しているのか調べる
「dmesg」を入力する
恐らく大量のメッセージが流れると思うので、画面をマウスでスクロールしながら、必要な項目を探してください
今回の構成では、以下になりました(SATAだとada*になる)
ada0:インストール用HDD・SSD
ada1:記録用HDD
※大体製品名が表示されるので見つけやすいと思います
UFSフォーマット
各パッケージ(ソフト)をインストールすれば、NTFSやexFATでも認識することは可能ですが、安定性と作業量を減らしたいので、FreeBSD標準でフォーマットします
「newfs /dev/(HDD名)」を入力する
HDDにデータが残っていないことは、事前に確認してください
HDDをマウントする
FreeBSDの機械は認識しているが、システムでは認識していないので、マウントします
「mount /dev/(HDD名) /mnt」を入力する
「/mnt」は環境に合わせて変更してください
動作確認
マウントしているか確認します
「df -h」を入力する
ハードディスクが認識しているか確認します引数「-h」を追加しているので、容量が分かりやすいと思います
自動起動設定
サーバーが起動するたびに、自動マウントするように設定を変更します
「/etc/fstab」に設定を追加する
今回の設定を記載します(細かい項目を知りたい場合は検索してください)
一番下の行に入力する
/dev/ada1 /mnt ufs rw 2 2
再起動
システムを再起動して、HDDが正しく動作しているか確認します
システム再起動後、「df -h」を入力する(確認だけなら管理者以外でも可能)
DNSサーバー
放置するサーバーなので、必要ないのですが、インストールしています
BIND9をインストール
最新のBINDをインストールします
「/usr/ports/dns/bind918」をインストールする
起動させる予定はないので、設定は行わない
※設定ダイアログが大量に表示され、作業終了まで時間がかかります
SAMBAをインストール
本題の共有サーバーのインストールを行います
「/usr/ports/net/samba416」をインストールする
※設定ダイアログが大量に表示され、作業終了まで時間がかかります
mac対応
macOS9が混在していた時代は、Netatalkを設定していましたが、ファイル共有するのならsambaだけで対応可能
興味があれば、「/usr/ports/net/netatalk3」をインストール
インストール終了
必要なアプリ(サービス)をインストール出来たので、設定を行っていきます
ファイルサーバーの設定
必要なインストール作業は終わったので、設定していきます
固定IPの準備
サーバー構築中はインターネットに接続するためDHCPを有効にしていますが、放置するときには外部接続しないので、固定IPを設定します
「/etc/rc.conf」にネット設定を書き込む
/etc/rc.conf編集
HDCP設定の下に、コメントアウト(先頭に#を追加)して、書いておく
(記入例)
ifconfig_re0=”DHCP”
#ifconfig_re0=”inet 192.168.1.150 netmask 255.25.255.0”
記述だけ
すべての設定が終わるまで、有効にしない
sambaの設定
共有設定を記述していきます
/usr/local/etc/smb4.confの作成
共有する条件・エリアを指定します
「/usr/local/etc/smb4.conf」を新規作成し、条件を書き込む
(記入例)
この設定は、制限一切なしで誰でもアクセス可能にしています
[global]
dos charset = CP932
unix charset = UTF-8
workgroup = WORKGROUP
server string = fileserver
netbios name = freebsd
security = user
map to guest=Bad User
guest ok = yes
guest only = yes
guest account = nobody
load printers = no
log file = /var/log/samba4/log.%m
max log size = 50
writable = Yes
browseable = yes
create mask = 0777
directory mask = 0777
[share]
comment = Shared Directories
path = /mnt
起動設定
起動設定を追記します
「/etc/rc.conf」に「samba_server_enable=”YES”」を記入する
起動確認
設定ファイルを用意できたので、起動して動作確認します
「/usr/local/etc/rc.d/samba_server start」を実行
クライアントPCで接続確認
windowsやMacで、サーバーにアクセスします
アドレスバーに「¥¥192.168.xxx.xxx」でアクセスする(windowsの場合)
※¥は半角
ディレクトリ(フォルダ)が開けば、ファイルサーバーの設定が出来ています
書き込みOK
書き込みができない場合は、ディレクトリの権限を変更する
「chmod 777 〇〇〇〇」で書込・読込・実行を許可
※〇〇〇〇は、設定するディレクトリ(フォルダ)
再起動
システムを再起動して、SAMBA(ファイル共有)が正しく動作しているか確認します
設定終了
ファイル共有設定は完了です
その他機能など
sambaを利用したTImeMachine(タイムマシーン:Macのバックアップ)などの便利機能の設定もできますが、今回はファイル共有のみ設定しました
放置設定
ファイル共有設定が完了したので、これ以上のインストール・設定を行いません
DHCPを無効
先に設定項目だけ記載している固定IPを有効にし、DHCP設定を無効にします
「/etc/rc.conf」の編集(コメントアウトなど)
/etc/rc.conf編集
HDCPをコメントアウト(先頭に#を追加)して、固定IPの”#”を削除
(記入例)
#ifconfig_re0=”DHCP”
ifconfig_re0=”inet 192.168.1.150 netmask 255.25.255.0”
念のため
運用していて、追加設定などあるかもいれないので、不要な設定ですが、残しておきます
モニター・キーボードを外す
ここまで完了したら、サーバーに接続していたモニターやキーボードは不要になります
物理的にふさぐ
不要なUSBポートなどは埃が入ると故障の原因なので、目張りテープで隠します
※エアーフローになる穴は塞がない
オススメ
投稿者は、shurtapeを使うのが好きです(小さくカットでき、扱いやすい)
サーバー設置
トラブルが発生しない限りサーバー機に直接触れる必要がないので、日ごろ邪魔にならない場所に設置してください
※完全に閉鎖した空間にはおかない(空気の流れがないと熱暴走する可能性あり)
設定内容ドキュメント
放置するのが前提なので、数年後にパスワードなどを忘れていると思いますので、作業用PCやクラウドなどに、テキストで残すことをオススメします
(最もオススメの方法)
ドキュメントを紙に印刷・クリアファイルに入れ・PCに張り付ける
※セキュリティ的には良くないかもしれませんが、どこにも出すことがないサーバーなので、許してください
SAMBAアクセスが遅い(後日追記分)
構築したサーバーを運用していて感じるのが、アクセスの遅さがありましたので、改善策を講じました(後日追記分)
SAMBA設定の見直し
WindowsXPやmacOS9なども対応できるように設定をしていましたが、現行のWindowsやMacOS環境では、それが原因でアクセスが遅くなっているようです
SMB2有効
SMB2を有効にして、余計なアクセスで時間をかけないようにします(古いバージョン切り捨て?)
(記入例)
max protocol =SMB2
Windows設定変更
古いsamba機能を切り捨てたはずですが、SMB1を有効にしないと動作しなかった
設定は外部サイト
SMB1クライアントの設定は、各NASブランドが必ず書いているので、当たり前に起こる現象のようです
macOS 10以降はそのまま
macOSで、とても古い時代(G4とかG5)やOS9以前はサポート外ですが、それ以外は何も変更する必要はありません
iOS変更なし
なにも変更せずに使えます
改善
アクセス・コピーなどの時間が圧倒的に早くなりました
まとめ
余っている(スペックが低くて通常業務不向き)WindowsPCを使って、共有サーバーを構築しました
手順紹介
未来の自分への忘備録を兼ねて、必要最低限の設定を記事にしました
費用
余りものPCがなかったので、PC購入など費用がかかりました
総額
今回かかった費用の総額
約10,300円
内訳
購入した商品の金額の概算
- DVDメディア:約100円
- PC本体:約3,000円
- SSD:1,200円
- HDD:4,400円(2台購入し1台使用していない)
- 電池(CR2032):約100円
- GigaBitLANボード:約1,500円
- SATAケーブル:在庫品のため値段不明
- LANケーブル:在庫品のため値段不明
ほぼ無料も可能
PC本体・記録用HDDがあれば、ほぼ無料でファイルサーバー構築可能
カスタム可能
macのTImeMachine(タイムマシーン:Macのバックアップ)に対応させたり、共有エリアの制限など興味のある人は、これをベースにカスタムしてください