[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。
ps:在chapter 3有mfsscadmin工具完整的使用介绍
此处仅简单给出使用示例
首先,mount一个mfs卷
mount -t moosefs mfsmaster.test.lan: /mnt/mfs
然后,进入到mount点的目录下
cd /mnt/mfs
假设我们希望将文件的2个副本存放在带有label A的chunkserver上,则可以创建storage class如下:
mfsscadmin create 2A sclass1
上面这条命令的含义为:每一个属于sclass1的文件,将会拥有2个副本,其中每个副本将存放在带有标签A的chunkserver上。
类似的,可以创建另一个storage class,让文件再生成2个副本存放在带有标签B的chunkserver上。
mfsscadmin create 2B sclass2
此外,不一定要cd到mount的目录中进行storage class的创建,也可以通过显示指定目录的方式来给文件创建storage class,例如:
mfsscadmin /mnt/mfs create 2B sclass2
2.5 展示storage class
mfsscadmin list
该指令将列出某个mfs目录拥有的storage class列表,例如
root@client :/ mnt / mfs # mfsscadmin list
list ; 1
1
2
3
4
5
6
7
8
9
sclass1
sclass2
root@client :/ mnt / mfs #
也可以通过加上-l参数来获取相信的信息
2.6 将storage class配置到文件或目录上
有很多个工具都可以为文件或目录配置storage class:
mfsgetsclass, mfssetsclass, mfscopyclass, mfsxchgsclass, mfslistclass
在chapter 3.2可以查看这些指令的详细介绍,或者使用man指令,如:man mfssclass
现在,可以将一些数据存入mfs中了。创建两个目录dataX dataY:
cd /mnt/mfs
mkdir {dataX,dataY}
为dataX目录添加sclass1这个storage class:
mfssetsclass sclass1 dataX
执行该指令后,dataX及其子目录中所有的目录和文件将自动根据sclass1策略来存储文件。
同样的,为dataY分配sclass2这一storage class:
mfssetsclass sclass2 dataY
2.6.1 创建文件
现在可以往dataX和dataY分别创建文件并写入数据了:
root@client :/ mnt / mfs # cd dataX
root@client :/ mnt / mfs / dataX # for i in ‘seq ‘; do dd if =/ dev / urandom of=
dd1G_$i .bin bs =1M count =; done
[...]
root@client :/ mnt / mfs / dataX # cd ../ dataY
root@client :/ mnt / mfs / dataY # for i in ‘seq ‘; do dd if =/ dev / urandom of=
dd1G_$i .bin bs =1M count =; done
[...]
root@client :/ mnt / mfs / dataY #
2.6.2 文件系统根据storage class的设定进行数据分配
与此同时,“resource”tab下的inodes信息也更新了:
[moosefs] storage class的更多相关文章
- Ceph,TFS,FastDFS,MogileFS,MooseFS,GlusterFS 对比
系统整体对比 对比说明 /文件系统 TFS FastDFS MogileFS MooseFS GlusterFS Ceph 开发语言 C++ C Perl C C C++ 开源协议 GPL V2 GP ...
- Centos下MooseFS(MFS)分布式存储共享环境部署记录
分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,分布式文件系统的实际基于客户机/服务器模式.目前 ...
- Centos 安装 Moosefs文件系统
一.环境介绍Moosefs master:192.168.55.148Moosefs Metalogger:192.168.55.149Moosefs Chunk-01:192.168.55.150M ...
- Azure Queue Storage 基本用法 -- Azure Storage 之 Queue
Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure File Storage 基 ...
- Azure File Storage 基本用法 -- Azure Storage 之 File
Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure Blob Storage 基 ...
- HTML5_06之拖放API、Worker线程、Storage存储
1.拖放API中源对象与目标对象事件间的数据传递: ①创建全局变量--污染全局对象: var 全局变量=null; src.ondragstart=function(){ 全局变量=数据值; ...
- HTML5权威指南--Web Storage,本地数据库,本地缓存API,Web Sockets API,Geolocation API(简要学习笔记二)
1.Web Storage HTML5除了Canvas元素之外,还有一个非常重要的功能那就是客户端本地保存数据的Web Storage功能. 以前都是用cookies保存用户名等简单信息. 但是c ...
- MySQL报错:Got error 28 from storage engine
今天碰到数据库出错: Got error 28 from storage engine 查了一下,数据库文件所在的盘应该没事,应该是数据库用的临时目录空间不够 问题原因: 磁盘临时空间不够导致. 解决 ...
- Html 5 Web Storage
HTML5 中使用Web Storage 技术进行本地存储,能够在Web 客户端进行数据存储.WebStorage 曾今属于HTML5的规范,目前已经被独立出来形成单独的规范体系.简单来说使用Web本 ...
随机推荐
- 基于335X的UBOOT网口驱动分析
基于335X的UBOOT网口驱动分析 一.软硬件平台资料 1. 开发板:创龙AM3359核心板,网口采用RMII形式 2. UBOOT版本:U-Boot-2016.05,采用FDT和DM. 参考链 ...
- Rabbit的机器人-二分答案
Rabbit的机器人 思路 : 可以 推知 挡板的位置与最后 一步的方向有关 .如果是 R 根据题目要求那么最终结果一定是在>0的位置, 因为按照题意要求的最终不能回到重复走过的位置.所以如果有 ...
- SpringMVC(二八) 重定向
在控制器中在返回的字符串中使用 return "redirect:/index.jsp" 的形式,使返回重定向到另外一个页面. 控制器参考代码: package com.tiek ...
- C# 的Chart
Axis Label 横纵坐标的文字 (比如 0 20 40 ....) Axis Title 横纵坐标的代表什么(比如 Y Axis Title) Chart Area 图标所在位置 Chart P ...
- [OC] @property时,copy、strong、weak、assign的区别
@property(copy,nonatomic)NSMutableString*copyStr; @property(strong,nonatomic)NSMutableString*strongS ...
- Manacher学习笔记
目录 code(伪) Manacher算法 可在 \(O(n)\)的时间内求出一个字符串以每个位置为中心的最长回文子串. 原理:根据之前预处理出的回文串长度求得新的回文串长度 我们可以通过在字符中加上 ...
- click()和onclick()的区别
click()和onclick()的区别: 1.onclick是绑定事件,告诉浏览器在鼠标点击时候要做什么 click本身是方法作用是触发onclick事件,只要执行了元素的click()方法,就会触 ...
- Java中Date, Calendar, SimpleDateFormat的相互转换
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...
- python之面向对象的程序设计
一.什么是面向对象的程序设计 面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了程序的复杂度 缺点是: ...
- asp.net mvc ViewData 和 ViewBag区别,TempData
ViewData 和 ViewBag都是页面级别的生命周期,TempData--Passing data between the current and next HTTP requests Temp ...