2020年に突入し、これまで自宅で使ってたファイルサーバも古くなってきたので、新しいものを構築していこうと思います。
はじめに
購入したものは以下の3品。すべてヨドバシカメラさんで購入しました。購入当時でだいたい4万円ちょいって感じでした。
想定している内容は以下のような感じ。
- Ubuntu 18.04 LTS を購入したパソコン本体にインストール
- 購入した2台の外付けHDDを使ってソフトウェアRaidを構築
- Sambaで共有
- Dockerをインストール
- Windowsで運用しているRedmineを移設
Ubuntuのセットアップ
まずは必要なソフトウェアをダウンロード。
ダウンロードが完了したらUbuntuインストールのために、USBメモリを準備します。
インストーラの準備
UNetbootinを使ってUbuntuのISOイメージをUSBに焼きこみます。ダウンロードしたUNetbootinを任意のフォルダで実行します。
ディスクイメージにダウンロードしたUbuntuのISOファイルを指定してOKボタンをクリック。ちょっと時間がかかりますが気長に待ちましょう。
Ubuntuインストール
インストーラの準備が完了したらLIVAZ-4/32(N3350)に挿して起動します。このときにちゃんとUSBから起動するようにBIOSの設定確認は忘れずに。ちなみに何回も日本語環境作ろうとしてインストーラを動かしたのですが、何回やっても途中のソフトウェアの選択あたりで無限ループになり先に進まないので、試しに英語環境でインストールしてみたら一発でうまくいきました。
もしかすると国内のリポジトリが反応してなかったのかな??
このままだとリモートで繋げなくて設定がしづらいのでSSHで繋がるようにしましょう。
$ sudo apt install ssh
あとはリモートから日本語環境にすることにしました。
こちらのサイトを参考にさせていただきました。
まずは日本語パックのインストール。
$ sudo apt install language-pack-ja-base language-pack-ja ibus-mozc
このままではDHCPでIPアドレスを払い出してもらってる関係でIPアドレスが変わる可能性があるのでUbuntuは固定IPアドレスにしておきましょう。
$ sudo vi /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp1s0:
dhcp4: no
addresses: [192.168.20.2/24]
gateway4: 192.168.20.1
nameservers:
addresses: [192.168.20.1]
もちろんこの例では192.168.20.2は使っているWiFiルータのDHCP機能が割り当てないようにしておきます。
ソフトウェアRaidを構築
おおよそUbuntuの準備はできましたので、いよいよ本題のソフトウェアRaid構築に進みます。もうここまで来たらモニタとキーボードは外しちゃおうかな。さてそんなに慎重になることもないのですが、まずは1台ずつ接続してみます。
まずはWindows向けに設定されているパーティション情報を削除し再作成、そしてRAIDフラグをセットしましょう。
$ sudo parted /dev/sda
(parted) rm 1
(parted) rm 2
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) set 1 raid on
※デバイス名やパーティション番号は環境により異なります。
お次は2台目。こちらも同様に。
完了したらいよいよRAID1を構成します。
$ sudo mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sda1 /dev/sdb1
途中経過は以下のように確認します。
$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb1[1] sda1[0]
2930132992 blocks super 1.2 [2/2] [UU]
[>....................] resync = 1.4% (43381376/2930132992) finish=274.5min speed=175214K/sec
bitmap: 22/22 pages [88KB], 65536KB chunk
unused devices:
どうやら4時間半くらいかかりそうですね。完了すると経過表示がなくなります。
ちなみになぜかmd0と指定したのに再起動したらmd127に変わりました・・・。よくあることみたいですね。改めて見てみたらこれまで使ってたCentOS6の環境もそうだったみたい。ということで実害はなさそうなのでそのままで。
あとはファイルシステムを作成&マウントして完了です。
$ sudo mkfs -t ext4 /dev/md127
$ sudo mkdir /share
$ sudo mount /dev/md127 /share
ちなみに参考にさせていただいたのはこちらのページ。
最後に起動時に自動でマウントするようにもしておきましょう。
Filesystem UUIDを確認して/etc/fstabに追記します。(以下は追記行のみ表示)
$ sudo tune2fs -l /dev/md127 | grep UUID
$ sudo vi /etc/fstab
UUID=xxxx /share ext4 defaults 1 2
これで再起動してマウントされていることが確認できればOKです。
Sambaのセットアップ
ここまで来たら、あとはSambaを入れてWindowsパソコンからアクセス可能にするだけですね。まずはSambaをインストールしましょう。
$ sudo apt install samba
次に家族だけアクセスできるように専用グループを作成し、自分(ここではxxx)を追加します。
$ sudo groupadd family
$ sudo usermod -aG family xxx
※このとき -a の付け忘れに注意しましょう。補助グループが上書かれてしまいsudoできなくなってしまいます。
そしてSambaにもユーザ登録します。
$ sudo pdbedit -a -u=xxx
対象のフォルダを作成して準備します。
$ sudo mkdir /share/common
$ sudo chgrp family /share/common
$ sudo chmod 2770 /share/common
※ここでchmod時にSGIDを指定するのを忘れずに。これを付けないとあるユーザが作成したフォルダに別のユーザがアクセスできなくなります。
最後にSambaの設定を変更します。
$ sudo vi /etc/samba/smb.conf
# [global]に以下の2行を追加
unix charset = UTF-8
dos charset = CP932
# コメント解除してアクセス制限範囲を指定
interfaces = 127.0.0.0/8 192.168.20.0/24
# コメント解除
bind interfaces only = yes
# 最終行に追記
# セクション名は共有名
[common]
path = /share/common
writable = yes
create mode = 0770
directory mode = 0770
guest ok = no
valid users = @family
編集完了後にsmbdを再起動してアクセスできていれば完了です。
$ sudo systemctl restart smbd
あとはこれまで使ってたファイルサーバからデータをコピーするだけですね。