Giter Club home page Giter Club logo

cfn-gluster's Introduction

Overview

This project is designed to facilitate the standing up of basic Gluster storage-clusters. Templates can be used to create a storage-cluster of arbitrary size and layout: 2-way and 3-way mirrored-configurations laid out across both two and three availability-zones have been tested. Templates deploy the cluster nodes using AWS's AutoScalingGroup functionality. In the event of a node-failure, the AutoScalingGroup will detect the failure and build a replacement node.

It is generally assumed that this automation will only be used:

  • In regions where EFS is not yet available
  • In use-cases where EFS is insufficiently-performant (typically small- or medium-sized, active data-sets: see the vendor's Performance guidance-document)

Notes

  • This automation has only been tested using the SPEL CentOS 7 AMIs. However, should_ also work on instances built from MarketPlace or other CentOS 7 AMIs, both SPEL and generic/MarketPlace Red Hat 7 AMIs or Amazon Linux 2 AMIs.
  • While these templates leverage watchmaker to apply STIG-hardening to the deployed instances, FIPS mode is specifically disabled. Node-recovery is adversely-impacted when nodes are run in FIPS-mode.
  • Automated node-replacement: Gluster's in-built security prevents replacement-nodes from either being automatically-admitted to a degraded cluster (one missing one or more members due to failure) or automatically assuming the role of a failed node.
    • It is critical that the cluster be monitored for node-faults and rebuild-events โ€” particularly if the cluster hosts critical data.
    • In the event of a node-fault/rebuild-event, it will be necessary for an administrator to log into a serviving node and execute cluster recovery procedures. The documented procedures describe how to admit a rebuilt node into the degraded-cluster and use it to replace a failed node.
  • Backup-automation is not currently built in (though is being considered for future iterations)

cfn-gluster's People

Contributors

ferricoxide avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cfn-gluster's Issues

Sort out method for setting "friendlier" node-names

Currently, only DHCP-assigned nodenames capability is in place. Need to code up a method for taking a "base" node-name and making them sufficiently-unique without sacrificing the value of implementing "friendly" names.

Ensure Parent and EC2/fleet Templates Support 'AssociatePublicIpAddress' Parameter

Problem Description:

Parent template can't pass AssociatePublicIpAddress value to child template

Expected Behavior:

Parent template can pass AssociatePublicIpAddress value to child template

Actual Behavior:

Parent template can't pass AssociatePublicIpAddress value to child template

(Detailed) Steps to reproduce:

Launch netsted stack into VPC that needs EC2s to have public IP addresses

(Optional) Fix recommendation:

Propagate missing parameter from child-template to parent template.

Add "community" content

Ensure .github project-directory exists and contains:

  • CODE_OF_CONDUCT.md
  • contributing.md
  • issue_template.md
  • pull_request_template.md

Files. Model content from cfn-artifactory project-content.

DNS Brokenness Can Break Storage-Clients Boot-time Mounting

Problem Description:

When deploying to a VPC where the storage-clients' resolver-setup cannot resolve the Gluster storage-server(s) by name, attempts to mount Gluster shares via systemd will silently fail.

Expected Behavior:

Reboot GlusterFS storage-client and all GlusterFS shares defined in /etc/fstab mount as defined.

Actual Behavior:

Reboot GlusterFS storage-client and all GlusterFS shares defined in /etc/fstab (may) silently fail

(Detailed) Steps to reproduce:

  1. Deploy a GlusterFS storage-cluster
  2. Deploy a GlusterFS storage-client
  3. Add IP-based mount-definition in client's /etc/fstab file
  4. Use mount -a to verify that fstab-defined mount-definition works as expected
  5. Reboot storage-client
  6. Find that fstab-defined mount is missing from list of active mounts and that system logs (journalctl -b 0) indicated that the mount-action successfully occurred .

(Optional) Fix recommendation:

Verified option:

  1. Ensure that all members of the storage-cluster are resolveable
  2. If DNS doesn't provide adequate resolver-response, add storage servers' self-advertised hostnames to storage client's /etc/hosts table
  3. Reboot and verify the defined GlusterFS mounts are present

Alternate (Unverified) option:

  1. Remove GlusterFS definitions from storage client's /etc/fstab file
  2. Create a systemd mount service-definition for each GlusterFS share to mount to the client
  3. Verify correctness of service-definition by executing systemctl start <MOUNT_PATH>.mount` and ensure that targeted mount-point is active

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.