4、nfs服务器的搭建
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服务器的搭建的更多相关文章
- 自学linux——21. NFS服务器的搭建
NFS服务器的搭建 1.NFS的认识 NFS(Network File System即网络文件系统)服务最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享文件,可以将远程 Linu ...
- 4412开发板学习笔记-NFS服务器的搭建
转自iTOP-4412讨论群: http://www.topeetboard.com 先来介绍一下NFS: NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件 ...
- Liunx下NFS服务器的搭建与配置
一.NFS简介 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NF ...
- nfs服务器的搭建和使用
目录 更新记录 1.nfs介绍 1.1 nfs概念 1.2 nfs工作原理 1.3 nfs通讯过程 2.搭建和测试 NFS 服务器 2.1 搭建NFS服务器 2.2 测试NFS服务器 3.在线调试:N ...
- Linux下NFS服务器的搭建与配置
一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...
- Linux下NFS服务器的搭建与配置(转载)
一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...
- Linux下NFS服务器的搭建与配置(转)
一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...
- NFS服务器的搭建与使用,实现数据同步
NFS的基本架构,如下图所示: NFS服务是基本RPC协议的,所以安装NFS的前提要安装RPC协议,就像java语言一定要基于jdk一样! 下面的搭建centos-1作为服务端模拟A服务器,cento ...
- CentOS NFS服务器的搭建与配置
1.查看系统是否已安装NFS [root@bogon ~]# rpm -qa | grep nfs [root@bogon ~]# rpm -qa | grep rpcbind 2.安装NFS [ro ...
随机推荐
- 用python输出未来时间,递增
输入当前时间,之前与之后的365天时间日期 按格式化输出 #!/usr/bin/evn python # -*- coding: UTF-8 -*- # import time import date ...
- 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]# ...
- 详解Linux中的cat文本输出命令用法
作系统 > LINUX > 详解Linux中的cat文本输出命令用法 Linux命令手册 发布时间:2016-01-14 14:14:35 作者:张映 我要评论 这篇 ...
- Maven知识点一览
Maven 介绍和搭建 介绍 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告,和文档的软件项目管理工具. 环境搭建 网址:https://maven.apache ...
- Redis I/O 多路复用技术原理
引言 Redis 是一个单线程却性能非常好的内存数据库, 主要用来作为缓存系统. Redis 采用网络 I/O 多路复用技术来保证在多个连接时,系统的高吞吐量(TPS). 系统吞吐量(TPS)指的是系 ...
- SUSE12 操作系统安装
今天开发同事需要一个客户的SUSE环境,原来没有安装过这个操作系统,网络配置方面有些问题见下一篇 镜像:SLE-12-SP3-Server-DVD-x86_64-GM-DVD1.iso 安装过程: 选 ...
- Golang基础编程(一)-基本结构、数据类型、流程语句
一.Go语言简介 简洁,高效,并发 二.语言特性 ·简洁,只有25个关键字 ·函数多返回值 ·匿名函数和闭包 ·类型和接口 ·自动垃圾回收 ·编译迅速 ·并发编程 25个关键字: 三.Go程序基本结构 ...
- 【pytest】使用parametrize将参数化变量传递到fixture
分享一个关于在pytest中,如何将测试用例文件中的变量传递到fixture函数. 一.交代应用场景 目前组内的项目,在根目录下是有一个conftest.py文件的,这里有个生成api token的f ...
- centOS 7-Hadoop3.3.0完全分布式部署
本文内容不乏对各大佬的案例借鉴,侵删. 本次实验用到的有虚拟机,Xshell,Hadoop压缩包和jdk压缩包 hadoop111A:192.168.241.111 hadoop222B:192. ...
- javascript数组排序之冒泡排序
冒泡排序 作为一名程序员数组的排序算法是必须要掌握的,今天来说最简单的一种数组排序----冒泡排序 冒泡排序原理 冒泡排序算法是一种简单直观的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如 ...