综合架构(存储部分)

一. 存储服务概述介绍:
NFS是Network File System的缩写,中文意思是网络文件系统,
主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录
	
互联网中小型网站集群机构后端常用NFS进行数据共享  (新华日报)
大型网站,那么有可能还会用到更复杂的分布式文件系统,例如:Moosefs(mfs)、GlusterFS(*)、FastDFS


NFS发展历史
    总结: 没有NFS共享存储时,实现数据统一存储会非常复杂
    A 主机本地保存数据目录    /A_data   部署rsync服务
	  图片A   19:00  传输到A主机上  19:01 数据同步
	  编写定时任务   每分钟
	  rsync -az  /A_data/  --delete  rsync_backup@172.16.1.2::B_data  --password-file=/etc/rsync.password
	  rsync -az  /A_data/  --delete  rsync_backup@172.16.1.3::C_data  --password-file=/etc/rsync.password
	
	B 主机本地保存数据目录    /B_data   部署rsync服务
	  图片B   19:01  传输到B主机上  19:02 数据同步
	  编写定时任务   每分钟
	  rsync -az  /B_data/  --delete  rsync_backup@172.16.1.1::A_data  --password-file=/etc/rsync.password
	  rsync -az  /B_data/  --delete  rsync_backup@172.16.1.3::C_data  --password-file=/etc/rsync.password
	
	C 主机本地保存数据目录    /C_data   部署rsync服务
      编写定时任务   每分钟
	  rsync -az  /C_data/  --delete  rsync_backup@172.16.1.1::A_data  --password-file=/etc/rsync.password
	  rsync -az  /C_data/  --delete  rsync_backup@172.16.1.2::B_data  --password-file=/etc/rsync.password

	
    存储数据  A10G) --> A服务器 (30G 300元)   B10G) --->  B服务器(10G 300元)	C10G) --->  C服务器(10G 300元) 900
	          A 服务器 (10G)100
			  B 服务器 (10G)100      存储服务器  30G  300    磁盘成本  600 
			  C 服务器 (10G)100

NFS好处:
1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
3. 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
二. 存储服务存储原理:
1)存储数据原理
   a 在存储客户端创建本地存储数据目录
   b 在存储服务端创建共享存储数据目录
   c 实现客户端目录和存储目录建立挂载
   客户端目录中操作数据等价于存储服务器目录中操作数据	

三. 存储服务部署过程:
    预备知识:rpc --- 远程过程调用服务程序 (类似于中介)

    服务端部署过程:
	第一个历程:安装软件程序
	yum install -y rpcbind nfs-utils
	# rpm -qa rpcbind
    rpcbind-0.2.0-48.el7.x86_64
    # rpm -qa nfs-utils
    nfs-utils-1.3.0-0.65.el7.x86_64
	
	第二个历程:编写配置文件
	vim /etc/exports
	/data   web*(rw)
	配置文件样例:
	/projects       proj*.local.domain(rw)
    /usr            *.local.domain(ro) @trusted(rw)
	①                ②           ③
	① 设置定义数据存储目录
	② 定义允许哪些主机存储数据
	   定义网段信息  定义地址信息  定义主机名称信息
    ③ 定义存储数据参数
	
    第三个历程:创建存储目录
    mkdir /data
    chown nfsnobody.nfsnobody /data

    第四个历程:编写本地解析配置文件
    vim /etc/hosts
    172.16.1.7  web01
    172.16.1.8  web02
    172.16.1.9  web03
	
	第五个历程:启动服务程序
	systemctl start rpcbind 
	systemctl start nfs
	
	客户端部署过程:
	需要部署出3台web服务器
	
	第一个历程:安装软件程序 
    yum install -y  nfs-utils
	
	第二个历程:挂载应用存储服务
	mount -t nfs 172.16.1.31:/data  /mnt
