nfs共享服务为中小型企业在存储上提供了有效的节省空间,许多大型的网站也在使用nfs,如百度和阿里等,下面结合自己所学的知识,阐述如何在centos6和centos7下配置nfs。注:除了必要的说明外,未说明的命令代表centos6和7的命令是一样的。
一、服务器端:
1、首先在服务器端禁止selinux和防火墙(测试环境下);
setenforce 0 ----临时禁止selinux;
service iptables stop ---在centos6下停防火墙,
systemctl stop firewalld -----在centos7下停防火墙;
2、下载软件包
nfs服务依赖于rpc服务,nfs服务只有在rpc服务内注册后,nfs客户端才能检测到服务器端的nfs服务端口;
rpm -qa|grep -E 'nfs-utils|rpcbind' ----使用grep-E多过滤查询是否已经存在来nfs和rpc的软件包
rpm -qa nfs-utils rpcbind ---检查系统是否已经存在来nfs和rpc的软件包,如果没有,测执行下面的下载命令;
yum -y install nfs-utils rpcbind -----使用yum源安装rpc和nfs服务;
3、启动rpc和nfs
/etc/init.d/rpcbind start ----centos6下启动rpc服务;
systemctl start rpcbind ---centos7下启动rpc服务
/etc/init.d/rpcbind status ---centos6下查看rpc服务状态;
systemctl start rpcbind ---centos7下查看rpc服务状态
rpcinfo -p localhost ----查看本机的rpc进程;
centos6下rpc的状态 注:默认情况下rpc会使用111端口
[root@h1 ~]# 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
centos7下的rpc状态
[root@hxy ~]# 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 ----在centos6下启动nfs服务
/etc/init.d/nfs status ----在centos6下查看nfs服务状态
systemctl start nfs ---在centos7下启动nfs服务
systemctl status nfs -----在centos7下查看nfs服务状态
rpcinfo -p localhost ----再次执行rpcinfo -p localhost,查看nfs在rpc中注册的端口信息;
[root@h1 ~]# 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 49695 mountd
100005 1 tcp 59877 mountd
100005 2 udp 45066 mountd
100005 2 tcp 56487 mountd
100005 3 udp 32839 mountd
100005 3 tcp 35875 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 34416 nlockmgr
100021 3 udp 34416 nlockmgr
100021 4 udp 34416 nlockmgr
100021 1 tcp 32899 nlockmgr
100021 3 tcp 32899 nlockmgr
100021 4 tcp 32899 nlockmgr
设置开机自启动nfs(此处不是必须的,根据需求自行选择是否添加该功能)
centos6下的设置
chkconfig rpcbind on;
chkconfig nfs on;
centos7下的设置
systemctl enable rpcbind;
systemctl enable nfs;
4、配置nfs权限配置文件,确定客户端访问的权限;
vi /etc/exports
/mnt/cdrom *(rw,async)
注:/mnt/cdrom 指想要共享的文件目录,*代表所有的ip都可以访问,(rw,async)代表访问者对此目录有读和写的权限,aysnc指:不同时写到内存和文件中;
exportfs -r ----使配置文件立即生效;
5、将共享目录的所有者和群组配置为nfsnobody
chown nfsnobody:nfsnobody /mnt/cdrom -R
或者将此文件夹的其他*限改为rwx
chmod o=rwx /mnt/cdrom
二、客户端的配置
1、客户端只需要安装rpc服务即可;
rpm -qa nfs-utils rpcbind
yum -y install rpcbind ---不存在rpc才执行此命令
2、查看是否能够访问服务器端的共享文件目录;
[root@hxy ~]# showmount -e 192.168.222.128
Export list for 192.168.222.128:
/mnt/cdrom *
3、将服务器端的共享目录挂载到本地目录下
mount -t nfs 192.168.222.128:/mnt/cdrom/ /mnt/cdrom/
4、查看挂载是否成功
[root@hxy ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 7.8G 1.4G 6.1G 18% /
devtmpfs 223M 0 223M 0% /dev
tmpfs 235M 0 235M 0% /dev/shm
tmpfs 235M 5.6M 229M 3% /run
tmpfs 235M 0 235M 0% /sys/fs/cgroup
/dev/sda1 976M 103M 807M 12% /boot
tmpfs 47M 0 47M 0% /run/user/0
192.168.222.128:/mnt/cdrom 918M 918M 0 100% /mnt/cdrom
此处可见,已经成功了,
注:如果想要永久挂载在本地目录下,必须将其写入/etc/fstab文件下,并执行mount -a 检索挂载语法,这样才能实现永久挂载;
现在亲可以试着访问服务器端此文件夹下的文件了