Linux-GlusterFS进阶分布式卷

https://i-blog.csdnimg.cn/blog_migrate/58966ddd9b29aabe8841f5ec34f0d31c.gif

🏡作者主页:点击!

🤖Linux专栏:点击!

⏰️创作时间:2025年02月19日19点30分

在这里插入图片描述

创建分布式卷

同样是在Node1上进行的操作

分布式卷中的文件只能放在一个brick里面,不能做到负载分担

在创建卷之前,最好使用命令 gluster pool list 进行节点的查看,防止出现错误

#服务器配置
gluster pool list    #查看glusterfs的连接是否正常
gluster volume create gv-dis Node1:/exp/vdb1/brick Node2:/exp/vdb1/brick  #这里没有指定卷的类型,默认分布式卷
gluster volume info    #查看卷信息
gluster volume start gv-dis    #开启分布式卷
gluster volume info    #查看卷信息,发现已经是开启状态

#客户端配置
mkdir -p /mnt/gfs/dis    #创建挂载点
mount -t glusterfs Node1:gv-dis /mnt/gfs/dis    #将Node1中的gv-dis挂载到客户端的 /mnt/gfs/dis 中
df -Th    #查看本地挂载内容
cd /mnt/gfs/dis
dd if=/dev/zero of=/mnt/gfs/dis/test1.txt bs=1M count=40    #创建大文件,1M输出40个
dd if=/dev/zero of=/mnt/gfs/dis/test2.txt bs=1M count=40    #创建大文件,1M输出40个
dd if=/dev/zero of=/mnt/gfs/dis/test3.txt bs=1M count=40    #创建大文件,1M输出40个
dd if=/dev/zero of=/mnt/gfs/dis/test4.txt bs=1M count=40    #创建大文件,1M输出40个
dd if=/dev/zero of=/mnt/gfs/dis/test5.txt bs=1M count=40    #创建大文件,1M输出40个(生成5个text文本)


#之后到客户端中/mnt/gfs/dis下面创建文件,就会同步到Node1和Node2的/exp/vdb1/brick下面,但是数据是共同存储的
#比如 1 2 3存在于Node1,4 5存在于Node2

创建复制卷

(三副本)

同样是在Node1上进行的操作

#服务器配置
gluster pool list    #查看glusterfs的连接是否正常
gluster volume create gv-rep replica 3 Node1:/exp/vdb2/brick Node2:/exp/vdb2/brick Node3:/exp/vdb2/brick
#创建的测试卷为复制卷 replica x 表示复制卷 x 表示多个副本之后加上位置
gluster volume info    #查看卷信息
gluster volume start gv-rep    #开启分布式卷
gluster volume info    #查看卷信息,发现已经是开启状态

