集群搭建——NFS

NFS介绍

NFSNetwork File System的缩写,即网络文件系统。它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。NFS客户端(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务端共享的数据目录挂载到NFS客户端本地系统中(就是某一个挂载点下)。从NFS客户端本地看,NFS服务端共享的目录就好像是客户自己的磁盘分区或者目录一样,而实际上确是远端的NFS服务端的目录。

NFS服务端搭建
1. 检查并安装NFS
# 查看
rpm -aq nfs-utils rpcbind
# 安装
yum install  nfs-utils rpcbind -y
2. 启动RPC及NFS服务并检查
# centos6启动方法
/etc/init.d/rpcbind  start
/etc/init.d/nfs   start
# centos7启动方法
systemctl start rpcbind.service
systemctl start nfs.service

# 查看rpc是否启动成功
netstat   -lntup|grep rpc
# 查看rpc监控信息
rpcinfo -p localhost

必须先启动rpcbind服务,后启动nfs服务,因为rpcbind服务启动之后,监控nfs服务

3. 设置开机自启动并检查
# centos6  
chkconfig rpcbind on
chkconfig nfs on

# centos6检查方式
chkconfig  --list nfs
chkconfig --list rpcbind

# centos7  
systemctl enable  rpcbind
systemctl enable nfs

# centos7检查方式
systemctl list-unit-files|grep enabled
4 配置/etc/exports
cat  >>/etc/exports<<EOF
/data 172.16.1.0/24(rw,sync)  
EOF
#rw可读可行,sync实时写的的磁盘,async异步写入磁盘

nfs配置文件的格式

      1   NFS共享的目录 NFS客户端地址(参1,参2,……) NFS客户端地址2(参1,参2,……)
      2   NFS共享的目录 NFS客户端地址(参1,参2,……)


上述各列参数的含义:
NFS共享的目录:为NFS服务端要共享的实际目录,要用绝对路径如(/data)。注意共享目录的本地权限,如果需要读写共享,一定要让本地目录可以被NFS客户端的用户(nfsnobody)读写。

/etc/exports配置文件格式书写详细表

常用格式说明
实例
案例1/data 172.16.1.0/24(rw,sync) 允许客户端读写,并且数据同步写到服务器的磁盘里
案例2/data 172.16.1.0/24(rw,sync,all_squash,anonuid=888,anongid=888) 允许客户端读写,并且数据同步写到服务器的磁盘里,并且指定客户端的uid和gid,早期生产环境中的一种配置,适合多客户端共享一个NFS单目录,如果所有服务器的nfsnodoby账户的UID相同,则本案例就没什么意义了
案例3/data 172.16.1.0/24(ro) 只读共享,用途:例如在生产环境中开发人员有查看服务器日志的需求,但是又不希望给开发服务器的权限,那么就可以给开发提供从某个测试服务器NFS客户端上查看某个生产服务器日志目录(NFS共享目录)的权限。

NFS 客户端地址:
为NFS服务端授权的可访问共享目录的NFS客户端地址,可以为单独的IP地址或主机名、域名等,也可以为整个网段的地址,还可以用”*”来匹配所有的客户端服务器,这里所谓的客户端一般为前端的业务服务器,例如web服务。

客户端地址
具体地址
说明
单一客户端访问NFS172.16.1.41一般情况下,生产环境中此配置不多
整个网段访问NFS172.16.1.0/24指定网段为生产环境中最常见的配置,配置简单、维护方便
整个网段可访问NFS172.0.0.*指定网段的另外写法(不推荐使用)
某个域名客户端访问nfs.aisay.com生产环境中不推荐不使用
整个域名客户端访问*.aisay.com生产环境中不推荐不使用

NFS配置参数权限

参数名称
参数用途
rwread-write,表示可读写权限
sync请求或写入数据时,数据同步写入到NFS Server的硬盘后才返回。数据安全不会丢,缺点,性能下降。
async请求或写入数据是,先返回请求,再将数据写入到内存缓存和硬盘中,即异步写入数据。此参数可以提升NFS性能,但是会降低数据的安全。因此,一般情况下建议不用,如果NFS处于瓶颈状态,并且运行数据丢失的话可以打开此参数提升NFS性能。写入时数据会先写到内存缓冲区,等硬盘有空档再写入磁盘,这样可以提升写入效率,风险若服务器宕机或不正常关机,会损失缓冲区中未写入磁盘的数据(解决办法:服务器主板电池或加UPS不间断电源)。(电商秒杀是异步)
all_squash不管访问NFS Server共享目录的用户身份如何,它的权限都被压缩成匿名用户,同时它的UID和GID都会变成nfsnobody账号身份。在早期多个NFS客户端同时读写NFS Server数据时,这个参数很有用。
anonuid参数以anon*开头即值anonymous匿名用户,这个用户的UID设置值通常为nfsnobody的UID值,当然我们也可以自行设置这个UID值。但是,UID必须存在于/etc/passwd中。在多个NFS Clients时,如多台web server共享一个NFS目录时,通过这个参数可以使得不同的NFS Clients写入的数据对所有NFS Clients保持同样的用户权限,即为配置的匿名UID对应用户权限,这个参数很有用。
anongid同anonuid,区别是把uid(用户id)换成gid(组id)。
cat /var/lib/nfs/etab
# 配置文件详情信息:
# /data	172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)
5. 创建共享目录
mkdir /data
chowm -R nfsnobody.nfsnobody /data
6.加载NFS服务并检查
# centos6  
/etc/init.d/nfs reload  

# reload 即平滑启动服务(服务器已经连接的服务,继续服务,直到服务完成;没重新启动前,没连接的服务,不进行服务,直到服务重新开启再进行服务)

# centos7  
systemctl reload nfs.service

# 查看
showmount -e localhost 
# 结果:
#   Export list for localhost:
#   /data 172.16.1.0/24
NFS客户端
1. 检查并安装NFS
# 查看
rpm -aq nfs-utils rpcbind
# 安装
yum install  nfs-utils rpcbind -y
2. 启动rpc服务
# centos6  
/etc/init.d/rpcbind

# centos7  
systemctl start rpcbind.service
3. 设置开机自启动
# centos6  
chkconfig rpcbind on

# centos7  
systemctl enable  rpcbind
4 . 检查服务端的NFS
showmount -e 172.16.1.31
# 出现下面结果,则成功:
# Export list for 172.16.1.31:
# /data 172.16.1.0/24
5. 挂载
# 挂载
mount -t nfs 172.16.1.31:/data /mnt   # -t 挂载的类型
# 查看
 df -h
# 出现结果:
# 172.16.1.31:/data         17G  1.6G   16G  10% /mnt
6. 把挂载点写的开机自启动
echo "mount -t nfs 172.16.1.31:/data /mnt" >> /etc/rc.local
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值