问题导读
1.openstack对容灾目前发展如何?
2.openstack在哪几方面做了相应的措施?
3.openstack swift如何实现复制虚机映像?
openstack比较火爆,我们都在学习和使用。当我们真正使用的时候,openstack的容灾,是企业需要考虑的问题。那么该如何做好容灾。
容灾是一个系统工程,Openstack还没有一个对容灾的整体考虑,但是Openstack在Cinder,Glance,Swift几大数据存储模块都提供容灾数据保护功能: 1、Cinder支持存储复制 从OpenStack Juno版本开始,Cinder首次支持卷复制。云管理员可以定义存储策略来支持复制功能,包括failover、failback。利用新的API,在后端存储的支持下,可以创建具有复制属性的卷。 为支持应用数据,主要是一个应用使用多个LUN的场景,为保证数据复制的切换和回切在这多个LUN上同时进行,Juno初步支持复制的一致性组。 另外容灾重要的是在应用和文件系统层面保证数据的一致性。与AWS的 ec2-consistent-snapshot 特性类似,在进行快照前,刷缓存并冻结文件系统或者数据库,保证应用和文件系统的一致。例如对KVM虚机,在进行快照前通过QEMU客户端插件冻结文件系统或应用。下一个版本将支持QEMU客户端插件,以实现自动的每天或每周的虚机备份,并且支持应用一致性。 2、Glance的多地域支持 从OpenStack Havana版本以后,Glance引进了Multiple Image Locations机制。Glance注册了多个Image地址,从而Nova可以从多个路径/地点获取Image数据。同时从Icehouse版本后,增加了新的映像选择策略,允许Glance映像服务选择最优的后端存储空间。 3、Swift的灾备 Juno版本一个比较大的特性是Openstack对象存储,通过Openstack Swift的全局分布式集群(Globally Distributed Cluster)特性来复制虚机映像。Geographically distributed Swift部署能够进行数据的容灾保护和应用的分布式部署,没有单点故障,允许用户对于跨不同的后端空间和跨地域的数据复制和访问有更大的控制权。主要是满足如下需求: - 异地容灾: 主中心灾难后,在另外的数据中心有所有数据的副本 - 双活/多站点共享: 数据在一个数据中心保存,在另外一个数据中心可以快速访问到
Geographically distributed Swift部署对网络提出了要求,所有节点必须对其他节点可见,即使节点跨Region部署。通常要求: – 私有连接: site和site之间通过MPLS或者私有网络,或者 – VPN连接: 利用ISP的VPN链路
为提高性能,Swift提供Write Affinity和Read Affinity特性,优先本地写或者优先本地读。
4、Openstack管理平台的灾备 Openstack的容灾还要包括对与负载和资源的元数据的保护,比如元数据的快照,或者元数据的连续复制。如何没有这些元数据及及时更新的数据,灾备端可能无法完全恢复业务。 需要保护的元数据包括: Nova: VM配置参数和SSH密钥 Keystone: 租户及其识别 Neutron: 虚机间的虚拟网络 Cinder: 卷类型及卷对 Glance: 注册和映像元数据 提供保证复制数据和元数据一致性的能力 通常元数据没有业务数据变化频繁,可以使用不同的数据复制手段来分别处理。
更多资料:
高可用是容灾的一种方式:
比如:
openstack HA详细设计文档
还可以了解下aws的容灾,openstack是模仿aws,所以了解下aws,对于openstack起着指导作用
云环境下的容灾
|