NFS.

 第一章 NFS介绍

1.1 共享存储服务概念

一,# NFS是Network File System的缩写,中文意思是网络文件系统,
它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。
用于中小型企业: 实现数据共享存储

二,#存储服务的种类:
1,FTP(文件传输协议)实现共享存储
运维01 服务器A 服务器B FTP服务器 运维02 服务器C 服务器D
应用举例:中小型电商公司(游戏点卡 游戏币 道具 Q币 充值话费) --- 财务对账信息(数据库) --- 对账文件 --- FTP服务器

2,samba windows--linux之间数据传输 Linux部署samba
3,NFS linux--linux之间数据传输
以上3种服务用于中小型企业:实现数据共享存储


三,对于用户量较大的情况,用分布式存储:

应用场景:用于门户网站: 一个用户 -- 存储服务器 上万个用户 -- 存储服务器 利用分布式存储 : Moosefs(mfs) 比较落伍,初学学习比较简单 GlusterFS FastDFS 企业应用较多

1.2 NFS共享存储服务作用

 

 

复制代码
# 将数据存储到一台服务器上,实现数据统一一致,共享访问
# NFS存储服务器中主要存储哪些信息:用户上传的图片 音频 视频 附件等信息
# NFS服务是分为服务端和客户端
  存储服务器:NFS服务端   网站web服务器:NFS客户端

# 实现共享存储好处:
01.实现数据统一一致
02.节省网站磁盘资源
03.节省网站访问带宽
复制代码

1.3 NFS共享存储服务工作原理

 

 

a 部署好一台存储服务器,设置好存储目录
b 客户端利用网络挂载的方式进行挂载存储目录
c 将数据存储在客户端本地挂载点目录==存储到存储服务器中

1.4 NFS服务重要概念说明

1.41 NFS服务的执行过程或工作流程图

 

 

1.42 NFS共享文件系统RPC服务由来

# NFS服务启动进程和端口过程,需要由rpc服务统一管理

 

第二章  NFS服务部署配置过程

2.1 NFS服务端部署流程

# 第一步:进行软件服务安装
[root@nfs01 ~]# yum install -y nfs-utils rpcbind [root@nfs01 ~]# rpm -qa|egrep "nfs-utils|rpcbind" # 第二步:编写nfs服务配置文件 [root@nfs01 ~]# vim /etc/exports
/data 192.168.81.0/24(rw,sync)
# /data 表示数据存储的目录; 192.168.81.0/24 表示允许哪个网段的主机可以挂载到我这台共享服务器上;
(rw,rsync) ---> rw 表示共享目录是可读可写的,rsync 是一个同步参数; 192.168.81.0/24 和 (rw,sync) 之间不能有空格
# 说明:配置文件信息 指定共享目录 指定共享目录访问控制网段或主机信息(共享目录参数信息) # 第三步:创建nfs服务共享目录,并且进行授权 [root@nfs01 ~]# mkdir /data [root@nfs01 ~]# chown -R /data/ nfsnobody.nfsnobody

# 第四步:启动nfs和rpc服务并设置开机启动
[root@nfs01 ~]# systemctl start rpcbind# 要先启动 rpc 这个“中介”服务

[root@nfs01 ~]# systemctl enable rpcbind
[root@nfs01 ~]# systemctl start nfs # 再启动 nfs 服务
[root@nfs01 ~]# systemctl enable nfs

# 第五步:进行服务配置检查
# 检查 nfs 是否向 rpc 服务注册 [root@nfs01 ~]# rpcinfo -p 192.16.81.165


# 检查是否存在可用的共享目录 [root@nfs01 ~]# showmount -e 192.168.81.165 Export list for 192.168.81.165: /data 192.168.81.0/24
复制代码

2.2 NFS客户端部署流程

复制代码
# 第一步:进行软件服务安装
[root@web01 ~]# yum install -y nfs-utils

# 第二步:进行共享目录挂载
[root@web01 ~]# mount -t nfs 192.168.81.165:/data /mnt
# -t nfs 表示挂载 nfs 文件系统类型;192.168.81.162:/data->这个服务器上的/data目录;/mnt表示挂载到/mnt 目录
# 第三步:设置开机自动挂载
注:一般不将nfs挂载信息写入fstab,因为nfs依赖于rpc服务,rpc服务启动晚于fatab时会出错,可以将挂载信息写入/etc/rc.local中
[root@web01 ~]# vim /etc/rc.local
# mount nfs_data
mount -t nfs 192.168.81.161:/data/www/image/ /mnt
# 第四步:进行共享存储测试 
说明:在nfs01的mnt目录中创建的数据,在nfs和web02服务器上都可以看到,即已经实现数据共享存储 客户端上不需要启动NFS服务

# 共享文件系统的工作原理(服务端3步 客户端3步)
# 服务端做了三件事:
1. 启动rpcbind服务,创建中介 2. 启动nfs服务,创建“房源”信息 3. 将“房源”信息向中介进行注册,在nfs服务稳定运行过程中,“房源”信息只注册一次
# 客户端做了三件事:
1. 启动rpcbind服务(可选) 2. 确保客户端和服务端网络连接建立成功 3. 执行mount命令进行网络存储挂载

