glusterfs 3.4.2安装记录(一)

2024-06-12 03:08
文章标签 3.4 安装 记录 glusterfs

本文主要是介绍glusterfs 3.4.2安装记录(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大概是16年的时候,复习一年以后考上了计算机的研究生,老黄就让我没事的时候学一下glusterfs,把环境装好后用一用写一个文档记录下来,过后一直想搬到博客上,最近想起来就来慢慢的搬文章。

目录

      • 目录
  • 安装
    • 环境
    • 一系统安装
    • 二磁盘配置选用一块20g大小的磁盘大小不定
    • 三卷操作glusterfs的文件系统任一节点上操作都行
    • 四卷的挂载和访问通过客户端挂载和访问

安装

环境

  • 系统环境:centos6.4 glusterfs3.4.2
  • 三台虚拟机,两台作为集群节点,一台作为客户端节点,两台集群节点分配两块硬盘,一块装系统,一块用于glusterfs的存储磁盘。客户端节点一块磁盘即可。

一、系统安装

先对集群节点进行安装。

1.下载地址:http://download.gluster.org/pub/

2、rpm安装:
下载RPM包,运行 rpm -ivh glusterfs-*.rpm
3、tar安装:
下载tar压缩包,解压后进行编译:(编译过程中会出现一些依赖关系错误,缺少什么就安装什么即可)
(1) ./configure
(2)make
(3)make install

4.启动gluser服务以及自启动设置:

service glusterd start
chkconfig glusterd on

二、磁盘配置(选用一块20g大小的磁盘(大小不定))

查看磁盘:parted -l
(/dev/sda 为系统盘,/dev/sdb为将使用的磁盘。)

先对磁盘进行分区(整块磁盘作为一个分区使用):
[root@server1 ~]# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to
switch off the mode (command ‘c’) and change display units to
sectors (command ‘u’).

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4):
Value out of range.
Partition number (1-4): 1

First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):
Using default value 2610

Command (m for help): w

格式化分区: mkfs.ext4 -L /NODE1 /dev/sdb1

(节点一:NODE1 节点二:NODE2)

挂载磁盘:
创建磁盘挂载目录:mkdir /NODE1

挂载新磁盘:mount -L /NODE1 /NODE1 (使用label来挂载)

写入配置文件:/etc/fstab设置自启动:

LABEL=/NODE2 /NODE2 ext4 defaults 0 0

自动挂载:mount -a
查看挂载情况:df -h

3.组建集群:
添加集群(任一节点都可添加其他节点到集群中),选择server1作为当前集群节点:

gluster peer probe server2

查看集群状态:

gluster peer status

删除集群节点:
gluster peer detach server2

三、卷操作(glusterfs的文件系统)任一节点上操作都行

三种基本卷类型: (1)哈希卷(默认)
(2)复制卷(replica)
(3)条带卷(stripe)
复合卷:哈希+复制 哈希+条带 复制+条带 哈希+复制+条带

卷的网络类型:TCP(默认) RDMA
创建卷时先确定:卷类型,创建卷的brick列表,网络类型

1、查看卷信息:
gluster volume info

2、创建新的卷:

gluster volume create help 查看参数:(缺省状态默认创建哈希卷,网络类型为TCP)

(1)创建哈希卷dht1(两节点上分别创建一个brick):

gluster volume create dht1 transport tcp server1:/NODE1/dht_brick1(brick名) server2:/NODE2/dht_brick2

gluster volume info :

需要使用卷先启动卷:

gluster volume start dht1

查看卷状态:
gluster volume status dht1

(2)创建复制卷afr1:(两个brick同时生成相同的文件)

gluster volume create afr1 replica 2 server1:/NODE1/afr_brick1 server2:/NODE2/afr_brick2

gluster volume info arf1

启动卷:

gluster volume start afr1:

(3)创建条带卷:

gluster volume create stp1 stripe 2 server1:/NODE1/stp_brick1 server2:/NODE2 /stp_brick2

启动并查看状态:

(4)创建复合卷(哈希+复制)dht_afr_1(两对brick分别存在于两个节点,每对brick是复制卷,一一组成复制关系):

gluster volume create dht_afr_1 replica 2 server1:/NODE1/dht_afr_brick1 server2:/NODE2/dht_afr_brick1 server1:/NODE1/dht_afr_brick2 server2:/NODE2/dht_afr_brick2

