4.1、nfs服务介绍:

samba服务器一般互联网企业不会使用

nfs服务的端口是不固定的,需要先启动rpc服务对nfs服务端口进行注册

4.2、安装nfs:

rpm -qa nfs-utils rpcbind

yum install nfs-utils rpcbind -y

另一种安装的方法:

yum grouplist “NFS file server”-y

rpm -qa nfs-utils rpcbind

4.3、配置nfs文件:

配置参数

rw:表示可以读写的权限

sync:请求或写入数据时,数据同步写入到nfsServer磁盘后才能返回,用于小并发;

优点:数据安全不会丢失;缺点:性能比不启动改参数差;

async:写入数据时会先写入缓冲区,直到硬盘有 空挡再写入磁盘,用于大并发;

优点:写入效率高; 缺点:若服务器宕机或不正常关机会导致会导致缓冲区中的数据丢失;

vim /etc/exports

#shared /data/ nfs

#要共享的目录,哪些网段可以访问该共享

/data 172.16.1.0/24(rw,sync) #只对root进行其他用户权限的压缩,其它用户不压缩(不能访问)

4.4、创建nfs共享目录:

用户访问nfs服务时,使用的是nfsnobody系统虚拟用户进行访问,这是当yum安装时自动生成的用户;

mkdir /data

chown -R nfsnobody:nfsnobody /data/

ls -ld /data/

drwxr-xr-x 2 nfsnobody nfsnobody 4096 10月 9 10:34 /data/

4.5、启动rpc和nfs服务:

/etc/init.d/rpcbind start

/etc/init.d/rpcbind status

netstat -tunlp | grep "rpcbind"

rpc服务端口号为111

/etc/inirt.d/nfs start

/etc/init.d/nfs status

4.5.1、查看rpc是否有注册的nfs端口:

rpcinfo -p loclhost

可以看到nfs注册的端口号为2049

4.5.2、如果重新配置了 /etc/exports文件,只需要平滑重启nfs服务:

/etc/init.d/nfs reload

4.6、检查配置的文件是否生效:

[root@nfs01 ~]# cat /var/lib/nfs/etab

/data 172.16.1.0/24(rw,syncoc,wdelay,hide,nrossmnt,secure,root_squash

,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534,sec=sys,rw,root_squash,no_all_squash)

[root@nfs01 ~]# showmount -e 172.16.1.31

Export list for 172.16.1.31:

/data 172.16.1.0/24

4.7、设置rpc和nfs开机自启动:

chkconfig rpcbind on

chkconfig nfs on

4.8、查看nfs和rpc相关的进程:

[root@nfs01 ~]# ps -ef | egrep "nfs|rpc" | grep -v "grep"

rpc 1331 1 0 09:54 ? 00:00:00 rpcbind

rpcuser 1353 1 0 09:54 ? 00:00:00 rpc.statd #检查文件的一致性

root 1403 2 0 09:54 ? 00:00:00 [rpciod/0]

root 1412 1 0 09:54 ? 00:00:00 rpc.rquotad#磁盘配额进程

root 1417 1 0 09:54 ? 00:00:00 rpc.mountd#权限管理验证

root 1424 2 0 09:54 ? 00:00:00 [nfsd4]

root 1425 2 0 09:54 ? 00:00:00 [nfsd4_callbacks]

root 1426 2 0 09:54 ? 00:00:00 [nfsd] #nfs 主进程

root 1427 2 0 09:54 ? 00:00:00 [nfsd]

root 1428 2 0 09:54 ? 00:00:00 [nfsd]

root 1429 2 0 09:54 ? 00:00:00 [nfsd]

root 1430 2 0 09:54 ? 00:00:00 [nfsd]

root 1431 2 0 09:54 ? 00:00:00 [nfsd]

root 1432 2 0 09:54 ? 00:00:00 [nfsd]

root 1433 2 0 09:54 ? 00:00:00 [nfsd]

root 1462 1 0 09:54 ? 00:00:00 rpc.idmapd

4.9、nfs客户端:

yum install nfs-utils rpcbind -y

nfs客户端只需要启动rpc服务,根据不同的系统版本可以不装nfs,最好是装上比较好,nfs服务不需要启动;

rpm -qa nfs-utils rpcbind

/etc/init.d/rpcbind start

