The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

MHA::AWS - A support script for "MySQL Master HA" running on AWS

SYNOPSIS

    $ mhaws [subcommand] --interface_id=ENI-id [... args passed by MHA]
    $ mhaws [subcommand] --route_table_id=[RouteTable-id] --vip=[master VIP] [... args passed by MHA]

    required arguments:
      1. failover method is ENI attach/detach
        --interface_id=[ENI-id for master VIP]

      2. failover method is RouteTable change destination
        --route_table_id=[RouteTable-id]
        --vip=[master VIP]

    subcommand:
      master_ip_failover
      master_ip_online_change
      shutdown


    /etc/masterha_default.cnf

    [server default]
    master_ip_failover_script=mhaws master_ip_failover --interface_id=eni-xxxxxxxx
    master_ip_online_change_script=mhaws master_ip_online_change --interface_id=eni-xxxxxxxx
    shutdown_script=mhaws shutdown --interface_id=eni-xxxxxxxx

DESCRIPTION

MHA::AWS is a support script for "MySQL Master HA" which running on Amazon Web Service.

REQUIREMENTS

  • EC2 instance's "Name" tags must be resolved as DNS name in internal.

  • root user must be allowed to ssh login between each MySQL instances.

  • aws-cli is installed and available.

Failover method = ENI attach/detach

  • One ENI (Elastic Network Interface) must be attached to the MySQL master instance. Clients accesses for the ENI's IP address.

Failover method = VPC route table rewriting

  • Prepare a VIP address in your VPC.

  • All MySQL hosts(master, slaves) can handle the VIP.

  • Clients accesses for the VIP address.

FAILOVER FLOW

1 MHA detect master failure.
2 "mhaws master_ip_failover --command stop", ENI will be detached from the old master instance.
  • (ENI) ENI will be detached from the old master instance.

  • (Route table) Route to VIP will be removed from VPC route table.

3 "mhaws shutdown --command (stopssh|stop)", Old master mysqld process will be killed (if ssh connection is available). Or old master instance will be stopped via AWS API (if ssh connection is NOT available).
4 MHA will elect the new master and set up replication.
5 "mhaws master_ip_failver --command start", ENI will be attached to the new master instance.
  • (ENI) ENI will be attached to the new master instance.

  • (Route table) Route to VIP will be set to new master instance.

SEE ALSO

AWS::CLIWrapper, https://code.google.com/p/mysql-master-ha/

LICENSE

Copyright (C) FUJIWARA Shunichiro.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

FUJIWARA Shunichiro <fujiwara.shunichiro@gmail.com>