JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 5
  • Score
    100M100P100Q31708F

DRBD + LVM + LXC Raid10 Switcher

Package Exports

  • haswitch

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (haswitch) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

haswitch is a Linux high availability tool to manage VM synchronization in a RAID 10 environment (machine-to-machine). Its primary goal is to switch LXC virtual machines onto LVM + DRBD. Its secondary goal is to manage the network coming with virtual machines then it manages iptables and bridges. haswitch also supports OVH's failover API which allow to switch failover ip during the migration.

Install

sudo npm install -g haswitch

Operations

Show configuration

haswitch show

Start all resources

haswitch start

Stop ha0 resource

haswitch start ha0

Start VM vm1ha0 on ha0 resource

haswitch start ha0 vm1ha0

Stop VM vm1ha0 on ha0 without execution

haswitch -e stop ha0 vm1ha0

LXC

Install LXC

sudo apt-get install lxc lxc-templates wget bridge-utils

Prepare LXC

Disable the default bridge “lxcbr0“, got created as part of LXC installation.

sudo nano /etc/default/lxc-net

Set “USE_LXC_BRIDGE” to “false“.

USE_LXC_BRIDGE="false"

DRBD

I suggest you to follow the guide from Zarafa:

The DRBD resource name must have the same name as a haswitch resource.

ISP Integration

OVH

Edit your /etc/haswitch.json and add:

ovh: {
  "me": "nsXXX.ovh.net",
  "endpoint": "ovh-eu",
  "appKey": "APP_KEY",
  "appSecret": "APP_SECRET",
}

Customer Key will come after running the credential checker.

haswitch ovh auth

A validation URL will be given You will have to follow it in order to activate the application. Once you have done that you will have the customer key:

ovh: {
  "me": "nsXXX.ovh.net",
  "endpoint": "ovh-eu",
  "appKey": "APP_KEY",
  "appSecret": "APP_SECRET",
  "consumerKey": "Given consumerKey",
}

Now you have to activate OVH failover on the LXC container

{
  "ovh": true,
  "vm": "vm1ha0",
  "public": {
    "internal": "192.168.0.6",
    "external": "1.2.3.2",
    "internal6": "fd67:d076:089a:8da3::",
    "external6": "2003:dead:beef:f80c::",
  }
}

Once you have configured you can check the OVH's failover status:

haswitch ovh check

To redirect all failover IP in every resources on Me (see ovh.me):

haswitch ovh failover

Or for a specific resource:

haswitch ovh failover ha0