精华内容
参与话题
问答
  • GlusterFS

    2020-12-02 17:31:40
    <ol><li>Clean install of Openshift Origin (1 * Master, 1 * Infra, 3 * App nodes) with GlusterFS </li><li>Ensure storage class is set once the install is comeplete</li></ol> <pre><code> oc patch ...
  • glusterfs

    2019-09-13 10:31:29
    glusterfs https://www.gluster.org/ https://docs.gluster.org/en/latest/Install-Guide/Setup_virt/ glusterfs概述 1. 什么是Gluster Gluster是一个横向扩展的分布式文件系统,可将来自多个服务器的磁盘存储...

    QQ: 1226032602
    E-mail: 1226032602@qq.com

    glusterfs

    https://www.gluster.org/
    https://docs.gluster.org/en/latest/Install-Guide/Setup_virt/

    glusterfs概述

    1. 什么是Gluster

    Gluster是一个横向扩展的分布式文件系统,可将来自多个服务器的磁盘存储资源整合到一个全局名称空间中,可以根据存储消耗需求快速调配额外的存储。它将自动故障转移作为主要功能

    当您修复发生故障的服务器并使其恢复联机状态时,除了等待外,您无需执行任何操作即可恢复数据。与此同时,您的数据的最新副本继续从仍在运行的节点获取。

    Gluster数据可以从几乎任何地方访问,可以使用传统的NFS,Windows客户端的SMB / CIFS或我们自己的本地GlusterFS(客户机上需要一些附加软件包)

    2. 企业应用场景

    媒体数据:文档、图片、音频、视频
    共享存储:云储存、虚拟化存储、HPC(高性能计算)
    大数据:日志文件、RFID(射频识别)数据

    3. 优点

    缩放到几PB
    处理数千个客户
    POSIX兼容
    可以使用任何支持扩展属性的ondisk文件系统
    使用NFS和SMB等行业标准协议访问
    提供复制,配额,地理复制,快照和bitrot检测
    允许优化不同的工作量
    开源

    4. 缺点

    不适用于存储大量小文件的场景,因为GlusterFS的设计之初就是用于存储大数据的,对小文件的优化不是很好,推荐保存单个文件至少1MB以上的环境,如果是大量小文件的场景建议使用FastDFS、MFS等

    gluster安装配置

    https://docs.gluster.org/en/latest/Quick-Start-Guide/Quickstart/
    https://wiki.centos.org/SpecialInterestGroup/Storage/gluster-Quickstart

    环境准备

    两台名为server1和server2的服务器上的CentOS 7
    两个虚拟磁盘,一个用于OS安装(sda),另一个用于服务GlusterFS存储(sdb)

    格式化磁盘

    CentOS6需要安装

    yum install xfsprogs
    

    在两个节点上都执行

    mkfs.xfs -i size=512 /dev/sdb
    mkdir -p /bricks/brick1
    

    /etc/fstab

    [root@server1 ~]# tail -1 /etc/fstab 
    /dev/sdb /bricks/brick1       xfs   defaults        0 0
    

    挂载

    mount -a
    

    安装GlusterFS并启动

    三台服务器上都安装
    安装gluster源

    yum install centos-release-gluster
    

    安装glusterfs

    yum install glusterfs-server
    

    启动

    systemctl start glusterd.service
    

    hosts解析

    三台都做
    /etc/hosts

    10.0.0.201 server1
    10.0.0.202 server2
    
    172.16.1.51     db01
    172.16.1.31     nfs01
    172.16.1.41     backup
    

    添加服务器

    nfs01:

    gluster peer probe backup
    gluster peer probe db01
    

    backup:

    gluster peer probe nfs01
    gluster peer probe db01
    

    db01:

    gluster peer probe nfs01
    gluster peer probe backup
    

    查看对等状态

    gluster peer status
    

    删除服务器

    gluster peer detach <server>
    

    查看服务器列表

    gluster pool list
    

    gluster UUID

    [root@server1 ~]# cat /var/lib/glusterd/glusterd.info 
    UUID=9c8f138a-d502-4b69-9b84-61bd81286ea6
    operating-version=31202
    

    建立GlusterFS卷

    https://docs.gluster.org/en/latest/CLI-Reference/cli-main/

    三台机器都执行

    mkdir /bricks/brick1/gv0
    mkdir /bricks/brick1/gv1
    

    任意一台机器执行
    创建复制卷

    gluster volume create gv0 replica 2 nfs01:/bricks/brick1/gv0 db01:/bricks/brick1/gv0
    gluster volume create gv1 replica 3 nfs01:/bricks/brick1/gv1 db01:/bricks/brick1/gv1 backup:/bricks/brick1/gv1
    gluster volume create gv1 replica 3 arbiter 1 nfs01:/bricks/brick1/gv1 db01:/bricks/brick1/gv1 backup:/bricks/brick1/gv1
    

    启动卷

    gluster volume start gv0
    gluster volume start gv1
    

    查看信息

    gluster volume info
    

    日志

    tail -f /var/log/glusterfs/glusterd.log
    

    https://docs.gluster.org/en/latest/Administrator%20Guide/

    glusterfs客户端

    安装gluster源

    yum install centos-release-gluster
    

    安装

    yum install glusterfs glusterfs-fuse glusterfs-rdma
    

    hosts解析
    /etc/hosts

    10.0.0.201     server1
    10.0.0.202     server2
    
    172.16.1.51     db01
    172.16.1.31     nfs01
    172.16.1.41     backup
    

    挂载

    mount -t glusterfs server1:/gv0 /mnt/
    
    mount -t glusterfs nfs01:/gv1 /mnt/
    mount -t glusterfs backup:/gv1 /mnt/
    

    gluster Volume Commands

    volume create volname [options] bricks    创建卷
    
    volume start volname [force]            启动卷
    
    volume stop volname                  停止卷
    
    volume info [volname]                 查看卷信息
    
    volumes status[volname]               查看卷状态
    
    volume list                          查看卷列表
    
    volume add-brick brick-1 ... brick-n      扩容
    
    volume remove-brick brick-1 ... brick-n \<start|stop|status|commit|force>     缩减
    
    volume delete volname                删除卷
    

    glusterfs volume 模式

    默认模式

    默认模式,既DHT, 也叫 分布卷: 将文件已hash算法随机分布到 一台服务器节点中存储

    gluster volume create test-volume server1:/exp1 server2:/exp2
    

    图片

    复制模式

    复制模式,既AFR, 创建volume 时带 replica x 数量: 将文件复制到 replica x 个节点中。

    gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2
    

    图片

    条带模式

    条带模式,既Striped, 创建volume 时带 stripe x 数量: 将文件切割成数据块,分别存储到 stripe x 个节点中 ( 类似raid 0 )。

    gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2
    

    图片

    分布式条带模式

    分布式条带模式(组合型),最少需要4台服务器才能创建。 创建volume 时 stripe 2 server = 4 个节点: 是DHT 与 Striped 的组合型。

    gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
    

    图片

    分布式复制模式

    分布式复制模式(组合型), 最少需要4台服务器才能创建。 创建volume 时 replica 2 server = 4 个节点:是DHT 与 AFR 的组合型。

    gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
    

    图片

    条带复制卷模式

    条带复制卷模式(组合型), 最少需要4台服务器才能创建。 创建volume 时 stripe 2 replica 2 server = 4 个节点: 是 Striped 与 AFR 的组合型。

    gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
    

    图片

    三种模式混合

    三种模式混合, 至少需要8台 服务器才能创建。 stripe 2 replica 2 , 每4个节点 组成一个 组。

    gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6 server7:/exp7 server8:/exp8
    

    图片

    修复

    #查看这个卷是否在线

    gluster volume status test2
    

    #启动完全修复

    gluster volume heal test2 full
    gluster volume heal gv1 full
    

    #查看需要修复的文件

    gluster volume heal test2 info 
    

    #查看修复成功的文件

    gluster volume heal test2 info healed
    

    #查看修改失败的文件

    gluster volume heal test2 info heal-failed 
    

    #查看脑裂的文件

    gluster volume heal test2 info split-brain
    
    展开全文
  • Glusterfs

    2019-05-30 22:13:30
    【centos6.5】 环境布置: 192.168.16.12 gfs1 总功3块硬盘 gluster 192.168.16.13 gfs2 总功3块硬盘 gluster 192.168.16.14 gfs3 总功3块硬盘 gluster ...192.168.16.15 gfs4 总功3块硬盘 gluster ...

    【centos6.5】

     

    • 环境布置:

    192.168.16.12  gfs1  总功3块硬盘 gluster

    192.168.16.13  gfs2  总功3块硬盘 gluster

    192.168.16.14  gfs3  总功3块硬盘 gluster

    192.168.16.15  gfs4  总功3块硬盘 gluster

    192.168.16.16  web  只安装nfs-uilsjike

    • 挂载俩个光盘 搭建yum ,关闭防火墙、安全机制,以下四台主机配置一样

    配置glusterd

    每台主机上都的安装nfs-utils

    [root@gfs1 ~]#wget ftp://172.16.0.1/repos/glusterfs*

    [root@gfs1 ~]#wget ftp://172.16.0.1/repos/c61*

    [root@gfs1 ~]# yum -y install glusterfs-server glusterfs-cli glusterfs-geo-replication

    [root@gfs1 ~]# vim /etc/hosts

     

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

    192.168.16.12 gfs1

    192.168.16.13 gfs2

    192.168.16.14 gfs3

    192.168.16.15 gfs4

    [root@gfs2 ~]# vim /etc/hosts

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

    192.168.16.12 gfs1

    192.168.16.13 gfs2

    192.168.16.14 gfs3

    192.168.16.15 gfs4

    [root@gfs2 ~]# /etc/init.d/glusterd start

    Starting glusterd:                                         [确定]

    [root@gfs3 ~]# vim /etc/hosts

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

    192.168.16.12 gfs1

    192.168.16.13 gfs2

    192.168.16.14 gfs3

    192.168.16.15 gfs4

    [root@gfs3 ~]# /etc/init.d/glusterd start

    Starting glusterd:                                         [确定]

    [root@gfs4 ~]# vim /etc/hosts

     

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

    192.168.16.12 gfs1

    192.168.16.13 gfs2

    192.168.16.14 gfs3

    192.168.16.15 gfs4

    [root@gfs4 ~]# /etc/init.d/glusterd start

    Starting glusterd:                                         [确定]

    [root@gfs5 ~]# vim /etc/hosts

     

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

    192.168.16.12 gfs1

    192.168.16.13 gfs2

    192.168.16.14 gfs3

    192.168.16.15 gfs4

    [root@gfs5 ~]# /etc/init.d/glusterd start

    Starting glusterd:                                         [确定]

    [root@gfs1 ~]# which glusterfs

    /usr/sbin/glusterfs

    [root@gfs1 ~]# glusterfs -V

    glusterfs 3.4.6 built on Nov 13 2014 12:41:25

    Repository revision: git://git.gluster.com/glusterfs.git

    Copyright (c) 2006-2013 Red Hat, Inc. <http://www.redhat.com/>

    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.

    启停服务

    [root@gfs1 ~]# /etc/init.d/glusterd status

    glusterd 已停

    [root@gfs1 ~]# /etc/init.d/glusterd start

    Starting glusterd:                                         [确定]

    [root@gfs1 ~]# /etc/init.d/glusterd status

    glusterd (pid  2785) 正在运行...

    [root@gfs1 ~]# chkconfig glusterd on

     

    • 存储主机加入存储信任池

    [root@gfs1 ~]# gluster peer probe gfs2

    peer probe: success

    [root@gfs1 ~]# gluster peer probe gfs3

    peer probe: success

    [root@gfs1 ~]# gluster peer probe gfs4

    peer probe: success

     

    • 查看虚拟机添加结果

    [root@gfs1 ~]# gluster peer status

    Number of Peers: 3

    Hostname: gfs2

    Port: 24007

    Uuid: 610d3c5b-1186-4c53-9bd5-897e4dac8651

    State: Peer in Cluster (Connected)

    Hostname: gfs3

    Port: 24007

    Uuid: e10050d8-a1d3-4c2c-9ebf-38c8d997a76e

    State: Peer in Cluster (Connected)

    Hostname: gfs4

    Port: 24007

    Uuid: 6b617bd0-a0cb-40dc-823c-909761656ecd

    State: Peer in Cluster (Connected)

     

    • 确保此包已经安装

    [root@gfs1 ~]# rpm -qa xfsprogs

    xfsprogs-3.1.1-20.el6.x86_64

    [root@gfs2 ~]# rpm -qa xfsprogs

    xfsprogs-3.1.1-20.el6.x86_64

    [root@gfs3 ~]# rpm -qa xfsprogs

    xfsprogs-3.1.1-20.el6.x86_64

    [root@gfs4 ~]# rpm -qa xfsprogs

    xfsprogs-3.1.1-20.el6.x86_64

     

    • 总共3块硬盘

    [root@gfs1 ~]# fdisk -l

    Disk /dev/sda: 42.9 GB, 42949672960 bytes

    255 heads, 63 sectors/track, 5221 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disk identifier: 0x0000dd2f

     

       Device Boot      Start         End      Blocks   Id  System

    /dev/sda1   *           1          64      512000   83  Linux

    Partition 1 does not end on cylinder boundary.

    /dev/sda2              64        5222    41430016   8e  Linux LVM

    Disk /dev/sdb: 5368 MB, 5368709120 bytes

    255 heads, 63 sectors/track, 652 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disk identifier: 0x00000000

    Disk /dev/sdc: 5368 MB, 5368709120 bytes

    255 heads, 63 sectors/track, 652 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disk identifier: 0x00000000

    Disk /dev/mapper/VolGroup-lv_root: 40.3 GB, 40340815872 bytes

    255 heads, 63 sectors/track, 4904 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disk identifier: 0x00000000

    Disk /dev/mapper/VolGroup-lv_swap: 2080 MB, 2080374784 bytes

    255 heads, 63 sectors/track, 252 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disk identifier: 0x00000000

    [root@gfs1 ~]# mkfs.ext4 /dev/sdb

    mke2fs 1.41.12 (17-May-2010)

    /dev/sdb is entire device, not just one partition!

    无论如何也要继续? (y,n) y

    文件系统标签=

    操作系统:Linux

    块大小=4096 (log=2)

    分块大小=4096 (log=2)

    Stride=0 blocks, Stripe width=0 blocks

    327680 inodes, 1310720 blocks

    65536 blocks (5.00%) reserved for the super user

    第一个数据块=0

    Maximum filesystem blocks=1342177280

    40 block groups

    32768 blocks per group, 32768 fragments per group

    8192 inodes per group

    Superblock backups stored on blocks:

    32768, 98304, 163840, 229376, 294912, 819200, 884736

    正在写入inode表: 完成                            

    Creating journal (32768 blocks): 完成

    Writing superblocks and filesystem accounting information: 完成

    This filesystem will be automatically checked every 27 mounts or

    180 days, whichever comes first.  Use tune2fs -c or -i to override.

    [root@gfs1 ~]# mkdir -p /gluster/brick1

    [root@gfs1 ~]# mount /dev/sdb /gluster/brick1/

    [root@gfs1 ~]# df -h

    Filesystem                    Size  Used Avail Use% Mounted on

    /dev/mapper/VolGroup-lv_root   37G  3.6G   32G  11% /

    tmpfs                         491M   80K  491M   1% /dev/shm

    /dev/sda1                     485M   35M  426M   8% /boot

    /dev/sr0                      4.2G  4.2G     0 100% /media/cdrom

    /dev/sdb                      5.0G  138M  4.6G   3% /gluster/brick1

    [root@gfs2 ~]# mkfs.ext4 /dev/sdc

    mke2fs 1.41.12 (17-May-2010)

    /dev/sdc is entire device, not just one partition!

    无论如何也要继续? (y,n) y

    文件系统标签=

    操作系统:Linux

    块大小=4096 (log=2)

    分块大小=4096 (log=2)

    Stride=0 blocks, Stripe width=0 blocks

    327680 inodes, 1310720 blocks

    65536 blocks (5.00%) reserved for the super user

    第一个数据块=0

    Maximum filesystem blocks=1342177280

    40 block groups

    32768 blocks per group, 32768 fragments per group

    8192 inodes per group

    Superblock backups stored on blocks:

    32768, 98304, 163840, 229376, 294912, 819200, 884736

    正在写入inode表: 完成                            

    Creating journal (32768 blocks): 完成

    Writing superblocks and filesystem accounting information: 完成

    This filesystem will be automatically checked every 32 mounts or

    180 days, whichever comes first.  Use tune2fs -c or -i to override.

    [root@gfs1 ~]# mkdir -p /gluster/brick2

    [root@gfs1 ~]# mount /dev/sdc /gluster/brick2/

    [root@gfs1 ~]# df -hT

    Filesystem                   Type     Size  Used Avail Use% Mounted on

    /dev/mapper/VolGroup-lv_root ext4      37G  3.6G   32G  11% /

    tmpfs                        tmpfs    491M   80K  491M   1% /dev/shm

    /dev/sda1                    ext4     485M   35M  426M   8% /boot

    /dev/sr0                     iso9660  4.2G  4.2G     0 100% /media/cdrom

    /dev/sdb                     ext4     5.0G  138M  4.6G   3% /gluster/brick1

    /dev/sdc                     ext4     5.0G  138M  4.6G   3% /gluster/brick2

    [root@gfs1 ~]# echo "mount /dev/sdb /gluster/brick1" >>/etc/rc.local

    [root@gfs1 ~]# echo "mount /dev/sdc /gluster/brick2" >>/etc/rc.local

    【以上4台gfs主机的安装都一致】

    [root@gfs1 ~]# gluster volume create gs1 gfs1:/gluster/brick1 gfs2:/gluster/brick1 force

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

    [root@gfs1 ~]# gluster volume start gs1

    volume start: gs1: success

    [root@gfs4 ~]# gluster volume info

    Volume Name: gs1

    Type: Distribute

    Volume ID: 42037eb3-3705-4927-ace2-f138a84963a4

    Status: Started

    Number of Bricks: 2

    Transport-type: tcp

    Bricks:

    Brick1: gfs1:/gluster/brick1

    Brick2: gfs2:/gluster/brick1

     

    • Volume的两种挂载方式

    以glusterfs挂载

    [root@gfs4 ~]# mount -t glusterfs 127.0.0.1:/gs1 /mnt/

    [root@gfs4 ~]# df -h

    Filesystem                    Size  Used Avail Use% Mounted on

    /dev/mapper/VolGroup-lv_root   37G  3.6G   32G  11% /

    tmpfs                         491M   80K  491M   1% /dev/shm

    /dev/sda1                     485M   35M  426M   8% /boot

    /dev/sr0                      4.2G  4.2G     0 100% /media/cdrom

    /dev/sdc                      5.0G  138M  4.6G   3% /gluster/brick2

    /dev/sdb                      5.0G  138M  4.6G   3% /gluster/brick1

    127.0.0.1:/gs1                9.9G  277M  9.1G   3% /mnt

     

    • 如果此处不成功可以重启服务,重新挂载

    [root@gfs1 ~]# touch /mnt/{1..5}

    [root@gfs1 ~]# ls /mnt/

    1  2  3  4  5  lost+found

    [root@gfs2 ~]# mount -t glusterfs 127.0.0.1:/gs1 /mnt/

    [root@gfs2 ~]# ls /mnt/

    1  2  3  4  5  lost+found

    [root@gfs3 ~]# mount -t glusterfs 127.0.0.1:/gs1 /mnt

    [root@gfs3 ~]# ls /mnt/

    1  2  3  4  5  lost+found

    [root@gfs4 ~]# mount -t glusterfs 127.0.0.1:/gs1 /mnt/

    [root@gfs4 ~]# ls /mnt/

    1  2  3  4  5  lost+found

     

    • 创建分布复制卷

    [root@gfs1 ~]# gluster volume create gs2 replica 2 gfs3:/gluster/brick1 gfs4:/gluster/brick1 force

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

    [root@gfs1 ~]# gluster volume info gs2 

    Volume Name: gs2

    Type: Replicate

    Volume ID: 7c84cc12-bea5-45e5-805a-222c70192962

    Status: Created

    Number of Bricks: 1 x 2 = 2

    Transport-type: tcp

    Bricks:

    Brick1: gfs3:/gluster/brick1

    Brick2: gfs4:/gluster/brick1

    [root@gfs1 ~]# gluster volume start gs2

    volume start: gs2: success

     

    • 创建分布式条带卷

    [root@gfs1 ~]# gluster volume create gs3 stripe 2 gfs1:/gluster/brick2 gfs2:/gluster/brick2 force

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

    [root@gfs1 ~]# gluster volume info gs3 

    Volume Name: gs3

    Type: Stripe

    Volume ID: c1e84e60-cea2-4908-8b45-8470d93a7a19

    Status: Created

    Number of Bricks: 1 x 2 = 2

    Transport-type: tcp

    Bricks:

    Brick1: gfs1:/gluster/brick2

    Brick2: gfs2:/gluster/brick2

    [root@gfs1 ~]# gluster volume start gs3

    volume start: gs3: success

     

    • 进行卷的数据写入测试

    [root@web ~]# mount -t nfs 192.168.16.12:/gs1 /mnt

    [root@web ~]# df -h

    Filesystem                    Size  Used Avail Use% Mounted on

    /dev/mapper/VolGroup-lv_root   37G  3.6G   32G  11% /

    tmpfs                         491M  228K  491M   1% /dev/shm

    /dev/sda1                     485M   35M  426M   8% /boot

    /dev/sr0                      4.2G  4.2G     0 100% /media/cdrom

    192.168.16.12:/gs1            9.9G  277M  9.1G   3% /mnt

    [root@web ~]# touch /mnt/{1..10}

    [root@web ~]# ls /mnt/

    1  10  2  3  4  5  6  7  8  9  lost+found

    [root@gfs1 ~]# ls /gluster/brick1

    1  5  7  8  9  lost+found

    [root@gfs2 ~]# ls /gluster/brick1

    10  2  3  4  6  lost+found

     

    • 分布式复制卷gs2的数据写入测试

    [root@web ~]# mount -t nfs 192.168.16.12:/gs2 /mnt

    [root@web ~]# df -h

    Filesystem                    Size  Used Avail Use% Mounted on

    /dev/mapper/VolGroup-lv_root   37G  3.6G   32G  11% /

    tmpfs                         491M  228K  491M   1% /dev/shm

    /dev/sda1                     485M   35M  426M   8% /boot

    /dev/sr0                      4.2G  4.2G     0 100% /media/cdrom

    192.168.16.12:/gs1            5.0G  138M  4.6G   3% /mnt

    192.168.16.12:/gs2            5.0G  138M  4.6G   3% /mnt

    [root@web ~]# ls /mnt/

    lost+found

    [root@web ~]# ls /mnt/

    lost+found

    [root@web ~]# touch /mnt/{20..30}

    [root@web ~]# ls /mnt/

    20  21  22  23  24  25  26  27  28  29  30  lost+found

    [root@gfs3 ~]# ls /gluster/brick1

    20  21  22  23  24  25  26  27  28  29  30  lost+found

    [root@gfs4 ~]# ls /gluster/brick1

    20  21  22  23  24  25  26  27  28  29  30  lost+found

     

    • 分布式条带卷gs3的数据写入测试

    [root@web ~]# umount /mnt/

    [root@web ~]# mount -t nfs 192.168.16.12:/gs3 /mnt/

    [root@web ~]# df -h

    Filesystem                    Size  Used Avail Use% Mounted on

    /dev/mapper/VolGroup-lv_root   37G  3.6G   32G  11% /

    tmpfs                         491M  228K  491M   1% /dev/shm

    /dev/sda1                     485M   35M  426M   8% /boot

    /dev/sr0                      4.2G  4.2G     0 100% /media/cdrom

    192.168.16.12:/gs1            9.9G  276M  9.1G   3% /mnt

    192.168.16.12:/gs3            9.9G  276M  9.1G   3% /mnt

    [root@web ~]# dd if=/dev/zero of=/root/test bs=1024 count=262144

    记录了262144+0 的读入

    记录了262144+0 的写出

    268435456字节(268 MB)已复制,5.6587 秒,47.4 MB/秒

    [root@web ~]# du -sh test

    256M test

    [root@web ~]# ls /mnt/

    lost+found

    [root@web ~]# cp test /mnt/

    [root@web ~]# ls /mnt/

    lost+found  test

    [root@web ~]# du -sh /mnt/test

    257M /mnt/test

    [root@gfs1 ~]# du -sh /gluster/brick2/test

    129M /gluster/brick2/test

    [root@gfs2 ~]#  du -sh /gluster/brick2/test

    129M /gluster/brick2/test

     

    • 存储卷中brick块设备的扩容
    • 分布式复制卷的扩容

    [root@gfs1 ~]# gluster volume add-brick gs2 replica 2 gfs3:/gluster/brick2 gfs4:/gluster/brick2 force

    volume add-brick: success

    [root@gfs1 ~]# gluster volume info gs2

    Volume Name: gs2

    Type: Distributed-Replicate

    Volume ID: 7c84cc12-bea5-45e5-805a-222c70192962

    Status: Started

    Number of Bricks: 2 x 2 = 4

    Transport-type: tcp

    Bricks:

    Brick1: gfs3:/gluster/brick1

    Brick2: gfs4:/gluster/brick1

    Brick3: gfs3:/gluster/brick2

    Brick4: gfs4:/gluster/brick2

     

    • 查看扩容后的容量和写入测试

    在web上挂载gs2并查看挂载目录的容量

    [root@web ~]# umount /mnt/

    [root@web ~]# umount /mnt/

    [root@web ~]# mount -t nfs 192.168.16.12:/gs2 /mnt/

    [root@web ~]# df -h

    Filesystem                    Size  Used Avail Use% Mounted on

    /dev/mapper/VolGroup-lv_root   37G  3.9G   32G  11% /

    tmpfs                         491M  228K  491M   1% /dev/shm

    /dev/sda1                     485M   35M  426M   8% /boot

    /dev/sr0                      4.2G  4.2G     0 100% /media/cdrom

    192.168.16.12:/gs2            9.9G  277M  9.1G   3% /mnt【已经扩容】

     

    • 在web上进行数据写入操作

    [root@web ~]# ls /mnt/

    20  21  22  23  24  25  26  27  28  29  30  lost+found

    [root@web ~]# touch /mnt/{30..40}

    [root@web ~]# ls /mnt/

    20  22  24  26  28  30  32  34  36  38  40

    21  23  25  27  29  31  33  35  37  39  lost+found

     

    • 在gfs3和gfs4上查看数据存到哪里了

    [root@gfs3 ~]# gluster volume info gs2

    Volume Name: gs2

    Type: Distributed-Replicate

    Volume ID: 7c84cc12-bea5-45e5-805a-222c70192962

    Status: Started

    Number of Bricks: 2 x 2 = 4

    Transport-type: tcp

    Bricks:

    Brick1: gfs3:/gluster/brick1【组成gs2的块设备就在03和04上】

    Brick2: gfs4:/gluster/brick1

    Brick3: gfs3:/gluster/brick2

    Brick4: gfs4:/gluster/brick2

    [root@gfs3 ~]# ls /gluster/brick1

    20  22  24  26  28  30  32  34  36  38  40

    21  23  25  27  29  31  33  35  37  39  lost+found

    [root@gfs3 ~]# ls /gluster/brick2

    lost+found

    [root@gfs4 ~]# ls /gluster/brick1

    20  21  22  23  24  25  26  27  28  29  30  lost+found

    [root@gfs4 ~]# ls /gluster/brick1

    20  22  24  26  28  30  32  34  36  38  40

    21  23  25  27  29  31  33  35  37  39  lost+found

    [root@gfs4 ~]# ls /gluster/brick2

    lost+found

     

    • 对gs2进行磁盘存储的扩容

    [root@gfs1 ~]# gluster volume rebalance gs2 start

    volume rebalance: gs2: success: Starting rebalance on volume gs2 has been successful.

    ID: 94ca344e-f513-47d4-9d87-deb766130a06

    • 检测gs2块设备磁盘平衡结果

    [root@gfs3 ~]# ls /gluster/brick1

    20  22  24  26  28  30  32  34  36  38  40

    21  23  25  27  29  31  33  35  37  39  lost+found

    [root@gfs3 ~]# ls /gluster/brick2

    20  22  24  26  28  30  32  34  36  38  40

    21  23  25  27  29  31  33  35  37  39  lost+found

    [root@gfs4 ~]# ls /gluster/brick1

    20  22  24  26  28  30  32  34  36  38  40

    21  23  25  27  29  31  33  35  37  39  lost+found

    [root@gfs4 ~]# ls /gluster/brick2

    20  22  24  26  28  30  32  34  36  38  40

    21  23  25  27  29  31  33  35  37  39  lost+found

     

    • 存储卷的缩减与删除

    [root@gfs1 ~]# gluster volume stop gs2

    Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y

    volume stop: gs2: success

    [root@gfs1 ~]# gluster volume info gs2

    [root@gfs1 ~]# gluster volume remove-brick gs2 replica 2 gfs3:/gluster/brick2 gfs4:/gluster/brick2 force【移除卷,因为复制卷且replica为2,因此每次移除必须是2的倍数】

    Removing brick(s) can result in data loss. Do you want to Continue? (y/n) y

    volume remove-brick commit force: success

    [root@gfs1 ~]# gluster volume info gs2 【gs2卷已经移除】

    Volume Name: gs2

    Type: Replicate

    Volume ID: 7c84cc12-bea5-45e5-805a-222c70192962

    Status: Stopped

    Number of Bricks: 1 x 2 = 2

    Transport-type: tcp

    Bricks:

    Brick1: gfs3:/gluster/brick1

    Brick2: gfs4:/gluster/brick1

     

    • 重新启动gs2卷

    [root@gfs1 ~]# gluster volume start gs2【重启卷gs2】

    volume start: gs2: success

    [root@gfs1 ~]# gluster volume stop gs1【停止卷gs1】

    Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y

    volume stop: gs1: success

    [root@gfs1 ~]# gluster volume delete gs1【删除卷gs1】

    Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y

    volume delete: gs1: success

    [root@gfs1 ~]# gluster volume info【查看卷信息,发现gs1已经没了】

    Volume Name: gs2

    Type: Replicate

    Volume ID: 7c84cc12-bea5-45e5-805a-222c70192962

    Status: Started

    Number of Bricks: 1 x 2 = 2

    Transport-type: tcp

    Bricks:

    Brick1: gfs3:/gluster/brick1

    Brick2: gfs4:/gluster/brick1

    Volume Name: gs3

    Type: Stripe

    Volume ID: c1e84e60-cea2-4908-8b45-8470d93a7a19

    Status: Started

    Number of Bricks: 1 x 2 = 2

    Transport-type: tcp

    Bricks:

    Brick1: gfs1:/gluster/brick2

    Brick2: gfs2:/gluster/brick2

     

    • 构建企业级分布式存储
    • 开启防火墙端口

    [root@gfs1 ~]# iptables -I INPUT -p tcp --dport 24007:24011 -j ACCEPT

    [root@gfs1 ~]# iptables -I INPUT -p tcp --dport 49162:49162 -j ACCEPT

    [root@gfs1 ~]# 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 base-port 49152【默认端口】

    end-volume

     

    • 调整方法: gluster volume set <卷><参数>

    [root@gfs1 ~]# gluster volume info gs2

    Volume Name: gs2

    Type: Replicate

    Volume ID: 7c84cc12-bea5-45e5-805a-222c70192962

    Status: Started

    Number of Bricks: 1 x 2 = 2

    Transport-type: tcp

    Bricks:

    Brick1: gfs3:/gluster/brick1

    Brick2: gfs4:/gluster/brick1

    [root@gfs1 ~]# gluster volume set gs2 performance.read-ahead on【设置预缓存优化】

    volume set: success

    [root@gfs1 ~]# gluster volume info gs2

    Volume Name: gs2

    Type: Replicate

    Volume ID: 7c84cc12-bea5-45e5-805a-222c70192962

    Status: Started

    Number of Bricks: 1 x 2 = 2

    Transport-type: tcp

    Bricks:

    Brick1: gfs3:/gluster/brick1

    Brick2: gfs4:/gluster/brick1

    Options Reconfigured:

    performance.read-ahead: on【已经添加上】

    [root@gfs1 ~]# gluster volume set gs2 performance.cache-size 256MB【设置读缓存大小】

    volume set: success

    [root@gfs1 ~]# gluster volume info gs2

    Volume Name: gs2

    Type: Replicate

    Volume ID: 7c84cc12-bea5-45e5-805a-222c70192962

    Status: Started

    Number of Bricks: 1 x 2 = 2

    Transport-type: tcp

    Bricks:

    Brick1: gfs3:/gluster/brick1

    Brick2: gfs4:/gluster/brick1

    Options Reconfigured:

    performance.cache-size: 256MB

    performance.read-ahead: on

     

    • 监控及日常维护

    以下命令在复制卷的场景下才会有

    [root@gfs1 ~]# gluster volume status gs2【查看节点NFS 是否在线】

    Status of volume: gs2

    Gluster process Port Online Pid

    ------------------------------------------------------------------------------

    Brick gfs3:/gluster/brick1 4915227340

    Brick gfs4:/gluster/brick1 491523604

    NFS Server on localhost 2049 3787

    Self-heal Daemon on localhost N/A  3772

    NFS Server on gfs2 2049 3826

    Self-heal Daemon on gfs2 N/A  3810

    NFS Server on gfs3 2049 27375

    Self-heal Daemon on gfs3 N/A  27353

    NFS Server on gfs4 2049 3637

    Self-heal Daemon on gfs4 N/A  3621

    There are no active volume tasks

    [root@gfs1 ~]# gluster volume heal gs2 full【启动完全修复】

    Launching Heal operation on volume gs2 has been successful

    Use heal info commands to check status

    [root@gfs1 ~]# gluster volume heal gs2 info【查看需要修复的文件】

    Gathering Heal info on volume gs2 has been successful

    Brick gfs3:/gluster/brick1

    Number of entries: 0

    Brick gfs4:/gluster/brick1

    Number of entries: 0

    [root@gfs1 ~]# gluster volume heal gs2 info healed【查看修复成功的文件】

    Gathering Heal info on volume gs2 has been successful

    Brick gfs3:/gluster/brick1

    Number of entries: 0

    Brick gfs4:/gluster/brick1

    Number of entries: 0

    [root@gfs1 ~]# gluster volume heal gs2 info heal-failed【查看修复失败文件】

    Gathering Heal info on volume gs2 has been successful

    Brick gfs3:/gluster/brick1

    Number of entries: 0

    Brick gfs4:/gluster/brick1

    Number of entries: 0

    [root@gfs1 ~]# gluster vollume heal gs2 info split-brain【查看脑裂的文件】

    unrecognized word: vollume (position 0)

    [root@gfs1 ~]# gluster volume quota gs2 enable【激活quota功能】

    Enabling quota has been successful

    [root@gfs1 ~]# gluster volume quota gs2 disable【关闭quota功能】

    Disabling quota will delete all the quota configuration. Do you want to continue? (y/n) y

     

    Disabling quota has been successful

     

    [root@gfs1 ~]# gluster volume quota gs2 enable【激活quota功能】

    Enabling quota has been successful

     

    [root@gfs1 ~]# gluster volume quota gs2 limit-usage /data 10GB【/gs2/data目录限制】

    limit set on /data

     

    [root@gfs1 ~]# gluster volume quota gs2 list 【quota信息列表】

    path   limit_set      size

    ----------------------------------------------------------------------------------

    /data                      10GB

    [root@gfs1 ~]# gluster volume quota gs2 list  /data【限制目录的quota信息】

    path   limit_set      size

    ----------------------------------------------------------------------------------

    /data                      10GB

    [root@gfs1 ~]# gluster volume set gs2 features.quota-timeout 5【设置信息的超时事实上时间】

    volume set: success

     

    [root@gfs1 ~]# gluster volume quota gs2 remove /data【删除某个目录的quota设置】

    Removed quota limit on /data

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • glusterFS

    2019-08-07 12:25:03
    glusfs首先分两个端,客户端和服务端 搞了我基本上,一下午加一晚上...yum -y install glusterfs glusterfs-fuse 还是本来系统就有glusfs,直接运行glusfs可以执行,但是重点来了,以为这样就行吗,大错特错,出...

    glusfs首先分两个端,客户端和服务端

    搞了我基本上,一下午加一晚上加一早上,太真实了,没搞懂,网上大部分都是服务端的配置,客户端感觉就很迷。

    先说客户端吧,把我搞得这么头痛

    客户端

    先安装glusfs
    我执行了

    yum -y install glusterfs glusterfs-fuse
    

    还是本来系统就有glusfs,直接运行glusfs可以执行,但是重点来了,以为这样就行吗,大错特错,出现的问题先描述一下:开机之后,ping一下公司服务器ip,是可以Ping通的,在客户端执行mount指令,卡住失败了,让查看日志,查看日志发现:

    [socket.c:3498:socket_connect] 0-glusterfs: 
    connection attempt on  failed, (无效的参数)
    

    而且出现的现象是ping127.0.0.1和客户端本机ip是可以通的,但是外网和公司服务器ip还有dns服务器全部失败???神奇不!第二个但是,过了一段时间又恢复了!!!

    以为是自己虚拟机ip配置有问题,又看了静态ip配置也没问题。

    没办法查看一下集群情况,虽然挂载没成功,但这个应该是能看的对吧,最差肯定是0个挂载嘛

    gluster peer status//查看集群情况
    

    出现了,它提示我gluster守护进程不可操作

    Connection failed. Please check if gluster daemon 
    is operational.
    

    额,是不是我服务没开,但是我gluster客户端是能进去的诶。没办法试一下吧,再一顿乱安装,把服务端也安装进去。

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

    启动glusterfs集群

    systemctl start glusterd.service//临时
    
    systemctl enable glusterd.service//永久
    

    再查看一下集群情况gluster peer status,铛铛铛!出来了

    Number of Peers: 0
    

    开始挂载

    sudo mount -t glusterfs 192.168.*.*:/first ./glusterfs_test/
    //192那个是服务器地址,first是卷名,./glusterfs_test是客户端的
    

    查看挂载情况

    df -h
    

    停止挂载

    umount ./glusterfs_test //有三种方式,后面接本地目录,服务器目录,或者两个都有,这三种方法。
    

    验证一下吧,暂时不会别的方法那再挂载一遍

    GlusterFS is already mounted on /root/test/glusterfs_test
    

    哈哈出现了,说已经挂载了,那之前那个挂在成功了。

    再回来配置一下服务端

    服务端

    gluster装好了的前提

    现在的配置是,一个客户端,两个服务端

    两个服务端都装好glusterfs,启动服务。

    配置可信主机池

    gluster peer probe node32
    

    检查对等状态

    在node32执行
    gluster peer status 
    

    现在所有服务端主机都放到了主机池中。
    创建开启卷(默认创建的是分布式Distribute,后面尝试其他方式)

    sudo gluster volume create first node32:/home/ztywt/glusterfs/exp1 node34:/home/ztywt/glusterfs/exp1
    //创建volume卷first分布在node32主机的exp1和node34主机的exp2目录下(这个目录要写详细)。此时该卷状态是created
    //注意这里容易报错,如果该文件目录是在系统目录下则会报错,如果想强制的话,也可以在命令后加forc
    //这里出了个bug,明明都删了卷,再创建的时候,还说exp被绑定,直接暴力用force可解决。
    sudo gluster volume create first node32:/home/ztywt/glusterfs/exp1 node34:/home/ztywt/glusterfs/exp1 force//强制创建卷
    sudo gluster volume start first//开启卷
    

    停止删除卷

    sudo gluster volume stop first//停止卷,删除卷之前要停止
    sudo gluster volume delete first //删除卷
    

    查看所有卷的状态

    sudo gluster volume info
    

    创建卷:
    分布式卷:默认,按一致性哈希分不到brick上
    复制卷:每个brick存储相同文件,相当于备份
    条带式卷:文件被分块存储,对于大文件很好
    分布式条带式卷:在条带式的基础上,添加brick,添加的数量要是之前的整数倍,相当于本来是条带式的存储在两个bricks中,现在增加整数倍(2 4 6…)的bricks,现在按2 2 2 2 呈现分布式存储。再直白一点,本来是一个文件在这两个bricks是条带式,现在可能再增加的中的两个bricks是条带式。或者说,现在每两个bricks作为一组,存储一个文件,哈希分配到一个组上,在这个组是条带式。
    分布式复制式卷:在复制卷的基础上,添加bricks,添加数量是之前的整数倍。现在每一个整数倍为一个组,存储文件,哈希分配到一个组,在这个组是以复制卷形式存储。

    分布式、复制式、条带式直接创建
    分布条带式、分布式复制卷,都是在条带和复制的基础上,增加分布式bricks。

    分布式:

    gluster volume create gv1 node01:/data/brick1 node02:/data/brick1 force
    

    复制式:

    gluster volume create gv2 replica 2 node01:/data/brick2 node02:/data/brick2 force
    

    条带式:

    gluster volume create gv3 stripe 2 node01:/data/brick3 node02:/data/brick3 force
    

    分布式复制式:

    gluster volume add-brick gv2 replica 2 node03:/data/brick1 node04:/data/brick1 force  #添加brick到gv2中
    //就是在复制卷的基础上,添加了两个bricks
    

    分布条带式:

    gluster volume add-brick gv3 stripe 2 node03:/data/brick2 node04:/data/brick2 force  #添加brick到gv3中
    //就是在条带式的基础上,添加了两个bricks
    
    展开全文
  • GlusterFs

    2018-11-30 09:11:03
    在这里插入图片描述 创建volume 分布式卷 创建分布式复制卷 创建分布式条带卷 创建大小为256M的文件 分布式复制卷的扩容 在Webserver上进行数据写入操作 ,得先进行磁盘存储平衡 ......

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    创建volume
    分布式卷

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    创建分布式复制卷

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    创建分布式条带卷

    在这里插入图片描述

    创建大小为256M的文件

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    分布式复制卷的扩容

    在这里插入图片描述

    在这里插入图片描述

    在Webserver上进行数据写入操作 ,得先进行磁盘存储平衡
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • GlusterFS pods fail v3.7

    2020-12-01 10:05:37
    TASK [openshift_storage_glusterfs : Wait for GlusterFS pods] *******************************************************************************************************************************************...

空空如也

1 2 3 4 5 ... 20
收藏数 4,754
精华内容 1,901
关键字:

glusterfs