GlusterFS ——分布式卷

GlusterFS概述

全部部署GlusterFS文件系统地址:https://www.cnblogs.com/Mercury-linux/p/12050389.html

GlusterFS系统是一个可扩展的网络文件系统,相比其他分布式文件系统,GlusterFS具有高扩展性、高可用性、高性能、可横向扩展等特点,并且其没有元数据服务器的设计,让整个服务没有单点故障的隐患。

文件存储
通常支持POSIX接口(如glusterfs,但GFS、HDFS是非POSIX接口的),可以像普通文件系统(如ext4)那样访问,但又比普通文件系统多了并行化访问的能力和冗余机制。主要的分布式文件存储系统有TFS、cephfs、glusterfs和HDFS等。主要存储非结构化数据,如普通文件、图片、音视频等。可以采用NFS和CIFS等协议访问,共享方便。NAS是文件存储类型。

块存储
这种接口通常以QEMU Driver或者Kernel Module的方式存在,主要通过qemu或iscsi协议访问。主要的块存储系统有ceph块存储、sheepdog等。主要用来存储结构化数据,如数据库数据。数据共享不方便。DAS和SAN都是块存储类型。

对象存储
对象存储系统综合了NAS和SAN的优点,同时具有SAN的高速直接访问和NAS的数据共享等优势。以对象作为基本的存储单元,向外提供RESTful数据读写接口,常以网络服务的形式提供数据访问。主要的对象存储系统有AWS、swift和ceph对象存储。主要用来存储非结构化数据

 

分布式Glusterfs卷 

这是默认的glusterfs卷,即,如果未指定卷的类型,则在创建卷时,默认选项是创建分布式卷。在这里,文件分布在卷中的各个块之间。因此,file1只能存储在brick1或brick2中,而不能存储在两者中。因此,没有数据冗余。这种存储卷的目的是轻松而便宜地缩放卷大小。但是,这也意味着砖块故障将导致数据完全丢失,并且必须依靠底层硬件来提供数据丢失保护。(数据一但丢了也就丢了)

环境准备

 操作系统  ip  主机名 硬盘数量(两块)
 centos 7.6  10.0.0.11  node01  sdb: 20G sdc: 20G
 centos 7.6  10.0.0.12  node02  sdb: 20G sdc: 20G
 centos 7.6  10.0.0.13  node03  sdb: 20G sdc: 20G
 centos 7.6  10.0.0.14  node04  sdb: 20G sdc: 20G
 centos 7.6 10.0.0.7  web01(client)  sda: 50G
......      

GlusterFS客户端常用命令                                   

  命令 功能
gluster peer probe    添加节点
gluster peer detach   移除节点
gluster volume create    创建卷
gluster volume start $VOLUME_NAFME     启动卷
gluster volume stop $VOLUME_NAME   停止卷 
gluster volume delete $VOlUME_NAME     删除卷
gluster volume quota enable     开启卷配额
gluster volume quota disable    关闭卷配额
gluster volume quota limitusage   设定卷配额

 

#以下部分在node主机上面操作 

服务端部署

1. 安装GlusterFS源
[root@gs-node1 ~]# yum install centos-release-gluster -y

2. 安装GlusterFS
[root@gs-node1 ~]# yum install -y glusterfs-server

3. 启动GlusterFS
[root@gs-node1 ~]# systemctl start glusterfsd glusterfssharedstorage
[root@gs-node1 ~]# systemctl enable glusterfsd glusterfssharedstorage

4. 检查端口是否存在24007
[root@gs-node1 ~]# netstat -lntup
netstat -lntup  | grep 24007 
tcp        0      0 0.0.0.0:24007           0.0.0.0:*               LISTEN      7176/glusterd   

5. 查看GlusterFS版本
[root@node01 ~]# glusterfs -V
glusterfs 6.6
Repository revision: git://git.gluster.org/glusterfs.git
Copyright (c) 2006-2016 Red Hat, Inc. <https://www.gluster.org/>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
It is licensed to you under your choice of the GNU Lesser
General Public License, version 3 or any later version (LGPLv3
or later), or the GNU General Public License, version 2 (GPLv2),
in all cases as published by the Free Software Foundation.

6. hosts文件解析
注:node01~node04所有的主机hosts文件均为此内容;同时全部修改为对应的主机名,centos7修改主机名方式:#hostnamectl set-hostname 主机名 (即为临时和永久生效)可以使用#hostnamectl status   查看系统基本信息

