NFS网络文件系统
什么是NFS
NFS是Network File System的缩写,中文意思是网络文件系统,他的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录
NFS服务只能应用在linux系统上,FTP、Samba服务均都支持linux和Windows
NFS服务的应用
- 实现数据信息的共享
- 实现数据信息的一致
共享存储的方式
硬件实现共享存储
IBM、Oracle、EMC
软件实现共享存储NFS、Samba、FTP
NFS共享系统原理
- 在NFS服务端创建共享目录
- 通过mount网络挂载,将NFS客户端本地目录挂载到NFS服务端共享目录上
- NFS客户端挂载目录上创建、删除、查看数据操作,等价于在服务端进行的创建 删除 查看操作
RPC
什么是RPC
RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。
NFS服务部署过程
服务端
- 检查NFS RPC服务软件有没有安装
rpm -qa|grep nfs rpm -qa|grep rpc
默认Centos系统没有安装nfs和rpc服务
- 进行yum安装nfs与rpc服务软件
yum install -y nfs-utils rpcbind rpm -ql nfs-utils -ql 参数表示查看安装好的软件,都安装了哪些信息
- 进行NFS配置文件编写
vim /etc/exports /data 172.16.1.0/24(rw,sync)
- 创建共享目录
mkdir -p /data chown -R nfsnobody.nfsnobody /data
说明:nfsnobody用户是在进行nfs软件yum安装时,自动创建的
*启动服务
/etc/init.d/rpcbind start /usr/sbin/rpcinfo -- 查看NFS服务注册信息的
- rpcinfo -p localhost
program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper
- /etc/init.d/nfs start
Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS mountd: [ OK ] Starting NFS daemon: [ OK ] Starting RPC idmapd: [ OK ]
- rpcinfo -p localhost
program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100011 1 udp 875 rquotad 100011 2 udp 875 rquotad 100011 1 tcp 875 rquotad 100011 2 tcp 875 rquotad 100005 1 udp 25565 mountd 100005 1 tcp 41264 mountd 100005 2 udp 9511 mountd 100005 2 tcp 6586 mountd 100005 3 udp 7479 mountd 100005 3 tcp 62974 mountd 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 2 tcp 2049 nfs_acl 100227 3 tcp 2049 nfs_acl 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 2 udp 2049 nfs_acl 100227 3 udp 2049 nfs_acl 100021 1 udp 10753 nlockmgr 100021 3 udp 10753 nlockmgr 100021 4 udp 10753 nlockmgr 100021 1 tcp 27628 nlockmgr 100021 3 tcp 27628 nlockmgr 100021 4 tcp 27628 nlockmgr
- 设置开机自启动
chkconfig rpcbind on chkconfig nfs on
- 检查NFS服务配置,以及本地测试挂载
showmount -e localhost
Export list for localhost: /data 172.16.1.0/24
mount -t nfs 172.16.1.31:/data /mnt
df -h
Filesystem Size Used Avail Use% Mounted on /dev/sda3 8.8G 1.7G 6.7G 21% / tmpfs 238M 0 238M 0% /dev/shm /dev/sda1 190M 40M 141M 22% /boot 172.16.1.31:/data 8.8G 1.7G 6.7G 21% /mnt [root@nfs01 ~]# cd /mnt [root@nfs01 mnt]# echo "momoda" >test.txt [root@nfs01 mnt]# ll -rw-r--r-- 1 nfsnobody nfsnobody 7 Aug 31 10:56 test.txt [root@nfs01 mnt]# cd /data [root@nfs01 data]# cat test.txt momoda
客户端
- 检查NFS RPC服务软件有没有安装
rpm -qa|grep nfs rpm -qa|grep rpc
*安装nfs与rpc服务软件
yum install -y nfs-utils rpcbind
- 检测是否存在共享目录,进行共享目录挂载
showmount -e 172.16.1.31 mount -t nfs 172.16.1.31:/data /mnt df -h
说明:进行文件创建或删除测试
NFS拓展
指定NFS客户端地址的配置详细说明
客户端地址 | 具体地址 | 说明 |
---|---|---|
授权单一客户端访问NFS | 10.0.0.30 | 一般情况,生产环境中国此配置不多 |
授权整个网段访问NFS | 10.0.0.0/24 | 期中的/24等同于255.255.255.0,指定网段为生产环境中最常见的配置,配置简单,维护方便 |
授权整个网段课访问NFS | 10.0.0.* | 指定网段的另外写法(不推荐) |
授权某个域名客户端访问 | nfs.lcx.com | 此方法生产环境一般情况不常用 |
授权整个域名客户端访问 | *.lcx.com | 此方法生产环境不常用 |
企业生产场景NFS配置实例
常用格式说明 | 要共享的目录,客户端的ip或ip段 |
---|---|
配置一 | /data 10.0.0.0/24(rw,sync)说明:允许客户端读写,并且数据同步写入到服务端的硬盘中 |
配置二 | /data 10.0.0.0/24(rw,sync,all_squash,anonuld=2000,anongid=2000)允许客户端读写,并且数据同步写到服务端的磁盘里,并且指定客户端的用户UID和GID。早起生产环境的一种配置,适合多客户端共享一个NFS服务单目录,如果所有服务器的nfsnobody账户UID都是65534,则本例没什么必要。早起(centos5.5)的系统默认情况下nfsnobody的UID不一定是65534,此时如果这些服务器共享一个NFS目录,就会出现访问权限问题 |
配置三 | /home/lcx 10.0.0.0/24(ro)只读共享:例如生产环境中,开发人员有查看生产服务器日志的需求,但又不希望给开发人员其他权限,那么就可以给开发提供从某个测试服务器NFS客户端上查看某个生产服务器的日志目录的权限,当然这不是唯一的方法,例如可以吧程序记录的日志发送到测试服务器供开发查看或者通过收集日志等其他方式呈现 |