LoginSignup
10
23

More than 5 years have passed since last update.

ファイルサーバを作る

Last updated at Posted at 2017-12-24

ファイルサーバとは?

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

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

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

ファイル共有プロトコルには主に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.でナンバリングされてしまいます。

10
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
23