[root@gs-node1 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.11 node01
10.0.0.12 node02
10.0.0.13 node03
10.0.0.14 node04
10.0.0.7  web

 #查看版本

[root@node01 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

创建受信任地址池

主机node01添加

#在node01添加完个gluterfs服务端后不需要在其他主机上进行添加,它们是一个互联的关系,关系同等相互之间可以通信了。

[root@node01 ~]# gluster peer probe node02
[root@node01 ~]# gluster peer probe node03
[root@node01 ~]# glutser peer probe node04

查看地址池信息

#在主机node02上面查看
[root@node02 ~]# gluster peer status 
Number of Peers: 3

Hostname: node01
Uuid: f86a4fad-3c98-4e36-9d8e-d0e01db6b9d3
State: Peer in Cluster (Connected)

Hostname: node03
Uuid: 61d970f4-11d8-4b39-a16a-7c9070a14ac7
State: Peer in Cluster (Connected)

Hostname: node04
Uuid: 81f83924-b480-4a70-868c-59ebb1ab1583
State: Peer in Cluster (Connected)

格式化磁盘挂载

#node全部主机格式化磁盘

如果磁盘大于4T的话就使用parted命令进行分区

#查看所有主机的磁盘
[root@node ~]# fdisk -l 
#格式化全部主机分区
[root@node ~]# mkfs.xfs  /dev/sdb 
[root@node ~]# mkfs.xfs  /dev/sdc

挂载分区

 #在xshell下选择全部会话进行创建

[root@node ~]#  mkdir -p /data/gv{1..5}
[root@node ~]#  mount  /dev/sdb  /data/gv1
[root@node ~]#  mount  /dev/sdc  /data/gv2
[root@node ~]#  df -h 
/dev/sdb         20G   33M   20G   1% /data/gv1
/dev/sdc         20G   33M   20G   1% /data/gv2

创建卷

#在node01上面操作

[root@node01 /]# gluster  volume create gv1 node03:/data/gv1 node02:/data/gv2 force   
volume create: gv1: success: please start the volume to access data
# 创建分布式卷,卷名是gv1 

[root@node01 /]# gluster  volume info gv1    #查看gv1卷的状态
Volume Name: gv1          #卷名:gv1
Type: Distribute          #类型:分布式卷
Volume ID: 4dad3829-4679-488e-812e-9a2b1833bc3b     #卷的ID
Status: Created           #状态:创建
Snapshot Count: 0         #快照计数:0
Number of Bricks: 2       #块的数量:2
Transport-type: tcp       #传输类型:tcp协议
Bricks:                   #以下是哪些主机块的信息
Brick1: node03:/data/gv1
Brick2: node02:/data/gv2
Options Reconfigured:    #选项配置
transport.address-family: inet
nfs.disable: on          #nfs禁用:开启

客户端操作

Gluster Native Client 是基于FUSE的,所以需要保证客户安装了FUSE。这个官方推荐的客户端,支持高并发和高效的写性能。

 客户端部署

#安装客户端软件
[root@web01 /]# yum install glusterfs-client -y  

创建挂载目录

[root@web01 /]# mkdir /gv1
#这个目录需要挂载分布式文件系统服务

[root@web01 /]# mount.glusterfs   node01:/gv1 /gv1
#进行挂载    `df -h` 命令会显示

[root@web01 /]# df -h 
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        49G  2.9G   47G   6% /
devtmpfs        476M     0  476M   0% /dev
tmpfs           487M     0  487M   0% /dev/shm
tmpfs           487M  7.7M  479M   2% /run
tmpfs           487M     0  487M   0% /sys/fs/cgroup
/dev/sda1       197M  105M   93M  54% /boot
tmpfs            98M     0   98M   0% /run/user/0
node01:gv2       40G  475M   40G   2% /gv1

创建文件检验

#在目录创建目录
[root@web01 /]# cd  /gv1
[root@web01 /gv1]#  touch {1..5}

#node主机查看 [root@node02
/data/gv1]# ls 2 3 4 [root@node03 /data/gv1]# ls 1 5

 

https://blog.csdn.net/w20010106/article/details/87994374参考:

posted @ 2019-12-17 10:08  kerwin-  阅读(609)  评论(0编辑  收藏  举报