红帽存储管理2——volume类型与创建

红帽存储管理2——volume类型与创建

三、volume的管理

红帽存储服务器管理的对象主要就是volume,volume是brick逻辑上的集合,这种集合的方法也有多种,不同的集合方式代表不同的volume类型,主要有七大类型


1、volume类型


Distributed

分布式:将文件平均分配到不同的bricks中(以文件个数平均分配),如果一个volume只包含1个brick,也叫做distributed volume,所以distributed volume至少要包含1个brick


Replicated

复制式 将文件以复制的性质保存在不同的bricks中,由于文件是以复制的形式存在,那么relicated volume 至少需要2个brick,如果一个文件要以复制的形式保存在2个brick中,叫two-way replicated volume,如果是保存在3个brick中,叫three-wayreplicated volume,那么three-way至少要有3个brick

Striped

片段式 将文件分成等长度的片段保存在不同的bricks中。Stripedvolume要求至少有2个brick,首先将一个文件按照指定的长度分成若干个文件片段,然后将这些文件片段分布的存储在不同的brick中,见下图,在brick中,不同片段还是以原文件的文件名形式存在的,但是只是文件的一部分,不是全部。

Distributed replicated volume

将分布式和复制式结合在一起,之前说过,distribute至少需要1个brick,replicated至少需要2个brick,那么一个distributed replicated volume则至少需要1×2=2个brick,这种也可以这样叫:distributed×replicated=1×2,那么上面图6.2就是一个1×2的distributedreplicated volume,图6.3就是一个1×3的distributed replicated volume。下图就是一个2×2的distributedreplicated volume。存储过程:首先在创建2×2的distributed replicated volume的时候就已经将4个brick划成两个部分了(distributed=2),然后每一个部分中有两个brick,这两个brick是(two-way)复制型的,存放相同的文件。那么如果我们有两个文件,首先将两个文件分布成两个部分(distributed=2),然后将每一个文件都复制成两个文件(replicated=2),然后分别存入不同的brick中。图6.5是一个2×3的distributed replicated volume。

Distributed striped volume

将分布式和片段式结合在一起,distributed至少需要1个brick,striped至少需要2个brick,1个Distributed striped volume则至少需要1×2=2个brick,图6.6就是一个1×2的distributed stripedvolume。下图是一个2×2的distributed striped volume。存储过程:首先在创建2×2的distributed stripedvolume的时候就已经将4个brick划成两个部分了(distributed=2),然后每一个部分中有两个brick,这两个brick是striped=2片段式存储型的,假如有两个文件要存入这个volume中,首先将这两个文件分成两块(distributed=2),然后将每一个文件分成等大小的片段,然后分别存入brick中。

Striped replicated volume

将片段式和复制式结合起来,下图是一个2×2的striped replicated volume,存储数据时,先将文件拆成多个片段,将这些片段按照规则分成两部分(striped=2),然后将这两部分分别复制(replicated=2)存入不同brick中。

Distributed striped replicated volume

上图6.8也可以说是1×2×2的distributedstriped replicated volume,数据存储先分布再片段再复制。下图就是一个2×2×2的distributed striped replicated volume,它需要2×2×2=8个brick。

总结

其实三种基本类型都是以distributed为基础的

distributed模式是分布前不对文件做任何操作

replicated模式是将文件复制成多个文件再做分布操作

striped模式是将文件拆分成多个片段再降片段做分布操作

2、Volume创建与管理

创建volume之前我们要清楚我们要创建的volume类型,此类型需要多少个brick,brick的大小等,我们都要事先规划好。

创建volume的基本命令(也就是创建distributed型volume)

gluster volume create VOLUME_NAME BRICK_NAME…

举例:创建一个含有2个brick的distributedvolume

[[email protected] ~]# gluster volume create new_volume [transporttcp|rdma|tcp,rdma] rhs0:/bricks/brick1/brick/ rhs1:/bricks/brick11/brick
volume create: new_volume: success: please start the volume to accessdata
[[email protected] ~]# gluster volume info
Volume Name: new_volume
Type: Distribute
Status: Created
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: rhs0:/bricks/brick1/brick/
Brick2: rhs1:/bricks/brick11/brick

创建replicated型volume

基本命令

gluster volume create VOLUME_NAME [transport tcp|rdma|tcp,rdma] replicaCOUNT BRICK_NAME…

