搭建双机房架构如下(资源有限,最小架构测试):

验证
场景一:双机房同步验证
场景说明:
APP连接B机房的tracker2进行文件上传,文件是否会同步到A机房的 storage1中。
目的:
如果能同步,则在双机房容灾演练操作中,无需进行提权和降权的操作
测试步骤:
步骤一:判断单独在A机房上传的文件,是否可以在B机房配置A机房的tracker1之后,自动同步到B机房。
单独搭建A机房和B机房,分开为两个独立的集群,即B机房的storage2 不配置 A机房的tracker1的地址;
在A机房上传文件。


停掉B机房的storage2,并修改storage2的配置,添加tracker1的地址,修改完成后启动storage2。
观察storage中的binlog日志文件,发现A机房中上传的文件无法同步到B机房。
此时在B机房中上传文件
观察两边机房的binlog日志文件,发现A机房中的binlog日志文件中存在同步操作的记录(即表示B机房上传的文件同步到了A机房),而在B机房中的binlog日志不存在同步操作的记录(即表示A机房中上传的文件无法同步到B机房)
A机房中的binlog日志文件内容:

B机房中的binlog日志文件内容:

将A机房中的storage1添加tracker2的地址,并重启storage1。
观察B机房中binlog日志文件内容的变化,发现B机房中的binlog日志文件中,发现了同步操作的记录

测试结论:
需要集群中的文件能够相互同步,则storage配置的tracker地址,必须要配全集群中所有的tracker,否则将会出现某些storage上传的文件无法同步到组内其他storage上,架构需要修改为如下图所示(即A机房中的storage也需要添加B机房中所有的tracker地址):

场景二:提权与降权操作
场景说明:
对双机房中的storage进行提权和降权操作,双机房中tracker的配置项store_server
需要配置为2
。
目的:
验证对storage进行提权和降权,如何才能使权限生效?
操作步骤:
前提:
storage的配置想
upload_priority
#func:上传优先级。只有tracker.conf中store_server=2时,才有效。
#valu:值越小,优先级越高。默认为10.
upload_priority=10
tracker 的配置项:
which storage server to upload file
0: round robin (default)
1: the first server order by ip address
2: the first server order by priority (the minimal)
store_server=0
#同组推送方式0.轮询方式,1.根据ip地址进行排序选择第一个服务器,2.根据优先级进行排序(优先级由storeServer的配置文件中upload_priority属性设置)
前提条件:确保tracker是按照storage的优先级进行选择的,主要检查tracker中的配置项store_server
的值是否为 2
配置说明:
which storage server to upload file
0: round robin (default)
1: the first server order by ip address
2: the first server order by priority (the minimal)
store_server=0
#同组推送方式0.轮询方式,1.根据ip地址进行排序选择第一个服务器,2.根据优先级进行排序(优先级由storeServer的配置文件中upload_priority属性设置)

以下的操作步骤,都是在上图双机房架构下进行的:
storage优先级配置项说明:
upload_priority
#func:上传优先级。只有tracker.conf中store_server=2时,才有效。
#valu:值越小,优先级越高。默认为10.
upload_priority=10
对B机房进行降权操作步骤:
设置B机房中storage2的配置项
upload_priority
的值 小于 A机房中storage1该项配置的值;(测试中A机房中storage1配置的值为10 , B机房中配置的值为 15)重启B机房中storage2(使用stop 和 start 命令,确保真正进行了重启操作,否则会导致对storage2修改的配置不生效)
在集群中进行文件上传操作,发现文件始终会上传到A机房中的storage1上,说明B机房降权成功。
对B机房进行提权操作步骤:
设置B机房中storage2的配置项
upload_priority
的值 大于 A机房中storage1该项配置的值;(测试中A机房中storage1配置的值为10 , B机房中配置的值为 5)重启B机房中storage2(使用stop 和 start 命令,确保真正进行了重启操作,否则会导致对storage2修改的配置不生效)
在集群中进行文件上传操作,发现文件始终会上传到B机房的storage2上,说明B机房提权成功。
提权降权的过程中遇到的问题:
当双机房中storage的优先级相同时,tracker会根据服务器进行排序,选择第一台服务器进行上传。(因此在使用优先级的同一个机房中一个分组下的多个storage也会出现相同的这种问题)
优先级值越小,表示优先级越高。




