Twitter开源MySQL集群管理框架Mysos

Mysos是一个用于运行MySQL实例的Apache Mesos框架。它极大地简化了MySQL集群的管理,具备高可靠性、高可用性及高可扩展性等特色。有关其具体功能,能够查看InfoQ前期的报道node

Mysos须要Python 2.7及Mesos Python绑定。其中,后者包含两个Python包。mesos.interface位于PyPI上,能够自动安装。但mesos.native是平台依赖的,用户须要在本身的机器上构建(相关命令),或者下载相应平台的编译版本(Mesosphere提供了部分Linux平台的egg文件)。 mysql

Mysos主要包含以下两个组件: git

  • mysos_scheduler:用于链接Mesos主节点及管理MySQL集群;
  • mysos_executor:用于启动Mesos从节点(基于mysos_scheduler请求)执行MySQL任务。

这两个组件能够单独构建和部署,也能够使用PEX将两者及其依赖包打包成一个可执行文件(具体过程参见这里)。 github

Mysos提供了一个REST API,用于在Mesos上建立和管理MySQL集群。下面是集群建立的示例代码: sql

curl -X POST 192.168.33.7/clusters/test_cluster3 --form "cluster_user=mysos" \ --form "num_nodes=2" --
form "backup_id=foo/bar:201503122000" \ --form 'size={"mem": "512mb", "disk": "3gb", "cpus": 1.0}'

其中,集群名称为test_cluster3,cluster_user指定了对集群中全部MySQL实例都拥有管理员权限的用户,num_nodes指定了集群节点数,backup_id指定了MySQL实例启动时须要从哪一个MySQL备份恢复,size指定了分配给实例的资源。该命令会返回用于访问MySQL实例的密码以及集群URL。 apache

Mysos是Twitter和Mesosphere合做的产物。为了该项目的长远发展,在将其开源的同时,Twitter也向Apahce基金会提交了孵化提案,但愿以这种方式确保该项目遵循Apache 2.0许可协议,促进Mysos社区的发展壮大。 框架

相关文章
相关标签/搜索