我有自动缩放服务器使用的复制 Gluster 存储。Auto Scaling 和 Storage 都分配在两个可用区中。
集群:
Number of Bricks: 4 x 2 = 8
Transport-type: tcp
Bricks:
Brick1: gluster01:/storage/1a # Zone A
Brick2: gluster02:/storage/1b # Zone B
Brick3: gluster03:/storage/2a # Zone A
Brick4: gluster04:/storage/2b # Zone B
Brick5: gluster01:/storage/3a # Zone A
Brick6: gluster02:/storage/3b # Zone B
Brick7: gluster03:/storage/4a # Zone A
Brick8: gluster04:/storage/4b # Zone B
我为 Gluster 入口点使用了循环 DNS,因此 DNS 名称解析为始终以不同顺序返回的所有存储服务器地址:
# host storage.domain.com
storage.domain.com has address xx.xx.xx.x1
storage.domain.com has address xx.xx.xx.x2
storage.domain.com has address xx.xx.xx.x3
storage.domain.com has address xx.xx.xx.x4
存储安装有本地 Gluster 客户端:
# grep storage /etc/fstab
storage.domain.com:/storage /storage glusterfs defaults,log-level=WARNING,log-file=/var/log/gluster.log 0 0
我听说 Gluster 可能会与第一个服务器 IP 一起安装,然后它将与其余服务器一起获取其配置。就个人而言,我从未测试过单个服务器安装设置,我不知道 Gluster 如何处理这个问题。
在 EC2 上,单个可用区之间的流量是免费的,而不同可用区之间的流量则不是。当区域A中的客户端写入存储并返回区域B中存储的IP时,数据传输将花费我两倍的费用:客户端(区域A)->存储服务器(区域B)->复制到存储服务器(区域A) ).
问题:将存储服务器安装在同一区域是否更好,以便数据传输费用仅适用于复制(A -> A -> B)?
对同一区域中的服务器进行安装将节省初始 gluster 会话设置流量,避免遍历付费链接。但是,它不会执行任何强制数据流量到本地 AZ 的操作。像您这样的 Gluster 分布式复制卷认为所有砖块都是平等的。这意味着它可以将文件放在不可预知的地方;这两个副本完全有可能位于同一个 AZ 中,此时从另一个 AZ 对该文件的所有访问都将遍历计量链接。由于两个副本都在另一个 AZ 中,由于 Gluster 处理复制的方式,您将支付两倍的网络传输费用。
Gluster 唯一具有站点意识的地方是在他们的Geo-Replication模块中。遗憾的是这是异步的。