V 10 glusterfs

glusterfs,GNU cluster file system,创始人Anand Babu Periasamy,目标:代替开源Lustre和商业产品GPFS,glusterfs是什么:

cloud storage;

分布式文件系统(POSIX兼容);

elasticity(flexibility adapt to growth/reduction,add,delete volumes&users without disruption);

无中心架构(无元数据server),eliminate metadata(improve file access speed);

scale out横向扩展(容量、性能)、高性能、高可用,scale linearly(multiple dimentions(performance;capacity);aggregated resources);

集群式NAS存储系统;

采用异构的标准商业硬件、infiniband;

资源池(聚合存储和内存);

全局统一命名空间;

自动复制和自动修复;

易于部署和使用,simplicity(ease of management,no complex kernel pathces,run in user space);

glusterfs是开源的分布式FS,具有强大的横向扩展能力,支持数PB级存储容量和处理数千客户端,借助tcp/ip或infiniband RDMA将物理分布的存储资源聚焦在一起,使用单一全局命名空间管理数据,基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能;

优点(无元数据据服务设计,弹性hash,scale out;高性能,PB级容量,GB级吞吐量,数百集群规模;用户空间模块化堆栈设计;高可用性,支持自动复制和自动修复;适合大文件存储);

不足(小文件性能表现差;系统OPS表现差;复制存储利用率低(HA和纠删码方案))

2006年有此项目:

06-09年,glusterfs v1.0-3.0(分布式FS、自修复、同步副本、条带、弹性hash算法);

10年,glusterfs v3.1(弹性云能力);

11年,glusterfs v3.2(远程复制、监控、quota、redhat 1.36亿$收购);

12年,glusterfs v3.3(对象存储、HDFS兼容、主动自修复、细粒度锁、复制优化);

13年,glusterfs v3.4(libfapi、quorum机制、虚拟机存储优化、同步复制优化、POSIX ACL支持);

glusterfs架构优势:软件定义、无中心架构、全局统一命名空间、高性能、高可用、堆栈式用户空间设计、弹性横向扩展、高速网络通信、数据自动修复

glusterfs高性能记录32GBs(server-side,64 bricks with ib-verbs transport;client-side,cluster of 220 servers)

http://blog.csdn.net/liuaigui/

应用场景:

结构化和半结构化数据;非结构化数据存储(文件);归档、容灾;虚拟机存储;云存储;内容云;大数据;

解决方案:

媒体/cdn;备份、归档、容灾;海量数据共享;用户home目录;高性能计算;云存储

glusterfs弹性卷管理:

弹性hash算法(无集中式元数据服务(消除性能瓶颈、提高可靠性);使用davies-meyer算法计算32bit hash值,输入参数为文件名;根据hash值在集群中选择子卷(存储服务器),进行文件定位;对所选的子卷进行数据访问;例如brick1(00000000-3FFFFFFF),brick2(4FFFFFFF-7FFFFFFF),brick3(8FFFFFFF-BFFFFFFF));

采用hash算法定位文件(基于路径和文件名;DHT,distributed hash table,一致性hash);

弹性卷管理(文件存储在逻辑卷中;逻辑卷从物理存储池中划分;逻辑卷可在线进行扩容和缩减);

DHT(glusterfs弹性扩展的基础;确定目标hash和brick之间的映射关系):

添加node后(最小化数据重分配;老数据分配模式不变,新数据分布到所有node上;执行rebalance(在非访问高峰时段操作),数据重新分布)

glusterfs总体架构:

堆栈式软件架构:

全局统一命名空间(通过分布式FS将物理分散的存储资源虚拟化成统一的存储池):

无集中元数据服务:

基本概念:

brick(a file system mountpoint; a unit of storage used as a glusterfs building block);

translator(logic between the bits and the global namespace; layered to provide glusterfs functionality);

volume(bricks combined and passed through translators);

node/peer(server running the gluster daemon and sharing volumes);

glusterfs卷类型(基本卷、复合卷):

基本卷:

哈希卷(distributed volume,文件通过hash算法在所有brick上分布,文件级raid0,不具有容错能力);

