2012年3月28日 星期三

在 Linux 架設 NFS 伺服器

目的:自建 NFS 伺服器,提供給其它主機用。



1. 安裝 NFS 伺服器相關套件

apt-get install nfs-kernel-server

2. 修改 NFS 設定

NFS 設定檔在 /etc/exports 檔案,其內容如下:

# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#

其中 # 是註解,底下的
/srv/homes       hostname1(rw,sync,no_subtree_check)

是 NFS 設定,其語法如下:

要開放之目錄    可存取之網域(存取權限)

/hd2            163.26.229.0/24(ro,sync,no_subtree_check)

163.26.229.0/24 是什麼意思 ? 指 163.26.229.* 之 IP 都可存取我們的 NFS 伺服器

255.255.255.0

    11111111.11111111.11111111.00000000 -> 255.255.255.0
AND 10100011.00011010.11100101.00000000 -> 163.26.229.0
------------------------------------------------------


3. 啟動 / 重新載入 NFS 伺服器


當我們完成 NFS 設定檔案的修改後,我們必須啟動或重新載入 NFS 伺服器,以便我們將剛剛修改之設定啟用。

啟動 NFS 伺服器之設定檔指令如下:

/etc/init.d/nfs-kernel-server start

關閉 NFS 伺服器之設定檔指令如下:

/etc/init.d/nfs-kernel-server stop

重新載入 NFS 伺服器之設定檔指令如下:

/etc/init.d/nfs-kernel-server reload

觀看 NFS 伺服器目前狀態之指令如下:

/etc/init.d/nfs-kernel-server status


4. 觀看本機 NFS 伺服器分享狀態

# showmount -e localhost
                          IP


5. 掛載遠端 NFS 資料夾

mount -t nfs 163.26.229.xx:/hd2 /mnt


6. 開機即掛載遠端 NFS 資料夾

How ?

在 /etc/fstab 中新增一行:

192.168.10.1:/srv/ftp /home/ftp  nfs ro,sync  1 2

新增完之後請以 root 權限執行:

# mount -a

看看有沒有錯誤訊息,如果沒有錯誤訊息表示可以正常掛載。



7. 我們建置虛擬網路環境,最麻煩的問題是套件都要透過網路下載,使用自建 NFS 站可以解決這個問題。其流程如下:

7.1 自建 NFS 伺服器,並將 debian 鏡像目錄分享出來
7.2 在 PXE 伺服器中掛載 NFS 目錄
7.3 將 PXE 伺服器的 /etc/apt/sources.list 中所有下載來源全部改成自有目錄,其語法如下:
 deb file:///home/ftp/debian/ jessie main contrib non-free
 deb file:///home/ftp/debian/ jessie-updates main