zoukankan      html  css  js  c++  java
  • 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参考:

  • 相关阅读:
    mysql "The user specified as a definer ('root'@'%') does not exist" 问题
    mysql添加Federated引擎问题
    D7经典脚本[multi/handler]
    redhat7.4安装vertica-9.1.0教程
    批量在当前目录下所有的文件中添加指定字段
    mysql 水平分表技术
    linux普通用户提权
    两步完成利用procdump64+mimikatz获取win用户密码
    hibernate中对象的三种状态分析
    Hibernate 入门案例
  • 原文地址:https://www.cnblogs.com/Mercury-linux/p/12052908.html
Copyright © 2011-2022 走看看