NFS 安装,设置,选项

14.1 NFS介绍

NFS用于在网络上共享存储mysql

  • NFS是Network File System的缩写
  • NFS最先由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本
  • NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写。
  • NFS应用场景是:A,B,C三台机器上须要保证被访问到的文件是同样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致

NFS原理图sql

14.2 NFS服务端安装配置

服务端与客户端都须要安装nfs-util包vim

[root@axiang-02 ~]# yum install -y nfs-utils
[root@axiang-03 ~]# yum install -y nfs-utils

新增配置文件(原来没有)网络

vim /etc/exports
加入一行:
/home/nfstestdir 192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
  • 第一段为定义共享的目录
  • 第二段为容许访问的IP或IP段
  • 第三段即括号内容为权限选项

服务端启动app

[root@axiang-02 ~]# mkdir /home/nfstestdir
[root@axiang-02 ~]# chmod 777 !$  //方便实验
chmod 777 /home/nfstestdir

[root@axiang-02 ~]# systemctl start rpcbind
[root@axiang-02 ~]# systemctl start nfs
[root@axiang-02 ~]# systemctl enable rpcbind  //开机启动
[root@axiang-02 ~]# systemctl enable nfs    //开机启动
[root@axiang-02 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd   //111端口即rpc监听端口

14.3 NFS配置选项

  • rw 读写
  • ro 只读
  • sync 同步模式,内存数据实时写入磁盘
  • async 非同步模式
  • no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大
  • root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户
  • all_squash 客户端上全部用户在使用NFS共享目录时都被限定为一个普通用户
  • anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid

客户端挂载dom

安装完不用设置,须要关闭防火墙。即便放行111端口。因此建议先把两边防火墙关掉。便可使用async

[root@axiang-02 ~]# iptables -F 或者 systemctl stop firewalld
[root@axiang-03 ~]# iptables -F 或者 systemctl stop firewalld
[root@axiang-03 ~]# showmount -e 10.1.1.8
Export list for 10.1.1.8:
/home/nfstestdir 10.1.1.0/24
[root@axiang-03 ~]# mount -t nfs 10.1.1.8:/home/nfstestdir /mnt
[root@axiang-03 ~]# df -h
10.1.1.8:/home/nfstestdir   18G  7.1G   11G   40% /mnt
[root@axiang-03 ~]# cd /mnt
[root@axiang-03 mnt]# touch 111.txt
[root@axiang-03 mnt]# ll
总用量 0
-rw-r--r-- 1 mysql mysql 0 8月  23 15:49 111.txt

成功共享存储。且限定用户id为1000tcp

[root@axiang-02 ~]# ll /home/nfstestdir/
总用量 0
-rw-r--r-- 1 mysql mysql 0 8月  23 15:49 111.txt
[root@axiang-02 ~]# id mysql
uid=1000(mysql) gid=1000(mysql) 组=1000(mysql)

14.4 exportfs命令

  • exprotfs能够网络广播nfs下的磁盘操做

经常使用选项ui

  • -a 所有挂载或者所有卸载
  • -r 从新挂载
  • -u 卸载某一个目录
  • -v 显示共享目录

须要操做在服务端上code

[root@axiang-02 ~]# vim /etc/exports
再加入一行
/tmp 10.1.1.9(rw,sync,no_root_squash)   //这里不限制root用户

[root@axiang-02 ~]# exportfs -arv 
exporting 10.1.1.9:/tmp
exporting 10.1.1.0/24:/home/nfstestdir

  • exportfs -arv 不用重启nfs服务就能够生效

客户端

[root@axiang-03 ~]# showmount -e 10.1.1.8
Export list for 10.1.1.8:
/home/nfstestdir 10.1.1.0/24
/tmp             10.1.1.9
[root@axiang-03 ~]# mount -t nfs 10.1.1.8:/tmp/ /mnt
[root@axiang-03 ~]# vim /mnt/1
[root@axiang-03 ~]# ls -l !$
ls -l /mnt/1
-rw-r--r-- 1 root root 25 8月  23 16:15 /mnt/1

14.5 NFS客户端问题

客户端文件属主属组nobody

问题:客户端挂载共享目录后,无论是root用户仍是普通用户,建立新文件时属主、属组为nobody。

解决方法1:因为NFS 4版本会有该问题。客户端挂载时加上 -o nfsvers=3 指定使用版本3模式便可

[root@axiang-03 ~]# mount -t nfs -o nfsvers=3 10.1.1.8:/tmp/ /mnt

解决方法2:客户端和服务端vim /etc/idmapd.conf,把“#Domain = local.domain.edu” 改成 “Domain = xxx.com” (这里的xxx.com,随意定义吧),而后再重启rpcidmapd服务。CentOS7为重启rpcbind服务

相关文章
相关标签/搜索