NFS网络文件系统

一、基础概念

NFS:Network File System 网络文件系统,Linux/Unix系统之间共享文件的一种协议
NFS 的客户端主要为Linux
支持多节点同时挂载以及并发写入

提供文件共享服务
为集群中的 Web Server 配置后端存储

1、安装NFS服务,需要安装两个软件,分别是:RPC主程序:rpcbind
NFS 其实可以被视为一个 RPC 服务,因为启动任何一个 RPC 服务之前,我们都需要做好 port 的对应 (mapping) 的工作才行,这个工作其实就是『 rpcbind 』这个服务所负责的!也就是说, 在启动任何一个 RPC 服务之前,我们都需要启动 rpcbind 才行! (在 CentOS 5.x 以前这个软件称为 portmap,在 CentOS 6.x 之后才称为 rpcbind 的!)。NFS主程序:nfs-utils
就是提供 rpc.nfsd 及 rpc.mountd 这两个 NFS daemons 与其他相关 documents 与说明文件、执行文件等的软件!这个就是 NFS 服务所需要的主要软件。

2、NFS的相关文件:主要配置文件:/etc/exports
    这是 NFS 的主要配置文件了。该文件是空白的,有的系统可能不存在这个文件,主要手动建立。NFS的配置一般只在这个文件中配置即可。NFS 文件系统维护指令:/usr/sbin/exportfs
    这个是维护 NFS 分享资源的指令,可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸除或重新分享。
    分享资源的登录档:/var/lib/nfs/*tab
    在 NFS 服务器的登录文件都放置到 /var/lib/nfs/ 目录里面,在该目录下有两个比较重要的登录档, 一个是 etab ,主要记录了 NFS 所分享出来的目录的完整权限设定值;另一个 xtab 则记录曾经链接到此 NFS 服务器的相关客户端数据。
    客户端查询服务器分享资源的指令:/usr/sbin/showmount
    这是另一个重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。showmount 可以用来察看 NFS 分享出来的目录资源。

查看状态nfsstat

nfsstat
Server rpc stats:
calls      badcalls   badclnt    badauth    xdrcall
0          0          0          0          0

修改默认端口2049

sudo vim /etc/services

nfs             12049/tcp        nfsd shilp      # Network File System
nfs             12049/udp        nfsd shilp      # Network File System
nfs             12049/sctp       nfsd shilp      # Network File System

重启nfs-server,查看端口号修改成功

rpcinfo -p

rpcinfo -p
   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  56175  status
    100024    1   tcp  47397  status
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp  12049  nfs
    100003    4   tcp  12049  nfs
    100227    3   tcp  12049  nfs_acl
    100003    3   udp  12049  nfs
    100003    4   udp  12049  nfs
    100227    3   udp  12049  nfs_acl
    100021    1   udp  39908  nlockmgr
    100021    3   udp  39908  nlockmgr
    100021    4   udp  39908  nlockmgr
    100021    1   tcp  33948  nlockmgr
    100021    3   tcp  33948  nlockmgr
    100021    4   tcp  33948  nlockmgr

二、配置过程

1、关闭防火墙

nfs 192.168.122.241      web1 192.168.122.150    web2 192.168.122.8      

sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
setenforce 0
systemctl stop firewalld
systemctl disable firewalld

2、nfs(server端)

centos版:

##安装主程序
yum -y install nfs-utils rpcbind

##配置共享可挂载目录
vim /etc/exports
/webdata              192.168.122.0/24(rw) (122这个网段)

##重启nfs
systemctl start nfs-server
systemctl enable nfs-server

##将配置文件中的目录全部重新export一次!无需重启服务
sudo exportfs -rv

sudo exportfs -vv

/webdata 192.168.122.0/24(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash 

注:/etc/exports格式如下

<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]

客户端是指网络中可以访问这个NFS输出目录的计算机客户端常用的指定方式:

指定ip地址的主机:192.168.0.200

指定子网中的所有主机:192.168.0.0/24   192.168.0.0/255.255.255.0

指定域名的主机:david.bsmart.cn

指定域中的所有主机:.bsmart.cn

所有主机:

选项用来设置输出目录的访问权限、用户映射等。 NFS主要有3类选项:

- ro: 只读

- rw: 读写(还需要配置共享目录有读写权限)

- sync: 数据同步写入NFS服务器端的硬盘中

- async: 数据先写到缓存区,再写到磁盘里中

- root_squash: NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份

- no_root_squash: NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的

- all_squash: 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限

- anonuid:指定匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定 - anongid: 指定匿名用户的GID值

ubantu版:

sudo apt-get install nfs-kernel-server
sudo /etc/init.d/rpcbind restart  #apt会自动安装nfs-common(客户端)、rpcbind等13个软件包
sudo /etc/init.d/nfs-kernel-server restart  重启nfs服务

3、web1 客户端

yum -y install nfs-utils httpd
systemctl start httpd
systemctl enable httpd

1. 查看存储端可用目录

showmount -e 192.168.122.241    // 查询NFS服务器可用目录
Export list for 192.168.122.241:
/webdata 192.168.122.0/24

2. 手动挂载

mount -t nfs 192.168.122.241:/webdata /var/www/html/umount /var/www/html/

3. 自动挂载到网站主目录

vim /etc/fstab
192.168.122.241:/webdata    /var/www/html   nfs   defaults,_netdev,nfsvers=3  0 0
加上_netdev意思是这个是网络设备,在网络服务启动后才挂载
nfsvers=3 -- 指定使用那个版本的NFS协议

方法二:指定传输速率(限定传输时一次读写的数据大小)
mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.14.223:/nfs_root /mnt

跟踪了fs/nfs/nfsroot.c的代码,发现在nfs作为根文件系统时,参数可以直接写在“nfsroot=”后面,每个参数用逗号隔开,如:
nfsroot=192.168.10.1:/rootfs,proto=tcp,nfsvers=3,nolock

mount -a 

4. 查看挂载

df  -Th
192.168.122.152:/webdata 7923136 692416 6821568 10% /var/www/html

ls /var/www/html/
index.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少安在线锤人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值