【发布时间】:2019-06-10 14:43:09
【问题描述】:
在过去的两年里,我一直在 Google Compute Engine (GCE) 中测试我们软件的性能,总共使用了 1k 个 vCPU 用于工作虚拟机和我们的 MySQL NDB 集群的虚拟机使用。
我已经在模板和实例组的帮助下自动创建了工作虚拟机(运行我们的软件),但是对于 MySQL NDB 集群,我总是有两台固定机器,我偶尔会手动调整它们的大小(即更改 vCPU和 RAM)。
我现在正在尝试为具有不同数量的 vCPU 和 RAM 的 NDB 集群调出可变数量的 VM,并且我想在我的测试套件中自动执行此过程。 主要问题是 NDB 配置需要在配置中修复 HostNames。 要使用 GCE 模板和实例组,我将能够只调出动态命名的实例,例如 ndb-1ffrd, ndb-i8fhh, ...。
举例来说,这是我当前的 ndb 配置(其中之一),涉及固定的 VM ndb1 和 ndb2:
[ndbd]
HostName=ndb1
NodeId=1
NodeGroup=0
[ndbd]
HostName=ndb2
NodeId=2
NodeGroup=0
[ndbd]
HostName=ndb1
NodeId=3
NodeGroup=1
[ndbd]
HostName=ndb2
NodeId=4
NodeGroup=1
我想将固定的虚拟机 ndb1/ndb2 转换为 GCE 实例组,在其中我可以选择启动任意数量的此类实例(通常是 2 或 4 个)进行测试,然后再销毁虚拟机,并且在我的测试期间以自动化方式按需执行此操作。这背后的原因是对不同配置的虚拟机进行可重复的测试。在确定 10 次测试前的确切配置时,在多个测试中手动更改许多参数会导致一场噩梦——这样每个测试都会引用 ndb VM 的特定实例模板。
但是,GCE 实例组成员的名称中有一个随机后缀,并且 NDB 配置需要固定的 HostNames 或 IP。所以我需要:
- 让 GCE 从以确定性方式命名的实例组(例如 ndb1、ndb2、ndb3...)生成实例,以便我可以在我的 ndb 配置中依赖这些名称,或者
- 以某种方式允许任意主机(或具有任意后缀的主机)作为 ndb 节点进行连接,但仍确保同一主机不会多次添加到同一 NodeGroup 中——在上述示例配置中手动确保了这一点.
有什么方法可以实现我想要做的事情吗?
【问题讨论】:
标签: google-compute-engine mysql-cluster