作者:George
归档:学习笔记
2018/1/24
NFS存储服务部署(上)
1.1 NFS服务介绍
1.1.1 什么是NFS?
1. NFS——Network File Systemt网络文件系统,叫称为网络共享文件系统
2. 作用:通过网络(一般为局域网)让不同主机系统之间可以共享文件
3. NFS服务和winodws系统的网络共享很相似,但NFS无法部署在windows上
4. windows与linux网络共享使用FTP、samba,它们都支持windows与linux之间共享
5. 如大型网站,还可能用到分布式文件系统,如:moosefs( mfs )、gfs、fastdfs
1.1.2 什么是文件系统?
1. 在磁盘或分区中组织管理文件的一种方式
2. 企业中:磁盘先做raid——分区——格式化(创建文件系统)——挂载使用
1.1.3 NFS在企业中的应用场景
1. 为什么要用NFS软件?
可以实现web集群中服务器数据一致性。
1. 因负载均衡服务器会将访问流量分流处理,这样不会便于用户相互之间访问
2. 服务器之间的数据同步虽然实现用户互访,但实现过程相对复杂
3. NFS服务器可以统一管理存储用户访问数据,实现用户互访
1.1.4 共享存储服务分类:
硬件存储:IBM oracle(收购了sun) EMC (去IOE,用BAT)
软件存储:NFS mfs FTP samba
1.2 NFS系统原理
1.2.1 简单描述NFS工作原理:
1. 部署好NFS服务,在NFS服务端创建一个video共享目录
2. web服务器(NFS客户端),创建一个本地video目录,作为一个挂载点
3. web服务器通过mount命令实现网络挂载(mount -nfs 172.16.1.41:/video),将NFS服务器上的
video目录挂载到本地video挂载点上
4. web服务器(NFS客户端)上在video目录中,增删改查的操作,都等价于在NFS服务器端video 目录中的操作
1.2.2 NFS系统挂载结构
1.2.3 什么是RPC
remote procedure call 远程过程调用:端口号111
是一种通过网络向远程计算机上请求服务的一种协议。
1.2.4 NFS的工作流程
1. 启动RPC服务,建立中介服务
2. 启动NFS服务,开启房源信息,向RPC服务进行注册
3. RPC服务接收到NFS服务进程信息和对应端口号
4. NFS客户端向RPC服务111端口发出请求(访问共享目录)
5. RPC服务响应NFS客户端请求
6. NFS客户端与NFS服务端共享目录建立网络连接,实现数据网络存储
下图:用房东、中介、客户举例
下图:没有RPC的情况是这样的,因每个服务进程对应的端口号不同,并且是随机的,所有对于客户端开说不知道该访问哪个端口。
下图:RPC服务的作用,NFS服务端的每个服务进程都会向RPC服务进程注册,客户端也只需访问RPC服务的111端口即可,由RPC服务来告诉客户端对于的服务与端口号。
1.2.5 当用户通过挂载访问NFS共享目录时的工作流程
1.3 NFS网络共享文件系统服务部署流程
1.3.1 NFS服务端部署流程
1. 检查NFS服务相关软件是否安装
-qa |egrep 'rpcbind|nfs-utils'
如没有,则yum install rpcbind nfs-utils -y 安装一下。
2. 编写NFS服务配置文件
vim /etc/exports
1)定义共享目录,如下面的/data/目录就是要共享的目录
2)定义允许使用共享目录的主机或网络地址信息“24和(”之间没有空格,3)(定义共享目录权限信息)
/data 172.16.1.0/24(rw,sync,all_squash)
保存退出
3)创建共享目录
mkdir /data
4)授权共享目录
系统默认有一个nfsnobody用户
chown -R nfsnobody.nfsnobody /data
5)启动rpcbind、nfs-utils服务
/etc/init.d/rpcbind start
/etc/init.d/rfs start
注:如果须重启服务,使用relod重新加载配置文件
6)本地检查测试
rpcinfo -p localhost 查看RPC服务中是否有注册的进程服务和对应端口号
showmount -e 172.16.1.31 检查是否有可以共享的目录
1.3.2 NFS客户端部署流程
1. 确认是否安装NFS服务相关软件
rpm -qa |egrep 'rpc|nfs'
2. 检查局域网中是否存在共享存储服务(目录)
rpcinfo -p 172.16.1.31 查看RPC服务中是否有注册的进程服务和对应端口号
showmount -e 172.16.1.31 检查是否有可以共享的目录
3. 实现共享目录应用(局域网挂载)
mount -t nfs 172.16.1.31:/data/ /mnt
df -h
1.3.3 NFS服务常见进程
rpc.statd主要作用:检查数据存储的一致性
rpc.rquotad主要作用:控制磁盘配额
rpc.mountd主要作用:核对/etc/exports配置文件中的权限,和NFS服务器端本地文件系统权限
rpc.idpamd主要作用:实现用户压缩/映射(经用户压缩后,身份转换为nfsnobody)
ps -ef |grep "nfs|rpc" #查看与NFS相关的进程
1.3.4 NFS服务配置文件格式说明
1. man exports 查看格式
第一段:要共享的目录(每个目录独占一行)
第二段:用于哪个网段或某个主机访问(主机:10.0.0.30,网络:10.0.0.0/24),后面没有空格接着写(权限)
1.3.5 影响访问NFS服务器的权限
1. NFS配置文件权限,中小括号内的rw权限
2. 本地文件系统权限,为了安全一般更改其属主
1.3.6 企业生产环境常见NFS案例
1.3.7 NFS配置参数权限
1. rw参数:可读写
2. ro参数:只读
/data 172.16.1.0(ro,sync,all_squash) :ro权限给开发人员用于读取配置文件,而不能修改
3. sync参数的作用:同步,保证数据的可靠性
同步异步对比:
异步:传输数据快、不可靠,容易丢(先存到内存中处理完后,最后在写到硬盘)
同步:安全可靠、传输数据慢(先经过内存,在写入到硬盘,在处理)
4. async参数:ups AB双路电源
5. no_all_squash参数:所有用户都不映射(什么身份过来就是什么身份)
6. all_squash参数:所有用户都映射(成指定nfsnobody)
7. root_squash参数:root用户映射(成指定nfsnobody)
8. no _root_squash参数:不对root用户映射(进来NFS服务器后是root身份,权限 很大)
下图说明4567参数的作用:
下图根据不同的用户是否进行身份压缩的一个说明:
1.3.8 企业实战需求:
问题: 1. /data/共享目录权限固定为www用户管理
2. 在NFS配置文件中,设置了all_squash参数(全部用户都压缩/映射)
3. 让NFS客户端可以向共享目录存储数据
实现过程:
1. 设置/data/目录权限信息
chown www.www /data/
先保证有 www 用户
2. 编写NFS配置文件
1)先查看www用户的uid,gid信息
id www
2)配置文件中小括号内加入www对应的uid,gid(anonuid=502,anongid=502)
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=502,anongid=502)
注:anonuid和anongid参数作用:将所有访问的用户进来NFS服务器后映射为www用户
1. 客户端要有NFS配置文件anonuid和anongid指定用户(如没有对应的用户,只有对应的uid也可以 访问,但ls -l /mnt查看目录信息时属主会显示为uid)
2. 所以客户端和服务端创建的映射用户,uid和gid信息需要保持一致(否则会权限不足)
3)重新加载nfs
/etc/init.d/nfs reload
3. 客户端重新挂载共享目录
1)先卸载
umount /mnt
2)再挂载
mount -t nfs 172.16.1.31:/data /mnt
4. 进程数据输出测试
touch /mnt/kai.txt 创建测试文件查看属主信息是否为www
ls -l /mnt/kai.txt 查看用户属组信息
原文地址:http://blog.51cto.com/13055758/2065149