复制卷(replicated volume,生产常用,文件同步复制到多个brick上,文件级raid1,具有容错能力,w性能下降r性能提升);

条带卷(striped volume,不建议使用,单个文件分布到多个brick上,支持超大文件,类似raid0,rr方式round-robin,通常用于HPC(high performance compute)中的超大文件(>10G的单个文件)及高并发环境(多人同时访问同一个文件));

复合卷:

哈希复制卷(distributed replicated volume,生产常用,同时具有哈希卷和复制卷的特点);

哈希条带卷(distributed striped volume);

复制条带卷(replicated striped vlume);

哈希复制条带卷(distributed replicated striped volume);

glusterfs访问接口:

fuse architecture:

gluster数据流:

fuse w,libgfapi访问:

libgfapi访问:

数据自修复:

按需同步进行-->完全人工扫描-->并发自动修复-->基于日志

镜像文件副本保持一致性;

触发时机(访问文件目录时);

判断依据(扩展属性);

脑残问题(报错或按规则处理);

容量LB:

rebalance后hash范围均衡分布,如添加一node会全局都变动;

目标(优化数据分布,最小化数据迁移);

数据迁移自动化、智能化、并行化

文件更名:

fileA-->fileB,原先的hash映射关系失效,大文件难以实时迁移;

大量采用文件符号链接,访问时解析重定向;

容量负载优先:

设置容量阈值,优先选择可用容量充足的brick;

hash目标brick上创建文件符号链接,访问时重定向

glusterfs测试方法(功能性测试(广义&狭义)、数据一致性测试、POSIX语义兼容性测试、部署方式测试、可用性测试、扩展性测试、稳定性测试、压力测试、性能测试):

