分类:
2012-05-15 12:44:28
原文地址:linux下搭建nfs 网络文件系统 作者:技术宅
在NFS服务器的使用中,我们介绍了不少内容。这里我们主要讲解一下linux搭建NFS服务器的过程。首先我们需要了解一下什么是NFS服务,之后对于它的优势以及搭建过程在做一下具体的介绍。
一、什么是NFS服务
NFS是Network File System的简写,即网络文件系统.
网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与它人共享目录和文件.通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件.
二、NFS的优势
1.本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到.
2.用户不必在每个网络上机器里头都有一个home目录.Home目录 可以被放在NFS服务器上并且在网络上处处可用.
3.诸如软驱,CDROM,和 Zip® 之类的存储设备可以在网络上面被别的机器使用.这可以减少整个网络上的可移动介质设备的数量.
NFS至少有两个主要部分:一台服务器和一台(或者更多)客户机.客户机远程访问存放在服务器上的数据.为了正常工作,一些进程需要被配置并运行.
三、linux搭建NFS服务器
1、服务器端
安装NFS的服务程序
yum install -y nfs-utils
写配置文件
vim /etc/exports
写入
/music 192.168.0.0/255.255.255.0(rw,sync)
格式是:
要共享的目录 共享的IP及掩码或者域名(权限,同步更新)
启动服务
/etc/init.d/portmap restart
/etc/init.d/nfs restart
chkconfig nfs on
chkconfig portmap on
然后关闭防火墙以及更改Selinux关于NIS的选项
/etc/init.d/iptables stop (防护墙服务关闭)
chkconfig iptables off
system-config-selinux (设置selinux)
2、客户端
编辑fstab文件,实现开机自动挂载
mount -t nfs IP:/目录 挂载到的目录 (此为临时挂载)
如:mount -t nfs 192.168.0.9:/doce /doc
编辑FSTAB文件
vim /etc/init.d/fstab
IP:/目录 挂载到的目录nfs defaults 0 0
然后关闭防火墙以及更改Selinux关于NIS的选项
/etc/init.d/iptables stop (防护墙服务关闭)
chkconfig iptables off
system-config-selinux (设置selinux)
至此,linux搭建NFS服务器完毕.
--------------------------------------------------------------------------------
NFS权限说明
[root@www ~]# vim /etc/exports /tmp 192.168.100.0/24(ro) localhost(rw) *.ev.ncku.edu.tw(ro,sync) [分享目錄] [第一部主機(權限)] [可用主機名] [可用萬用字元] |
你看看,這個設定檔有夠簡單吧!每一行最前面是要分享出來的目錄,注意喔!是以目錄為單位啊!然後這個目錄可以依照不同的權限分享給不同的主機,像鳥哥上面的例子說明是:要將 /tmp 分別分享給三個不同的主機或網域的意思。記得主機後面以小括號 () 設計權限參數,若權限參數不止一個時,則以逗號 (,) 分開。且主機名與小括號是連在一起的喔!在這個檔案內也可以利用 # 來註解呢。
至於主機名稱的設定主要有幾個方式:
至於權限方面 (就是小括號內的參數) 常見的參數則有:
參數值 | 內容說明 |
rw ro | 該目錄分享的權限是可讀寫 (read-write) 或唯讀 (read-only),但最終能不能讀寫,還是與檔案系統的 rwx及身份有關。 |
sync async | sync 代表資料會同步寫入到記憶體與硬碟中,async 則代表資料會先暫存於記憶體當中,而非直接寫入硬碟! |
no_root_squash root_squash | 用戶端使用 NFS 檔案系統的帳號若為 root 時,系統該如何判斷這個帳號的身份?預設的情況下,用戶端 root 的身份會由 root_squash 的設定壓縮成 nfsnobody,如此對伺服器的系統會較有保障。但如果你想要開放用戶端使用 root 身份來操作伺服器的檔案系統,那麼這裡就得要開 no_root_squash 才行! |
all_squash | 不論登入 NFS 的使用者身份為何, 他的身份都會被壓縮成為匿名使用者,通常也就是 nobody(nfsnobody) 啦! |
anonuid anongid | anon 意指 anonymous (匿名者) 前面關於 *_squash 提到的匿名使用者的 UID 設定值,通常為 nobody(nfsnobody),但是你可以自行設定這個 UID 的值!當然,這個 UID 必需要存在於你的 /etc/passwd 當中!anonuid 指的是 UID 而 anongid 則是群組的 GID 囉。 |