zoukankan      html  css  js  c++  java
  • GlusterFS最佳实践

    标签(linux): glusterfs

    笔者Q:972581034 交流群:605799367。有任何疑问可与笔者或加群交流

    今天我们来从实战中学习glusterfs


    环境准备:

    gluster-server两台,各添加一块10G硬盘:
    db02 db03

    实现目标:

    将文件系统挂载到web服务器的www站点用户上传目录

    提示:提前就搭建好web服务器nginx,www站点。

    =环境准备==

    关闭防火墙:

    systemctl disable firewalld
    systemctl stop firewalld
    

    selinux:

    [root@db02 ~]# getenforce 
    Disabled
    

    系统版本

    [root@db03 ~]# cat /etc/redhat-release 
    CentOS Linux release 7.2.1511 (Core)
    [root@db03 ~]# uname -r
    3.10.0-327.el7.x86_64 
    

    hosts解析

    [root@db02 ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    172.16.1.52  db02
    172.16.1.53  db03
    172.16.1.250 docker 
    

    将添加的磁盘写入文件系统

    mkfs.xfs -i size=512 /dev/sdb
    

    创建挂载目录

    mkdir -p /bricks/brick1
    

    加入fstab开机自动挂载

    echo "/dev/sdb                                  /bricks/brick1          xfs     defaults        1 2" >> /etc/fstab
    [root@db03 ~]# tail -1 /etc/fstab 
    /dev/sdb                                  /bricks/brick1          xfs     defaults        1 2
    #挂载/etc/fstab里面的所有条目
    mount -a
    

    以下如无特殊说明均在两台节点操作

    安装:

    所有服务器

    yum install centos-release-gluster -y
    yum  install glusterfs-server -y
    

    查看glusterfs版本

    [root@db03 ~]# gluster --version
    glusterfs 3.10.1
    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.
    

    启动服务

    systemctl start gluster
    systemctl enable glusterd
    

    在任意一台节点上添加信任池

    [root@db02 ~]# gluster peer probe db03
    peer probe: success. 
    

    查看状态,如果从一个节点能看到其它节点说明OK

    [root@db02 ~]# gluster peer status
    Number of Peers: 1
    
    Hostname: db03
    Uuid: 6465d902-4ec6-4e21-a5dc-f196b499a07e
    State: Peer in Cluster (Connected)
    

    设置GlusterFS卷

    [root@db02 ~]# mkdir /bricks/brick1/{www,bbs,blog,jpress}
    [root@db02 ~]# tree /bricks/
    /bricks/
    └── brick1
        ├── bbs
        ├── blog
        ├── jpress
        └── www
    

    在任意一台机器上创建复制卷(可用性高,写性能不佳.读取速度快,可类比RAID 1)

    [root@db02 ~]# gluster volume create www replica 2 db02:/bricks/brick1/www db03:/bricks/brick1/www
    volume create: www: success: please start the volume to access data
    [root@db02 ~]# for i in bbs blog jpress;do gluster volume create $i replica 2 db02:/bricks/brick1/$i db03:/bricks/brick1/$i;done
    volume create: bbs: success: please start the volume to access data
    volume create: blog: success: please start the volume to access data
    volume create: jpress: success: please start the volume to access data
    

    启动卷

    [root@db02 ~]# for i in www bbs blog jpress;do gluster volume start $i;done
    volume start: www: success
    volume start: bbs: success
    volume start: blog: success
    volume start: jpress: success
    

    确认卷显示“已启动”:

    [root@db02 ~]# gluster volume info
     
    Volume Name: bbs
    Type: Replicate
    Volume ID: d1776666-d035-4855-8758-fe199b6c1198
    Status: Started
    Snapshot Count: 0
    Number of Bricks: 1 x 2 = 2
    Transport-type: tcp
    Bricks:
    Brick1: db02:/bricks/brick1/bbs
    Brick2: db03:/bricks/brick1/bbs
    Options Reconfigured:
    transport.address-family: inet
    nfs.disable: on
     
    Volume Name: blog
    Type: Replicate
    Volume ID: d21a6a25-9da0-4940-a831-045257dc4550
    Status: Started
    Snapshot Count: 0
    Number of Bricks: 1 x 2 = 2
    Transport-type: tcp
    Bricks:
    Brick1: db02:/bricks/brick1/blog
    Brick2: db03:/bricks/brick1/blog
    Options Reconfigured:
    transport.address-family: inet
    nfs.disable: on
     
    Volume Name: jpress
    Type: Replicate
    Volume ID: b9835dcc-da68-4858-9009-2821e31b1cb3
    Status: Started
    Snapshot Count: 0
    Number of Bricks: 1 x 2 = 2
    Transport-type: tcp
    Bricks:
    Brick1: db02:/bricks/brick1/jpress
    Brick2: db03:/bricks/brick1/jpress
    Options Reconfigured:
    transport.address-family: inet
    nfs.disable: on
     
    Volume Name: www
    Type: Replicate
    Volume ID: 3c541856-f55b-4c03-82e9-d0fe58e6b2f2
    Status: Started
    Snapshot Count: 0
    Number of Bricks: 1 x 2 = 2
    Transport-type: tcp
    Bricks:
    Brick1: db02:/bricks/brick1/www
    Brick2: db03:/bricks/brick1/www
    Options Reconfigured:
    transport.address-family: inet
    nfs.disable: on
    

    创建www用户,由于

    [root@db02 brick1]# useradd -s /sbin/nologin -M -u 1000 www
    
    

    web服务器挂载卷

    mount -t glusterfs db02:/www /application/nginx/html/www/uploads
    
  • 相关阅读:
    go函数
    Linux 查看磁盘容量、查找大文件、查找大目录
    五分钟理解一致性哈希算法(consistent hashing)
    使用Java实现三个线程交替打印0-74
    Python实现IOC控制反转
    Wannafly挑战赛5 A珂朵莉与宇宙 前缀和+枚举平方数
    Yandex Big Data Essentials Week1 Scaling Distributed File System
    Yandex Big Data Essentials Week1 Unix Command Line Interface Processes managing
    Yandex Big Data Essentials Week1 Unix Command Line Interface File Content exploration
    Yandex Big Data Essentials Week1 Unix Command Line Interface File System exploration
  • 原文地址:https://www.cnblogs.com/Csir/p/6919156.html
Copyright © 2011-2022 走看看