Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1363257
  • 博文数量: 118
  • 博客积分: 3888
  • 博客等级: 中校
  • 技术积分: 2940
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-10 18:15
个人简介

一看二做三总结

文章分类

全部博文(118)

分类: LINUX

2012-07-09 16:22:34

缩写表:

Client:用户

I/O:输入/输出

MDSMetadata Cluster Server 元数据簇服务器

OSDObject Storage Device 对象存储设备

 

1:系统架构。

Client通过与OSD的直接通讯实现I/O操作。这一过程有两种操作方式:1. 直接通过Client实例连接到Client

2. 通过一个文件系统连接到Client

 

总览:

CEPH文件系统有三个主要模块:

1.     Client:每个Client实例向主机或进程提供一组类似于POSIX的接口。

2.     OSD簇:用于存储所有的数据和元数据。

3.     元数据服务簇:协调安全性、一致性与耦合性时,管理命名空间(文件名和目录名),见图1

CERP之所以使用类似于POSIX的接口,是为了保证接口的扩展性与一致性,便于与应用保持一致,有利于提高系统性能。

这种结构有利于提高扩展性、高效性与可靠性。扩展性需要在各种维度上被考虑到,包括总体存储能力、系统执行能力与每一个Client、目录或文件的性能。我们的目标工作量也许包括了某种极限情况。如,主机同一时刻对某一个文件进行几十万甚至几百万次的读写,或者在同一目录下同时生成几十万或几百万个文件。通常超级计算机上进行科学运算时会出现这种情况,而这种应用在未来会越来越普遍的出现。更重要的是,我们必须意识到分布式文件系统的工作量天生就是动态的。随着时间的变化,处于活动状态的应用的个数与数据量都会快速的变化。CEPH在同时达到高性能、考可靠性与搞可行性的同时,通过下面三种基本设计特性实现系统的扩展性:分解的数据域元数据、动态分布式元数据管理、可靠地自动分布式对象管理。

 

文件IO与性能:

当一个进行打开一个文件时,ClientMDS簇发送一个请求。MDS通过文件系统层级结构把文件名翻译成文件节点(inode),并获得节点号、模式(mode)、大小与其他文件元数据。注意文件节点号与文件意义对应。如果文件存在并可以获得操作权,则MDS通过结构体返回节点号、文件长度与其他文件信息。MDS同时赋予Client操作权(如果该Client还没有的话)。目前操作权有四种,分别通过一个bit表示:读(read)、缓冲读(cache read)、写(write)、缓冲写(buffer write)。在未来,操作权会增加安全关键字,用于clientOSD证明它们可以对数据进行读写(目前的策略是全部client都允许)。之后,包含在文件I/O中的MDS被用于限制管理能力,以保证文件的一致性与语义的合理性。

CEPH产生一组条目来进行文件数据到一系列对象的映射。为了避免任何为文件分配元数据的需要。对象名简单的把文件节点需要与条目号对应起来。对象复制品通过CRUSH(著名的映射函数,参考5.1节)分配给OSD。例如,如果一个或多个Client打开同一个文件进行读操作,一个MDS会赋予他们读与缓存文件内容的能力。通过文件节点号、层级与文件大小,Client可以命名或分配所有包含该文件数据的对象,并直接从OSD簇中读取。任何不存在的对象或字节序列被定义为文件洞或0。同样的。如果Client打开文件进行写操作。它获得使用缓冲写的能力。任何位置上的数据都被写到合适的OSD上的合适的对象中。Client关闭文件时,会自动放弃这种能力,并向MDS提供新的文件大小(写入时的最大偏移)。它重新定义了那些存在的并包含文件数据的对象的集合。

阅读(6427) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~