NFS存储服务部署

什么是NFS

中文意思是网络文件系统,主要功能是通过网络(一般是局域网)让不同主机之间可以共享文件或目录

NFS属于本地文件存储服务

 缺点1:

windows上无法使用 如果想实现windows与Linux系统结合,采用文件数据共享 a. FTP服务 b.samba服务

缺点2:

在高并发场景,以及存储量比较高的场景,对数据安全性要求比较高的场景 需要采用分布式存储:Moosefs(mfs)、FastDFS 无法在服务器中看到真实的文件信息

NFS共享网络文件系统应用的场景

主要用于存储web服务器上用户上传的数据信息,图片、附件、视频、音频、头像

NFS文件系统存在意义

实现数据共享,数据统一一致

软件实现:本地文件系统NFS,分布式文件系统mfs

硬件实现:IBM(服务器 小型机 大型机 存储 DS V7000 V5000)oracle EMC = 去IOE

NFS网络文件系统工作方式

        在nfs服务器端设置好一个共享目录/video后,其他有权限访问nfs服务器端的客户端都可以将这个共享目录/video挂载到客户端本地的某个挂载点(其实就是一个目录,这个挂载点目录可以自己随意指定),图中两个nfs客户端本地挂载点分别为/v/video和/video,不同客户端的挂载点可以不相同。

        客户端正确挂载完毕后,就可以通过nfs客户端的挂载点所在的/v/video或/video目录查看到nfs服务器端/video共享出来的目录下的所有数据。在客户端上查看时,nfs服务端的/video目录就相当于客户端本地的磁盘分区或目录,几乎感觉不到使用上的区别,根据nfs服务器端授予的nfs共享权限以及共享目录的本地系统权限,只要在指定的nfs客户端上操作挂载/video或/v/video的目录,就可以将数据轻松的存取到nfs服务器端上的/video目录中了。

NFS服务工作流程

想要实现nfs服务,首先启动的是rpc服务,其次是nfs服务,在nfs服务启动的时候,会向rpc服务发送nfs服务的注册端口信息,而客户端请求nfs服务的时候,就会向rcp服务发送请求,然后rpc服务把端口回复给客户端(返回的是rpc本身的端口),而客户端就可以凭借端口请求进行数据传输。

NFS服务部署

NFS服务端安装

首先确认软件是否已经安装,没有安装就安装NFS服务相关软件

[root@nfs ~]# rpm -qa |grep nfs

[root@nfs ~]# rpm -qa |grep rpc

如果没有安装,就安装rpcbind nfs-utils服务程序,并进行验证安装是否成功

yum install -y nfs-utils rpcbind
rpm -qa nfs-utils rpcbind

编写NFS配置文件

[root@nfs ~]# cat /etc/exports 
/data 172.16.1.0/24(rw,sync)

配置文件内容介绍

第一部分:/data 指定共享目录信息(表示本地NFS服务需要共享的目录信息) 第二部分:172.16.1.0/24 指定一个网段信息,表示允许指定的网段主机挂载到我本地的共享目录上 第三部分:(rw,sync) 表示定义共享参数信息(表示客户端访问目录的权限设置) rw 表示读写,对共享目录设置的权限; sync 同步参数,数据先写入到NFS服务器内存中,会立刻同步到磁盘里面==直接存储到硬盘

配置文件参数介绍

rw 读写 ro 只读 sync 同步参数,数据先写入到NFS服务器内存中,会立刻同步到磁盘里面--优点:安全、缺点:性能差 async 异步,先到内存,不管数据到不到硬盘 no_root_squash 表示root用户不做映射 root_squash 表示root用户做映射 all_squash 表示全部用户做映射

创建共享目录,并且进行权限设置

[root@nfs ~]# mkdir /data -p [root@nfs ~]# chown -R nfsnobody.nfsnobody /data/ [root@nfs ~]# ll -d /data/ drwxr-xr-x 2 nfsnobody nfsnobody 4096 Oct 12 12:06 /data/ 说明:NFS共享目录管理用户为nfsnobody,此用户不用创建;安装NFS软件的时候会自动创建

启动服务

首先启动rpc服务 [root@nfs ~]# /etc/init.d/rpcbind start Starting rpcbind: [ OK ] rpcbind启动信息查看 [root@nfs ~]# rpcinfo -p localhost program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 如果没有启动NFS服务就这些信息

