首页 > 其他分享 >关于GlusterFS的卷

关于GlusterFS的卷

时间:2022-12-04 20:01:16浏览次数:30  
标签:create gluster volume GlusterFS 关于 Brick 冗余 分布式

更多精彩内容可在文末扫码查看

GlusterFS术语

Brick:GlusterFS中的存储单元,通常是一个受信存储池中的服务器的一个目录。可以通过主机名和目录名来标识,如'SERVER:EXPORT'。 Node:一个拥有若干brick的设备。 Volume:一组bricks的逻辑集合。 Client:挂载了GlusterFS卷的设备。

GlusterFS 的卷

GlusterFS根据需求支持不同类型的卷,有些卷适合扩展存储大小,有些卷适合提高性能,有些卷则两者兼而有之。

1. 分布式卷

分布式卷-Distributed Glusterfs Volume,是GlusterFS默认的卷,在创建卷时,如果不指定创建卷的类型,则默认会创建分布式卷。在分布式卷里,文件存储在卷里面的单个Brick中,没有冗余备份。 这种模式的卷扩缩容方便且成本低,但是由于没有数据的冗余备份,一旦出现故障,就容易引起数据的丢失,必须依靠底层硬件进行数据丢失保护。

image.png

创建分布式卷命令:

# gluster volume create NEW-VOLNAME [transport [tcp | rdma | tcp,rdma]] NEW-BRICK...

例如,使用 TCP 创建具有四个存储服务器的分布式卷:

# gluster volume create test-volume server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

查看卷信息:

# gluster volume infoVolume Name: test-volumeType: DistributeStatus: CreatedNumber of Bricks: 4Transpor

2. 复制卷

复制卷-Replicated Glusterfs Volume,避免了分布式卷中存在的数据丢失风险。 在复制卷中,数据会在每一个Brick上保存一份副本。如不需要那么多份副本数,则可以在创建卷的时候指定保存的副本数量。 复制卷需要至少2个Brick来创建具有 2 个副本的卷,或者至少需要3个Brick来创建包含 3 个副本的卷。 这种卷的一个主要优点是,即使一个块发生故障,仍然可以从其复制的块访问数据。复制卷在数据的可靠性冗余性都优于分布式卷。 image.png

创建复制卷命令:

# gluster volume create NEW-VOLNAME [replica COUNT] [transport [tcp |rdma | tcp,rdma]] NEW-BRICK...

例如,创建具有三个存储服务器的复制卷:

# gluster volume create test-volume replica 3 transport tcp \
      server1:/exp1 server2:/exp2 server3:/exp3

3. 分布式复制卷

在分布式复制卷-Replicated Glusterfs Volume中,文件分布在复制的Brick上。Brick数必须是副本计数的倍数。此外,我们指定Brick的顺序也很重要,因为相邻的Brick成为彼此的复制品。 例如,如果卷有8个Brick并且副本计数为 2,那么前2个Brick就会互备,然后是接下来的2个Brick,依此类推。此体积表示为 4x2。同样,如果有8个Brick并且副本计数为 4,那么前4个Brick就会互备,此时体积表示为 2x4 体积。 当需要保证数据具有冗余性和存储的可扩展性来保证数据的高可用时,可选用此种卷。 image.png

创建分布式复制卷命令:

# gluster volume create NEW-VOLNAME [replica COUNT] [transport [tcp | rdma | tcp,rdma]] NEW-BRICK...

例如,创建一个有6个Brick,且副本数为3的卷:

# gluster volume create test-volume replica 3 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6

4. 分散卷

分散卷-Dispersed Glusterfs Volume基于纠删码,它将文件的编码数据条带化,切割成若干份,并加了一些冗余,存储在跨卷中的多个Brick里。 分散卷具有可配置的可靠性水平,且空间浪费最小。创建卷时,可以指定卷中冗余Brick的数量。冗余的Brick数量决定了可以丢失多少块Brick而不会影响卷的操作。 image.png

创建分散卷的命令:

# gluster volume create test-volume [disperse [<COUNT>]] [disperse-data <COUNT>] [redundancy <COUNT>] [transport tcp | rdma | tcp,rdma] <NEW-BRICK>

例如,创建一个冗余级别为 1 的三个节点分散卷 (2 + 1):

# gluster volume create test-volume disperse 3 redundancy 1 server1:/exp1 server2:/exp2 server3:/exp3

5. 分布式分散卷

