[moosefs] storage class

Posted elaron

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[moosefs] storage class相关的知识,希望对你有一定的参考价值。

chapter 1 moosefs 3.1 storage class 功能的介绍

1.1 什么是storage class

在moosefs中,storage class允许指定文件的chunks存放在哪些chunkservers上。

storage class使用label进行表达。

为了与早起的版本的goal功能兼容,moosefs 3.0以上会自动在系统中建立1~9 storage class。goal工具将默认在对应的storage class下进行工作。

1.2 什么是label

label是可以被分配给chunkserver的字母(a~z,26个字母可选),每个chunkserver可以被打上多个标签(即标记上多个字母,但最多可以打26个label)

完整的label表达式可以由多个子表达式构成,每个子标签之间用逗号分隔。每个子表达式特指文件副本的一种存储模式。子表达式可以为星号*或一个label schema。

label schema可以是一个label或由加法、乘法和括号构成的复杂表达式。

加法是逻辑“或”的含义,即文件的副本可以被存放在任意含有加法元素label的chunkserver上。例如,一个文件的storage class是a+b+c,那么任何含有a、b或c标签的chunkserver都可以用来存储该文件的副本。

乘法是逻辑“与”的含义,即文件的副本仅可以存放在包含所有label的chunkserver上。例如,一个文件的storage class是abc,那么只有当一台chunkserver同时含有abc三个标签时,它才能用于存放该文件的副本。

相同的子表达式可以通过在表达式前加数字的方式来表示,而不用重复显示声明多次。

chapter 2 如何使用storage class

2.1 机器配置

在本文的示例中,将在11台机器上安装moosefs:

ts02, ts03 为master servers

ts04 .. ts12 为chunkservers

前提假设:

已有一些初始化数据存放在示例的moosefs文件系统中,并且goal为2(storage class 2)

2.2 不设置storage class情况下moosefs的安装方法

技术分享图片

如果chunkserver上没有设置任何的label,则moosefs 3.0系统中数据的分布将于2.0版本时相同,如下图所示

技术分享图片

2.3 为chunkservers加上label

若要给chunkserver打label,则需要修改相应chunkserver的配置文件 /etc/mfs/mfschunkserver.cfg

编辑该配置文件,将LABELS = A前面的注释符号去掉,并设置上你想要的标签

设置好后,需要通知chunkserver进程配置文件已更新,使用如下两个命令均可

service moosefs-pro-chunkserver reload

mfschunkserver reload

再为ts04..ts07设上A标签,ts08..ts12设上B标签后,从cgi页面看到chunkserver的信息如下:

技术分享图片

若想为chunkserver设置多个标签,则如下三种方式都可以:

LABELS = XYZ

or

LABELS = X Y Z

or

LABELS = X, Y, Z

设好标签后的集群如下:

技术分享图片

2.4 创建storage class

使用mfsscadmin工具可以在moosefs系统中创建storage class。

 

以上是关于[moosefs] storage class的主要内容,如果未能解决你的问题,请参考以下文章

Moosefs基本概念

MooseFs 安装

MFS(MooseFS分布式文件系统)

MFS(MooseFS分布式文件系统)

moosefs搭建与应用

分布式系统MooseFS