四. 存储服务配置文件:
rw------------------是否允许向存储目录中存储数据  存储目录可读可写
ro------------------是否允许向存储目录中存储数据  存储目录只读状态
async---------------异步传输数据  客户端(存储数据)  ----  服务端 (内存) ---> 服务端(磁盘)
sync----------------同步传输数据  客户端(存储数据)  ----  服务端 (磁盘)
root_squash---------是否将用户信息做映射转换  将root用户身份进行转换 (默认转换用户nfsnobody)
no_root_squash------是否将用户信息做映射转换  将root用户身份不做转换 
all_squash----------是否将用户信息做映射转换  将普通用户身份进行转换 (默认转换用户nfsnobody)
no_all_squash-------是否将用户信息做映射转换  将普通用户身份不做转换
anonuid-------------指定映射用户身份信息(uid) 
anongid-------------指定映射用户身份信息(gid)	
五. 存储服务相关命令:
rpcinfo   --- 查看nfs服务注册信息
rpcinfo  -p 172.16.1.31
showmount --- 查看可用挂载目录信息
showmount  -e 172.16.1.31 
exportfs  --- 管理nfs服务运行状态
exportfs  -rv
六. 存储服务客户端配置:
a. 客户端挂载操作
   临时挂载操作: mount -t nfs 存储服务器地址:存储目录  本地挂载点目录
   永久挂载操作: 
	 方法一: 利用/etc/rc.local 
	 方法二: 利用/etc/fstab
             172.16.1.31:/data    /mnt   nfs     defaults        0 0
        PS: 关注系统启动顺序
	         先加载/etc/fstab  ---> 启动网络服务 ---> 加载/etc/fstab(systemctl start remote-fs.target)

b. 客户端挂载参数
	   cat /proc/mounts
	   172.16.1.31:/data /mnt nfs4 rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.7,local_lock=none,addr=172.16.1.31 0 0

	   mount -o 挂载参数
	   rsize        提示数据存储效率,减缓存储服务器压力          在客户端内存中设置了缓存
	   wsize        提升数据读取效率,减缓存储服务器压力          在客户端内存中设置了缓冲
	   hard         实现长连接挂载操作                           (对于架构而言,配置hard容易造成耦合度过程)  架构师
	   soft         实现长连接挂载操作(具有超时时间timeo=600)  (对于架构而言,配置soft可以实现解耦)        架构师
	   proto        网络挂载时选择通讯协议 (tcp/udp) 
	   atime        访问存储数据时,会消耗磁盘IO, 影响磁盘性能    
	   noatime      访问存储数据时,不要更改atime属性信息, 不会消耗磁盘IO, 减少磁盘性能消耗   优化
	   diratime     访问存储目录时,会消耗磁盘IO, 影响磁盘性能
	   nodiratime   访问存储目录时,不要更改目录atime属性信息, 不会消耗磁盘IO, 减少磁盘性能消耗   优化
==========================================================================
	存储服务权限说明:*****
	1)存储服务端配置文件参数没有设置正确(rw/ro xxx_squash)
	2) 存储服务端存储目录本身权限配置问题
	3)存储客户端挂载参数配置问题        (ro)
	4)存储目录权限继承关系              (服务端配置文件中不要有目录层级配置)       
==========================================================================
七. 存储服务企业应用:
弃用NFS案例: 如何解决NFS服务单点故障
读取数据时:弃用NFS服务(将存储数据和web服务器数据做同步),  让用户读取web服务器本地数据
写入数据时:弃用NFS服务(写入数据到本地 将数据进行恢复同步),让用户写入web服务器本地数据
八. 分布式存储:
一、HDFS原理
	1.HDFS集群启动之时,DataNode会向NameNode发送信息,包括Block存储位置,DataNode地址。
	Client向NameNode汇报当前上传文件的信息(Block数量、文件上传时间、文件权限、拥有着)2. Client将大文件切割成一个个的block块(以字符为单位进行切割)。