/etc/init.d/rpcbind status

chkconfig --list rpcbind on #开机自启动

查看是否能连上服务器端

[root@web01 ~]# showmount -e 172.16.1.31

Export list for 172.16.1.31:

/data 172.16.1.0/24

4.9.1、在客户端挂载服务器:

mount -t nfs 172.16.1.31:/data /mnt/ #重启会失效;

通常情况下不能在/etc/fstab配置自动挂载,是因为在linux中是先启动挂载硬盘的服务再启动网络服务的通常会报错;

但是如果在开机自启动服务里设置并启动了netfs服务,放入fstab里也是可以开机自动挂载的。

设置netfs服务(先启动网络再启动/etc/fstab):

[root@web01 lc]# /etc/init.d/netfs start

Mounting filesystems: [确定]

[root@web01 lc]# chkconfig netfs on

[root@web01 lc]# chkconfig --list netfs

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

proc /proc proc defaults 0 0

172.16.1.31:/data/ /mnt/ nfs defaults 0 0

放到/etc/rc.local中进行开机自启动:

此挂载不会受操作系统先挂载硬盘再启动网络的影响;

/bin/mount -t nfs 172.16.1.31:/data /mnt/

4.9.2、查看挂载情况:

df -hT

172.16.1.31:/data/ nfs 57G 1.5G 53G 3% /mnt

cat /proc/mounts

172.16.1.31:/data/ /mnt nfs4 rw,relatime,vers=4,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,

port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.8,minorversion=0,local_lock=none,addr=172.16.1.31 0 0

4.10、常见错误:

selinux没关

iptables没关(telnet登录测试)

客户端没有安装nfs-utils

showmount -e 不能使用

服务器端的共享目录没有进行授权

程序未注册

rpc和nfs的启动顺序不对

nfs排错

ping nfsserver的ip地址

telnet nfsserver_ip 111

showmount -e 172.16.1.31

4.11、nfs服务器自己搭建:

客户端用户的uid,gid和服务端的gid uid必须保持一致性,权限的一致性,这样不会出现文件权限无法访问的问题,用户安装nfs-utils后默认的是nfsnobody

4.11.1、服务器端:

(1)安装 nfs-utils rpcbind 包;

(2)创建虚拟系统用户:

useradd -u 888 -Ms /sbin/nologin web01

ls -l /etc/passwd

web01:x:888:888::/home/web01:/sbin/nologin

(3)配置服务参数:

vim /etc/exports

/data1 172.16.1.0/24(rw,sync,all_squash,anonuid=888,anongid=888) #压缩所有用户的权限

(4)创建目录:

mkdir /data1

chown -R web01:web01 /data1

(5)启动服务:

/etc/init.d/rpcbind

/etc/init.d/rpcbind status

/etc/init.d/nfs start

/etc/init.d/nfs status

rpcinfo -p localhost

(6)查看配置文件:

showmount -e 172.16.1.31

cat /var/lib/nfs/etba

4.11.2、客户端配置:

(1)安装nfs-utils,rpcbind安装包;

(2)验证服务是否开启:

showmount -e 172.16.1.31

(3)创建虚拟系统用户

useradd -u 888 -Ms /sbin/nologin web01

ls -l /etc/passwd

web01:x:888:888::/home/web01:/sbin/nologin

(4)创建挂载目录:

mkdir /mnt1

(5)挂接:

mount -t nfs 172.16.1.31:/data1/ /mnt1/

(6)查看挂接情况:

df -hT

cat /proc/mounts

172.16.1.31:/data1/ /a nfs4 rw,relatime,vers=4,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,

timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.8,minorversion=0,local_lock=none,addr=172.16.1.31 0 0

4.11.3、测试:

(1)客户端情况:

(2)服务端情况:

4.12、总结:

创建虚拟系统用户的目的是为了更好的屏蔽不同用户的权限,所有的操作都在这个虚拟用户上进行操作,方便,而且用户的权限是775(文件夹),664(文件),需要对虚拟系统用户进行权限的设定umask 022这样创建出的文件就是644,文件夹是755的权限,就会更安全(linux一切皆权限)。

在root用户下配置,实现644,755的文件系统就好

rsync:读取能读取的文件赋权;

nfs:赋予用户什么样的权限进行;

