一定要用二级目录,否则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即可