如何在centos6和centos7上部署nfs共享服务器和客户端

时间:2022-03-28 06:06:24

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 检索挂载语法,这样才能实现永久挂载;

现在亲可以试着访问服务器端此文件夹下的文件了