数据库复制(可选)
CloudStack支持MySQL节点间的数据库复制。这个通过标准的MySQL复制功能来实现。你这样做可能希望防止MySQL服务器或者存储损坏。MySQL复制使用master/slave的模型。master节点是直接为管理服务器所使用。slave节点为备用,接收来自master节点的所有写操作,并将它应用于本地冗余数据库。以下是实施数据库复制的步骤。
注解
创建复制并不等同于备份策略,你需要另外开发一个有别于复制的MySQL数据的备份机制。
- 确保这是一个全新安装且没有数据的master数据库节点。
- 编辑master数据库的my.cnf,在[mysqld]的datadir下增加如下部分。
log_bin=mysql-bin
server_id=1
考虑到其他的服务器,服务器id必须是唯一的。推荐的方式是将master的ID设置为1,后续的每个slave节点序号大于1,使得所有服务器编号如:1,2,3等。
3. 重启MySQL服务。如果是RHEL/CentOS系统,命令为:
service mysqld restart
如果是Debian/Ubuntu系统,命令为:
service mysql restart
- 在master上创建一个用于复制的账户,并赋予权限。我们创建用户"cloud-repl",密码为"password"。假设master和slave都运行在172.16.1.0/24网段。
mysql -u root
mysql> create user 'cloud-repl'@'172.16.1.%' identified by 'password';
mysql> grant replication slave on *.* TO 'cloud-repl'@'172.16.1.%';
mysql> flush privileges;
mysql> flush tables with read lock;
- 离开当前正在运行的MySQL会话。
- 在新的shell中打开第二个MySQL会话。
- 检索当前数据库的位置点。
mysql -u root
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 412 | | |
+------------------+----------+--------------+------------------+
- 注意你数据库实例所返回的文件及位置点。
- 退出该会话。
- 完成master安装。返回到master的第一个会话,取消锁定并退出MySQL。
mysql> unlock tables;
- 安装并配置slave节点。在slave服务器上,运行如下命令。
yum install mysql-server
chkconfig mysqld on
- 编辑my.cnf,在[mysqld]的datadir下增加如下部分。
server_id=2
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
- 重启MySQL。对于RHEL/CentOS系统,使用"mysqld"
service mysqld restart
对于Ubuntu/Debian系统,使用"mysql."
service mysql restart
- 引导slave连接master并进行复制。使用上面步骤中得到数据来替换IP地址,密码,日志文件,以及位置点。
mysql> change master to
-> master_host='172.16.1.217',
-> master_user='cloud-repl',
-> master_password='password',
-> master_log_file='mysql-bin.000001',
-> master_log_pos=412;
- 在slave上启动复制功能。
mysql> start slave;
- 在slave上可能需要开启3306端口,就像之前在master上所做的一样。
这对复制来说不是必须的。但如果没有做,当需要进行数据库切换时,你仍然需要去做。
故障切换
这将为管理服务器提供一个复制的数据库,用于实现手动故障切换。管理员将CloudStack从一个故障MySQL实例切换到另一个。当数据库失效发生时,你应该:
- 停止管理服务器(通过命令:service cloudstack-management stop)
- 将数据库的复本服务器修改为master并重启
- 确保数据库的副本服务器的3306端口开放给管理服务器。
- 更改使得管理服务器使用这个新的数据库。最简单的操作是在管理服务器的/etc/cloudstack/management/db.properties文件中写入新的数据库IP地址。
- 重启管理服务器:
service cloudstack-management start
文章列表
- Apache Pulsar消息队列-附加安装选项
- Apache Pulsar消息队列-配置实例
- Apache Pulsar消息队列-通过流量哨兵整合来宾网络使用情况
- Apache Pulsar消息队列-辅助存储
- Apache Pulsar消息队列-设置区域中VLAN和虚拟机的最大值
- Apache Pulsar消息队列-网络设置
- Apache Pulsar消息队列-管理服务器负载均衡
- Apache Pulsar消息队列-硬件防火墙
- Apache Pulsar消息队列-硬件配置示例
- Apache Pulsar消息队列-数据库复制(可选)
- Apache Pulsar消息队列-拓扑结构要求
- Apache Pulsar消息队列-小规模设置
- Apache Pulsar消息队列-安装Usage服务(可选)
- Apache Pulsar消息队列-存储设置
- Apache Pulsar消息队列-基本和高级网络
- Apache Pulsar消息队列-二层交换
- Apache Pulsar消息队列-VLAN分配示例
- Apache Pulsar消息队列-SSL (可选)
- Apache Pulsar消息队列-Amazon Web Services 接口