文件共享之nfs

在服务器共享中常用的服务有:

ftp服务器端:linux  windows   客户端:linux  windows  范围:内网  外网

nfs服务器端:linux客户端:linux范围:内网  外网

samba服务器端:linux  windows   客户端:linux  windows范围:内网

文件系统:

文件系统是对一个存储设备上的数据和元素进行组织的一种机制

nfs作用:共享存储,保证数据一致性

优点:简单,容易上手,数据是在文件系统之上的

2方便,部署快速,维护简单

3可靠,从软件层面上,数据可靠性高,经久耐用

局限;

1存在单点故障,要用负载均衡高可用方案弥补

2在高并发的场合,nfs效率性有效,一般几千万pv的网站都不是瓶颈

3客户端认证事基于ip和主机名的,安全性一般

4nfs数据是明文的,对数据完整性不作验证

5多台机器挂载nfs服务器时候,链接管理维护麻烦,尤其nfs服务端出问题后,所有客户端都挂载状态

etc/exports文件配置格式

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

nfs一定要用绝对路径,注意权限,nfs地址可以是单独ip,网段,域名,也可以用*匹配

同步:发送端等待接收端收到消息后才会锻掉

异步:发送端不会等接收端来接收,生产中必须用到的,门户网站中必须用到

配dfs生产重要技巧

1确保所有服务器对nfs共享目录具备相同的权限

a all——squash把所有客户端都压缩成匿名用户

b所有的客户端和服务端都需要有一个相同的uid和gid ,即nfsnobody

实现多台客户端同时候挂一台server端,server用户和组都是同一个名称lushneg,操作步骤

1建立一个nfs共享用户,所有机器都存在并且uid gid相同

2cat >>/etc/exports <<eof

/tmp/data 172.16.10.0/24(rw,sync,all_squash,anonuid=555,anongid=555)

3showmount -e 172.16.10.10

df -h

mount -t nfs 172.16.10.10:/tmp/data /mnt/data

挂载开机自启动:

echo "/bin/mount -t nfs 172.16.10.10:/tmp/data mnt/data" >>/etc/rc.local

缺点:偶尔开机挂载不上,工作中除了开机自启动配置,对挂载点监控

nfs网络文件系统不要放到fstab里

1fstab优先于网络启动,此时还连不上nfs服务器

2即使是本地文件系统,也要注意,那么客户端开机后可能会导致无法启动的风险,fstab最后

两列,要设置0 0,否则会有导致无法启动服务器的问题

nfs rpc服务的启动命令和挂载命令都放入/etc/rc.local.然后用监控软件监控开机后的状态

经验:为什么要把所有开机当做服务器的档案,所有服务器启动配置都放在档案里,做好注释,

或者写好启动脚本都用chkconfig管理

现实生活中太多这多没交接好,根本就不知道这台电脑是做什么用的,连重启都不敢,更别说更改了

fstab修改错误导致系统无法启动故障修复案例

维护模式

mount -o rw,remount

然后修改/etc/fstab

实际挂载优化

mount -t nfs -o noatime,nodiratime,nosuid,noexec 172.16.10.10:/tmp/data /mnt/data

非性能参数越多,速度会越慢

需要退出挂载目录在进行卸载,或者是nfs server宕机了,需要强制卸载 mount -lf/mnt/dev

故障解决步骤

1)服务端一定要开启两个服务 rpc ,nfs

2)客户端一定要开启rpc服务

nfs 至少启动两个进程,一个rpc服务,一个nfs服务

1)先开启rpc服务(中介)

2)再启动nfs服务,启动后会向rpc服务注册启动的端口(房源)

3)客户向rpc请求nfs服务

4)rpc返回端口给租客

5)拿着地址端口请求传输数据

Nfs实操演示

服务端环境准备

nfsserver  172.16.10.10

nfsclient  172.16.10.20

服务端和客户端都要安装

nfs服务需要安装下面的软件包

nfs-utils portmap rpcbind

写文档一定要有这几步基本信息

[[email protected] ~]# cat /etc/redhat-release

CentOS release 6.5 (Final) 操作系统版本信息

[[email protected] ~]# uname -r\

