一、什么是NFS?
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
二、搭建NFS
2.1 安装并启动服务
在文件服务器和应用服务器安装以下软件:
1.安装nfs-utils和rpcbind
yum install nfs-utils
yum install rpcbind -y
2.启动服务
service rpcbinf start
service nfs start
3、设置开机启动服务
chkconfig nfs on
chkconfig rpcbind on
4、确认安装了软件包
rpm -q nfs-utils
rpm -q rpcbind
2.2 文件服务器配置
1.创建共享目录
mkdir /test/nfs/server
2.在/etc/exports添加如下:
/test/nfs/server *(rw,sync,no_subtree_check)
① /test/nfs/server —要共享的目录`在这里插入代码片`
② * 处代表限制访问的ip段
可以填192.168.1.* —允许访问的网段,也可以是ip地址、主机名(能够被服务器解析)
*(所有人都能访问)
③ 括号内的常见参数有:
Rw:该目录分享的权限是可擦写 (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) 啦!
no_subtree_check :关闭子树检查
Anonuid: anongid anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anonuid 指的是 UID 而 anongid 则是群组的 GID。
3.重新启动nfs
service nfs restart
4.查询nfs服务器
showmount -e localhost
5.为文件赋权限
chmod -R 777 /test
2.3 客户端配置
1.在应用服务器创建共享文件夹
mkdir /test/nfs/client
2.挂载
mount -t nfs 192.168.1.58(文件服务器的IP):/test/nfs/server /test/nfs/client
3.取消nfs挂载
unmount /test
无法取消nfs挂载时,杀死相关进程
fuser -kvm /test
2.4 同步原来文件服务器的数据到文件服务器
命令:
rsync -av 192.168.1.56(原文件服务器IP):/home/fastdfs/file/data/* /test/nfs/server
补充:
du = disk usage 磁盘使用率,输出每个文件或者目录总大小
df = disk free 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计
df -h 查看内存使用情况
du -h --max-depth=1 /home/tom/test