阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 下NFS服务搭建与配置

151次阅读
没有评论

共计 7277 个字符,预计需要花费 19 分钟才能阅读完成。

启动 NFS SERVER 之前,首先要启动 RPC 服务(CentOS5.8 下为 portmap 服务,CentOS6.6 下为 rpcbind 服务,下同),否则 NFS SERVER 就无法向 RPC 服务注册了。另外,如果 RPC 服务重新启动,原来已经注册好的 NFS 端口数据就会丢失,因此,此时 RPC 服务管理的 NFS 程序也需要重新启动以重新向 RPC 注册。要特别注意的是,一般修改 NFS 配置文件后,是不需要重启 NFS 的,直接在命令行执行 /etc/init.d/nfs reload 或 exportfs -rv 即可使修改的 /etc/exports 生效。

1. NFS 服务端搭建

1.1. 安装 NFS 和 rpc【服务端、客户端都安装】

[root@backup ~]# rpm -qa nfs-utils rpcbind
[root@backup ~]# yum install nfs-utils rpcbind -y    #nfs 需要的安装包
[root@backup ~]# rpm -qa nfs-utils rpcbind
nfs-utils-1.2.3-64.el6.x86_64
rpcbind-0.2.0-11.el6_7.x86_64

1.2. 查看用户信息

[root@nfs01 ~]# tail /etc/passwd
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
oldboy:x:500:500::/home/oldboy:/bin/bash
rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin        #yum 安装 rpc 服务时创建的
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin        #yum 安装 rpc 服务时创建的
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin    #yum 安装 nfs 服务时创建的

1.3. 配置 exports

[root@nfs01 ~]# mkdir /data
[root@nfs01 ~]# ll -d /data/
drwxr-xr-x. 3 root root 4096 Apr 11 09:49 /data/
[root@nfs01 ~]# chown -R nfsnobody.nfsnobody /data/   
[root@nfs01 ~]# ll -d /data/                     
drwxr-xr-x. 3 nfsnobody nfsnobody 4096 Apr 11 09:49 /data/
[root@nfs01 ~]# cat /etc/exports   
# share /data for web created by zhangliang at 2016-05-21
/data  172.16.1.0/24(rw,sync)
#172.16.1.0/24(rw,sync) 没有空格

1.4. 启动 rpcbind 服务

[root@nfs01 ~]# /etc/init.d/rpcbind start   
[root@nfs01 ~]# netstat -anp | grep ‘rpc’   
tcp        0      0 0.0.0.0:111                0.0.0.0:*                  LISTEN      1346/rpcbind       
tcp        0      0 0.0.0.0:38420              0.0.0.0:*                  LISTEN      1368/rpc.statd     
tcp        0      0 :::13894                    :::*                        LISTEN      1368/rpc.statd     
tcp        0      0 :::111                      :::*                        LISTEN      1346/rpcbind       
udp        0      0 0.0.0.0:673                0.0.0.0:*                              1346/rpcbind       
udp        0      0 127.0.0.1:703              0.0.0.0:*                              1368/rpc.statd     
udp        0      0 0.0.0.0:15306              0.0.0.0:*                              1368/rpc.statd     
udp        0      0 0.0.0.0:111                0.0.0.0:*                              1346/rpcbind       
udp        0      0 :::673                      :::*                                    1346/rpcbind       
udp        0      0 :::50537                    :::*                                    1368/rpc.statd     
udp        0      0 :::111                      :::*                                    1346/rpcbind       
unix  2      [ACC]    STREAM    LISTENING    10120  1346/rpcbind        /var/run/rpcbind.sock
unix  2      []        DGRAM                    10207  1368/rpc.statd     
[root@nfs01 ~]# 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
    100024    1  udp  15306  status
    100024    1  tcp  38420  status
#### 由上可知,暂时只有自己的端口服务,没有其他的

1.5. 启动 NFS

[root@nfs01 ~]# /etc/init.d/nfs start   
Starting NFS services:                                    [OK]
Starting NFS quotas:                                      [OK]
Starting NFS mountd:                                      [OK]
Starting NFS daemon:                                      [OK]
正在启动 RPC idmapd:[确定]
[root@nfs01 ~]# 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
    100024    1  udp  15306  status
    100024    1  tcp  38420  status
    100011    1  udp    875  rquotad
    100011    2  udp    875  rquotad
    100011    1  tcp    875  rquotad
    100011    2  tcp    875  rquotad
    100005    1  udp  11473  mountd
    100005    1  tcp  62369  mountd
    100005    2  udp  17528  mountd
    100005    2  tcp  47308  mountd
    100005    3  udp  11312  mountd
    100005    3  tcp  51724  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  25181  nlockmgr
    100021    3  udp  25181  nlockmgr
    100021    4  udp  25181  nlockmgr
    100021    1  tcp  20093  nlockmgr
    100021    3  tcp  20093  nlockmgr
    100021    4  tcp  20093  nlockmgr

