我有复制的 Gluster 存储,供自动扩展服务器使用。自动扩展和存储都分配在两个可用区中。
格鲁斯特(Gluster):
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
我使用循环 DNS 作为 Gluster 入口点,因此 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)?
答案1
挂载到同一区域中的服务器将节省初始 gluster 会话设置流量,避免穿越付费链接。但是,它不会强制执行任何操作数据流量到本地可用区。像您这样的 Gluster 分布式复制卷认为所有砖块都是相等的。这意味着它可以将文件放在不可预测的位置;两个副本完全有可能位于同一个可用区,此时来自另一个可用区的所有对该文件的访问都将通过计量链接。由于两个副本都在另一个可用区,因此根据 Gluster 处理复制的方式,您将被收取两倍的网络传输费用。
Gluster 唯一具有站点意识的地方是他们的地理复制模块。遗憾的是它是异步的。