分布式分散卷-Distributed Dispersed Glusterfs Volume与分布式复制卷是相似的,只是使用的分散子卷,而不是复制子卷。Brick的数量必须是第一个子卷的倍数,且必须至少有3个Brick。 这种卷能支持方便扩缩容卷的大小并将负载分布在各个Brick上。 image.png

创建分布式分散卷的命令:

# gluster volume create [disperse [<COUNT>]] [disperse-data <COUNT>] [redundancy <COUNT>] [transport tcp | rdma | tcp,rdma] <NEW-BRICK>

例如,创建一个冗余级别为 1、2 x (2 + 1) = 6 的六个节点分布式分散卷:

# gluster volume create test-volume disperse 3 redundancy 1 server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6

注意: 一个分散卷可以在创建时指定数据切割的块数和冗余的数量;

如果没有指定disperse数量,或者<COUNT>参数缺失,则整个卷将被视为由命令行中枚举的所有Brick组成的单个分散集;

如果未指定redundancy冗余数量,则会自动将其计算为最佳值。如果此值不存在,则假定为“1”,并显示一条警告消息:

There isn't an optimal redundancy value for this configuration. Do you want to create the volume with redundancy 1 ? (y/n)

在自动计算冗余且不等于“1”的所有情况下,将显示一条警告消息如:

# gluster volume create test-volume disperse 6 server{1..6}:/bricks/test-volume
The optimal redundancy for this configuration is 2. Do you want to create the volume with this value ? (y/n)

因为冗余必须大于0,并且Brick的总数必须大于2*冗余。所以分散卷必须至少有3个Brick。

相关链接:

本文内容梳理自GlusterFS官网: https://docs.gluster.org/en/latest/Quick-Start-Guide/Architecture/

::: hljs-right

(完)

:::

标签:create,gluster,volume,GlusterFS,关于,Brick,冗余,分布式
From: https://blog.51cto.com/u_10950710/5910041

相关文章

  • 关于组合计数的一个小技巧
    组合计数小技巧一个关于组合计数的小技巧:这个问题是这样的,给定\(n\)个数\(a_1\sima_n\),要求出这\(n\)个数中所有组合的乘积之和例如\(n=3\)时,即为:\(a_1+a_2+a_3+a_1a_2......
  • RHEL8关于创建Service服务的帮助手册
    Systemd手册主页Systemd服务关于搜索路径顺序和部分配置项手册Systemd服务配置语法如果想通过man查看手册的话,那么使用mansystemd.<unit|syntax|...>格式进行查看帮......
  • 关于python深拷贝,deepcopy和 copy的知识随手记
    Python中copy模块下的deepcopy函数使用,采用的深层拷贝,并开辟新的空间   如果用copy函数,  如果拷贝的是不可变类型: ......
  • 关于Lombok不常见的使用方式
    packagecom.example.cisum.utils;importlombok.*;importlombok.experimental.Accessors;importlombok.experimental.FieldNameConstants;importlombok.extern.......
  • 关于我
    四川初三oier。初一开始学oi,但由于直到初三上学习态度都有大问题并且非常颓,中途还原地AFO了几个月,故相当于初三才开始学习oi,没有获奖记录。此博客用来存题解和笔记,有些笔......
  • 关于mybatis-plus多数据源以及@Transactional使用的注意点
    1.myatis-plus多数据源使用,我用的不是dymanicdatasource,而是自定义的多数据源配置方式,如下图,相信很多人都用过,由于我不是介绍怎么使用多数据源,所以具体的我就不介绍了。......
  • 【C】关于 sizeof 运算符
    sizeof的实现还是比较巧妙地: //如果对象是数组#definesizeof(ARR)((size_t)(&ARR+1)-(size_t)(&ARR))我们都知道: intx=0;shorty=0;......
  • 关于i3-8100安装黑群晖无核显问题
    本人引导是1.04bds918+ 群晖版本6.2.31.操作方法https://www.zxbblog.com/?id=138(需要diskgeniuspro版本,去网上随便下一个)2.补丁下载地址:点我下载 提取码:kox4(DS......
  • 关于分类任务的一些知识点
    对于业务用户来说,希望技术团队完成的是正确分类,区别无分是分成两类还是多类,是一个级别的分类还是多个级别的分类,然后要求准一点。那么什么是准一点呢?也许用户还没有意识到......
  • Astro - 关于某些星到底长什么样子
    变星脉动变星(长周期)造父变星周期造父变星都是已经演化到晚期的红超巨星。星体膨胀到最大时,视向速度最大,星最暗。造父一(仙王座\(\delta\))标准烛光。光变周期\(\rig......