Joshua_Pu

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

接下来是存储的部署, GlusterFS

主机: 192.168.1.201 / 192.168.1.202 / 192.168.1.203

系统: CentOS 7.4

CPU: 2 vCPU

Memory: 4 G

 

1. 安装 yum repo

# lvm
$ ansible glusterfs -m lvg -a "vg=gluster-vg pvs=/dev/sdb,/dev/sdc,/dev/sdd "
# 查看 vg 大小, 这里是 120G, 所以分为三个 lv ,每个给 35GB
$ vgs
  VG         #PV #LV #SN Attr   VSize    VFree   
  gluster-vg   3   0   0 wz--n- <119.99g <119.99g
# 划分 lv
$ ansible glusterfs -v -m lvol -a "lv=ovirt size=35G vg=gluster-vg"
$ ansible glusterfs -v -m lvol -a "lv=openshift size=35G vg=gluster-vg"
$ ansible glusterfs -v -m lvol -a "lv=openstack size=35G vg=gluster-vg"

2. 准备 bricks

# lvm
$ ansible glusterfs -m lvg -a "vg=gluster-vg pvs=/dev/sdb,/dev/sdc,/dev/sdd "
# 查看 vg 大小, 这里是 120G, 所以分为三个 lv ,每个给 35GB
$ vgs
  VG         #PV #LV #SN Attr   VSize    VFree   
  gluster-vg   3   0   0 wz--n- <119.99g <119.99g
# 划分 lv
$ ansible glusterfs -v -m lvol -a "lv=ovirt size=35G vg=gluster-vg"
$ ansible glusterfs -v -m lvol -a "lv=openshift size=35G vg=gluster-vg"
$ ansible glusterfs -v -m lvol -a "lv=openstack size=35G vg=gluster-vg"
# 查看一下结果
$ lvs
  LV        VG         Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  openshift gluster-vg -wi-a-----  35.00g                                                    
  openstack gluster-vg -wi-a-----  35.00g                                                    
  ovirt     gluster-vg -wi-a-----  35.00g
# 分区
$ ansible glusterfs -v -m filesystem -a "dev=/dev/gluster-vg/ovirt fstype=xfs opts='-i size=512'"
$ ansible glusterfs -v -m filesystem -a "dev=/dev/gluster-vg/openshift fstype=xfs opts='-i size=512'"
$ ansible glusterfs -v -m filesystem -a "dev=/dev/gluster-vg/openstack fstype=xfs opts='-i size=512'"
# 创建挂载目录
$ ansible glusterfs -v -m file -a "state=directory path=/bricks/ovirt"
$ ansible glusterfs -v -m file -a "state=directory path=/bricks/openshift"
$ ansible glusterfs -v -m file -a "state=directory path=/bricks/openstack"
# 修改 fstab
$ ansible glusterfs -v -m lineinfile -a "path=/etc/fstab line='/dev/gluster-vg/ovirt /bricks/ovirt xfs defaults 1 2'"
$ ansible glusterfs -v -m lineinfile -a "path=/etc/fstab line='/dev/gluster-vg/openshift /bricks/openshift xfs defaults 1 2'"
$ ansible glusterfs -v -m lineinfile -a "path=/etc/fstab line='/dev/gluster-vg/openstack /bricks/openstack xfs defaults 1 2'"
# 挂载
$ ansible glusterfs -v -m shell -a "mount -a"
# 检查
$ ansible glusterfs -v -m shell -a "df -hT"

3. 安装 GlusterFS 软件包

$ ansible glusterfs -m yum -a "name=glusterfs-server"
# 防火墙, 一般情况下加 glusterfs 的服务, 但是根据官网描述, 关掉会比较方便, 毕竟分布式存储是一个"只对内部提供访问"的服务
# "You can run gluster with iptables rules, but it's up to you to decide how you'll configure those rules. By default, glusterd will listen on tcp/24007 but opening that port isn't enough on the gluster nodes. Each time you add a brick, it will open a new port (that you'll be able to see with "gluster volume status")"
# 2017-12-6 更新: 还是添加 glusterfs 的防火墙服务吧, 不然老是会连接不上, 要开启防火墙然后再关掉才能连接
$ ansible glusterfs -m firewalld -a "service=glusterfs state=enabled permanent=true"
$ ansible glusterfs -m service -a "name=firewalld state=restarted enabled=yes"
# 启动 GlusterFS 服务吧
$ ansible glusterfs -m service -a "name=glusterd state=started enabled=yes"
# 检查服务状态
$ ansible glusterfs -a "systemctl status glusterd"

 

GlusterFS 就装好了, 接下来就可以创建 Volume 分享出去了

另外, 上面的过程可以直接跑个 playbook 来完成:

---
- hosts: glusterfs
  tasks:
    - name: pv / vg create
      lvg:
        vg: gluster-vg
        pvs: /dev/sdb,/dev/sdc,/dev/sdd

    - name: lv create
      lvol: lv={{ item }} size=35G vg=gluster-vg
      with_items:
        - ovirt
        - openshift
        - openstack

    - name: filesystem
      filesystem: dev=/dev/gluster-vg/{{ item }} fstype=xfs opts='-i size=512'
      with_items:
        - ovirt
        - openshift
        - openstack

    - name: create mount directories
      file: state=directory path=/bricks/{{ item }}
      with_items:
        - ovirt
        - openshift
        - openstack

    - name: modify fstab
      lineinfile: path=/etc/fstab line='/dev/gluster-vg/{{ item }} /bricks/{{ item }} xfs defaults 1 2'
      with_items:
        - ovirt
        - openshift
        - openstack

    - name: mount
      shell: mount -a
    - name: check mounts
      shell: df -hT

    - name: install glusterfs
      yum:
        name: glusterfs-server

    - name: disable firewalld
      service:
        name: firewalld
        state: stopped
        enabled: no
    - name: enable and start glusterfs
      service:
        name: glusterd
        state: started
        enabled: yes

    - name: check daemon status
      shell: systemctl status glusterd

 

posted on 2017-12-04 16:14  Joshua_Pu  阅读(322)  评论(0编辑  收藏  举报