功能性测试(手动或测试脚本;glusterfs(创建、启动、停止、删除卷操作,设置等);FS的功能性测试(fstest文件控制与操作;系统API调用LTP;锁应用locktest);

数据一致性测试(测试存入与读出的数据是否一致,方法:md5加密、diff、编译内核等)

POSIX语义测试(PCTS、LTP);

部署方式测试(测试不同场景下的系统部署方式,自动安装配置,集群规模,网络、存储等配置);

可用性测试(测试系统的高可用性,集群中某些server或disk、network等错误情况下系统是否可用,管理是否简单可靠,覆盖功能点(副本、自修复、管理服务));

扩展性测试(测试系统的弹性扩展功能;扩展系统后的性能影响;线性扩展能力);

稳定性测试(验证系统在长时间运行下,是否正常,功能是否正常,使用LTP、iozone、postmark进行自动化测试);

压力测试(验证在大压力下,系统运行及资源消耗情况,iozone、postmark工具进行自动化测试;top、iostat、sar等进行系统监控);

性能测试(系统在不同负载情况下的性能,iozone(带宽)、postmark(ops)、fio(iops)、dd工具进行自动化测试;关键点(顺序rw、随机rw、目录操作(创建、删除、查找、更新)、大量小文件rw、大文件rw);主要衡量指标(iops随机小文件随机rw能力、带宽、大文件连续rw能力);其它衡量指标(cpu利用率、iowait));

dd(大文件,顺序rw,带宽,单进程,临时文件,手动记录结果,无法重定向):

#dd if=/dev/zero of=/mnt/mountpoint/filebs=1M count=100   #(w)

#dd if=/mnt/mountpoint/file of=/dev/nullbs=1M   #(r)

iozone(顺序/随机rw,带宽,多进程,临时文件可选留存,可自动生成excel表记录结果值):

#iozone -t 1 -s 1g -r 128k -i 0 -i 1 -i 2-R -b /result.xls -F /mnt/mountpoint/file

-t(进程数);

-s(测试的文件大小);

-r(文件块大小);

-i #(用来指定测试内容);

-R(产生excel格式的输出日志);

-b(产生二进制的excel日志);

-F(指定测试的临时文件组);

-g(指定最大测试文件大小);

postmark(ops,元数据操作(创建、r、w、附加、删除),小文件,单进程,可重定向结果,无遗留临时文件,使用方法(配置文件或CLI)):

常用参数:

set size min_size max_size(设置文件大小的上下限)

set number XXX(设置并发文件数)

set seed XXX(设置随机数种子)

set transactions XXX(设置事务数)

set location(设置工作目录,要是已有目录,默认当前目录)

set subdirectory n n(为每个工作目录下的子目录个数)

set read n(设置rw块大小)

set write n

fio(iops,元数据操作(创建、r、w、附加、删除),小文件,多进程,可重定向结果,无遗留临时文件,使用方法(配置文件或CLI)):

参数:

filename=/tmp/file(测试文件名)

direct=1(测试过程绕过机器自带的buffer)

rw=randrw(测试随机r和w的io)

bs=16k(单次io的块文件大小为16k)

bsrange=512-2048(同上,指定数据块的大小范围)

size=5g(测试文件大小为5g)

numjobs=30(测试线程数)

runtime=1000(测试时间1000s,若不写则写完为止)

ioengine=sync(io引擎使用sync方式)

rwmixwrite=30(在混合rw的模式下,写占30%)

其它性能测试:

FS(make、mount、umount、remount);

copy、recopy、remove(大文件,>=4g);

extract、tar(linux内核源码树);

copy、recopy、remove(linux内核源码树);

list、find(linux内核源码树);

编译linux内核;

create、copy、remove(海量文件目录,>=1000000)

FS分类:

分布式FS(c/s架构或网络FS;数据不是本地直连方式);

集群FS(分布式FS的一个子集;多node协同服务,不存在单点);

并行FS(支持MPI等并行应用;并发rw,所有node可同时rw同一个文件);

产品:

商业:EMC的isilon;IBM的sonas;HP的X9000;huawei的oceanstor9000;blue whale的BWFS;loongcun的LoongStore;

开源:Lustre;glusterfs;ceph;moosefs;HDFS;fastDFS;TFS

moosefs:

moosefs是一个高容错性的分布式FS,它能够将资源分布存储在几台不同的物理介质,对外只提供给用户一个访问接口;高可靠性(数据可被存储于几个不同的地方);可扩展性(可动态的添加server或disk来增加容量);高可控性(系统能设置删除文件的时间间隔);可追溯性(能根据文件的不同操作,r or w,生成文件快照;

lustreFS:

LustreFS是一个基于对象存储的开源分布式FS,提供与POSIX兼容的FS接口;目前lustreFS最多可支持10w个client,1K个oss和2个MDS节点;实验与应用已证明,lustreFS的性能和可扩展性都不错;还拥有基于对象的智能化存储、安全的认证机制、完善的容错机制,而且实现了文件锁功能;SUN说lustre是目前全球具有最佳可扩展性的并行FS,现全球十大超级计算机中的6个以及top100中的40%的超级计算机都采用了这个系统;

lustre组成:

元数据存储管理(MDS负责管理元数据,提供一个全局的命名空间,client可通过MDS读取到保存于MDT之上的元数据,在lustre中MDS可有2个,采用了active-standby的容错机制,当其中一个MDS故障另一个MDS启动服务接替,MDT只能有1个,不同MDS之间共享访问同一个MDT);

文件数据存储与管理(OSS负责提供i/o服务,接受并服务来自网络的请求,通过OSS,可访问到保存在OST上的文件数据,一个OSS对应2-8个OST,OST上的文件数据是以分条的形式保存的,文件的分条可在一个OSS之中,也可保存在多个OSS中,lustre的特色之一是其数据是基于对象的职能存储的,与传统的基于块的存储方式有所不同);

lustre系统访问入口(通过client来访问系统,client为挂载了lustreFS的任意node,client提供了linux下VFS与lustre系统之间的接口,通过client用户可访问操作lustre系统中的文件);

ceph:

ceph是一个开源的分布式块、对象和文件统一存储平台,sage weil专为其博士论文设计的新一代自由软件分布式FS,2010年,linus torvalds将ceph client合并到2.6.34的kernel中;优点:元数据集群、动态元数据分区、智能对象存储系统、支持PB级存储、高可靠性、支持复制、自动故障探测与修改、自适应满足不同应用负载、大文件和小文件均表现好;不足:数据可用性更多依赖底层FS,btrfs,复制存储利用率低,设计和实现太过复杂,管理也复杂,目前仍不成熟,不建议用于生产环境

开源并行FS比较(glusterfs VS moosefs VS lustre VS ceph):


比较维度


Glusterfs


Moosefs


Lustre


Ceph


成熟度


2005年发布第一个GA版1.2.3,2013年GA版3.3.2,具有成熟的系统架构和完整的工程代码


2008年发布第一个开源版本v1.5,13年发布GA版v1.6.27,稳定,比较成熟的开源DFS


2003发布第一个版本lustre1.0,2013年发布v2.4.0,相当成熟,在HPC领域占有绝大比例


2013年发布v0.71,并已添加到linux kernel中作实验内核,目前不成熟有较多bug,更新稳定都是实验版


稳定性


较稳定,无重大bug,已有较多组织或机构应用于生产环境


较稳定,无重大bug


很稳定,在HPC领域应用很多


核心组件RADOS较稳定,每3个月更新一次稳定版,有部分企业用于生产环境


复杂度


简单,无元数据服务,用户空间实现,架构清晰,xlator树形结构


简单,用户空间实现,代码规模较小,高度模块化


复杂度较高,依赖内核实现


较复杂,c++实现,功能较多


高性能


解除元数据瓶颈,并行化数据访问


元数据单点瓶颈


高性能,HPC领域表现卓越


数据分布均衡,并行化度高


扩展性


弹性hash代替元数据服务,线性扩展,可轻松扩展到数百PB量级,支持动态扩容


可增加存储server,不能增加MDS


高扩展性,容量可达数百PB,可在不打断任何操作的情况下,通过增加新的OSS来实现动态扩展


高扩展性,支持10-1000台server,支持TB到PB的扩展,当组件发生变化时(添加或删除),自动进行数据的重分布


可用性


多元数据服务设计,数据分布提供三种方式的分割:AFR、DHT、stripe,支持自动复制和自动修复


元数据+日志服务器,保障元数据server,运行时元数据放内存,可设置副本


元数据集群,可部署主备切换工作方式,无副本设计,OSS之间可利用共享存储实现自动故障恢复


元数据集群,没有单点故障,多数据副本,自动管理、自动修复,monitor监控集群中所有节点状态,且可有多个monitor保证可靠性


可管理性


部署简单,易于管理和维护,使用底层FS,ext3/zfs,客户端负载增加;提供管理工具,如卷的扩容、数据LB、目录配额及相关监控等


部署简单,提供web gui监控界面,元数据恢复,文件恢复,回收站功能,快照


部署复杂,需升级kernel等,提供管理工具,如设置目录stripe


部署较复杂,提供工具对集群进行监控管理,包括集群状态,各组件状态等


研发成本


用户空间实现,模块化堆栈式架构


用户空间实现,小规模


高,内核空间实现,且代码规模大


较高,代码规模大,功能多


适用性


适用以文件为对象的存储体系,适合大文件存储


小规模集群,元数据瓶颈,内存消耗大


大文件,HPC领域


NAS兼容


支持NFS、CIFS、HTTP、FTP、gluster原生协议,与POSIX标准兼容


支持CIFS、NFS,支持标准POSIX接口


支持CIFS、NFS,支持标准POSIX接口


支持CIFS、NFS,支持标准POSIX接口


采用指数


☆☆☆☆


☆☆☆


☆☆☆


☆☆

时间: 2024-10-16 12:05:35

V 10 glusterfs的相关文章

【hdu3080】01背包(容量10^7)

[题意]n个物品,有wi和vi,组成若干个联通块,只能选取一个联通块,问得到m的价值时最小要多少空间(v).n<=50,v<=10^7 [题解] 先用并查集找出各个联通块. 这题主要就是v太大了,跟以往的背包不同. 我们回想01背包,f[j+v[i]]=max(f[j]+w[i]); 在这里面很明显很多状态都没有用. 优化:如果有2个状态,v1<=v2 && w1>=w2 则(v2,w2)这个状态是没有用的. 我们回到滚动数组中: f[i][j+v[i]]=max(

OSX10.10 Yosemite安装Metasploit

安装环境 操作时间: 2015/6/8 操作系统: OSX Yosemite 10.10.3 Metasploit版本: v4.11.0-dev [core:4.11.0.pre.dev api:1.0.0] Ruby版本: 2.1.6p336 (2015-04-13 revision 50298) 整体安装步骤 从github上克隆Metasploit项目到本地 安装postgresql数据库并进行配置 安装特定版本的ruby,解决依赖 下面正式开始安装 1.从GitHub上克隆Metaspl

XVI Open Cup named after E.V. Pankratiev. GP of Eurasia

A. Nanoassembly 首先用叉积判断是否在指定向量右侧,然后解出法线与给定直线的交点,再关于交点对称即可. #include<bits/stdc++.h> using namespace std; const int Maxn=300020; typedef long long LL; typedef pair<int,int>pi; struct P{ double x,y; P(){x=y=0;} P(double _x,double _y){x=_x,y=_y;}

9.10 AHSOFNU校内模拟

9.10完整的在AHSOFNU考了一场模拟赛 以下记录了本次考试的题目(由于mhm想当然的以为是跳石子而没有sort就打挂惹T-T) 本次考试被出题人判定为普及-(???) //以下题目中有贴std代码,等A后修正为自己代码 ----------------------分割线-------------------------------------- T1: CCT 最近学校又发了n本五三题霸,BBS看到后十分高兴.但是,当他把五三拿到手后才发现,他已经刷过这些书了!他又认真地看了一会儿,发现新

传智播客 刘意_2015年Java基础视频-深入浅出精华版 笔记(2015年10月25日23:28:50)

本笔记是个人笔记+摘录笔记相结合,非完全原创 day01 win 7系统打开DOS有趣方法:按住shift+右键,单击“在此处打开命令窗口”(注意:在此处可以是任何的文件夹,不一定是桌面) 用DOS删除的文件不可以在回收站恢复?!! 常用DOS命令d: 回车 盘符切换dir(directory):列出当前目录下的文件以及文件夹md (make directory) : 创建目录(创建文件夹)rd (remove directory): 删除目录(删除文件夹,注意:前提是文件夹必须是空的!!)如果

数据结构10——最短路径

最短路径:带权图中从一个结点到另外一个结点可能会有多个路径,但是将带权路径长度值最小的一条路径成为最短路径. 1:(Dijkastra)迪克斯特拉算法: 迪克斯特拉算法用于最短路径的方法和prim用于最小生成树的方法类似都是按照路径权值由小到大的顺序来产生最短路径. 主要思想:设置两个集合的结点S和T,集合S用于存放已经找到最短路径的结点, 集合T中存放当前未找到的最短路径. 与前面的prim算法类似都是通过路径逐渐递增的方式来获得. 迪克斯特拉算法的具体实现: 1 package com.ho

10月24日下午PHP封装

1 <?php 2 3 class Ren 4 { 5 private $name; 6 private $sex; 7 private $age; //年龄必须在18-50之间 8 9 function __construct($v) 10 { 11 $this->sex = $v; 12 } 13 //魔术方法set 14 function __set($n,$v) 15 { 16 if($n=="age") 17 { 18 if($v>=18 &&

《C++primer》v5 第10章 泛型算法 读书笔记 习题答案

10.1 using namespace std; int main() { vector<int> vec; int a; cin>>a; int v; while(cin>>v) vec.push_back(v); cout<<a<<" : "<<count(vec.begin(),vec.end(),a)<<endl; return 0; } 10.2 using namespace std; i

GlusterFS分布式文件系统原创文章合集

大量原创博文可见如下链接,话说原文作者刘爱贵会持续更新: http://blog.csdn.net/liuaigui/article/details/17331557 下面提供一个当前版本的链接: [1] GlusterFS集群文件系统研究 [2] 基于开源软件构建高性能集群NAS系统 [3] 关于Gluster稳定性的一个BUG [4] 创建Glusterfs分布式RAID10卷 [5] 设计新Xlator扩展GlusterFS [6] Glusterfs全局统一命名空间 [7] Gluste