一定要用二级目录,否则NFS坏了主机都启动不起来

一级目录是强制挂载,二级目录是动态挂载

nfs共享远程目录具体步骤

服务器端配置:

1.安装NFS服务器软件

sudo apt-get install nfs-kernel-server  # 安装 NFS服务器端

2.添加 NFS 共享目录(若需要把 “/nfsboot” 目录设置为 NFS 共享目录,请在该文件末尾添加下面的一行)

sudo vim /etc/exports

/data *(rw,sync,no_root_squash,no_subtree_check)  

# * 表示允许任何网段 IP 的系统访问该 NFS 目录

# rw:读/写权限  ro: 读权限

# sync:数据同步写入内存和硬盘  nosync:表示以异步方式先将数据写入到内存中,然后再将数据写入到硬盘中去,效率高,但可能丢数据

# no_root_squash:服务器允许远程系统以root特权存取该目录      root_squash:客户端使用 NFS 文件系统的账号若为 root 时,则将身份由root转换成nfsnobody身份来登录(nfsnobody的权限最小,可以用来保障系统安全)。    all_squash:表示不论nfs账号是什么,都转换成匿名用户(nobody)的账号来登录

# no_subtree_check:关闭子树检查

3.建立/nfsboot 目录

mkdir /nfsboot

4.更改/nfsboot权限为777

chmod 777 -R  /nfsboot

5.重启nfs服务

sudo /etc/init.d/nfs-kernel-server restart  //或者exportfs -rv 重载

客户端配置:

1.安装NFS客户端软件

sudo apt-get install nfs-common

2.查看服务器的共享目录

showmount -e 10.10.201.155

显示如下 刚刚设置的目录

Export list for 10.10.201.155:

/nfsboot *

3.建立本机挂载的目录 /usr/local/nfs

mkdir -p /usr/local/nfs

3.挂载

执行挂载:

格式为:mount -t nfs -o nolock [服务器IP地址]:[共享目录路径] [本机用于挂载的路径]

mount -t nfs -o nolock 10.1.1.115:/data/cloudData /nfs-data/cloudData

需要通过mount –t nfs4指定NFS版本为4,默认采用nfs v3

即:挂载成功后,访问本地/mnt目录时即是访问服务端的/nfsboot 的目录。

开机自动挂载

1.编辑/etc/fstab文件

vim /etc/fstab

添加如下: 按你自己的设置

事例:

server:/share /mnt/nfs nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

我的设置

10.10.201.155:/nfsboot /usr/local/nfs nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

说明:

- server:/share:NFS服务器的IP和共享的路径。

- /mnt/nfs:本地的挂载点。

- nfs:这是文件系统类型,指示要使用NFS协议进行挂载。

- auto:这表示在启动时自动挂载文件系统。

- nofail:这表示如果无法挂载,系统将继续启动,而不会阻止它。

- noatime:这将禁用对访问时间的写入,这有助于提高文件系统的性能。

- nolock:这将禁用对锁定管理的使用,这对于某些NFS服务器可能有用。

- intr:这表示允许中断挂起的NFS操作,这可以提高操作可靠性。

- tcp:这表示使用TCP协议进行NFS通信,这通常是默认设置。

- actimeo=1800:这表示NFS客户端将在1800秒内缓存文件属性,以提高性能。

- 0 0:这是用于fsck检查和备份常规操作的选项,0表示无需检查。

2.刷新配置

mount -a  # mount /etc/fstab中定义的挂载(已挂载的不再执行)  开机会自动会挂载/etc/fstab中的挂载

3.从启动服务器测试

reboot

cat /proc/mounts//显示当前已挂载文件系统的信息

常见错误及解决

nfs 主机重启后 二级挂载目录丢失,且无法删除一级目录

解决:umount -lf /nfs-data && rm -rf /nfs-data && mkdir -p /nfs-data/cloudData && chmod -R 777 /nfs-data

mount -a 重新挂载即可

NFS报错:当 mount -o noresvport <nfs 服务> 时,会碰到 Operation not permitted 问题。

报错原因:因为 nfs 默认配置选项是 secure,不允许客户端通过非特权端口访问。

解决方法:如果客户端必须要 mount -o noresvport 访问,需要 nfs 服务器配置允许非特权端口访问。需要修改 /etc/exports,设置 insecure 选项。

NFS挂载报错:mount.nfs4: access denied by server while mounting 10.1.1.100:/data

权限不足,去nfs服务器端 chmod -R 777 /data即可