NFS网络存储服务

NFS网络存储服务

1、什么是NFS?
network file system 网络文件系统

通过网络存储和组织文件的一种方法和机制

2.为什么要用共享存储:
前端所有的应用服务器接收到用户上的文件(图片、视频等)都会统一的放到后端的存储上

为什么要共享:
所有节点服务器都需要将内容存到存储上,取得统一来取

3.共享存储的种类:
单一存储系统就是NFS,适用于中小型企业,相当于阿里云的NAS服务、OSS对象存储
大型企业会用分布式存储FastDFS、Coph、GlstorFS、Mfs

大型存储厂商:EMC、Netapp


4、NFS工作原理:

启动服务,而且还要启动很多端口
NFS需要很多服务和端口,端口而且经常变化

如何让客户端找到这些端口呢?(RPC服务)

NFS服务:
1.nfs服务(进程)
2.rpc服务(对外的固定端口)

客户端请求nfs服务,先找到rpc 


客户端---- >> 
RPC服务--- >> 

NFS服务 (向RPC服务注册启动的端口)

※实践:
1.主机

2.NFS软件列表

nfs-utils:NFS服务的主程序,包括rpc.nfsd、rpc.mountd

rpcbind:RPC主程序


3.安装 #all server and client
yum install nfs-utils rpcbind –y


4.启动服务
systemctl start rpcbind.service #启动rpcbind
systemctl enable rpcbind.service #开机自启动


[root@nfs01 ~]# rpcinfo -p 127.0.0.1
   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


systemctl start nfs #启动nfs
systemctl enable nfs #开机自启动

5.配置nfs
nfs配置文件 /etc/exports
EXAMPLE
       #sample /etc/exports file
       /               master(rw) trusty(rw,no_root_squash)
       /projects       proj*.local.domain(rw)
       /usr            *.local.domain(ro) @trusted(rw)
       /home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
       #将远程访问的用户及所属组都映射为指定UID和GID的匿名用户
       /pub            *(ro,insecure,all_squash)
       /srv/www        -sync,rw server @trusted @external(ro)
       /foo            2001:db8:9:e54::/64(rw) 192.0.2.0/24(rw)
       /build          buildhost[0-9].local.domain(rw)
       带共享的目录        访问的主机(权限)  
1)待共享的目录,存取东西的目录 例如:/data
2)访问的主机
    172.16.1.7(web01) 单个主机
    172.16.1.0/24 网段
    172.16.1.*    网段
    master 主机名
3) ()权限
    rw 可读写 read write
    ro 只读 read only
    sync 写到磁盘才算完成,安全
    async 异步写到远程缓冲区,速度快,不安全
    
    root_squash 如果访问nfs server共享目录的用户是root,则它的权限将被压缩成匿名用户
    all_squash 不管客户端是什么用户,到服务端都是nfsnobody
    anonuid 匿名用户的UID
    anongid 匿名用户的GID
    
6.更改默认NFS默认用户

例如:
[root@nfs01 ~]# useradd -u 1111 www
[root@nfs01 ~]# id www
uid=1111(www) gid=1111(www) 组=1111(www)

[root@nfs01 ~]# chown -R www.www /data/

vim /etc/exports
/data 172.16.0.0/24(rw,sync,all_squash,anonuid=1111,anongid=1111)

~[root@nfs01 ~]# systemctl reload nfs


#客户端
[root@web01 ~]# useradd -u 1111 www
[root@web01 ~]# mount 172.16.1.31:/data/ /data/
[root@web01 ~]# df -hT
172.16.1.31:/data nfs4       19G  2.2G   17G   12% /data

[root@web01 mnt]# touch new_web01




※NFS重点:

1.nfs的访问原理

2.nfs作为集群共享存储角色的搭建、部署

3.nfs的排障和高级优化

4.mount 命令的知识和参数,如-o (noatime...)

5.fstab文件知识以及fstab故障修复

6.常用命令 showmount exportfs umount(-lf) rpcinfo

7.NFS的优缺点,适合的场景
上一篇:VS代码片段(snippet)创作工具——Snippet Editor(转)


下一篇:Java RESTful Web Service实战(第2版) 1.3 解读JAX-RS标准