首页
登录 | 注册

GlusterFS简单配置

1.准备工作

准备三台机器(物理机或者虚拟机均可)用于安装和测试GlusterFS,其中两台用作服务器,一台用作客户端,主机名分别为:

Server1.zhaogang.int  10.0.21.241

Server2.zhaogang.int  10.0.21.242

Clinet.zhaogang.int

 

关闭iptablesselinux

  

2.安装glusterFS服务器

yum install centos-release-gluster -y

yum install glusterfs-server  glusterfs glusterfs-fuse -y

启动glusterFS服务:

/etc/init.d/glusterd  start

 

设置glusterFS服务开机启动

chkconfig glusterd on

GlusterFS服务器设置

加入可信任存储池

server1上运行一下命令:

[root@server1 ~]# gluster peer probe 10.0.21.242

peer probe: success.

 

查看状态:

[root@server1 ~]# gluster peer status

Number of Peers: 1

 
Hostname: 10.0.21.242

Uuid: ab640ab2-76ba-47a5-a868-be5514b70258

State: Peer in Cluster (Connected)

 

移除节点:

gluster peer detach  10.0.21.242

 

B.创建GlusterFS逻辑卷(Volume)

 

server1server2分别建立/data/gfsdata目录:

mkdir -p /data/gfsdata

 

然后执行以下命令(只需要在其中一台服务器上执行即可,本例使用server1):

[root@server1 ~]# gluster volume create gv0 replica 2 10.0.21.241:/data/gfsdata 10.0.21.242:/data/gfsdata

volume create: gv0: success: please start the volume to access data

这条命令的意思是使用Replicated的方式,建立一个名为gv0的卷(Volume),存储块(Brick)2个,分别为server1:/data/gfsdataserver2:/data/gfsdata

 

volume create: testglustervol: failed: The brick 192.168.21.19:/data0/gluster1/brick1 is being created in the root partition. It is recommended that you don't use the system's root partition for storage backend. Or use 'force' at the end of the command if you want to override this behavior.

发现报错了,这是因为我们创建的brick在系统盘,这个在gluster的默认情况下是不允许的,生产环境下也尽可能的与系统盘分开,如果必须这样请使用force 

 

[root@server1 ~]# gluster volume create gv0 replica 2 10.0.21.241:/data/gfsdata 10.0.21.242:/data/gfsdata force

volume create: gv0: success: please start the volume to access data

 

 

启用GlusterFS逻辑卷:

[root@server1 ~]# gluster volume start gv0

volume start: gv0: success

 

查看逻辑卷状态:

[root@server1 ~]# gluster volume info

Volume Name: gv0

Type: Replicate

Volume ID: da0f4439-824b-4606-bc18-4bdbdc93d09d

Status: Started

Number of Bricks: 1 x 2 = 2

Transport-type: tcp

Bricks:

Brick1: 10.0.21.241:/data/gfsdata

Brick2: 10.0.21.242:/data/gfsdata

Options Reconfigured:

performance.readdir-ahead: on

 

清除glusterfs配置

通过查看/etc/glusterfs/glusterd.vol可以得知glusterfs的工作目录是在/var/lib/glusterd中

[root@localhost ~]# cat /etc/glusterfs/glusterd.vol 
volume management
    type mgmt/glusterd
    option working-directory /var/lib/glusterd
    option transport-type socket,rdma
    option transport.socket.keepalive-time 10
    option transport.socket.keepalive-interval 2
    option transport.socket.read-fail-log off
    option ping-timeout 0
    option event-threads 1
#   option transport.address-family inet6
#   option base-port 49152
end-volume

如果需要清除glusterfs配置,将工作目录删除后重启服务即可

[root@localhost ~]# rm -rf /var/lib/glusterd/
[root@localhost ~]# /etc/init.d/glusterd restart

删除卷

gluster volume stop gv0 
gluster volume delete gv0

# 卷扩容(由于副本数设置为2,至少要添加2(4、6、8..)台机器)

gluster peer probe 10.0.21.243 # 加节点 
gluster peer probe 10.0.21.244 # 加节点 
gluster volume add-brick gv0 10.0.21.243:/data/glusterfs 10.0.21.244:/data/glusterfs # 合并卷

# 收缩卷(收缩卷前gluster需要先移动数据到其他位置)

gluster volume remove-brick gv0 10.0.21.243:/data/glusterfs 10.0.21.244:/data/glusterfs start # 开始迁移 
gluster volume remove-brick gv0 10.0.21.243:/data/glusterfs 10.0.21.244:/data/glusterfs status # 查看迁移状态 
gluster volume remove-brick gv0 10.0.21.243:/data/glusterfs 10.0.21.244:/data/glusterfs commit # 迁移完成后提交

# 迁移卷

