文件存储之NFS

1.   NFS简介

a)    何为NFS

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS最早是由Sun公司发展出来的,后被逐渐完整以及整合至Linux内核

b)    NFS功能

它就是是可以透过网络,让不同的主机、不同的操作系统可以共享存储

c)    NFS原理

NFS 在文件传送或信息传送过程中依赖于RPC 协议。远程过程调用(Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制所以只要用到NFS 的地方都要启动RPC 服务,不论是NFS SERVER 或者NFS CLIENT 。这样SERVER 和CLIENT 才能通过RPC 来实现PROGRAM PORT 的对应。可以这么理解RPC 和NFS 的关系:NFS 是一个文件系统,而RPC 是负责负责信息的传输

d)    NFS 优点

1)节省本地存储空间,将常用的数据存放在一台NFS 服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用2)用户不需要在网络中的每个机器上都建有Home 目录,Home 目录可以放在NFS 服务器上且可以在网络上被访问使用3)一些存储设备CDROM 和Zip 等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量

 2.   NFS安装及配置

a)    安装软件包及环境介绍

1)nfs-utils: 这个是NFS 服务主程序(包含rpc.nfsd、rpc.mountd、daemons)

2)rpcbind: 这个是CentOS6.X的RPC 主程序(CentOS5.X的为portmap)

NFS 服务端:CentOS 6.8 192.168.163.61

NFS客户端:CentOS 6.8 192.168.163.62

b)    NFS配置代码记录

服务端构建:

yum –y install rpcbind nfs-utils# 服务器端安装rpcbind 和NFS-utils 软件包

mkdir /nfs1    #创建共享文件夹

mkdir /nfs2    #创建共享文件夹

chown -R nobody:nobody /nfs1 /nfs2

vim /etc/ exports

/nfs1 192.168.163.61 (rw,async,no_root_squash)

/nfs2 192.168.163.0/24 (ro,async,no_root_squash)

#注意:IP地址与左括号之间加上空格

service nfs restart

service rpcbind restart

service nfs restart

showmount -e 192.168.163.61   #查看挂载情况

cd /nfs1/ #进入到共享目录nfs1中

cp -a /root/install.log .  #拷贝一个文件

cd /nfs2/  #进入到共享目录nfs2中

cp -a /var/log/messages .  #拷贝一个文件

/etc/exports 配置文件

客户端构建:

showmount -e 192.168.163.61    #查看挂载情况

mkdir /nfsmount1 /nfsmount2    #创建挂载点

chown -R nobody:nobody /nfsmount1 /nfsmount2   

mount -t nfs 192.168.163.61:/nfs1 /nfsmount1/

mount -t nfs 192.168.163.61:/nfs2 /nfsmount2/

#挂载成功,就可以查看里面的内容了

 

 

c)    配置文件/etc/exports 书写规则

/etc/exports文件的配置格式为:

NFS共享目录  NFS客户端地址1(参数1,参数2,参数3......)   客户端地址2(参数1,参数2,参数3......)

NFS共享目录  NFS客户端地址(参数1,参数2,参数3......)

mount -t nfs ip:/file /file1# 在客户端进行NFS 的挂载操作

d)    共享权限解释(常见参数)

rw:read-write,可读写,注意,仅仅这里设置成读写客户端还是不能正常写入,还要正确地设置共享目录的权限;

ro:read-only,只读;

sync:文件同时写入硬盘和内存;

async:文件暂存于内存,而不是直接写入内存;

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

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

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

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

anongid:匿名用户的GID值;

posted @ 2020-05-07 14:04  无言西风凋碧树  阅读(730)  评论(0)    收藏  举报