centos7下NFS使用与配置学习记录

66次阅读
没有评论

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

缘由

最近学习docker 需要部署多个节点,要求挂载配置和日志写入同一个地方,所以就学习了NFS的搭建,在此记录一下

开始

系统 角色 IP
centos 7 NFS服务器端 192.168.10.150
centos 7 NFS客户端 192.168.10.151

先决条件

  1. 系统centos 7
  2. 服务器之间防火墙开放且相互信任 IP
  3. 关闭selinux

服务端部署

当前统一使用 centos 7.6

安装NFS服务nfs-untils和rpcbind
yum install nfs-utils rpcbind -y
启动rpcbind服务(一定要先启动rpcbind服务再启动nfs服务)

查看rpcbind服务状态

systemctl status rpcbind.service

启动rpcbind服务

systemctl start rpcbind.service

查看rpc

[root@service ~]# lsof -i :111
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd    1 root   33u  IPv6  25136      0t0  TCP *:sunrpc (LISTEN)
systemd    1 root   38u  IPv4  25137      0t0  TCP *:sunrpc (LISTEN)
rpcbind 9227  rpc    4u  IPv6  25136      0t0  TCP *:sunrpc (LISTEN)
rpcbind 9227  rpc    5u  IPv4  25137      0t0  TCP *:sunrpc (LISTEN)
rpcbind 9227  rpc    8u  IPv4  33497      0t0  UDP *:sunrpc 
rpcbind 9227  rpc   10u  IPv6  33499      0t0  UDP *:sunrpc 
[root@service ~]# netstat -lntup|grep 
rpcbindudp     0      0 0.0.0.0:922             0.0.0.0:*                    9227/rpcbind        
udp        0      0 0.0.0.0:111             0.0.0.0:*                 9227/rpcbind        
udp6        0      0 :::922                  :::*                 9227/rpcbind        
udp6        0      0 :::111                  :::*                9227/rpcbind

查看nfs服务向rpc注册的端 口信息

[root@service ~]# 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

把rpcbind另入开机自启动

[root@service ~]# systemctl enable rpcbind.service
[root@service ~]# systemctl list-unit-files|grep enabled|grep rpcbind
rpcbind.socket                 enabled
启动NFS服务并查看其状态
[root@service ~]# systemctl start nfs.service
[root@service ~]# systemctl status nfs.service
把NFS服务加入开机自启动并查看其状态
[root@service ~]# systemctl enable nfs.service
[root@service ~]# systemctl list-unit-files|grep nfs
授权nfsnobody于/data/bbs让客户端挂载后可写可读
[root@service /]# chown nfsnobody:nfsnobody /data/bbs
创建测试目录及文件
[root@service ~]# mkdir /data/bbs -p
[root@service ~]# mkdir /data/bbs/test.txt
配置NFS服务的export文件
[root@service ~]# echo "/data/bbs/ 192.168.10.1/24(rw,sync,root_squash)">>/etc/exports
重新加载nfs配置文件
[root@service ~]# exportfs -rv
exporting 192.168.10.1/24:/data/bbs
exportfs 命令介绍

exportfs:NFS服务端发布共享控制命令。
-r:表示重新刷新共享。
-a:表示将配置文件/etc/exports中的所有定义共享发布出去。
-v:显示确认共享设置。
-u:表示不发布共享。

查看nfs服务器挂载情况
[root@service ~]# showmount -e localhost
Export list for localhost:
/data/bbs 192.168.10.1/24
相关参数介绍
ro:目录只读
rw:目录读写
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
async:将数据先保存在内存缓冲区中,必要时才写入磁盘
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)
no_all_squash:与all_squash取反(默认设置)
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)
no_root_squash:与rootsquash取反
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户

到此服务端设置完成

下面进行客户端设置

安装NFS服务nfs-untils和rpcbind
[root@localhost ~]# yum install nfs-utils rpcbind
把rpcbind加入开机自启动
bbs]# systemctl enable rpcbind.service
创建测试目录文件
[root@localhost ~]# mkdir /data/bbs/ -p
扫描NFS服务器的文件共享列表
[root@localhost bbs]# showmount -e 192.168.10.150
Export list for 192.168.10.150:
/data/bbs 192.168.10.1/24
把服务器的目录挂载到客户端 的目录下
[root@localhost ~]# mount -t nfs -o noexec,nosuid,nodev,rw,rsize=65536,wsize=65536 192.168.10.150:/data/bbs /data/bbs
[root@localhost ~]# df -h
Filesystem                Size  Used Avail Use% Mounted on
/dev/sda3                  18G 1004M   17G   6% /
devtmpfs                  479M     0  479M   0% /dev
tmpfs                    489M     0  489M   0% /dev/shm
tmpfs                     489M  6.8M  482M   2% /run
tmpfs                    489M     0  489M   0% /sys/fs/cgroup
/dev/sda1                  497M  112M  385M  23% /boot
tmpfs                    98M     0   98M   0% /run/user/0
192.168.10.150:/data/bbs   18G 1006M   17G   6% /data/bbs
开机自动挂载NFS共享目录
[root@localhost ~]# chmod +x /etc/rc.d/rc.local     #centos7需要给rc.local赋予执行权限后,rc.local文件才能生效
[root@localhost ~]# echo "mount -t nfs -o noexec,nosuid,nodev,rw,rsize=65536,wsize=65536 192.168.10.150:/data/bbs /data/bbs">>/etc/rc.local
[root@localhost ~]# cat /etc/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

mount -t nfs -o noexec,nosuid,nodev,rw,rsize=65536,wsize=65536 192.168.10.150:/data/bbs /data/bbs

学习资料

资料1

正文完
 0
Eric chan
版权声明:本站原创文章,由 Eric chan 于2021-07-29发表,共计3703字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。