1.简介
1.1NFS
网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS服务只能应用在Linux系统上,FTP、samba服务均支持linux和windows。
1.2工作原理
部署好NFS服务,在NFS服务端创建一个data共享目录;NFS客户端创建一个本地video目录,作为挂载点,通过mount命令实现网络挂载,将NFS服务器上的data目录挂载到本地video目录挂载点上;NFS客户端上在video目录中,增加、删除、修改数据的操作,都等价于在NFS服务端data目录中的操作。
2.环境准备
[root@nfs01 ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@nfs01 ~]# uname -r
3.10.0-327.el7.x86_64
[root@nfs01 ~]# getenforce
Disabled
[root@nfs01 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
[root@nfs01 ~]# ifconfig
eth0: flags=4163
inet 10.0.0.31 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::20c:29ff:fe7a:66a4 prefixlen 64 scopeid 0x20
ether 00:0c:29:7a:66:a4 txqueuelen 1000 (Ethernet)
RX packets 1204 bytes 327779 (320.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 111 bytes 14968 (14.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163
inet 172.16.1.31 netmask 255.255.255.0 broadcast 172.16.1.255
inet6 fe80::20c:29ff:fe7a:66ae prefixlen 64 scopeid 0x20
ether 00:0c:29:7a:66:ae txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 10 bytes 744 (744.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
3.部署NFS服务端
3.1检查是否安装NFS
[root@nfs01 ~]# rpm -qa nfs
3.2安装NFS
[root@nfs01 ~]# yum install -y nfs-utils rpcbind
3.3创建共享目录的管理用户
[root@nfs01 ~]# useradd -s /sbin/nologin -M www
[root@nfs01 ~]# id www
uid=1000(www) gid=1000(www) groups=1000(www)
3.4编写NFS配置文件
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
/data 共享目录
172.16.1.0/24 允许挂载的网段
rw 读写权限
sync 数据同步写入NFS服务端的硬盘
all_squash 所有用户都做映射
anonuid=1000,anongid=1000 NFS客户端的www用户与NFS服务端的www用户完全相同(企业中,不可能只用1台web服务器,所以需要多台web服务器同时挂载到同一个目录,防止其中的某台不能读取或写入数据)
3.5创建共享目录
[root@nfs01 ~]# mkdir /data
[root@nfs01 ~]# chown -R www.www /data/
3.6启动相关服务
[root@nfs01 ~]# systemctl start rpcbind.service 必须先启动rpcbind服务
[root@nfs01 ~]# systemctl start nfs.service
3.7本地检测
[root@nfs01 ~]# rpcinfo -p 172.16.1.31
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
100024 1 udp 46849 status
100024 1 tcp 50012 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 48689 nlockmgr
100021 3 udp 48689 nlockmgr
100021 4 udp 48689 nlockmgr
100021 1 tcp 42653 nlockmgr
100021 3 tcp 42653 nlockmgr
100021 4 tcp 42653 nlockmgr
[root@nfs01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
4.客户端部署NFS
4.1安装NFS相关服务(不需启动,只需要使用相关命令)
yum install -y nfs-utils rpcbind
4.2挂在目录
mount -t nfs 172.16.1.31:/data /mnt (/mnt只是测试,工作中需要挂载站点的相关目录)