创建一个包含2个brick的two-wayreplicated volume

[[email protected] ~]# gluster volume create rep replica 2 > rhs0:/bricks/brick1/brick/ > rhs1:/bricks/brick11/brick
volume create: rep: success: please start the volume to access data
[[email protected] ~]# gluster volume info
Volume Name: rep
Type: Replicate
Volume ID: d7fdb75b-9451-41f7-93f0-48df06b103a7
Status: Created
Snap Volume: no
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: rhs0:/bricks/brick1/brick
Brick2: rhs1:/bricks/brick11/brick
Options Reconfigured:
performance.readdir-ahead: on
snap-max-hard-limit: 256
snap-max-soft-limit: 90
auto-delete: disable

创建striped型volume的基本命令

gluster volume create VOLUME_NAME [transport tcp|rdma|tcp,rdma] stripe COUNTBRICK_NAME

与创建replicated volume相比,只是将replica COUNT 改成了stripe COUNT,其他的不变。

那么我们如果要创建混合型的volume,怎么配置呢?

我们已经知道了,volume默认是distributed型的,所以我们只要在replicated或者striped基础上保证添加所需要的brick数量就可以了,例如我们要创建2×2的distributedreplicated volume我们只要在创建replicated volume命令基础上添加4个brick就会自动变成distributedreplicated volume,此时即为2×2的distributedreplicated volume,如果我们添加6个brick,就成为3×2的distributedreplicated volume。同理distributed stripedvolume也是一样的。

举例:

[[email protected] ~]# gluster volume create rep replica 2 > rhs0:/bricks/brick1/brick/ > rhs1:/bricks/brick11/brick/ > rhs2:/bricks/brick21/brick/ > rhs3:/bricks/brick31/brick/
volume create: rep: success: please start the volume to access data
[[email protected] ~]# gluster volume info
Volume Name: rep
Type: Distributed-Replicate
Volume ID: d7fdb75b-9451-41f7-93f0-48df06b103a7
Status: Created
Snap Volume: no
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: rhs0:/bricks/brick1/brick
Brick2: rhs1:/bricks/brick11/brick
Brick2: rhs2:/bricks/brick21/brick
Brick2: rhs3:/bricks/brick31/brick
Options Reconfigured:
performance.readdir-ahead: on
snap-max-hard-limit: 256
snap-max-soft-limit: 90
auto-delete: disable

创建striped replicated volume

基本命令

gluster volume create VOLUME_NAME [transport tcp|rdma|tcp,rdma] stripe COUNTreplica COUNT BRICK_NAME…

如果是2×2的striped replicatedvolume,那么COUNT值都为2,BRICK_NAME要有4个brick。在这里我就不实际操作了。

创建distributed stripedreplicated volume

在striped replicated volume命令基础上加上足够数量的brick,就会自动成为distributed stripedreplicated volume,上面我们加4个brick就是2×2的striped replicatedvolume,那么如果是加上8个brick就会自动成为2×2×2的distributed stripedreplicated volume

Distributed、replicated、striped三种类型的特点

Distributed只是根据文件个数来平均分布文件,但是如果一个服务器宕机,数据将丢失

Replicated将文件复制之后存于多个服务器中,可以降低宕机带来数据丢失的风险

Striped主要是应用于含有较多大文件的环境中,可以弥补distributed以文件个数来分布的缺点

创建volume中需要注意的问题

1、服务器必须开启glusterd服务

2、服务器必须在可信任存储池中

3、Volume中添加的brick是brick挂载点下的一个目录

4、同一个brick只能出现在一个volume中

5、如果创建volume失败,所添加的brick需要重新卸载,然后重新格式化,格式化的时候要加-f强制格式化,然后重新挂载,然后在挂载点创建子目录,然后才能重新使用brick。

具体步骤:

[[email protected]~]# umount  /bricks/brick1
[[email protected]~]# mkfs.xfs –I size=512 /dev/vg_bricks/brick1 –f
[[email protected]~]# mkdir /bricks/brick1 –p
[[email protected]~]# mount –a
[[email protected]~]# mkdir /bricks/brick1/brick

另外一种方法是先卸载brick,再移除lv,再使用脚本创建一个新brick

时间: 2024-10-06 01:18:18

红帽存储管理2——volume类型与创建的相关文章

Windows存储管理之磁盘类型简介