Client向NameNode发送请求,获得BlockId号,存储Block。
	3. Client拿到BlockId号和DataNode地址开始上传文件。
	 1)NameNode返回给Client一批地址后,这些DataNode之间形成一个PipeLine管道。
	 2)Client把Block块切割成一个个Packet(64K)不断地往管道中输送。这样可以实现并发执行存储 ,从而提高上传效率。
	 
  1.数据备份机制
	考虑到数据安全问题,需要给数据进行备份,默认有两个副本文件。

	第一个Block存储在负载不是很高的一台服务器上。
	第一个备份文件Block存储在与第一个Block不同的机架随机一台服务器上。
	第二个备份文件存储在与第一个备份文件相同机架上的随机一台服务器。
  2.持久化机制
	防止系统故障导致数据丢失,故采用持久化机制。

	在NameNode启动的过程中,生成edits和fsimage两个空文件;
	SecondaryNameNode拉取edits文件进行重演,从而产生元数据,然后元数据与fsimage合并完成后,将新的fsimage(fsimage.CheckPoint)推送给NameNode;
	在SecondaryNameNode读取edits文件的同时,NameNode会创建edits.new这个文件,来存储SecondaryNameNode在合并过程中,其他数据的操作。
  3.安全模式
	安全模式是HDFS所处的一种特殊状态,在这种状态下,文件系统只接受读数据请求(能查看文件目录,但是无法读取文件内容),而不接受删除、修改等变更请求。
	安全模式下NameNode所做的工作:

	加载fsimage,加载到内存中。
	若edits文件不为空,那么namenode自己来合并。
	检查DataNode是否存活。
	若DataNode死亡,则指挥DataNode进行备份操作。
  4.NameNode的作用
	接收客户端的请求。
	管理元数据(文件的上传时间、文件权限、文件属主)。
	管理集群。
	收集DataNode汇报的Block列表信息。
	每一个DataNode的位置信息。
  5.DataNode作用
	存储源数据,向NameNode发送心跳。
	接收客户端的读请求。
  6.HDFS写流程
	client计算大文件的block数量;
	client会向NameNode汇报(当前大文件的block数,当前大文件属主、权限,文件上传时间);
	client切割block;
	client向NameNode请求block块的Id号以及地址;
	由于NameNode掌控全局,管理所有的DataNode,所以它将负载不高的DataNode地址返回给client;
	client拿到地址后,找到Data去上传数据;
	Data将block存储完毕后,会向NameNode汇报当前的存储情况。
  7.HDFS读流程
	client请求NameNode获得block的位置信息,因为NameNode里存放了block位置信息的元数据。
	Namenode返回所有block的位置信息,并将这些信息返回给客户端。
	客户端拿到block的位置信息读取block信息,采用就近原则。
二、HDFS的搭建
	搭建集群的三种模式:
	1.伪分布式:在一台服务器上,启动多个进程,分别表示各个角色。
	2.完全分布式:在多台服务器上,每台服务器启动不同角色的进程,使用多台服务器组成HDFS集群。
	3.高可用的完全分布式:多一个NameNode的备份。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
大学生在线租房平台管理系统按照操作主体分为管理员和用户。管理员的功能包括报修管理、报修评价管理、字典管理、房东管理、房屋管理、房屋收藏管理、房屋留言管理、房屋租赁管理、租房论坛管理、公告信息管理、留言板管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 大学生在线租房平台管理系统可以提高大学生在线租房平台信息管理问题的解决效率,优化大学生在线租房平台信息处理流程,保证大学生在线租房平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理大学生在线租房平台信息,包括房屋管理,培训管理,报修管理,薪资管理等,可以管理公告。 房屋管理界面,管理员在房屋管理界面中可以对界面中显示,可以对房屋信息的房屋状态进行查看,可以添加新的房屋信息等。报修管理界面,管理员在报修管理界面中查看报修种类信息,报修描述信息,新增报修信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值