其次启动nfs服务
[root@nfs ~]# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
nfs启动后查看信息
[root@nfs ~]# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100011    1   udp    875  rquotad
    100011    2   udp    875  rquotad
    100011    1   tcp    875  rquotad
    100011    2   tcp    875  rquotad
    100005    1   udp  41601  mountd
    100005    1   tcp  26925  mountd
    100005    2   udp  27046  mountd
    100005    2   tcp  32480  mountd
    100005    3   udp  61072  mountd
    100005    3   tcp  39844  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    2   tcp   2049  nfs_acl
    100227    3   tcp   2049  nfs_acl
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    2   udp   2049  nfs_acl
    100227    3   udp   2049  nfs_acl
    100021    1   udp  22703  nlockmgr
    100021    3   udp  22703  nlockmgr
    100021    4   udp  22703  nlockmgr
    100021    1   tcp  26776  nlockmgr
    100021    3   tcp  26776  nlockmgr
    100021    4   tcp  26776  nlockmgr
查看nfs服务的挂载信息
[root@nfs ~]# showmount -e localhost
Export list for 10.0.0.31:
/data 172.16.1.0/24
注意:localhost可以换成ip地址
至此:服务端部署配置完成

NFS客户端部署

首先还是要查看软件是否已经下载安装

其实客户端是不需要安装nfs的,但是不安装nfs软件客户端就不能用showmount命令,并且无法识别nfs文件系统类型

确认完毕后直接启动服务,也可以不启动,不影响。

检查nfs服务端是否有可以进行共享挂载的目录

[root@ba ~]# rpm -qf `which showmount`
nfs-utils-1.2.3-75.el6.x86_64
[root@ba mnt]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24

进行nfs客户端挂载,并设置目录权限

mount -t nfs 172.16.1.31:/data /mnt
chown -R nfsnobody.nfsnobody /mnt

然后进行处理文件测试

本地nfs客户端进行 增删改数据 等价于在nfs服务端共享目录中进行的操作

客户端上处理文件

[root@ba mnt]# touch szsn.txt
[root@ba mnt]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 13 11:25 szsn.txt
[root@ba mnt]# echo "矢志少年" >szsn.txt 
[root@ba mnt]# cat szsn.txt 
矢志少年
[root@ba mnt]# \rm -f szsn.txt

服务端上检查

[root@nfs data]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 13 11:25 szsn.txt
[root@nfs data]# cat szsn.txt 
矢志少年
[root@nfs data]# ll
total 0

这样就搭建完成了,博主有哪里写的不好的,欢迎大家指出,我一定会进行改进。

第一部分:/data               指定共享目录信息(表示本地NFS服务需要共享的目录信息)

第二部分:172.16.1.0/24 指定一个网段信息,表示允许指定的网段主机挂载到我本地的共享目录上

第三部分:(rw,sync)       表示定义共享参数信息(表示客户端访问目录的权限设置)

rw     表示读写,对共享目录设置的权限;

sync  同步参数,数据先写入到NFS服务器内存中,会立刻同步到磁盘里面==直接存储到硬盘

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • mysql存储引擎、事务

    MySQL存储引擎介绍 文件系统 操作系统组织和存取数据的一种机制。 文件系统是一种软件。 文件系统类型 ext2  ext3  ext4  xfs 数据 不管...

    863987322
  • Linux Rsync备份服务介绍及部署守护进程模式

    rsync介绍 rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份工具 在常驻模式(daemon mode)下,rsync默认监...

    863987322
  • day10、nfs+rsync全网备份及实时同步

    题目要求 注意:博主使用的系统为: [root@web01 ~]# uname -a Linux web01 2.6.32-696.el6.x86_64 #1...

    863987322
  • Redhat设置NFS挂载的简单步骤

    初识 nfs 还是在测试 lvs 负载均衡的时候,为了保证代码的一致性,将一台 Realserver 作为 nfs 服务器,而其他 Realserver 均以 ...

    张戈
  • NFS挂载报错

    nfs共享的时候,无论怎么检查都报错:mount.nfs: access denied by server while mounting

    一夕如环
  • Kunbernetes-基于NFS的存储

    NFS是Network File System的简写,即网络文件系统,NFS是FreeBSD支持的文件系统中的一种。NFS基于RPC(Remote Proced...

    菲宇
  • k8s1.5.4挂载volume之nfs

    /usr/local/kubernetes/examples/volumes/nfs

    三杯水Plus
  • CentOS 8 -- 安装并配置NFS服务

    网络文件系统(Network File System)是一种分布式文件系统协议,通过网络共享远程目录。使用NFS,可以在系统上挂载远程目录,并像对待本地文件一样...

    Kevin song
  • TKE创建StorageClass配置Provisioner为nfs

    目前TKE的StorageClas 支持qcloud-cbs(云硬盘)类型的,还没有支持到cfs(nfs文件存储

    马凌鑫
  • nfs 挂载

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

    孙杰

扫码关注云+社区

领取腾讯云代金券