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

WAS论文简析

2023-10-08 16:09:09
45
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 layer,stream 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条评论
作者已关闭评论
Mr. 油
96文章数
0粉丝数
Mr. 油
96 文章 | 0 粉丝
原创

WAS论文简析

2023-10-08 16:09:09
45
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 layer,stream 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
0