Trace: rhel_7_gluster

RHEL/CentOS 7 GlusterFS

Pre requisites

SSH:

ssh-keygen 
ssh-copyid #only from one node
yum install -y ansible

Configure /etc/hosts:

192.168.122.194 gluster2
192.168.122.208 gluster3
192.168.122.22  gluster1

Configure Chrony:

yum install -y chrony
systemctl start chronyd
systemctl enable chronyd

GlusterFS installation

If CentOS

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

If RHEL

TBD

On both SO

systemctl start glusterd
systemctl enable glusterd
firewall-cmd --add-service=glusterfs
firewall-cmd --add-service=glusterfs --permanent
(echo o; echo n; echo p; echo 1; echo; echo; echo w) | fdisk /dev/sda
mkfs.xfs /dev/sda1
mkdir -p /data/gluster
echo "/dev/sda1 /data/gluster xfs defaults 0 0" | tee --append /etc/fstab
mount -a
mkdir -p /data/gluster/gv0

On one node:

gluster peer probe gluster2
gluster peer probe gluster3
gluster volume create gv0 replica 2 arbiter 1 gluster1:/data/gluster/gv0 gluster2:/data/gluster/gv0 gluster3:/data/gluster/gv0
gluster volume start gv0

Remove volume

On one node:

gluster volume stop gv0
gluster volume delete gv0

On all nodes:

setfattr -x trusted.glusterfs.volume-id /data/gluster/gv0/
setfattr -x trusted.gfid /data/gluster/gv0/
rm -rf /data/gluster/gv0/.glusterfs

NFS Ganesha

yum install -y nfs-ganesha-gluster nfs-ganesha
yum install -y pcs fence-agents-all
firewall-cmd --add-service=nlm  --add-service=nfs  --add-service=rpc-bind  --add-service=high-availability --add-service=mountd --add-service=rquota
firewall-cmd  --add-service=nlm  --add-service=nfs  --add-service=rpc-bind  --add-service=high-availability --add-service=mountd --add-service=rquota --permanent
sed -i '/STATD_PORT/s/^#//' /etc/sysconfig/nfs
systemctl restart nfs-config
systemctl restart rpc-statd
gluster volume set gv0 nfs.disable on
passwd hacluster
systemctl start pcsd.service
systemctl enable pcsd.service
pcs cluster auth gluster1 gluster2 gluster3
gluster volume set all cluster.enable-shared-storage enable

Ansible

Inventory:

[tareastodos]
192.168.122.95
192.168.122.244
192.168.122.150
[tareasunnodo]
192.168.122.95

Playbook:

---

- name: Prepare all nodes gluster software
  hosts: tareastodos
  tasks:

  - name: Configure /etc/hosts
    lineinfile:
      path: /etc/hosts
      line: "{{ item.line }}"
    with_items:
      - { line: '192.168.122.95 gluster1' }
      - { line: '192.168.122.244 gluster2' }
      - { line: '192.168.122.150 gluster3' }

  - name: Install chrony
    yum:
      name: chrony
      state: present

  - name: Enable chronyd
    systemd:
      name: chronyd
      state: started
      enabled: yes

  - name: Install centos-release-gluster
    yum:
      name: centos-release-gluster
      state: present

  - name: Install glusterfs-server
    yum:
      name: glusterfs-server
      state: present

  - name: Enable glusterd
    systemd:
      name: glusterd
      state: started
      enabled: yes

  - name: Disable firewalld
    systemd:
      name: firewalld
      state: stopped
      enabled: no

  - name: Create mount point
    file:
      path: /data/gluster/
      state: directory

  - name: Configure /etc/fstab
    lineinfile:
      path: /etc/fstab
      line: '/dev/sdb1 /data/gluster xfs defaults 0 0'

  - name: Create partitions
    parted:
      device: /dev/sdb
      number: 1
      state: present
      part_end: 4.9GiB

  - name: Format partition
    filesystem:
      fstype: xfs
      dev: /dev/sdb1

  - name: Create partitions
    command: "{{ item }}"
    with_items:
      - 'mount -a'

  - name: Create mount point
    file:
      path: /data/gluster/gv0
      state: directory

- name: Configure gluster
  hosts: tareasunnodo
  tasks:

  - name: Configure gluster vg0
    command: "{{ item }}"
    with_items:
      - gluster peer probe gluster2
      - gluster peer probe gluster3
      - gluster volume create gv0 replica 2 arbiter 1 gluster1:/data/gluster/gv0 gluster2:/data/gluster/gv0 gluster3:/data/gluster/gv0
      - gluster volume start gv0

Revisar

References

rhel_7_gluster.txt · Last modified: 2019/11/04 17:32
Public Domain Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain