searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

WAS论文简析

2023-10-08 08:09:09
19
0

1.论文名称

Windows Azure Storage:A Highly Available Cloud Storage Service with Strong Consistency

2.  产品简介

WAS (Windows Azure Storage) 是微软提供的强一致且高可用的云存储服务,几乎所有Azure产品都依赖于WAS。

3.  基础教程

参考微软存储官网

4.  WAS设计目的

  • 高可用且强一致性
  • 持久性
  • 可扩展性
  • 可扩展全球命名空间
  • 全球容灾
  • 统一存储
  • append only

5.  WAS架构 

  • 用户通过其他云产品来使用WAS(如ECS、对象存储、表格存储、消息队列等)。通过URL来访问WAS服务。

WAS整体系统由Storage Stamps和Location Service两部分组成

5.1 Location Service

Location Service用于管理Storage Stamp,在Storage Stamp之间进行容灾恢复和负载均衡,并且负责全局命名空间管理。同时也负责将用户的请求分发到距离其最近的数据中心。

5.2 Storage Stamps

storage stamps分为FE layer,stream layerstream layer三层

  • front-end(FE) layer:无状态中间层,接收来自用户的请求,并缓存集群路由信息,分发请求到partition layer。
  • stream layer:完整的分布式文件系统,管理底层存储设备,WAS底层数据复制及调度以extent为单位。向上为partition layer提供接口,stream layer只提供append接口,不支持overwrite in place。
  • stream layer:作为统一的存储抽象层,将所有的产品统一为通用存储需求并与Stream Layer对接

 

其他概念:

  • DNS:根据AccountName查找其所在的StorageStamp,LocationService决定了AccountName所属的StorageStamp后会将该信息同步至DNS
  • VIP:虚拟ip层,负责将请求负载均衡至各前端接入层节点
  • Intra-Stamp Replication (stream layer),这里保证数据在一个stamp之内的持久化。其复制操作是同步的。这里会将数据跨结点和fault domains来保持数据的可用性。由于这里是同步的复制,且在client写请求的关键路径上面,这里只有在复制成功之后才可以给client返回成功的信息,所以这里实现低延时的操作很关键。
  • Inter-Stamp Replication (partition layer),这里的复制是stmap之间的异步的复制。复制操作在后台完成,不在client写请求的关键路径之上。这里的复制是对象级别的复制,与此对应的Intra-Stamp的复制则是复制数据block。

6.  Stream Layer设计

6.1 stream数据组织

以Stream Layer存储Foo文件为例:

  • Foo文件由多个extent组成,extent由多个block组成。单个Extent和Block的大小均有上限。数据以Extent为单位进行复制
  • Block是数据读取写入的最基本的单元。Block的大小默认是4MB,数据校验也是在Block上。读取根据offset读取完整block.stream存储着每个block的校验和(checksum).
  • extent复制备份的最小单元,一个stamp存储中保持Extent的三备份.每一个extent被保存为一个NTFS上面的文件。Extent的目标大小文1GB

6.2 Stream Layer设计

Stream Layer由Stream Manager (SM)和Extent Node (EN)两个主要部分组成。

  • SM主要负责:

(a) SM是一个的标准的Paxos集群。维护所有stream,extend和EN的状态,stream namespace,存在内存中,并定期将状态信息checkpoint到文件中

(b) 监测EN的健康状况,

(c) 创建extend数据块并将其分配给 EN,

(d) 对因硬件故障或不可用而丢失的盘区副本执行延迟重新复制,

(e)GC, 回收没有被任何stream引用的extents

(f) 根据stream的相关策略调度EC(scheduling the erasure coding of extent data)

  • EN

(a) 只负责存储SM分配的extend.只感知Extents和Blocks的信息。extend为一个磁盘文件。

7.  Partition  Layer设计

  • WAS提供三种存储抽象,分别是表格(Table)、消息队列(Queue)、文件(Blob),WAS存储的每个对象(表格里的一行、队列里的一条消息、一个文件)都对应一个全局唯一的资源URI,其中AccountName为用户账户,service为存储服务类型(table、queue、blob中的一种)。Partition Layer在Stream Layter的基础上抽象出Table、Queue存储逻辑,主要由Partition Manager(PM)和Partition Server(PS)组成
  • Partition Layer则是在Stream Layer的基础上实现其它的功能,主要负责的任务如下:

(a) 用于存储的不同类型的对象的数据模型,

(b) 逻辑和语义来处理不同类型的对象,

(c) 用于对象的大规模可扩展命名空间,

(d) 跨可用分区服务器访问对象的负载平衡,以及

(e) 事务排序和访问对象的强一致性。

  • PM是管理节点,负责维护一个全局视图,而实际的读写操作都由PS完成。

7.1 Partition Manger (PM)

  • Object TablePB级别。根据负载和请求动态的被分割成多个RangeParitition,分布在一个stamp中的不同的Partition Server上。
  • PM 负责将 Object Table 划分为若干个 RangePartition,分配到 PS 中,并将 RangePartition 与 PS 的对应关系记录在 Partition Map Table 中。

7.2 Partition Server (PS)

PS 负责响应若干个 RangePartition 的请求。在任意时刻只会有一个 PS 为一个 RangePartition 服务。

当出现 PS 不可用时,该 PS 负责的所有 RangePartition 会被 PM 迁移到其他的 PS 上

 

 

0条评论
0 / 1000
Mr. 油
89文章数
0粉丝数
Mr. 油
89 文章 | 0 粉丝
原创

