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)
[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)
#查看所有主机的磁盘 [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
[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禁用:开启
#安装客户端软件 [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