===== 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 ==== * https://github.com/nfs-ganesha/nfs-ganesha/wiki/NFS-Ganesha-and-High-Availability * https://jamesnbr.wordpress.com/2017/01/26/glusterfs-and-nfs-with-high-availability-on-centos-7/ ==== References ==== * https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/system_administrators_guide/index#sect-Using_chrony * https://www.itzgeek.com/how-tos/linux/centos-how-tos/install-and-configure-glusterfs-on-centos-7-rhel-7.html * https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.5/html/installation_guide/port_information * https://docs.gluster.org/en/latest/Administrator%20Guide/arbiter-volumes-and-quorum/ * https://docs.gluster.org/en/latest/Administrator%20Guide/Managing%20Volumes/#deleting-volumes * https://joejulian.name/post/glusterfs-path-or-a-prefix-of-it-is-already-part-of-a-volume/ * https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.5/html/administration_guide/sect-Native_Client * https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/high_availability_add-on_administration/ch-startup-haaa