2.3 NFS服务挂载不上排查方法

服务端检查:

1. 检查nfs进程信息是否注册
rpcinfo -p localhost/192.168.81.165
问题原因:服务启动顺序不对,没有启动nfs服务
2. 检查有没有可用存储目录 showmount -e 192.168.81.162 问题原因: 配置文件编写有问题,重启nfs服务
3. 在服务端进行挂载测试 是否能够在存储目录中创建或删除数据

客户端测试:

1. 检查nfs进程信息是否注册
rpcinfo -p localhost/192.168.81.162
问题原因:服务启动顺序不对,没有启动nfs服务


2. 检查有没有可用存储目录 showmount -e 192.168.81.162 问题原因: 配置文件编写有问题,重启nfs服务 网络问题 ping 192.168.81.162 telnet 192.168.81.162

 第三章 配置文件说明

3.1 NFS共享存储服务配置说明

3.11 NFS共享文件系统配置文件格式说明:

复制代码
# NFS共享目录:
    为NFS服务器端要共享的实际目录,要用绝对路径,如(/data)。
    注意共享目录的本地权限,如果需要读写共享,一定要让本地目录可以被NFS客户端的用户(nfsnobody)读写。

# NFS客户端地址:
    为NFS服务器端授权的可访问共享目录的NFS客户端地址,可以为单独的IP地址或主机名、域名等,也可以为整个网段地址。
    还可以用“*”来匹配所有客户端服务器,这里所谓的客户端一般来说是前端的业务的业务服务器,例如:web服务。具体说明见表10-3
    权限参数集
    对授权的NFS客户端的访问权限设置。参数具体说明见后文。
    nfs权限(共享目录【借给你手机】) nfs配置的/etc/exports /data 172.16.1.0/24(rw)
    本地文件系统权限(【手机密码不告诉你】) 挂载目录的权限rwxr-xr-x root root /data
复制代码

3.12 NFS共享配置文件语法格式

3.13 同步和异步(sync 和 async)

3.14 NFS客户端地址配置说明

客户端地址 具体地址 说明
授权单一客户端访问NFS 192.168.81.161 生产环境用的不多
授权整个网段可访问NFS 192.168.81.1/24 指定网段,生产环境较常用,维护方便


 

3.14  NFS共享文件系统配置文件案例说明

复制代码
# 配置例一    /data 192.168.81.0/24(rw,sync)
说明:允许客户端读写,并且数据同步写入到服务器端的磁盘里
      注意:24和“(”之间不能有空格

# 配置例二    /data 192.168.81.0/24(rw,sync,all_squash,anonuid=2000,anongid=2000)
说明:允许客户端读写,并且数据同步写到服务器端的磁盘里,并且指定客户端的用户UID和GID。 早期生产环境的一种配置,适合多客户端共享一个NFS服务单目录, 如果所有服务器的nfsnobody账户UID都是65534,则本例没什么必要了。 早期centos5.5的系统默认情况下nfsnobody的UID不一定是65534,此时如果这些服务器共享一个NFS目录, 就会出现访问权限问题。 # 配置例三 /home/nsthink 192.168.81.0/24(ro) <-- 是为开发人员想查看线数据准备配置方式 说明:只读共享 用途:例如在生产环境中,开发人员有查看生产服务器日志的需求,但又不希望给开发生产服务器的权限, 那么就可以给开发提供从某个测试服务器NFS客户端上查看某个生产服务器的日志目录(NFS共享)的权限, 当然这不是唯一的方法, 例如可以把程序记录的日志发送到测试服务器供开发查看或者通过收集日志等其它方式展现
复制代码

 

3.15  NFS共享文件系统配置文件参数设置

NFS配置权限设置常用参数说明图:

NFS客户端访问服务端原理

NFS服务访问用户映射原理图:

 

 

3.17  NFS共享文件系统权限参数设置

# 1)NFS服务器/etc/exports设置需要开放可写入的权限,即服务器端的共享权限。
# 2)NFS服务器实际要共享的NFS目录权限具有可写入w的权限,即服务器端本地目录的安全权限。
# 3)每台机器对应存在和NFS默认配置UID的相同UID 65534的nfsnobody用户
#   (确保所有客户端的访问权限统一,否则每个机器需要同时建立相同UID的用户,并覆盖NFS的默认用户配置)

3.18 NFS共享文件系统相关重要文件说明

复制代码
   /etc/exports            # nfs服务主配置文件
    /usr/sbin/showmount     # 查看nfs服务共享目录信息
    /usr/sbin/rpcinfo       # 查看rpc服务中是否有“房源”注册信息
    /var/lib/nfs/etab       # 用于查看nfs服务默认配置信息    
    /proc/mounts            # nfs客户端mount挂载参数(可以查看默认挂载参数信息)
[root@nfs01 ~]# cat /var/lib/nfs/etab 
/data    192.168.81.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)  # () 中的内容,除了 rw 和 sync外,都表示默认配置参数
# anonuid=65534,anongid=65534 也是默认的    
    
复制代码

 

 

posted @ 2019-04-29 11:19  michaelni  阅读(151)  评论(0编辑  收藏  举报