FusionStorage原理及组件,Java面试回忆录
前言
设计模式是我们编程道路上绕不开的一环,用好了设计模式能够让代码拥有良好的维护性、可读性以及扩展性,它仿佛就是“优雅”的代名词,各个框架和库也都能见到它的身影。
正是因为它有种种好处,所以很多人在开发时总想将某个设计模式用到项目中来,然而往往会用得比较别扭。其中一部分原因是业务需求并不太符合所用的设计模式,还有一部分原因就是在Web项目中我们对象都是交由Spring框架的Ioc容器来管理,很多设计模式无法直接套用。那么在真正的项目开发中,我们就需要对设计模式做一个灵活的变通,让其能够和框架结合,在实际开发中发挥出真正的优势。
容灾又分为异地容灾和同城容灾
FS作为生产存储支持ebakcup或者第三方备份管理软件的备份
FS的高级特性
双活
hyper metro
远程复制(异步)
hyper replication
可以实现存储层容灾
三、FS的DHT算法
==========
DHT(分布式哈希表,Distrubuted Hash Table)
111 698d51a19d8a121ce581499d7b701668
112 7f6ffaa6bb0b408017b62254211691b5
将十进制的数,转化为2的128次方的数,就可以实现平均切随机
一个存储池对应一个DHT环(逻辑)
读写流程:
1.scsi流交给vbs—>vbs转换scsi流为key-value
2.对key值进行—>hash寻址
目的:将主机下发的IO平均且随机的落到存储池各个OSD对应硬盘上
也就是为了实现****IO 的负载均衡
3.经过hash得到一个2的32次方的数值—>模运算–>得到patition
目的:缩减表的尺度,加速查找DHT环
4.查询由MDC维护的映射表记录的是patition和osd的关系patition—>得到osd
目的:解决坏盘或者扩容场景,准确定位patition对应的osd位置
5.osd做key-value到iscsi流的转化,做磁盘的读写操作
四、存储池和卷
=======
存储池是由一组服务器本地硬盘构成,硬盘类型相同、容量相同、参数相同等限制(参考产品文档)
主存类型:SATA机械 SAS机械 SAS-SSD SATA-SSD NVME SSD盘、SSD卡
一块硬盘只能属于一个存储池
一个存储池可以划多个卷(划卷依赖vbs)
一个卷只能属于一个存储,不能跨存储池
卷可以通过scsi挂载给vbs或者iscsi映射给业务主机使用
一个主机可以使用多个卷,多个卷可以来自不同存储池
五、FS的可靠性和安全级别
=============
可靠性
副本机制:
2副本–50% 3副本–33.3%
EC机制: M=2,3,4 N最大22
EC(Erusure code)算法,分布式raid算法,可以跨界点raid
N+M 坏M块硬盘或者M个节点数据不丢失,业务不中断
N是数据分片
M是校验分片
N+M:B 坏M块硬盘或者B=1个节点数据不丢失,业务不中断
22+2保护 高达91%空间利用率
安全级别
FSM配置界面创建存储池仅支持服务器级和机柜级
服务器级安全:数据副本或者EC的数据分片一定不会放在同一个服务器节点内
机柜级安全:数据副本或者EC的数据分片一定不会放在同一个机柜内
机房级安全:数据副本或者EC的数据分片一定不会放在同一个机房内
不同的存储池可配置不同的数据保护方式和安全级别
六、VBS结构
=======
scsi:将内核态VSC模块的scsi流引入VBS用户态
============================
VBP:scsi流转换成key-value
client:key–hash—mod–patition–查io-view–主OSD 走存储网络平面将io流转发至主OSD
VBM:卷和快照生命周期管理操作 创建卷、挂载卷、卸载卷、查询卷、删除卷、创建快照、删除快照、基于快照创建卷等
hearbeat:心跳模块 通过存储平面与MDC交互心跳包 使MDC维持VBS view状态视图
七、OSD结构
=======
RSM:复制协议实现。
SNAP:实现卷与快照的IO功能、磁盘空间的管理。
CACHE:实现cache功能。
AIO:实现异步IO下发到底层SMIO模块和通过调用SMIO接口来监控介质故障。
SMIO:下发到IO到实际的物理介质、监控物理介质故障、获取磁盘信息。
八、FS的IO流程
=========
1)写IO
APP–》OS–》scsi/iscsi—》VSC内核模块接收—》scsi initiator–》scsi target—》VBP(LUN ID/LBA ID/length–>key data–>value)
—》client(key–hash–mod–patition–查io view–主OSD)—》主OSD(key–hash–mod–patition–查patition view–备OSD)–》主OSD一方面下发写IO到本端cache,一方面通过RSM复制IO到备OSD—》主备OSD同步写cache成功–》由主OSD返回VBS写成功(回写),VBS返回APP写成功。
2)读IO
APP–OS–scsi/iscsi—VSC内核模块接收—scsi initiator–scsi target—VBP(LUN ID/LBA ID/length–>key data–>value)—client(key–hash–mod–patition–查io view–主OSD)—主OSD
1、主OSD正常,先读cache,如果cache读命中,返回读成功,如果未读命中,主OSD向主存disk查询读数据。
2、主OSD异常,MDC会检测硬盘异常触发退盘,修改视图(OSD view IO view Patition view),指导VBS引流到备OSD(新主OSD读数据),先读cache,如果cache读命中,返回度成功,如果未读命中,主OSD向主存disk查询读数据。
九、ZK的作用
=======
Zookeeper(简称ZK)分布式服务框架主要用来解决分布式应用中经常遇到的,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等,ZK主要工作包括三项:
MDC主备管理:
MDC采用一主两备部署模式;在MDC模块进程启动后,各个MDC进程会向ZK注册选主,先注册的为主MDC;运行过程中,ZK记录MDC主备信息,并通过心跳机制监控MDC主备健康状况,一旦主MDC进程故障,会触发MDC重先选主。
数据存储
《一线大厂Java面试真题解析+Java核心总结学习笔记+最新全套讲解视频+实战项目源码》开源
Java优秀开源项目:
- ali1024.coding.net/public/P7/Java/git
最后
针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。
下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)
最新整理电子书
数据存储
《一线大厂Java面试真题解析+Java核心总结学习笔记+最新全套讲解视频+实战项目源码》开源
Java优秀开源项目:
- ali1024.coding.net/public/P7/Java/git
最后
针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。
下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)
[外链图片转存中…(img-jQtXcXnW-1649342846889)]
最新整理电子书
[外链图片转存中…(img-8wBNwgat-1649342846890)]
FusionStorage原理及组件,Java面试回忆录相关推荐
- Java面试回忆录:单元测试自动生成用例java
容器化时代来了 虚拟化技术已经走过了三个时代,没有容器化技术的演进就不会有 Docker 技术的诞生. (1)物理机时代:多个应用程序可能会跑在一台机器上. (2)虚拟机时代:一台物理机器安装多个虚拟 ...
- 面试大厂不看这两份Java面试核心知识点原理篇+框架篇,有个屁用?食屎啦泥?
前言 面试在即,Java知识点很凌乱? 别急,有本套书在呢! 除了原理,还有框架! ★ 精细讲解JVM原理.Java基础.并发编程.数据结构和算法.网络与负载均衡 ★ 深入挖掘数据库与分布式事务.分布 ...
- 面试回忆录(腾讯/阿里/滴滴/美团...)
点击上方的终端研发部,右上角选择"设为星标" 每日早9点半,技术文章准时送上 公众号后台回复"学习",获取作者独家秘制精品资料 往期文章 原文地址:https: ...
- 2017Android面试回忆录「下」(今日头条/小米/网易/知乎...)
前言 面试合集 之 滴滴.美团.腾讯.阿里.头条.小米.网易- PS: 时间周期:[2017/6 – 2017/7] 来源: [本部分由「洛廷」和「剑胆诗魂」提供] 没有严格按照面试轮次来区分 今日头 ...
- Java 面试知识点解析(七)——Web篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- java面试笔试大汇总(一)
java面试笔试题大汇总5 JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象:2.继承:3.封装:4. 多态性: 2.String是最基本的数据类型吗? 基本数据类型包括byte.int. ...
- java面试和笔试大全
2.String是最基本的数据类型吗? 基本数据类型包括byte.int.char.long.float.double.boolean和short. java.lang.String类是final类型 ...
- 各大公司java面试整理对应问题博客整理
各大公司java面试整理对应问题博客整理! 阿里 分库分表 数据库中间件 MyCAT是一个强大的数据库中间件,不仅仅可以用作读写分离,以及分表分库.容灾管理,而且可以用于多租户应用开发.云平台基础设施 ...
- Java 面试就业指导,100 % 提高面试成功率
转载自 Java 面试就业指导,100 % 提高面试成功率 想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,面试者在面试之前到底需要准备哪些东西呢? 本文陈列的这些内容既可以作为个人 ...
- Java面试知识点总结宝典助你通关!成功入职字节跳动
01 阿里中间件(四面,Java岗) 1.1 Java中间件一面 技术一面考察范围 重点问了Java线程锁:synchronized 和ReentrantLock相关的底层实现 线程池的底层实现以及常 ...
最新文章
- 回头再学Asp.net系列--基础篇(一)
- 与Susan Fowler探讨生产就绪微服务之问答
- pl/sql 11g 12705_如何用PLSQL导出数据库存表结构信息
- linux进程莫名其妙被kill,Linux进程突然被杀掉(OOM killer),查看系统日志
- 【组合数学】生成函数 ( 使用生成函数求解不定方程解个数示例 2 | 扩展到整数解 )
- 文件操作-小文件复制
- python pyquery库_python解析HTML之:PyQuery库的介绍与使用
- 【bzoj1705】[Usaco2007 Nov]Telephone Wire 架设电话线 dp
- 还没毕业就被阿里30万年薪预定,他凭什么?
- 如何在Red Hat Linux上安装和配置FreeIPA
- java 课后习题 Vector类的 初使用
- Struts2项目搭建
- JACK——BOM Exercise2
- No module named 'django.core.urlresolvers
- 神经元与网络结构概论
- 画法几何及工程制图考试卷A卷
- HTML的head,头头头头!!!
- java通过代理使用redis,redis自动关闭连接,释放资源
- Redis——事务 锁机制
- 结构有限元分析工具 — Abaqus
热门文章
- PPT图标(多个软件快捷方式图标)异常,但能运行,解决方案
- Preferences
- LabVIEW两种方法实现Excel数据(含汉字)读取
- 更好的在小学语课上用计算机,如何把小学科学课上好教育随笔
- 【办公-WORD】Word 背景颜色层次分析
- 树莓派linux下载机,树莓派打造北邮人种子下载机——下载、做种一条龙全站式教程...
- 2014c语言考试题库,2014年腾讯校园招聘C语言考试真题
- 一文读懂阿里云直播技术是如何实现的
- 计算机骂人的专业术语,台湾网友分享“如何用本专业术语骂人不带脏字”
- OSPF配置及MD5验证