zoukankan      html  css  js  c++  java
  • 分布式文件系统---GlusterFS

    分布式文件系统

      相对于本机端的文件系统而言,分布式文件系统(英语:Distributed file systemDFS),或是网络文件系统(英语:Network File System),是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间

      在这样的文件系统中,客户端并非直接访问底层的数据存储区块,而是通过网络,以特定的通信协议和服务器沟通。借由通信协议的设计,可以让客户端和服务器端都能根据访问控制清单或是授权,来限制对于文件系统的访问。

    glusterfs是什么

      Gluster是一个分布式文件系统。它是各种不同的存储服务器之上的组合,这些服务器由以太网或无限带宽技术Infiniband以及远程直接内存访问RDMA互相融汇,最终所形成的一个大的并行文件系统网络。

       它有包括云计算在内的多重应用,诸如:生物医药科学,文档存储。Gluster是由GNU托管的自由软件,证书是AGPL。Gluster公司是Gluster的首要商业赞助商,且提供商业产品以及基于Gluster的解决方案。

    快速部署GlusterFS

    环境说明

     注意:最少需要拥有两块硬盘

     

     两台主机系统环境说明

    [root@glusterfs02 ~]# hostname
    glusterfs02
    [root@glusterfs02 ~]# uname -r
    3.10.0-693.el7.x86_64

    [root@glusterfs02 ~]# cat /etc/hosts
    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.1.221 glusterfs01
    192.168.1.222 glusterfs02

    前期准备

     gluster01主机挂载磁盘

     [root@glusterfs01 ~]# mkfs.xfs /dev/sdb

     [root@glusterfs01 ~]# mkdir -p /data/brick1

     [root@glusterfs01 ~]# echo '/dev/sdb /data/brick1 xfs defaults 0 0' >> /etc/fstab

     [root@glusterfs01 ~]# mount -a && mount

     gluster02主机挂载磁盘

     [root@glusterfs02 ~]# mkfs.xfs /dev/sdb

     [root@glusterfs02 ~]# mkdir -p /data/brick1

     [root@glusterfs02 ~]# echo '/dev/sdb /data/brick1 xfs defaults 0 0' >> /etc/fstab

     [root@glusterfs02 ~]# mount -a && mount

    部署GlusterFS

    安装软件

     在两个节点上操作

     [root@glusterfs01 ~]# yum install centos-release-gluster -y

     [root@glusterfs02 ~]# yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

    启动GlusterFS

     在两个节点上都进行操作

     [root@glusterfs01 ~]# systemctl start glusterd.service 

    配置互信(可信池)

     在glusterfs01上操作

    [root@glusterfs01 ~]# gluster peer probe glusterfs02
    peer probe: success.

     在glusterfs02上操作

    [root@glusterfs02 ~]# gluster peer probe glusterfs01
    peer probe: success. Host glusterfs01 port 24007 already in peer list

     注意:一旦建立了这个池,只有受信任的成员可能会将新的服务器探测到池中。新服务器无法探测池,必须从池中探测。

    检查对等状态

    [root@glusterfs01 ~]# gluster peer status
    Number of Peers: 1

    Hostname: glusterfs02
    Uuid: 2f94889d-25d4-4775-ab61-5db25ddfb2fc
    State: Peer in Cluster (Connected)

    [root@glusterfs02 ~]# gluster peer status
    Number of Peers: 1

    Hostname: glusterfs01
    Uuid: 8f9e6573-7042-4227-a8f9-d7922cc1f1f9
    State: Peer in Cluster (Connected)

     注意:看到的UUID应不相同。

    建立一个GlusterFS卷

     在两个节点上操作

     [root@glusterfs01 ~]# mkdir -p /data/brick1/gv0

      在任意一个节点上执行

    [root@glusterfs01 ~]# gluster volume create gv0 replica 2 glusterfs01:/data/brick1/gv0 glusterfs02:/data/brick1/gv0 force
    volume create: gv0: success: please start the volume to access data

    [root@glusterfs01 ~]# gluster volume start gv0
    volume start: gv0: success

     查看信息

    [root@glusterfs01 ~]# gluster volume info

    Volume Name: gv0
    Type: Replicate
    Volume ID: 630085a3-58af-4547-a4f0-2613412dc650
    Status: Started
    Snapshot Count: 0
    Number of Bricks: 1 x 2 = 2
    Transport-type: tcp
    Bricks:
    Brick1: glusterfs01:/data/brick1/gv0
    Brick2: glusterfs02:/data/brick1/gv0
    Options Reconfigured:
    transport.address-family: inet
    nfs.disable: on
    performance.client-io-threads: off

     至此,服务端配置结束

    客户端测试

    安装客户端工具

    挂载测试

    [root@client ~]# cat /etc/hosts
    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.1.221 glusterfs01
    192.168.1.222 glusterfs02
    192.168.1.220 client

    [root@client ~]# yum install centos-release-gluster -y

    [root@client ~]# yum install -y glusterfs glusterfs-fuse

    [root@client ~]# mount.glusterfs glusterfs01:/gv0 /mnt
    [root@client ~]# df -h
    文件系统 容量 已用 可用 已用% 挂载点
    /dev/mapper/centos-root 19G 1.4G 18G 8% /
    devtmpfs 226M 0 226M 0% /dev
    tmpfs 237M 0 237M 0% /dev/shm
    tmpfs 237M 4.6M 232M 2% /run
    tmpfs 237M 0 237M 0% /sys/fs/cgroup
    /dev/sda1 247M 105M 142M 43% /boot
    tmpfs 48M 0 48M 0% /run/user/0
    glusterfs01:/gv0 20G 237M 20G 2% /mnt

    复制文件测试

    [root@client ~]# for i in `seq -w 1 100`; do cp -rp /var/log/messages /mnt/copy-test-$i; done
    [root@client ~]# ls -lA /mnt/copy* | wc -l
    100

    服务节点检查文件

    [root@glusterfs01 gv0]# ls -lA /data/brick1/gv0/copy* |wc -l
    100

    [root@glusterfs02 ~]# ls -lA /data/brick1/gv0/copy* |wc -l
    100

    至此Glusterfs简单配置完成

    创建卷

    gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0 force  

    二、启动卷

     gluster volume start 

    例子:gluster volume start  gv0

    三、停止卷

    gluster volume stop 

    例子:gluster volume stop gv0

    四、 删除卷

    gluster volume delete 

    例子:gluster volume delete  gv0

    五、添加节点

    gluster peer probe

    例子:gluster peer probe server3

    六、删除节点

    gluster peer detach (移除节点,需要提前将该节点上的brick移除)

    例子:gluster peer detach server3

    七、查看卷

    gluster volume list              /*列出集群中的所有卷*/

    gluster volume info [all]      /*查看集群中的卷信息*/
    gluster volume status [all]  /*查看集群中的卷状态*/

    八、 更改卷类型

    3.更改卷的类型

    语法:gluster volume set test-volume config.transport tcp,rdma OR tcp OR rdma

    例子:

    九、重新均衡卷

    语法:gluster volume rebalance <VOLNAME> fix-layout start

    例子:gluster volume rebalance test-volume fix-layout start

    十、收缩卷

    1.开始收缩

    gluster volume  remove-brick  gv0 server3:/data/brick1/gv0 server4:/data/brick1/gv0 start

    2.查看迁移状态

    gluster volume  remove-brick  gv0 server3:/data/brick1/gv0 server4:/data/brick1/gv0 status

    3.迁移完成提交

    gluster volume  remove-brick  gv0 server3:/data/brick1/gv0 server4:/data/brick1/gv0 commit

    九.GlusterFS的配额

    GlusterFS目录限额,允许你根据目录或卷配置限制磁盘空间的使用量

    1.开启限额

    gluster volume quota VolumeName enable

    2.关闭限额

    gluster volume quota VolumeName disable

    3.设置或替换磁盘限制

     3.1.根据卷限制

    gluster volume quota VolumeName limit-usage / size
    例子:gluster volume quota gv0 limit-usage / 10GB
    3.2.根据目录限制
    gluster volume quota VolumeName limit-usage DirectoryPath LimitSize
  • 相关阅读:
    寒假日报day10
    寒假日报day9
    周计划06(20201026-20201101)
    周计划05(20201019-20201025)
    周总结2
    编程语言的实现模式读后感1
    软工总结
    哈夫曼编码算法
    hive表查询——排序
    假期总结4
  • 原文地址:https://www.cnblogs.com/liujunjun/p/11850512.html
Copyright © 2011-2022 走看看