サーバー構築

ファイルサーバを作る

ファイルサーバとは?

ネットワーク経由で、ファイルを共有するサーバ

クライアント  →→ 「ファイル見せて」      →→ サーバ
        ←← 「いいよ、ファイルあげるよ」 ←← 

クライアント  →→ 「ファイル更新させて」    →→ サーバ
        ←← 「いいよ、更新したよ」    ←← 

ファイル共有プロトコルには主にSMB/CIFS(Windows)、NFS(Unix系OS)がある。
以下、それぞれのファイルサーバ構築手順について書く。

SMB、CIFS

Windowsネットワークにおけるファイル共有プロトコル。
Windowsのファイル共有は、SMBか、SMBを拡張したCIFSが使われている。

Sambaでのサーバ構築手順

SambaとはUnix系OSに、
Windowsネットワークの接続のための機能を持たせるためのソフトウェア。
ファイル共有プロトコルはCIFSを利用する。

サーバ側設定

1.Sambaのインストール

#sudo su    
#yum -y install samba    

2.共有ディレクトリを作成

#mkdir /home/test --共有するディレクトリの作成
#chmod 777 /home/test --アクセス権(全ユーザフルコントロール)の追加
#touch /home/test/testfile --テスト用ファイルの作成

3.設定ファイルの変更

#vi /etc/samba/smb.conf
設定ファイルに以下を追記
[test]
      comment = TEST file share
      writable = yes --書き込み許可(デフォルトは読み出し遠洋)
      guest = no --ゲストアクセス禁止
      guest only = no --ゲスト以外のアクセス許可
      path = /home/test --共有ディレクトリのパス

4.Sambaの起動

#systemctl start smb.service  --サービス起動
#systemctl status smb.service --active(running)であることを確認
#systemctl enable smb.service  --自動起動設定
#systemctl list-unit-files smb.service  --自動起動設定がenableであることを確認

5.Sambaユーザとパスワードの登録

#pdbedit -a -u test-root  --「-a」で登録、「-u」でユーザ名を指定
new password:****** --パスワードを入力(非表示)
Retype new password:******  --再びパスワードを入力(非表示)

#pdbedit -L  --ユーザが作成されたことを確認

クライアント側設定

以下、上記で登録したユーザで作業をする

#yum -y install samba-client 
$smbclient -L localhost
Enter SAMBA¥test-root's password:****** --パスワードを入力(非表示)

TEST file share が見えることを確認する

2.共有への接続

$smbclient //localhost/tech
Enter SAMBA¥test-root's password:****** --パスワードを入力(非表示)
Domain= ~~~~~
smb:¥>ls  --通常のコマンドライン同様、lsコマンドでファイル一覧を表示する
.
..
testfile --作成した「testfile」があることを確認できる

※sambaで利用できるコマンド一覧は?で確認可能

smb:¥>?

3.Windowsマシンから共有への接続
Windowsスタートメニュー横の検索画面から「run」を選択(ファイル名を指定して実行)。
入力欄に、「\サーバのIPアドレス\test」を入力し、OK。

IDとパスワードを問われるので、
5で登録したユーザとパスワードを入力し、OK。

エクスプローラが開き、「testfile」があることを確認できる。

NFS

主にUNIX系で使われるファイル共有プロトコル。
リモートサーバ上のファイルやディレクトリにアクセスし、それらのファイルやディレクトリをローカルファイルやローカルディレクトリと同様に扱うことができる。
マウントポイントにリモートサーバのディレクトリをNFSマウントする。

NFSでのサーバ構築手順

サーバ側設定

1.NFSのインストール

#sudo su
#yum -y install nfs-utils

2.NFSの起動

#systemctl start nfs.service  --サービス起動
#systemctl status nfs.service --active(running)であることを確認
#systemctl enable nfs.service  --自動起動設定
#systemctl list-unit-files nfs.service  --自動起動設定がenableであることを確認

3.ディレクトリの作成

#mkdir /export --NFSで共有するためのディレクトリを作成

4.設定ファイルの変更

#vi /etc/exports
以下を追記

/export      ***.**.**.**/255.***.***.***(rw,no_root_squash,sync)
             ※IPアドレス/サブネットマスク
       --読み取り/書き込み許可、root権限付与、書き込まれたデータを即ディスクに反映

5.作成したディレクトリをエクスポート

#exportfs -av

6.エクスポートされていることを確認

#showmount -e
Export list for ***.**.**.**:
/export ***.**.**.**/255.***.***.*** --/exportがあることが確認できる

7.NFSマウントの確認

#mount -t nfs ***.**.**.**:/export /mnt  --mntディレクトリにNFSマウント
       ※IPアドレス
#df -h  --マウントされていることを確認
***.**.**.**:/export   30G   1.3G   29G    5%   /mnt

※アンマウント

#umount /mnt
#df -h  --消えたことを確認

クライアント側設定

1.NFSクライアントの設定

#sudo su
#yum -y install nfs-utils

2.マウントポイントの作成

#mkdir /home/data  

3.NFSマウントの実行と確認

#mount -t nfs4 ***.**.**.**:/export /home/data --/home/dataにNFSサーバの/exportsをマウント
#df -h  --マウントを確認
***.**.**.**:/export   30G   1.3G   29G    5%   /home/data

4.ファイル作成の確認

#cd /home/data
#touch testfile
#ls -l
-rw -r--r-- 1 root 5 Dec 6 08:12 testfile  --「testfile」があることを確認

サーバ側で確認

上記クライアントが作成したファイルを、サーバ側で確認する

ls -l /export
-rw -r--r-- 1 root 5 Dec 6 08:12 testfile  --「testfile」があることを確認

おわり。

最後に

ファイルサーバはサーバという感覚が、新人のころはなかったです。
自分のところにあるファイルかのように使えるのは、ファイルサーバのおかげなんですね。
今回作ってみてより実感しました。

あとは、Markdownでナンバリングする方法が分からない。。
1.(半角スペース)をしても、ナンバリングとナンバリングの間に文字を入力すると、全部1.でナンバリングされてしまいます。