1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| 一个块存储集群内部有多个区域(region),一个region有若干个资源池(POOL),每个POOL可以有多个故障域(ZONE)。每个集群只有一组MASTER,使用ETCD存储元数据(卷信息和chunk信息)。每个ZONE有若干个chunkserver zone1、zone2、zone3之间是三副本,zone1、zone2、zone3数据是一致的。超过3个zone,exten副本数是分布在任意三个zone上的
1.master主要负责分配节点(目的:控制修复和均衡),master之间没有数据通信,但是相互之间是通过etcd来同步的,master本身数据存在内存中 2.gateway 所有extent信息master提供给gateway,loaction;extent信息(位置在哪个节点上),缓存的也是位置信息(主要是master给的),info信息 seq,chunkserver给的,(gateway主动来要的)主要是读和写
ISCSI:对外提供iscsi接口,因此ISCSI Server通过tgt实现iscsi的target,负责将iscsi客户端(iscsi initiator)发过来的iqn操作请求转发到对应的Getway,实现对绑定的块设备卷的操作;
Getway:作为SNBS的数据处理网关,将ISCSI Server发过来的数据读写请求映射到块设备卷的读写逻辑处理:如果是写请求,Getway会根据对应卷操作的偏移和size,到Master创建chunk,并到对应的Chunkserver完成实际数据的写入;如果是读请求,Getway根据本地缓存中的元数据信息,找到对应的chunkid,并到对应的chunkserver读取数据;
Master:作为SNBS大脑,负责核心元数据的存储、资源的分配、任务(均衡、修复、迁移)的调度等。核心元数据包括卷信息和chunk信息。Master通过etcd进行选主:MASTER上电时会统一发事务请求给ETCD进行选主,当主Master挂了后,etcd会通知其他Master竞争选主;
Chunkserver:存储数据的服务器。SNBS的Chunkserver最大的特点就是不通过文件系统直接管理裸盘,提高了数据的读写效率,并通过追加写和元数据缓存进一步提高写性能。一个Chunkserver管理若干个裸盘
Etcd:首先ETCD提供Master的数据存储;其次,ETCD还作为Master模块选主的仲裁。ETCD自身通过raft协议进行选主。
Region:一个逻辑概念,不同的区域用于区分一个集群中不同的机房,目前一个集群只会存在于一个机房;
Pool:SNBS会将一个区域中的资源划分为多个资源池,一般是依据不同的存储介质进行划分,通常分为全闪、混合、SATA3中资源池类型,以满足不同的用户对性能的要求。不同的资源池间的数据支持迁移和克隆;
Zone:每个资源池内部有多个故障域(Zone),一个故障域可以是一个机架,一个故障域损坏不会影响整体集群的服务。块存储目前是基于副本机制实现数据的可靠性,同一个chunk的不同副本会在不同的故障域;
*单个节点异常是无法创建克隆的,因为克隆是在本节点克隆,如果本节点异常了,该节点的克隆会失败 *克隆和快照过程中chunkserver异常导致只有两个副本的存在
支持精简配置(thin),当用户对卷进行写操作时,系统才分配实际物理空间如果用户申请1T,并不是真正预留1T的空间给用户,而是用多少分配多少 支持精简配置(thin),当用户对卷进行写操作时,系统才分配实际物理空间,用多少分配多少(百度的解释)
创建链接克隆卷? 创建链接克隆卷可以理解为从快照创建卷
|