共计 3703 个字符,预计需要花费 10 分钟才能阅读完成。
缘由
最近学习docker 需要部署多个节点,要求挂载配置和日志写入同一个地方,所以就学习了NFS的搭建,在此记录一下
开始
系统 | 角色 | IP |
---|---|---|
centos 7 | NFS服务器端 | 192.168.10.150 |
centos 7 | NFS客户端 | 192.168.10.151 |
先决条件
- 系统centos 7
- 服务器之间防火墙开放且相互信任 IP
- 关闭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
学习资料
正文完