WAS论文简析

2023-10-08 08:09:09
19
0

1.论文名称

Windows Azure Storage:A Highly Available Cloud Storage Service with Strong Consistency

2.  产品简介

WAS (Windows Azure Storage) 是微软提供的强一致且高可用的云存储服务,几乎所有Azure产品都依赖于WAS。

3.  基础教程

参考微软存储官网

4.  WAS设计目的

  • 高可用且强一致性
  • 持久性
  • 可扩展性
  • 可扩展全球命名空间
  • 全球容灾
  • 统一存储
  • append only

5.  WAS架构 

  • 用户通过其他云产品来使用WAS(如ECS、对象存储、表格存储、消息队列等)。通过URL来访问WAS服务。

WAS整体系统由Storage Stamps和Location Service两部分组成

5.1 Location Service

Location Service用于管理Storage Stamp,在Storage Stamp之间进行容灾恢复和负载均衡,并且负责全局命名空间管理。同时也负责将用户的请求分发到距离其最近的数据中心。

5.2 Storage Stamps

storage stamps分为FE layer,stream layerstream layer三层

  • front-end(FE) layer:无状态中间层,接收来自用户的请求,并缓存集群路由信息,分发请求到partition layer。
  • stream layer:完整的分布式文件系统,管理底层存储设备,WAS底层数据复制及调度以extent为单位。向上为partition layer提供接口,stream layer只提供append接口,不支持overwrite in place。
  • stream layer:作为统一的存储抽象层,将所有的产品统一为通用存储需求并与Stream Layer对接

 

其他概念:

  • DNS:根据AccountName查找其所在的StorageStamp,LocationService决定了AccountName所属的StorageStamp后会将该信息同步至DNS
  • VIP:虚拟ip层,负责将请求负载均衡至各前端接入层节点
  • Intra-Stamp Replication (stream layer),这里保证数据在一个stamp之内的持久化。其复制操作是同步的。这里会将数据跨结点和fault domains来保持数据的可用性。由于这里是同步的复制,且在client写请求的关键路径上面,这里只有在复制成功之后才可以给client返回成功的信息,所以这里实现低延时的操作很关键。
  • Inter-Stamp Replication (partition layer),这里的复制是stmap之间的异步的复制。复制操作在后台完成,不在client写请求的关键路径之上。这里的复制是对象级别的复制,与此对应的Intra-Stamp的复制则是复制数据block。

6.  Stream Layer设计

6.1 stream数据组织

以Stream Layer存储Foo文件为例:

  • Foo文件由多个extent组成,extent由多个block组成。单个Extent和Block的大小均有上限。数据以Extent为单位进行复制
  • Block是数据读取写入的最基本的单元。Block的大小默认是4MB,数据校验也是在Block上。读取根据offset读取完整block.stream存储着每个block的校验和(checksum).
  • extent复制备份的最小单元,一个stamp存储中保持Extent的三备份.每一个extent被保存为一个NTFS上面的文件。Extent的目标大小文1GB

6.2 Stream Layer设计

Stream Layer由Stream Manager (SM)和Extent Node (EN)两个主要部分组成。

  • SM主要负责:

(a) SM是一个的标准的Paxos集群。维护所有stream,extend和EN的状态,stream namespace,存在内存中,并定期将状态信息checkpoint到文件中

(b) 监测EN的健康状况,

(c) 创建extend数据块并将其分配给 EN,

(d) 对因硬件故障或不可用而丢失的盘区副本执行延迟重新复制,

(e)GC, 回收没有被任何stream引用的extents

(f) 根据stream的相关策略调度EC(scheduling the erasure coding of extent data)

  • EN

(a) 只负责存储SM分配的extend.只感知Extents和Blocks的信息。extend为一个磁盘文件。

7.  Partition  Layer设计

  • WAS提供三种存储抽象,分别是表格(Table)、消息队列(Queue)、文件(Blob),WAS存储的每个对象(表格里的一行、队列里的一条消息、一个文件)都对应一个全局唯一的资源URI,其中AccountName为用户账户,service为存储服务类型(table、queue、blob中的一种)。Partition Layer在Stream Layter的基础上抽象出Table、Queue存储逻辑,主要由Partition Manager(PM)和Partition Server(PS)组成
  • Partition Layer则是在Stream Layer的基础上实现其它的功能,主要负责的任务如下:

(a) 用于存储的不同类型的对象的数据模型,

(b) 逻辑和语义来处理不同类型的对象,

(c) 用于对象的大规模可扩展命名空间,

(d) 跨可用分区服务器访问对象的负载平衡,以及

(e) 事务排序和访问对象的强一致性。

  • PM是管理节点,负责维护一个全局视图,而实际的读写操作都由PS完成。

7.1 Partition Manger (PM)

  • Object TablePB级别。根据负载和请求动态的被分割成多个RangeParitition,分布在一个stamp中的不同的Partition Server上。
  • PM 负责将 Object Table 划分为若干个 RangePartition,分配到 PS 中,并将 RangePartition 与 PS 的对应关系记录在 Partition Map Table 中。

7.2 Partition Server (PS)

PS 负责响应若干个 RangePartition 的请求。在任意时刻只会有一个 PS 为一个 RangePartition 服务。

当出现 PS 不可用时,该 PS 负责的所有 RangePartition 会被 PM 迁移到其他的 PS 上

 

 

文章来自个人专栏
存储专栏
89 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0