gluster peer probe 10.0.21.245 # 将10.0.21.246数据迁移到10.0.21.245先将10.0.21.245加入集群 
gluster volume replace-brick gv0 10.0.21.246:/data/glusterfs 10.0.21.245:/data/glusterfs start # 开始迁移 
gluster volume replace-brick gv0 10.0.21.246:/data/glusterfs 10.0.21.245:/data/glusterfs status # 查看迁移状态 
gluster volume replace-brick gv0 10.0.21.246:/data/glusterfs 10.0.21.245:/data/glusterfs commit # 数据迁移完毕后提交 
gluster volume replace-brick gv0 10.0.21.246:/data/glusterfs 10.0.21.245:/data/glusterfs commit -force # 如果机器10.0.21.246出现故障已经不能运行,执行强制提交 
gluster volume heal gv0 full # 同步整个卷

  本文介绍的是GlusterFS基础的用法,感觉它的最大优点就是文件使用哈希散列,而不需要单独去维护MetaData以避开单点问题,而目录则是所有节点都一致的。节点信息会在变化过程中自动同步!不过增删节点,需要做Rebalance数据才会重新分布。

 

 

C.clinet上安装客户端软件:

#yum -y install glusterfs glusterfs-fuse

 

GlusterFS客户端连接

在客户端client.zhaogang.int上使用mount命令,把服务器上新建的GlusterFS逻辑卷gv0挂载到本地目录/mnt/glusterfs上:

 

[root@localhost ~]# mkdir /mnt/glusterfs

[root@localhost ~]# mount -t glusterfs 10.0.21.241:/gv0 /mnt/glusterfs

[root@localhost ~]# 

 

确认挂载结果:

[root@localhost ~]# mount -t fuse.glusterfs

10.0.21.241:/gv0 on /mnt/glusterfs type fuse.glusterfs (rw,default_permissions,allow_other,max_read=131072)

 

 

如果希望系统重启后可以自动挂载,在/etc/fstab文件中加入此行:

 

10.0.0.241:/data/gfsdata      /mnt/glusterfs    glusterfs  defaults        0 0

 

 

客户端测试连接

client端成功挂载逻辑卷之后,在挂载目录/mnt/glusterfs建立文件以测试GlusterFS是否正常工作。

 

[root@localhost glusterfs]# cd /mnt/glusterfs/

[root@localhost glusterfs]# touch file1 file2 file3

[root@localhost glusterfs]# ls -l

total 0

-rw-r--r--. 1 root root 0 Aug 29 21:07 file1

-rw-r--r--. 1 root root 0 Aug 29 21:07 file2

-rw-r--r--. 1 root root 0 Aug 29 21:07 file3

 

因为创建卷gv0的时候使用的是镜像存储(Replicated),所以在gv0上写入的文件应该同时出现在两个服务器的/data/gfsdata目录上。
server1server2查看/data/gfsdata/目录,可以看到两个服务器均出现这三个文件:

 

[root@server1 ~]# cd /data/gfsdata/

[root@server1 gfsdata]# ls -l

total 0

-rw-r--r--. 2 root root 0 Aug 29 21:07 file1

-rw-r--r--. 2 root root 0 Aug 29 21:07 file2

-rw-r--r--. 2 root root 0 Aug 29 21:07 file3

 

[root@server2 ~]# cd /data/gfsdata/

[root@server2 gfsdata]# ls -l

total 0

-rw-r--r--. 2 root root 0 Aug 29 21:07 file1

-rw-r--r--. 2 root root 0 Aug 29 21:07 file2

-rw-r--r--. 2 root root 0 Aug 29 21:07 file3

 

 

 

自此GlusterFS快速安装过程结束。

 


相关文章

  • 如何在电脑上配置两个tomcat
    问题 准备逐渐转向idea的怀抱了,每次部署项目时和eclipse使用的都是同一个tomcat,这是很大的隐患,并且非常的不方便,遂再配置一个tomcat 1.下载tomcat和配置系统变量 CATALINA_HOME是Tomcat的安装目 ...
  • Npoi简单读写Excel
    什么是NPOI ? 简而言之,NPOI就是可以在没有Office的情况下对Word或Excel文档进行读写等操作. 使用方式 : 1.准备NPOI的dll文件 下载链接:https://npoi.codeplex.com/releases ...
  • 补习系列(20)-大话 WebSocket 与 "尬聊"的实现
    目录 一.聊聊 WebSocket 二.Stomp 是个什么鬼 三.SpringBoot 整合 WebSocket A. 引入依赖 B. WebSocket 配置 C. 控制器 D. 前端实现 四.参考文档 一.聊聊 WebSocket 从 ...
  • 学了很多乱七杂八的东西,但是依然停留在前端,在工作中一直和后端交流,但是不太了解数据库是怎么回事,为了加强学习,准备学习一些关于数据库相关的东西. 说起数据库可能会有很多很多,SQLServer.Oracle.Sybase等等等,还有就是要 ...
  • 目录 引入 简单工厂 抽象工厂 Spring的bean工厂 模拟Spring工厂实现 模拟IOC 引入 假设有一个司机, 需要到某个城市, 于是我们给他一辆汽车 public class Demo { public static void ...
  • 为什么说 Java 程序员到了必须掌握 Spring Boot 的时候?
    Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,就单从我个人的博客的访问量大幅增加就可以感受到大家对学习 Spring Boot 的热情,那么在这么多人热衷于学习 Spring Boot 之时,我自己也在 ...

2020 cecdns.com webmaster#cecdns.com
12 q. 0.076 s.
京ICP备10005923号