#客户端配置
mkdir -p /mnt/gfs/rep    #创建挂载点
mount -t glusterfs Node1:gv-rep /mnt/gfs/rep    #将Node1中的gv-rep挂载到客户端的 /mnt/gfs/rep 中
df -Th    #查看本地挂载内容(三副本的复制卷,显示的话只会显示是2G)
cd /mnt/gfs/rep
dd if=/dev/zero of=/mnt/gfs/rep/test1.txt bs=1M count=40    #创建大文件,1M输出40个
dd if=/dev/zero of=/mnt/gfs/rep/test2.txt bs=1M count=40    #创建大文件,1M输出40个
dd if=/dev/zero of=/mnt/gfs/rep/test3.txt bs=1M count=40    #创建大文件,1M输出40个
dd if=/dev/zero of=/mnt/gfs/rep/test4.txt bs=1M count=40    #创建大文件,1M输出40个
dd if=/dev/zero of=/mnt/gfs/rep/test5.txt bs=1M count=40    #创建大文件,1M输出40个(生成5个text文本)
df -Th    #查看剩余的信息
#之后到客户端里面创建文件就会同步到其他的服务器里面,此时会收到同步的服务器有Node1、Node2、Node3
<think>我们正在处理关于GlusterFS分布式复制创建的问题。根据引用[2]和引用[5],分布式复制(distributed-replicatedvolume)是复制(replica)和分布式(distributed)的结合。在创建时,需要指定replica的数量,并且总的brick数量必须是replica数量的整数倍(即副本数的倍数,且至少两倍,因为一个分布式单元由多个副本组成,而整个由多个这样的分布式单元组成)。关键点:1.最小节点数:根据引用[2]中的示例,创建分布式复制时指定了replica=2,并使用了4个brick(即4个节点,每个节点一个brick)。实际上,分布式复制的最小节点数取决于副本数(replica)和分布单元的数量。最小情况下,我们可以有一个分布单元(即一个复制),那么节点数等于副本数。但分布式复制通常意味着有多个分布单元(即多个复制),所以最小节点数应该是副本数的两倍(即两个分布单元,每个单元有副本数个节点)。然而,根据GlusterFS的要求,一个分布式复制至少需要两个复制(即两个分布单元)才能称为分布式。因此,最小节点数应该是副本数乘以分布单元数,而最小分布单元数为2,所以最小节点数为2*副本数(replica)。2.配置方法:引用[2]提供了创建分布式复制的命令:```glustervolumecreate<名>replica<副本数><brick1><brick2>...force```注意:brick的数量必须是副本数的整数倍,且至少两倍(即至少两个分布单元)。具体回答:-最小节点数:假设我们设置副本数为2(这是常见设置,可以容忍一个节点故障),那么最小节点数为4(因为2个副本为一个复制,两个复制就需要4个节点)。如果副本数为3,则最小节点数为6(两个分布单元,每个单元3个节点)。-配置步骤(以副本数=2,节点数=4为例):1.确保所有节点上GlusterFS服务已安装并启动(引用[4]中提到了安装步骤)。2.确保所有节点上的brick目录已创建(例如,每个节点上创建/data/brick1目录)。3.使用以下命令创建(以四个节点node1、node2、node3、node4为例):```glustervolumecreatedis-repreplica2node1:/data/brick1node2:/data/brick1node3:/data/brick1node4:/data/brick1force```这里,名为“dis-rep”,replica2表示每个复制包含2个副本,后面跟4个brick,正好是2的倍数(2个复制)。4.启动:```glustervolumestartdis-rep```5.查看信息:```glustervolumeinfodis-rep```引用[5]提到:当创建分布式复制,复制(replica)的数量为2时,可用空间为总容量的一半。这是因为每个数据块存储了两份(两个副本),所以实际可用空间是总容量除以副本数。注意:force选项通常在需要覆盖一些检查(比如brick目录不在根分区)时使用,但生产环境中应谨慎使用。因此,总结回答:-最小节点数:至少需要副本数的两倍(即2*replica)。例如,replica=2时,最小节点数为4。-配置方法:如上所述。相关问题:1.如何扩展GlusterFS分布式复制的容量?2.分布式复制和复制在性能上有什么区别?3.GlusterFS分布式复制的故障恢复机制是怎样的?</think>### GlusterFS分布式复制的最小节点数及配置方法 #### 最小节点数要求 在GlusterFS中创建**分布式复制(distributed-replicated volume)** 时,最小节点数取决于两个关键参数: 1. **副本数(replica)**:决定数据冗余级别 2. **分布单元数**:决定数据分布范围 **最小节点数 = 副本数 × 分布单元数** 其中: - 副本数至少为 2(保证数据冗余) - 分布单元数至少为 2(实现分布式存储) 因此: - **最小节点数为 4**(2副本 × 2分布单元) - 例如:副本数=2时,需至少4个节点(如 node1-node4) > 引用[2]和[5]验证:创建副本数为2的分布式复制时,需要4个节点提供brick存储,实际可用空间为总容量的一半(因数据存两份)[^2][^5]。 --- #### 配置步骤(以4节点为例) 1. **准备存储目录(所有节点执行)** ```bash # 在每个节点创建brick目录 mkdir -p /data/brick1 ``` 2. **创建分布式复制(任一节点执行)** ```bash gluster volume create dis-rep replica 2 \ node1:/data/brick1 node2:/data/brick1 \ node3:/data/brick1 node4:/data/brick1 force ``` - `dis-rep`:名称 - `replica 2`:副本数为2 - `force`:强制创建(非空目录需加此参数) 3. **启动** ```bash gluster volume start dis-rep ``` 4. **验证信息** ```bash gluster volume info dis-rep ``` 输出示例: ``` Volume Name: dis-rep Type: Distributed-Replicate Brick1: node1:/data/brick1 Brick2: node2:/data/brick1 Brick3: node3:/data/brick1 Brick4: node4:/data/brick1 ``` 5. **客户端挂载(客户端执行)** ```bash mount -t glusterfs node1:/dis-rep /mnt/glusterfs ``` > 引用[3]说明:客户端只需挂载任一节点IP和名即可访问整个[^3]。 --- #### 关键规则总结 | 参数 | 要求 | 示例 | |--------------|-------------------------------|--------------------| | 节点总数 | 必须是副本数的整数倍 | 4节点(副本数=2) | | 副本数 | ≥2(保证冗余) | 2或3 | | 分布单元数 | ≥2(实现分布式) | 2组副本 | | 可用空间 | 总空间 / 副本数 | 4节点1TB → 可用500GB | > 引用[5]强调:分布式复制结合了分布式的性能优势和复制的数据冗余能力,适用于需要高可用和高并发的场景[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值