4、nfs服务器的搭建的更多相关文章

  1. 自学linux——21. NFS服务器的搭建

    NFS服务器的搭建 1.NFS的认识 NFS(Network File System即网络文件系统)服务最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享文件,可以将远程 Linu ...

  2. 4412开发板学习笔记-NFS服务器的搭建

    转自iTOP-4412讨论群: http://www.topeetboard.com 先来介绍一下NFS: NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件 ...

  3. Liunx下NFS服务器的搭建与配置

    一.NFS简介 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NF ...

  4. nfs服务器的搭建和使用

    目录 更新记录 1.nfs介绍 1.1 nfs概念 1.2 nfs工作原理 1.3 nfs通讯过程 2.搭建和测试 NFS 服务器 2.1 搭建NFS服务器 2.2 测试NFS服务器 3.在线调试:N ...

  5. Linux下NFS服务器的搭建与配置

    一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...

  6. Linux下NFS服务器的搭建与配置(转载)

    一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...

  7. Linux下NFS服务器的搭建与配置(转)

    一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...

  8. NFS服务器的搭建与使用,实现数据同步

    NFS的基本架构,如下图所示: NFS服务是基本RPC协议的,所以安装NFS的前提要安装RPC协议,就像java语言一定要基于jdk一样! 下面的搭建centos-1作为服务端模拟A服务器,cento ...

  9. CentOS NFS服务器的搭建与配置

    1.查看系统是否已安装NFS [root@bogon ~]# rpm -qa | grep nfs [root@bogon ~]# rpm -qa | grep rpcbind 2.安装NFS [ro ...

随机推荐

  1. 用python输出未来时间,递增

    输入当前时间,之前与之后的365天时间日期 按格式化输出 #!/usr/bin/evn python # -*- coding: UTF-8 -*- # import time import date ...

  2. ARM64平台编译stream、netperf出错解决办法 解决办法:指定编译平台为alpha [root@localhost netperf-2.6.0]# ./configure –build=alpha

    ARM64平台编译stream.netperf出错解决办法 http://ilinuxkernel.com/?p=1738 stream编译出错信息: [root@localhost stream]# ...

  3. 详解Linux中的cat文本输出命令用法

    作系统 > LINUX >   详解Linux中的cat文本输出命令用法 Linux命令手册   发布时间:2016-01-14 14:14:35   作者:张映    我要评论   这篇 ...

  4. Maven知识点一览

    Maven 介绍和搭建 介绍 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告,和文档的软件项目管理工具. 环境搭建 网址:https://maven.apache ...

  5. Redis I/O 多路复用技术原理

    引言 Redis 是一个单线程却性能非常好的内存数据库, 主要用来作为缓存系统. Redis 采用网络 I/O 多路复用技术来保证在多个连接时,系统的高吞吐量(TPS). 系统吞吐量(TPS)指的是系 ...

  6. SUSE12 操作系统安装

    今天开发同事需要一个客户的SUSE环境,原来没有安装过这个操作系统,网络配置方面有些问题见下一篇 镜像:SLE-12-SP3-Server-DVD-x86_64-GM-DVD1.iso 安装过程: 选 ...

  7. Golang基础编程(一)-基本结构、数据类型、流程语句

    一.Go语言简介 简洁,高效,并发 二.语言特性 ·简洁,只有25个关键字 ·函数多返回值 ·匿名函数和闭包 ·类型和接口 ·自动垃圾回收 ·编译迅速 ·并发编程 25个关键字: 三.Go程序基本结构 ...

  8. 【pytest】使用parametrize将参数化变量传递到fixture

    分享一个关于在pytest中,如何将测试用例文件中的变量传递到fixture函数. 一.交代应用场景 目前组内的项目,在根目录下是有一个conftest.py文件的,这里有个生成api token的f ...

  9. centOS 7-Hadoop3.3.0完全分布式部署

    本文内容不乏对各大佬的案例借鉴,侵删. 本次实验用到的有虚拟机,Xshell,Hadoop压缩包和jdk压缩包   hadoop111A:192.168.241.111 hadoop222B:192. ...

  10. javascript数组排序之冒泡排序

    冒泡排序 作为一名程序员数组的排序算法是必须要掌握的,今天来说最简单的一种数组排序----冒泡排序 冒泡排序原理 冒泡排序算法是一种简单直观的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如 ...