1、简介
NFS(network file system)网络文件系统,主要功能通过网络让不同的机器系统之间可以彼此共享文件和目录。
NFS服务器可以允许NFS客户端将NFS服务器端的共享目录挂载到本地的NFS客户端中。在本地的NFS客户端的机器看来,NFS服务器端共享的目录就好像自己的磁盘分区和目录一样。NFS一般用来存储共享视频、图片等静态数据。
2、NFS挂载原理
在NFS服务端设置好一个共享目录/share后,在NFS客户端侧可以将这个目录挂载到本地,且可看到服务端共享目录下所有数据。
本地挂载目录权限与远端共享目录权限一致。
3、NFS数据传输
NFS通过网络RPC(Remote procedure call)协议来进行服务端与客户端的数据传输。
NFS启动后生成随机端口,然后去RPC注册这些端口,RPC记录下这些端口,且RPC开启111端口;等待客户端RPC请求,若收到客户端请求,服务端RPC会将记录的NFS端口告知客户端,接着就开始传输数据。
详情如下:
1)首先服务器端启动RPC服务,监听111端口
2)服务器端启动NFS服务,随机生成一些端口并向RPC注册端口信息
3)客户端启动RPC(portmap)服务,向服务端的RPC(portmap)服务请求服务端的NFS端口
4)服务端的RPC(portmap)服务反馈NFS端口信息给客户端
5)客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据传输
4、NFS安装部署
环境:
nfs服务端:192.168.241.134
客户端:192.168.241.133
需要安装两个软件包:NFS主程序nfs-utils、RPC主程序rpcbind(NFS服务端和客户端都需要安装这两个软件)
1)查看NFS软件包是否安装
rpm -qa | egrep "nfs|rpcbind"
rpcbind-0.2.0-12.el6.x86_64
nfs-utils-1.2.3-70.el6.x86_64
nfs-utils-lib-1.1.5-11.el6.x86_64
2)安装NFS
yum install -y nfs-utils rpcbind
3)启动NFS
服务端需启动rpcbind、nfs服务,客户端只需启动rpcbind即可。
rpcbind启动命令:service rpcbind start
查看端口是否监听
netstat -antp | grep 111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2691/rpcbind
tcp 0 0 :::111 :::* LISTEN 2691/rpcbind
启动 NFS 服务: service nfs start
查看nfs启动状态:service nfs status
4)配置NFS服务
NFS配置文件路径 /etc/exports (默认内容为空)
配置格式:NFS共享目录 客户端地址1(参数1,参数2,......参数n)客户端地址2(参数1,参数2,......参数n)
单个主机 /nfsshare 192.168.241.133(rw,no_root_squash,sync)
地址段 /nfsshare 192.168.241.0/24(rw,no_root_squash,sync)
权限参数说明:
rw 表示可读可写
no_root_squash root用户不映射为nfsnoboby
sync 同步写入硬盘(慢,数据不易丢失)
async 异步写入硬盘(很快,但是数据容易丢失)
修改完配置后执行 service nfs reload
5)客户端挂载
showmount -e 192.168.241.134 查看可挂载
Export list for 192.168.241.134:
/nfsshare 192.168.241.0/24
挂载
mount -t nfs 192.168.241.134:/nfsshare /mnt
5、NFS测试
客户端:
df -h 可见挂载
[root@centos7 nfs]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl_centos7-root 16G 1.2G 15G 8% /
devtmpfs 478M 0 478M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/mapper/cl_centos7-home 4.0G 33M 4.0G 1% /home
/dev/sda1 297M 122M 176M 41% /boot
tmpfs 98M 0 98M 0% /run/user/0
192.168.241.134:/nfsshare 3.9G 8.0M 3.7G 1% /mnt
cd /mnt下创建和修改目录、文件,在服务端 /nfsshare 可见
服务端:
在/nfsshare下创建和修改目录、文件,在客户端/mnt可见