Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Part moved to "Virtual machines on SEAPATH" page

Configuration

The inventory may define these hosts:

  • observers: Set of hosts to observe the cluster (only the first is considering)

...

  • Hypervisors: Set of machines to hosts VMs.
Info

Remember that the cluster must contains an odd number of machines. For example three hypervisors or one observer and two hypervisors.

Node redundancy

All nodes in the cluster have an access to a shared storage via ceph (see Shared storage section). With it, the cluster is in N to N redundancy mode.

  • Corosync will provides messaging and membership services.
  • Pacemaker will manage the cluster (synchronize resources between each node).

Image Added

More details on pacemaker here and corosync here.

...

Management tool

The vm_manager project is an high-level interface of pacemaker and ceph to manage the VM like a resource. He is installed during the installation step and provides the vm-mgr command.

Sub-command

All sub-commands has -n, --name required option to specify which resource should be used.

  • add_colocation: Adds a colocation constraints between resources

  • clone: Creates a copy of the VM

  • create: Generates a new resource from a VM

  • create_snapshot: Creates a snapshot of a resource

  • disable: Stops and removes the resource on the cluster

  • enable: Adds and starts the resource on the cluster

  • get_metadata: Gets a metadata of a resource

  • list: Lists all resources

  • list_metadata: Lists all keys of a resource

  • list_snapshots: Lists all created snapshots

  • purge: Deletes all snapshots of a resource

  • remove: Removes the resource

  • remove_snapshot: Removes a snapshot of a resource

  • rollback: Rollbacks to a snapshot for a resource

  • set_metadata: Sets a metadata of a resource

  • start: Start a resource

  • status: Gets the status of a resource

  • stop: Stops a resource

Resources status

  • Undefined:
  • Disabled:
  • Failed:
  • Started:
  • Starting:
  • Stopping:
  • Stopped:

Manage VM

  • Add VM in the cluster:

    Code Block
    languagebash
    vm-mgr create --name NAME --xml /path/to/configuration.xml --image /path/to/disk.qcow2 --disable --force --enable-live-migration --migration-user virtu --migration-to-timeout 180
    Check the execution of the resource:
    Code Block
    languagebash
    crm status

    Get the status of the resource:

    Code Block
    languagebash
    vm-mgr status --name NAME

    Delete VM in the cluster:

    Code Block
    languagebash
    m-mgr remove --name NAME

...

Replace a dead node

The ansible/playbooks/replace_machine_remove_machine_from_cluster.yaml playbook can remove a node in the cluster. For this, the machine_to_remove should be set to the hostname to remove.
The below command should be launch in the ansible project.

Code Block
languagebash
cqfd run ansible-playbook -i /path/to/inventory.yaml -e machine_to_remove=HOSTNAME playbooks/replace_machine_remove_machine_from_cluster.yaml

...