[[email protected] ~]# uname -r  内核版本信息

2.6.32-431.el6.x86_64

[[email protected] ~]# uname -m

x86_64

[[email protected] ~]# rpm -qa nfs-utils  rpcbind

rpcbind-0.2.0-11.el6.x86_64

nfs-utils-1.2.3-39.el6.x86_64

如果没有,yum -y install nfs-utils  rpcbind

服务端操作:

[[email protected] ~]# /etc/init.d/rpcbind start

[[email protected] ~]# ps -ef |grep rpc

rpc         977      1  0 Mar26 ?        00:00:00 rpcbind

rpcuser     995      1  0 Mar26 ?        00:00:00 rpc.statd

root       2167   2115  0 02:52 pts/0    00:00:00 grep rpc

[[email protected] ~]# rpcinfo -p localhost  //查看rpc有无房源

[[email protected] ~]# /etc/init.d/nfs start   //相当于向中介提供房源

启动 NFS 服务:                                            [确定]

关掉 NFS 配额:                                            [确定]

启动 NFS mountd:                                          [确定]

启动 NFS 守护进程:                                        [确定]

正在启动 RPC idmapd:

#设nfs  rpc为开机自启动,设置好之后记得检查开机自启动状态

[[email protected] ~]# chkconfig nfs on

[[email protected] ~]# chkconfig rpcbind on

[[email protected] ~]# chkconfig --list nfs

nfs             0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

[[email protected] ~]# chkconfig --list rpcbind

rpcbind         0:关闭  1:关闭  2:启用  3:启用  4:启用  5

客户端操作,只需要启动rpc服务即可

[[email protected] ~]# /etc/init.d/rpcbind start

[[email protected] ~]# chkconfig rpcbind on

[[email protected] ~]# chkconfig --list nfs

nfs             0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

sync表示把数据从缓存写到磁盘里面 async数据写入到缓存

服务端操作配置服务

[[email protected] ~]# ll /etc/exports

-rw-r--r--. 1 root root 0 1月  12 2010 /etc/exports

[[email protected] ~]# cat /etc/exports

[[email protected] ~]# mkdir /data   //创建共享目录

[[email protected] ~]# vim /etc/exports   //编辑配置文件,往里面写配置

#shared data for bbs luliechu at 20170327   //这一行注释

/data 172.16.10.0/24(rw,sync)

data表示要共享的目录  172.16.10.0表示可以访问的网段  rw读写  sync表示把数据从缓存写到磁盘里面

[[email protected] ~]# cat /etc/exports      //检查

#shared data for bbs luliechu at 20170327

/data 172.16.10.0/24(rw,sync)

[[email protected] ~]# /etc/init.d/nfs reload  //配置完配置文件后平滑重启(提高用户体验)nfs服务

[[email protected] ~]# showmount -e localhost  //在本机上检查是否共享出来

Export list for localhost:

/data 172.16.10.0/24                       //表示共享成功

在客户端上检查

[[email protected] ~]# showmount -e 172.16.10.10  //在本机上检查是否共享出来

Export list for localhost:

/data 172.16.10.0/24                       //表示共享成功

然后挂载

df -h 检查有哪些磁盘挂载了

mount -t nfs 172.16.10.10:/data /mnt   //挂载  ,当然于Windows的磁盘映射

df -h 检查有哪些磁盘挂载了

注意本地目录权限也要可写可读才能真正可读可写

服务端上操作:

[[email protected] ~]# cat /var/lib/nfs/etab  //查看这个文件可以看到nfs用户id号

/data   172.16.10.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534)

[[email protected] ~]# grep 65534 /etc/passwd   //查看对应id号的用户名

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

[[email protected] ~]# ls -ld /data   //查看共享目录权限

drwxr-xr-x. 2 root root 4096 3月  28 06:13 /data

[[email protected] ~]# chown  nfsnobody   -R /data      //属于属于nfsnobpdy,让远端用户可写

[[email protected] ~]# ls -ld /data

drwxr-xr-x. 2 nfsnobody root 4096 3月  28 06:13 /data

测试效果:

[[email protected] ~]# ls /data

test1  test3                  北大青鸟第2章学习资料