各种操作系统连接到存储系统之后,并且操作系统识别物理磁盘之后,需要对磁盘进行进一步配置.如果用户连接存储是的Windows Server,存储管理员势必需要了解Windows中的磁盘类型与文件系统.笔者从存储的角度总结了Windows磁盘与分区类型的特点,并对其内容进行介绍与分析,帮助管理员更好的了解Windows主机连接的存储和文件系统. Windows的磁盘类型: Windows的物理磁盘类型分为两种: Basic Disk(基本磁盘) – 这个类型的物理磁盘可以被MS-DOS和所有的Win

红帽存储管理1——可信任存储池和brick的管理

红帽存储管理1 一.可信任存储池的管理 存储池是一个存储服务器的集合,当一台服务器开启glusterd服务时,可信任存储池只有它自己本身,那么我们要将其他的服务器加入可信任存储池该怎么加呢?命令# gluster peer probe [server],前提是其他的服务器也必须开启glusterd服务,[Server]可以是ip地址也可以是服务器名,前提是服务器名必须能够被解析. [[email protected] ~]# gluster peer probe rhs1 peer probe:

关于Emit中动态类型TypeBuilder创建类标记的一点思考

  利用TypeBuilder是可以动态创建一个类型,现在有个需求,动态生成一个dll,创建类型EmployeeEx,需要继承原dll里面的Employee类,并包含Employee类上的所有类标记.   网上有很多例子, //创建TypeBuilder. TypeBuilder myTypeBuilder = myModBuilder.DefineType(typeName, TypeAttributes.Public); myTypeBuilder.SetParent(type);   大概

iOS回顾笔记(08) -- 自定义Cell的类型和创建步骤总结

iOS回顾笔记(08) -- 自定义Cell的类型和创建步骤总结 项目中我们常见的自定义cell主要分为两种 等高cell:如应用列表.功能列表? 非等高cell:如微博列表.QQ聊天页面? 下面对这两类cell的创建方式简单记录各步骤. 等高Cell 等高cell通常有三种创建方式: storyboard自定义cell xib自定义cell 代码创建cell(使用frame计算/使用Autolayout布局) 下面分别记录每种创建步骤: 1. storyboard自定义cell 1.创建一个继

【HR系列】SAP HR PA信息类型的创建与增强

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HR系列]SAP HR PA信息类型的创建与增强 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 PA infotype创建与增强:  增强:  1. 输入PM01.  2. 选择SingleScm(单个屏),在Infotype no.中输入想要增强的信息类型编号,然后点击Generate   objects(生成

「SAP技术」如何看Z移动类型是复制哪个标准移动类型而创建的?

[SAP技术]SAP MM 如何看一个自定义移动类型是复制哪个标准移动类型而创建的? 比如项目上有一个自定义移动类型Z59,是复制551移动类型而定义的. OMJJ配置界面里,是有一个Ref字段.如下图示,字段值显示为551.但是这个reference主要指定该移动类型与WM层面移动类型之间的Link关系. 不过这个字段提供了一些线索.至少可以让人知道,Z59移动类型可能是通过551移动类型复制过来的. Z59和551移动类型之间更直接的关系,保存在后台表. 经查,在表T156里是有保存相关re

Kubernetes部分Volume类型介绍及yaml示例

1.EmptyDir(本地数据卷) EmptyDir类型的volume创建于pod被调度到某个宿主机上的时候,而同一个pod内的容器都能读写EmptyDir中的同一个文件.一旦这个pod离开了这个宿主机,EmptyDirr中的数据就会被永久删除.所以目前EmptyDir类型的volume主要用作临时空间,比如Web服务器写日志或者tmp文件需要的临时目录.yaml示例如下: [[email protected] demon2]# cat test-emptypath.yaml apiVersio

mysql索引总结----mysql 索引类型以及创建

关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车.对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢.还是以WordPress来说,其多个数据表都会对经常被查询的字段添加索引,比如wp_comments表中针对5个字段设计了BTREE索引. 一个简单的对比测试 以我去年测试的数据作为一个简单示例,20多条数据源随机生成200万条

创造自己的群集类型----之----创建“包装”类以封装预定义集群类型

第一步:创建"包装"类以封装预定义集群类型 public class EncapsulatePredefinedCluster { private ArrayList students; public EncapsulatePredefinedCluster() { students = new ArrayList(5); } /// <summary> /// 注册新生 /// </summary> /// <param name="s&quo