首页 > 代码库 > Windows Azure Storage (17) Azure Storage读取访问地域冗余(Read Access – Geo Redundant Storage, RA-GRS)
Windows Azure Storage (17) Azure Storage读取访问地域冗余(Read Access – Geo Redundant Storage, RA-GRS)
《Windows Azure Platform 系列文章目录》
细心的用户会发现,微软在国外和国内的数据中心建设都是成对的,比如香港数据中心(Asia East)和新加坡的数据中心(South East Asia)。这是因为微软充分考虑了异地冗余的能力。在两对数据中心之间,比如香港和新加坡,会有专线连接,这个专线是内网数据中心之前数据同步专用的。
一般情况下,主节点和备用节点的对应关系如下:
Primary | Secondary |
North Central US | South Central US |
South Central US | North Central US |
East US | West US |
West US | East US |
North Europe | West Europe |
West Europe | North Europe |
South East Asia | East Asia |
East Asia | South East Asia
|
现在,微软提供了读取访问地域冗余 (Read Access - Geo Redundant Storage, RA-GRS)。
简单的来说,如果用户在香港数据中心(主要位置)创建了存储账号,并且开启了RA-GRS,事务就会异步的复制到新加坡数据中心(辅助位置)。RA-GRS提供了对复制到新加坡数据中心(辅助位置)的"只读"访问权限,实现对存储账户的更高的读取可用性。
这样用户可以指定对于Azure Storage的访问时指向香港数据中心(主要位置),还是新加坡数据中心(辅助位置),提高读取的高可用性。
一般情况下,可以通过myaccount.<service>.core.windows.net来访问主要位置,通过myaccount-secondary.<service>.core.windows.net来访问辅助位置的
举个例子,假设我在香港数据中心(主要位置)创建了Azure Storage,Storage Name为leivm,并且开启了读取访问地域冗余 (Read Access – Geo Redundant Storage, RA-GRS)。
1.我就可以通过https://leivm.blob.core.windows.net/,访问香港数据中心(主要位置)的数据
2.然后还可以通过https://leivm-secondary.blob.core.windows.net/,访问次要位置的Azure Storage Account。
接下来开始本章内容。
1.首先我们新建存储账号,命名为leireadaccess,Affinity Group选择香港数据中心。请注意replication选择Read-Access Geo-Redundant。如下图:
这样香港数据中心为主要位置,新加坡数据中心为辅助位置。
2.创建完毕后,我们创建container,名称设置为photos,并且设置属性为public blob
3.创建完毕后,我们将本地的一张图片msft.png,上传至photos。
则这个png图片的url访问地址是http://leireadaccess.blob.core.windows.net/photos/msft.png,这样就可以显示访问保存在香港数据中心这张图片。
稍等片刻后,这张图片会通过香港数据中心和新加坡数据中心之间的专线,异步的保存至新加坡的数据中心。
我们可以通过http://leireadaccess-secondary.blob.core.windows.net/photos/msft.png,来访问位于新加坡数据中心的这张图片的副本。如下图:
这样,如果香港数据中心因为异常情况导致数据不可访问,我们可以通过访问辅助数据中心的方法,来访问云端的数据。这样可以实现对存储账户的更高的读取可用性。
从本人的经验和微软的官方文档来看,两个数据中心之间的RPO的时间最多为15分钟。
有兴趣的读者可以参考文档
http://blogs.msdn.com/b/windowsazurestorage/archive/2013/12/04/introducing-read-access-geo-replicated-storage-ra-grs-for-windows-azure-storage.aspx