1.6. 加入开始自启动

1.6.1. 使用 /etc/rc.local

[root@nfs01 ~]# tail /etc/rc.local   
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

# start rpc and nfs server
/etc/init.d/rpcbind start
/etc/init.d/nfs start

1.6.2. 使用 chkconfig

[root@nfs01 ~]# chkconfig rpcbind on   
[root@nfs01 ~]# chkconfig nfs on   
[root@nfs01 ~]# ls /etc/rc.d/rc3.d/* | grep -E ‘rpc|nfs’ 
/etc/rc.d/rc3.d/K61nfs-rdma
/etc/rc.d/rc3.d/K69rpcsvcgssd
/etc/rc.d/rc3.d/S13rpcbind
/etc/rc.d/rc3.d/S14nfslock
/etc/rc.d/rc3.d/S19rpcgssd
/etc/rc.d/rc3.d/S30nfs

查看 rpc 服务和 NFS 服务的开机启动顺序

[root@nfs01 ~]# head /etc/init.d/rpcbind
#! /bin/sh
#
# rpcbind      Start/Stop RPCbind
#
# chkconfig: 2345 13 87                    #运行级别  开机顺序  关机顺序【其中 2345 指的是 运行级别】
# description: The rpcbind utility is a server that converts RPC program \
#              numbers into universal addresses. It must be running on the \
#              host to be able to make RPC calls on a server on that machine.
#
# processname: rpcbind
[root@nfs01 ~]# head /etc/init.d/nfs   
#!/bin/sh
#
# nfs          This shell script takes care of starting and stopping
#              the NFS services.
#
# chkconfig: – 30 60
# description: NFS is a popular protocol for file sharing across networks.
#              This service provides NFS server functionality, which is \
#              configured via the /etc/exports file.
# probe: true

1.7. 查看有哪些参数生效

[root@nfs01 ~]# cat /var/lib/nfs/etab
/data  172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534,sec=sys,rw,root_squash,no_all_squash)

1.8. 检查是否成功

[root@nfs01 ~]# showmount -e 172.16.1.31   
Export list for 172.16.1.31:
/data 172.16.1.0/24

2. NFS 客户端配置

2.1. 开始 rpcbind 服务

[root@web01 ~]# /etc/init.d/rpcbind start       
Starting rpcbind:                                          [OK]

2.2. 检查共享信息

[root@web01 ~]# showmount -e 172.16.1.31   
Export list for 172.16.1.31:
/data 172.16.1.0/24

2.3. NFS 挂载

[root@web01 ~]# mount -t nfs 172.16.1.31:/data /mnt   

2.4. 查看挂载信息

[root@web01 ~]# df -h        #有时可能会被卡主
Filesystem        Size  Used Avail Use% Mounted on
/dev/sda3          8.8G  1.5G  6.9G  18% /
tmpfs              495M    0  495M  0% /dev/shm
/dev/sda1          190M  40M  141M  23% /boot
172.16.1.31:/data  8.8G  1.5G  6.9G  18% /mnt

或者

[root@web01 ~]# cat /proc/mounts                    # 优先使用,监控时使用该命令
rootfs / rootfs rw 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
devtmpfs /dev devtmpfs rw,relatime,size=490920k,nr_inodes=122730,mode=755 0 0
devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /dev/shm tmpfs rw,relatime 0 0
/dev/sda3 / ext4 rw,relatime,barrier=1,data=ordered 0 0
/proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0
/dev/sda1 /boot ext4 rw,relatime,barrier=1,data=ordered 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
172.16.1.31:/data/ /mnt nfs4 rw,relatime,vers=4,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.8,minorversion=0,local_lock=none,addr=172.16.1.31 0 0

2.5. 测试

在客户端和服务端之间测试

1、客户端创建文件并且输入数据,在服务端是否可以查看

2、服务端创建文件并且输入数据,在客户端是否可以查看

3、在服务端删除客户端创建的文件

4、在客户端删除服务端创建的文件

2.6. 加入开机自启动

[root@web01 mnt]# tail -3 /etc/rc.local   
# mount nfs
mount -t nfs 172.16.1.31:/data /mnt

基于 CentOS 7 实现的 NFS  https://www.linuxidc.com/Linux/2018-06/153007.htm
Ubuntu 下 NFS 服务器的安装与配置  https://www.linuxidc.com/Linux/2018-03/151384.htm
CentOS 7.4 下 NFS 存储服务部署  https://www.linuxidc.com/Linux/2017-12/149493.htm
Linux 的 NFS 配置  https://www.linuxidc.com/Linux/2017-04/143135.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计7277字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中