zoukankan      html  css  js  c++  java
  • 【分布式存储】Glusterfs快速搭建

    环境准备

    ip地址 用途
    172.30.200.240 Glusterfs server1
    172.30.200.241 Glusterfs server2
    172.30.200.242 Glusterfs server3
    172.30.200.243 Glusterfs客户端

    步骤1,保证至少有三台服务器

    • 名字分别是 "server1", "server2" and "server3"
    • 网络连通
    • 至少两块硬盘,其中一块盘用于GlusterFS存储服务,例如(/dev/sdb)
    • 设置NTP服务器。

    配置hostname

    ### 172.30.200.240
     echo "server1" >/etc/hostname 
    ### 172.30.200.241
     echo "server2" >/etc/hostname 
    ### 172.30.200.242
     echo "server3" >/etc/hostname
    

    重启上述各台服务器,让HOSTNAME生效

    配置host解析

    echo "172.30.200.240 server1" >>/etc/hosts
    echo "172.30.200.241 server2" >>/etc/hosts
    echo "172.30.200.242 server3" >>/etc/hosts
    

    配置ntp客户端同步时间

    yum install -y ntpdate
    ### 同步阿里云的时间服务
    [root@linux-node2 ~]# ntpdate ntp2.aliyun.com
     7 Nov 13:27:06 ntpdate[1656]: adjust time server 203.107.6.88 offset -0.000860 sec
     
    ### 写一个crontab
    [root@linux-node2 ~]# crontab -l
    */5 * * * * /usr/sbin/ntpdate ntp2.aliyun.com >/dev/null 2>&1
    

    步骤2,格式化和配置硬盘

    三台服务器都需要配置
    1.配置新划分的sdb盘,如下

    [root@server2 ~]# fdisk /dev/sdb
    
    欢迎使用 fdisk (util-linux 2.34)。
    更改将停留在内存中,直到您决定将更改写入磁盘。
    使用写入命令前请三思。
    
    设备不包含可识别的分区表。
    创建了一个磁盘标识符为 0x10c33a14 的新 DOS 磁盘标签。
    
    命令(输入 m 获取帮助):n  
    分区类型
       p   主分区 (0个主分区,0个扩展分区,4空闲)
       e   扩展分区 (逻辑分区容器)
    选择 (默认 p):p
    分区号 (1-4, 默认  1): 
    第一个扇区 (2048-41943039, 默认 2048): 
    最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039): 
    
    创建了一个新分区 1,类型为“Linux”,大小为 20 GiB。
    
    命令(输入 m 获取帮助):p
    Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
    磁盘型号:Virtual disk    
    单元:扇区 / 1 * 512 = 512 字节
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x10c33a14
    
    设备       启动  起点     末尾     扇区 大小 Id 类型
    /dev/sdb1        2048 41943039 41940992  20G 83 Linux
    
    命令(输入 m 获取帮助):w
    分区表已调整。
    将调用 ioctl() 来重新读分区表。
    正在同步磁盘。
    

    2.格式化和加载/dev/sdb1

    mkfs.xfs -i size=512 /dev/sdb1
    mkdir -p /data/brick1
    echo '/dev/sdb1 /data/brick1 xfs defaults 1 2' >> /etc/fstab
    mount -a && mount
    df -h
    

    步骤3,安装GlusterFS

    安装软件

    yum install glusterfs-server
    

    启动GlusterFS 管理的守护进程

    CentOS 6
    # service glusterd start
    # service glusterd status
    CentOS 7
    # systemctl start glusterd.service
    # systemctl status glusterd.service
    

    步骤4,配置防火墙

    iptables -I INPUT -p all -s 172.30.200.240 -j ACCEPT
    iptables -I INPUT -p all -s 172.30.200.241 -j ACCEPT
    iptables -I INPUT -p all -s 172.30.200.242 -j ACCEPT
    

    如果想简单,也可以关闭防火墙

    systemctl stop firewalld.service 
    

    步骤5,配置 trusted pool

    在server1服务器上面,设置如下:

    # gluster peer probe server2
    # gluster peer probe server3
    

    查看server1中,peer status的信息

    # gluster peer status
    

    你应该可以看到如下的信息(UUID是不同的)

    Number of Peers: 2
    
    Hostname: server2
    Uuid: f7b97263-1da0-4572-8340-3be3182f9db3
    State: Peer in Cluster (Connected)
    
    Hostname: server3
    Uuid: a89c3006-1b66-44af-bebd-bafa367d69e1
    State: Peer in Cluster (Connected)
    

    步骤6,设置GlusterFS卷

    所有的服务器,执行如下命令:

    # mkdir -p /data/brick1/gv0
    

    任何一台服务器,执行如下命令:

    # gluster volume create gv0 replica 3 server1:/data/brick1/gv0 server2:/data/brick1/gv0 server3:/data/brick1/gv0
    volume create: gv0: success: please start the volume to access data
    # gluster volume start gv0
    volume start: gv0: success
    

    确认卷的信息是否正常:

    # gluster volume info
    

    你应该可以看到如下的信息(Volume ID 是不同的)

    Volume Name: gv0
    Type: Replicate
    Volume ID: 53e05780-146d-41ca-bdfc-b2152fafb2a0
    Status: Started
    Snapshot Count: 0
    Number of Bricks: 1 x 3 = 3
    Transport-type: tcp
    Bricks:
    Brick1: server1:/data/brick1/gv0
    Brick2: server2:/data/brick1/gv0
    Brick3: server3:/data/brick1/gv0
    Options Reconfigured:
    transport.address-family: inet
    storage.fips-mode-rchecksum: on
    nfs.disable: on
    performance.client-io-threads: off
    

    备注:如果状态不是 "Started",可以查看/var/log/glusterfs/glusterd.log诊断错误

    步骤7,测试GlusterFS卷能否正常使用

    这里测试的客户端的服务器IP:172.30.200.243

    安装客户端

    yum install -y glusterfs glusterfs-fuse
    

    配合host

    [root@localhost ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    172.30.200.240 server1
    172.30.200.241 server2
    172.30.200.242 server3
    

    创建目录并挂载glusterfs

    # mkdir -p /data
    # mount -t glusterfs server1:/gv0 /data
    

    测试文件存储

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

    这里看到的文件为100个。

    现在去Glusterfs服务器集群中,对每台服务器进行查询。可以看到每一个服务器上面,都有100个文件

    [root@server1 ~]#  ls -lA /data/brick1/gv0/copy* |wc -l
    100
    [root@server2 ~]# ls -lA /data/brick1/gv0/copy* |wc -l
    100
    [root@server3 ~]# ls -lA /data/brick1/gv0/copy* |wc -l
    100
    
  • 相关阅读:
    免费素材下载:淡蓝色的PSD格式UI套件
    分享一个CSS3的网格系统架构 ResponsiveAeon
    最新收集的超棒Mobile/Web UI和用户体验设计
    一个帮助你针对不同标签自动填入内容的轻量级javascript类库 fixiejs
    发现任何VB函数、插件、甚至按键精灵对“文件下载”窗口后台失效
    android 界面 滑入 效果
    分布式HeadLoop
    VB ListView
    android 下载保存图片
    网址
  • 原文地址:https://www.cnblogs.com/zhangshengdong/p/11812780.html
Copyright © 2011-2022 走看看