GlusterFS Dispersed Volume(纠错卷)总结
https://blog.csdn.net/daydayup_gzm/article/details/52748812
一、概念
Dispersed Volume是基于ErasureCodes(纠错码)的一种新类型的Volume(3.6版本正式发布该特性),类似于RAID5/6。通过配置Redundancy(冗余)级别提高可靠性,在保证较高的可靠性同时,可以提升物理存储空间的利用率。
文件是被分割成大小相同的Chunk(块),而每个Chunk又被分割成fragment,而冗余信息的Fragment也随之生成,且同一个Fragment只会保存一个Brick上。
Redundancy是均匀分布存储在所有的Brick,磁盘的有效空间是Brick-Redundancy。
在数据恢复时,只要Brick-Redundancy个Fragment(可以是数据,也可以是冗余信息)可用,就能正常恢复数据,如下图所示。
二、特性
1、可配置的Redundancy
若Redundancy设置为0时,DispersedVolume等同于分布式卷;若Redundancy设置为brick/2时,DispersedVolume等同于复制卷。具体Redundancy的配置,根据具体的应用场景,在存储利用和可靠性做均衡选择。
官方经典的配置为:6个Brick配置2个Redundancy。
2、读写开销
读时,在数据未丢失下,一般不会去读取冗余信息,而是直接读取有效数据,额外开销为0。
写时,需要访问每一个可用的Brick,并且需要读取冗余信息,开销如下图所示。
三、创建disperse卷
创建规则1,同一个peer,只允许存在onebrick of a disperse set
1、创建disperse卷
#glustervolume create [disperse [<count>]] [redundancy <count>] [transporttcp | rdma | tcp,rdma]
disperse至少配置为2,redundancy配置至少为1,所以配置disperse卷最少需要3brick。
如果不指定disperse的数量,所有的volume被认为就是一个disperse集合。如果不指定redundancy数量,系统将根据disperse计算出最佳的redundancycount。
例1:以下这个命令,未具体配置disperse和redundancy数量,系统会提示用户,并计算出最佳配置(4 brick配置1 redundancy)。
#gluster volume create test-volume disperse 4 server{1..4}:/bricks/test-volume
例2:系统计算得到6 brick配置2 redundancy
#gluster volume create test-volume disperse 4 server{1..4}:/bricks/test-volume
2、创建Distributed Dispersed Volumes
#glustervolume create disperse <count> [redundancy <count>] [transport tcp| rdma | tcp,rdma]
要求disperse<count>必填,redundancy 数量和dispersedvolume相同。
四、Volume性能分析
根据官方文档的例子,对比经典分布式EC卷和分布式复制卷的几项性能。
硬盘环境如下:6台服务器,每台配置4个4TB的SATA磁盘(总容量为96TB),每个磁盘的IOPS为90,且每个磁盘只配置一个brick
1、【场景1】分布式+ Replica 2 卷
磁盘可利用空间:48TB
读IOPS:2160(6*4*90)
写IOPS:1080
Maximum failedbricks: 1
Maximum failedservers: 1
2、【场景2】分布式+ EC 6.2卷
经典模式,6个Brick中2个做冗余,如下图所示
磁盘可利用空间:64TB(96*4/6)
读IOPS:540
写IOPS:360
Maximum failedbricks: 2
Maximum failedservers: 2
五、个人总结
从上述的性能分析示例中,可以得到,相对于分布式复制卷,经典分布式EC卷的优点是较高的磁盘利用率和容错性,但是其IOPS性能下降较多。
若用户对磁盘利用率有较高期望的时,我们可以采用分布式EC集群搭建GlusterFS服务。
若用户对IOPS要求较高时,分布式复制GlusterFS集群是最优选择。
---------------------
作者:dream-wing
来源:CSDN
原文:https://blog.csdn.net/daydayup_gzm/article/details/52748812
版权声明:本文为博主原创文章,转载请附上博文链接!
GlusterFS Dispersed Volume(纠错卷)总结的更多相关文章
- k8s volume存储卷(四)
介绍 volume存储卷是Pod中能够被多个容器访问的共享目录,kubernetes的volume概念,用途和目的与docker的volume比较类似,但两者不能等价,首先,kubernetes中的v ...
- k8s volume存储卷
k8s volume存储卷 介绍 volume存储卷是Pod中能够被多个容器访问的共享目录,kubernetes的volume概念,用途和目的与docker的volume比较类似,但两者不能等价, ...
- Docker容器学习梳理 - Volume数据卷使用
之前部署了Docker容器学习梳理--基础环境安装,接下来看看Docker Volume的使用. Docker volume使用 Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker ...
- Docker学习笔记之docker volume 容器卷的那些事(二)
预览目录 更改目录拥有者 Data Container 切换用户 参考文章 0x00 概述 如果你读了docker volume 容器卷的那些事(一),我想应该不会遇到下面这些问题的,毕竟是具有指导意 ...
- glusterfs分布式复制扩容卷以及平衡卷
随着数据量的增长,需要扩容满足使用.今天测试下glusterfs磁盘扩容的具体步骤 1.扩容 之前用的2台计算机的分布式复制卷.需要同时之两个服务器增加一块磁盘并格式化,挂载并扩容 热添加磁盘 ech ...
- GlusterFS创建volume失败的解决方法(* or a prefix of it is already part of a volume)
问题描写叙述: 之前已经创建了一个replicated的volume gv0,replica=2,两个文件夹为:/test/data1和/test/data2,之后发现这两个文件夹不太合适,想在/te ...
- docker进阶篇(一) ---- Volume(数据卷)
引言 docker的镜像是由多个只读的文件系统叠加在一起形成的.当我们在我启动一个容器的时候,docker会加载这些只读层并在这些只读层的上面(栈顶)增加一个读写层.这时如果修改正在运行的容器中已有的 ...
- Docker学习笔记之docker volume 容器卷的那些事(一)
预览目录 volume 方式 相关用例 使用方式 使用 volume driver bind mount 方式 相关用例 使用方式 配置selinux标签 配置macOS的安装一致性 tmpfs 方式 ...
- GlusterFs卷类型分析及创建、使用(结合kubernetes集群分析)
引言 本文通过对卷类型的分析对比,来帮助读者选取生产环境最符合服务的挂载存储,命令可结合<glusterfs详解及kubernetes 搭建heketi-glusterfs>进行实验,下面 ...
随机推荐
- 【剑指offer】平衡二叉树
题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树. 分析:采用后序遍历的方式判断左右子树的高度差是否大于1 class Solution { public: bool flag; int f(T ...
- SpringBoot+Vue前后端分离项目,maven package自动打包整合
起因:看过Dubbo管控台的都知道,人家是个前后端分离的项目,可是一条打包命令能让两个项目整合在一起,我早想这样玩玩了. 1. 建立个maven父项目 next 这个作为父工程,next Finish ...
- Word 频繁无响应
可以参考以下方法,这是我的解决办法,不保证对你也有用. 步骤一: 在「开始 > 运行」中输入「winword /a」进入无加载项 Word: 依次进入「Word 选项 > 高级 > ...
- Mybatis自动生成代码工具
项目结构如下 一:在POM中添加mybatis-generator-maven-plugin 插件 <plugins> <plugin> <groupId>org. ...
- php的json_encode第二个参数学习及应用
php5.4以上: json_encode($data, JSON_FORCE_OBJECT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); p ...
- jdbc 简单示例和优缺点
一个使用JDBC的例子: Class.forName("com.mysql.cj.jdbc.Driver"); //加载驱动 Connection connection = Dri ...
- WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片
原文:WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 我们知道,在 WPF 中的坐标单位不是屏幕像素单位,所以如果需要知道某个控件的像素尺寸,以便做一些与屏幕像素尺寸相关 ...
- 2019 龙采科技java面试笔试题 (含面试题解析)
本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.龙采科技等公司offer,岗位是Java后端开发,最终选择去了龙采科技. 面试了很多家公司,感觉大部分公司考察的点 ...
- aria2 ssl
https://github.com/q3aql/aria2-static-builds https://github.com/aria2/aria2/issues/781
- 【开发笔记】- MySQL EXPLAIN用法和结果的含义
转自:http://blog.chinaunix.net/uid-540802-id-3419311.html explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择 ...