启动并查看信息:
(Brick1和Brick2组成复制关系,Brcik3和Brick4组成复制关系)

创建哈希+条带卷dht_stp_1:

gluster volume create dht_stp_1 stripe 2 server1:/NODE1/dht_stp_brick1 server2:/NODE2/dht_stp_brick1 server1:/NODE1/dht_stp_brick2 server2:/NODE2/dht_stp_brick2

启动并查看信息:

(Brick1和Brick2组成一对条带关系,Brick3和Brick4组成一对条带关系)

四、卷的挂载和访问(通过客户端挂载和访问)

(客户端所安装的gluster与集群节点有所不同,可以同样源码安装所有的glusterfs软件,也可以选择单纯针对客户端的软件):

1.客户端gluster安装:

官网下载相应的rpm包安装:

http://download.gluster.org/pub/gluster/glusterfs/3.4/3.4.2/CentOS/epel-6.4/x86_64/
下载以下包即可实现一个基本的客户端功能:

安装好后同样配置系统:
先设置主机名:/etc/hosts

然后设置DNS:/etc/resolve.conf
关闭防火墙:service iptables stop; chkconfig iptables off。
设置selinux:
/etc/selinux/config: SELINUX=disabled

2.卷的挂载:

为了挂载卷,先创建相应卷的挂载目录/mnt/dht1 /mnt/afr1 /mnt/stp1 /mnt/dht_afr_1:

mkdir /mnt/dht1 /mnt/afr1 /mnt/stp1 /mnt/dht_afr_1

然后挂载目录(这里选择挂载到server1的卷上,也可选择server2):

mount -t glusterfs(挂载卷类型) server1:/dht1 /mnt/dht1

同样挂载其他的目录:
mount -t glusterfs server2:/afr1 /mnt/afr1
mount -t glusterfs server1:/dht_afr_1 /mnt/dht_afr_1
mount -t glusterfs server2:/stp1 /mnt/stp1

这样就挂载好了。
3.访问卷:

(1)访问哈希卷:
在/mnt/dht1中创建两个文件hello和test,会以哈希的算法分配到server1和server2上:


创建好后可以在server1和server2查看卷:
server1中:

server2中:

可以看到刚好每个brick分配到一个文件,即使删掉文件或者修改文件内容,同时还是存在于之前分配到的brick上。哈席卷即以文件为分配单位,每一个文件随机分配到某一个brick上,这种卷容量和性能最好,可以把所有的容量利用起来,但如果一个brick down掉后,这一brick中的文件就不能被访问了,不具有高可用性的功能。

如果在客户端上创建目录,两个brick都会有目录,但是目录中的文件还是按照哈希算法随机分配到各brick上:

server1上:

server2上:

(2)访问复制卷:

在客户端的复制卷的目录中创建一个文件hello和目录demo(会在两个节点的brick中都生成相同的文件和目录):

server1上:

server2上:

可以看出两个brick形成复制关系,这样一个brick down掉后,另一个brick中的文件还存在,还可访问,如果某一节点的文件丢失或者被修改,可以通过设置恢复,但是容量会只是哈希卷的一半:

(3)访问条带卷(每个节点中生成的目录空间和目录是相同的,但是文件中的内容是不一样的,会分片存在于不同的brick,每一128K的文件内容分片存在于不同的brick):

在客户端上创建一个小文件 test:

server1上:

server2上:

会发现server1和server2的brick中生成相同的文件test,但是server1中有完整的文件内容,server2中为空文件,因为创建的文件小于128K,所以分片之后,内容都存到server1中,server2中没有内容。如果大于128K,分成无数个大小为128K的片,第一片存到第一个节点,第二片存到第二个节点,如此分布到所有的节点上。

(3)访问哈希+复制卷:

在客户端创建文件 hello, test, world,

server1上:

server2上:

因为server1上的brick1和server2上的brick1以及brick2和brick2是复制对,所以他们存到他们当中的文件相同,而每个节点中的两个brick是哈希关系,所以文件随机分配他们当中。即两个哈希节点分配了两个哈希,然后哈希节点内部是复制关系。

这篇关于glusterfs 3.4.2安装记录(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1053027

相关文章

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完