test2  北大青鸟第1章学习资料  北大青鸟第3章学习资料

[[email protected] ~]#

[[email protected] ~]# ls /mnt

test1  test3                  北大青鸟第2章学习资料

test2  北大青鸟第1章学习资料  北大青鸟第3章学习资料

--end--

时间: 2024-12-24 16:24:40

文件共享之nfs的相关文章

linux文件共享之nfs和smaba

nfs和samba 1.NFS简介 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样. 类unix系统之间实现文件共享功能,不能实现跟windows系统之间实现共享: 2.NFS工作过程: nfs依赖于rpc服务才能工作: nfs工作过程:nfs客户端/nfs服务端 1.nfs服务端,

文件共享服务---nfs

一.nfs简介 NFS 是Network File System的缩写,即网络文件系统. NFS在文件传送或信息传送过程中依赖于RPC协议.RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制.NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议.而这些传输协议用到这个RPC功能的.可以说NFS本身就是使用RPC的一个程序.或者说NFS也是一个RPC SERVER.所

文件共享服务器nfs搭建过程

网络文件共享服务器192.10.18.132 yum install -y nfs-utils 在exports文件中添加的从机范围 vim /etc/exports /home/nfs/ 192.10.18.0/24(rw,sync,fsid=0) rw表示可读写:sync表示同步写,fsid=0表示将/data找个目录包装成根目录 先为rpcbind和nfs做开机启动:(必须先启动rpcbind服务) systemctl enable rpcbind.service systemctl en

linux文件共享之NFS服务

NFS(network file system)网络文件系统,允许linux主机之间通过网络来共享文件,客户端可以像使用本地文件一样对远程文件进行读写等操作! 1.安装NFS yum install nfs-utils #其他依赖会自动安装 2.配置NFS nfs只有一个配置文件即/etc/exports格式: 共享目录    主机(权限)/home/test      *(rw,sync,no_root_squash)例1:vi /etc/exports 编辑配置文件,加入以下内容/home/

linux文件共享之nfs

本次实验centos6.5 192.168.204.150 nfs150 192.168.204.128 客户端 实验开始,仍然是关闭防火墙,关闭SELinux 还记得命令吗? # /etc/init.d/iptables stop # chkconfig iptables off # vim /etc/selinux/config 修改为SELINUX=disabled # setenforce 0  即时生效 NFS(Network File System)即网络文件系统,是FreeBSD支

文件共享:NFS

NFS共享概述: Network File System:网络文件系统 --用途:为客户机提供共享使用的文件夹 --协议:NFS(TCP/UDP 2049).RPC(TCP/UDP 111) 所需软件包:nfs-utils 系统服务:nfs-server 配置NFS共享目录的记录格式: 文件夹绝对路径 客户机地址(ro或rw等控制参数) 普通NFS共享的实现: 要求: 在虚拟机server0上配置NFS服务,完成以下任务: 1,只读方式共享目录/public,只能被example.com域内系统

网络文件共享服务-NFS

NFS服务 NFS: Network File System 网络文件系统,基于内核的文件系统. Sun公司开发,通过使用NFS,用户和程序可以像访问本地文件一 样访问远端系统上的文件,基于RPC(Remote Procedure Call Protocol远程过程调用)实现 RPC: 采用C/S模式.客户机请求程序调用进程发送一个有进程参数 的调用信息到服务进程,然后等待应答信息.在服务器端,进程保 持睡眠状态直到调用信息到达为止.当一个调用信息到达,服务器 获得进程参数,计算结果,发送答复信

第九章 网络文件共享服务之NFS

9.1 nfs介绍 9.1.1 nfs特点 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源. 在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样 nfs适用于Linux与Unix之间实现文件共享,不能实现Linux与Windows间的文件共享功能 nfs是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上 nfs服

Samba或NFS实现文件共享

SMB(Server Messages Block,服务器消息块)协议作用:解决局域网内的文件或打印机等资源的共享问题,使多个主机(windows与linux.linux与linux)之间共享文件.samba服务程序的主配置文件/etc/samba/smb.conf查看过滤"#".":"."空行"后的信息的方法:cat /etc/samba/smb.conf.bak | grep -v "#" | grep -v "