OpenStack 2014.1(Icehouse) 更新说明
1.综合升级说明
Windows安装包应使用PBR 0.8版本,以避免发生bug1294246
log-config选项被重命名为log-config-append, 该选项现在用于增加任意指定的配置,而不是像现在这样覆盖其他选项。(https://bugs.launchpad.net/oslo/+bug/1169328, https://bugs.launchpad.net/oslo/+bug/1238349)
为了最大限度减少停机时间,在openstack compute升级之前,必须先升级OpenStack Networking并且重启neutron-metadata-agent,Compute必须验证已经被neutron-metadata-agent服务通过的X-Tenant-ID
2.OpenStack对象存储 (Swift)
主要新特性
“可见的性能“:一个Swift代理(proxy)服务现在默认支持(可以被关闭)响应/info请求。返回的结果包含集群的信息和集群供客户端使用的功能。这就意味着一个客户端能够和多个Swift集群通讯并且使用每一个集群包含的功能。
“使用通用的方式来持久化系统metadata”:Swift现在支持账户(accounts)和容器(containers)使用系统的metadata。系统的metadata提供存储内部定制的metadata,metadata关联的Swift资源在一个安全可靠的形式,而并不需要真正的通过核心的Swift服务器探测metadata。新的gatekeeper中间件阻止系统metadata由于请求或者客户端设置而泄露。
账户级别的访问控制列表(ACLs)和访问控制列表(ACLs)v2版本形式:现在,账户拥有一个用于表明已授权的(HTTP请求)的头来表明访问控制列表或者其他基于账户权限访问的控制。(HTTP请求)的头的内容是一个JSON字典,被权限系统使用。参考的实现方式在TempAuth中给出。请参考详细文档:http://swift.openstack.org/overview_auth.html
ssync形式的对象备份 (rsync的替代方式): 一个Swift存储节点可以配置成使用Swift原生的备份传输来替代rsync。
读取失败后的自动重试: 如果在一个对象存储节点上读取某一资源超时,在另一个节点重试读取。这意味着在驱动层失败时客户端请求对终端用户是不可见的。
即将到来的存储策略
已知问题
无
升级说明
获取更详细的更新日志,请到 https://github.com/openstack/swift/blob/master/CHANGELOG ,在更新日志中了解任何可能影响升级的配置变化。
像以往一样,Swift能够零当机时间升级。
3.OpenStack计算服务(Nova)
主要新功能
升级支持
现在支持限定的在线升级,这使得操作者能够先升级控制节点,随后升级单个计算节点而不需要停止整个云系统
系统驱动程序
Hyper-V
添加RDP控制台连接支持
Libvirt(KVM)
Libvirt驱动现在支持修改内核参数启动虚拟机. 如果镜像的元数据中保存了以os_command_line作为key值的话,就将这个值作为内核参数,否则就使用默认的内核参数.
libvirt的驱动程序现在支持用Virtio-scsi代替virtio-blk来为虚拟机提供块设备的访问,Virtio SCSI是一个被设计用来代替VirtIO Block的半虚拟化的SCSI控制器, 并且致力于提供更好的性能呢和更好的扩展性作为目标
Libvirt驱动程序支持添加一个Virtio RNG设备到虚拟机实例来提供增长的随机数. Virtio RNG是一个半虚拟化的随机数生成器. 它允许计算节点提供随机数给节点上的虚拟机,为了填补他们的随机数池. 原来默认的随机数生成设备是主机上的/dev/random. 现在我们能够将RNG硬件设备挂载到主机上了. 想使用这个功能,我们可以在用于创建虚拟机的镜像中配置hw_rng property项
Librirt驱动现在允许配置虚拟机使用非默认的视频驱动. 这就允许了视频驱动模式的不同规范. 不同大小的视频内存和不同个数的头部. 通过镜像元数据中的hw_video_model,hw_video_vram和hw_video_head字段来设置这些值. 目前支持的视频驱动模式包括:vga, cirrus, vmvga, xen,qxl
Libvirt驱动添加了加密狗的支持. 加密狗设备采用i6300esb. 可以通过将镜像的元数据中的hw_watchdog_action属性或者配额的额外属性设置为'enable'来启用这项特性. Supported----------------
使用Libvirt驱动创建的虚拟机现在禁用了High Precision Event Time(HPET). 在启用这个选项的windows虚拟机中,负载较重时会发生始终偏移现象.
Libvirt驱动现在支持虚拟机创建时等待Neutron事件以提高可靠性. 这需要一个相对新版本的Neutron能共发送这样的事件,也需要避免虚拟机等待网络就绪和管道之间的竞争
CPU增强了平台功能,修复了在libvirt驱动程序中调用baselineCPU获取完整功能列表的一个bug,这个bug会暴露一些CPU功能集,比如AES-NI给外人
VMware
VMware计算驱动现在支持调用虚拟机诊断API. 使用"nova diagnostics INSTANCE"命令开始诊断, "INSTANCE"代表一个实例名或者实例的UUID
VMware计算驱动现在支持从一个ISO镜像创建实例
VMware计算驱动现在支持镜像的缓存
XenServer
所有XenServer的具体配置项已更改名称,并且移动到nova.conf中的[xenserver]部分, 然而旧的名称仍然可以用在这个版本中,但这样做是不推荐的,它很可能会被删除在一下版本中
添加对PCI passthrough的初步支持
采用XenServer CI维护B组状态
改进了对临时磁盘的支持(包括对多个临时磁盘的迁移和调整大小)
支持vcpu_pin_set, essential when you pin CPU resources to Dom0
众多的性能和稳定性改善
API
在openstack计算服务中,V3版本API不再支持OS-DCF:diskConfigAPI属性.
计算API目前支持XML和JSON两种格式,XML格式不推荐使用,它将会在以后的版本中被移除
API实现了永久删除已退役计算节点的功能. 在以前,尽管已经停用了计算服务并且重新分配了系统,计算节点仍会被列出来,这项功能由ExtendedServicesDeleteAPI扩展实现
将V3 API中的admin_actions插件按照逻辑分解为多个插件,这样就使得管理员可以选择性的启用当前插件中的某些功能
当OpenStack网络服务(Neutron)进行认证时,计算服务使用tenant_id替代了tenant_name. 这项改进支持了V3版本的认证服务中的tenant_name不唯一的特性.
计算API将虚拟化管理程序的IP地址暴露出来,允许管理员执行nova kypervisor-show命令时获取该属性
调度(Scheduler)
调度器现在包含了一个缓存调度器驱动的原生实现. 缓存调度器利用现有的工具申请调度过滤器和权重,同时也缓存了当前可用主机的列表. 当用户请求缓存调度器时,调度器将尝试在缓存的主机列表中选取主机部署虚拟机,以提高调度性能.
增加了一个新的调度过滤器,AggregateimagePropertieslsolation. 新的过滤器将可以根据命名空间中镜像的属性与主机聚集的属性来调度部署虚拟机. 不属于任何主机聚集的主机仍可以进行调度部署. 新的配置文件选项为: aggregate_image_properties_isolation_namespace和aggregate_image_properties_isolation_separator
OpenStack计算服务的权重计算标准化:
https://review.openstack.org/#/c/27160/ 权重计算标准化了,所以不需要人为的提高乘数.权重计算器为一个节点所设定的最大权重是1.0,最小权重是0.0.
现在调度器支持服务器组. anti-affinity和affinity过滤器是被支持的. 即部署的服务器将根据预定义的策略来进行调度.
一个新的支持调度利用的框架被添加(bp:https://blueprints.launchpad.net/nova/+spec/utilization-aware-scheduling). 同时添加了一个CPU监测来监视运行时的CPU利用率和使用更多的智能调度,还有一个新的调度指标权重加入到支持. 为了使用这个框架,监测和权重, nova配置文件应该更改,除非它默认被禁用
其他特性
密钥对的创建和删除都会产生通知
当一个主机可用,不可用,开机,关机,重启,进入维护模式,离开维护模式都会产生通知
当收到一个服务关闭请求时,计算服务能够优雅的退出通过禁用新的处理请求,但是在服务退出前允许正在处理的请求处理完毕
计算服务可以根据running_deleted_instance_action配置项的值来确定在先前被删除了的虚拟机再次启动时应该执行什么操作. 添加了一个新值shutdown, 管理员可以使用这个值使实例保持在这个状态可见,用来诊断那些还在发布中的运行资源 (Using this new value allows administrators to optionally keep instances found in this state for diagnostics while still releasing the runtime resources)
计算服务默认不再启用文件注入. 推荐的替代方案是在虚拟机启动时采用ConfigDrive和元数据服务器设备. 可以通过修改配置文件中的inject_key和inject_partition键的值并重启服务来启用文件注入. 文件注入机制在将来的版本中可能被删除
为了保证配置文件中的所有配置组可以采用描述性的命名,以使/etc/nova/nova.conf保持预期的格式, 做了相关的修改. 一些用于驱动的特定标志,包括用于Libvirt驱动的标志, 移到了独立的配置组中
已知问题
计算服务具备使用其他组件新版本API的特性,但是在Icehouse版本中只有一下API版本是经过测试的:
Keystone v2
Cinder v1
Glance v1
4.OpenStack镜像服务(Glance)
关键新特性
添加Vmware Datastore作为存储后端(https://blueprints.launchpad.net/glance/+spec/vmware-datastore-storage-backend)
添加镜像位置选择策略(https://blueprints.launchpad.net/glance/+spec/image-location-selection-strategy)
为镜像添加了新的字段"virtual_size"(https://blueprints.launchpad.net/glance/+spec/split-image-size)
API消息的本地化(http://docs.openstack.org/developer/glance/glanceapi.html#api-message-localization)
提高了计算的存储配额. 已经删除了的镜像不计入总数(https://bugs.launchpad.net/glance/+bug/1261738)
Glance开始使用基于0的位置索引,以负荷JSON-pointer,参见RFC6901(https://bugs.launchpad.net/glance/+bug/1282437)
已知问题
无
升级说明
Glance使用oslo.messaging替代了原来的通知代码,推荐使用 `notification_driver` + `transport_url`的配置组合。以前的配置选项 'notifier_strategy'已经被废弃了,但仍然可以使用。
5.Openstack操作界面(Horizon)
关键特性
语言支持
由于I18nTeam的努力, Horizon现在可以支持Hindi, German 和Serbian语言。 对于Australian English, British English, Dutch, French, Japanese, Korean, Polish, Portuguese, Simplified Chinese, Traditional Chinese, Spanish 和Russian也进行了更新
Nova
在线迁移支持
HyperV控制台支持
硬盘配置选项支持
对于aggregates和availability zones支持的改进
支持轻松的设置配额的额外属性
Cinder
Cinder视图的基于角色访问
v2 API支持
扩展的卷支持
Neutron
支持路由规则--显示neutron返回的路由规则
Swift
支持公共容器的创建和链接
支持伪目录的显式创建
Heat
更新现有stack的能力
模板校验
支持添加环境文件
Ceilometer
管理员可以按项目查看每天的服务使用情况
用户体验增强
扩展性更强的导航.
主面板和导航面板已经从标签导航更新为可折叠的,仪表盘和面板组的导航可展开和折叠. 这项改变支持添加更多的仪表盘和在仪表盘呢中添加更多项目
页面引导
Horizon现在在需要多个相互依赖步骤完成的过程中添加了向导. 现在这项特性在创建网络的操作中应用了
表格行内编辑
表格现在支持在表格内编辑,这就不需要打来更多的独立表单. 这项特性的第一个例子是管理员>>项目面板
自主密码更改
由于认证API v3(keystone)版本的增强,用户可以更改自己的密码不需要通过管理员. 这个功能以前只能用v2.0的认证API.
服务器端的表格过滤
表格现在随用户选择可以容易的连接到底层的API调用,而不仅仅是在页面内搜索
框架(Framework)
javascript
为了提供更好的用户体验,Horizon采用了AngularJS作为javaScript的主框架. 访问Horizon需要浏览器支持javaScript. Juno版本将有更多特性.
在Horizon中增加可重用的图标组件
集成Jasmine测试库
完整的Django1.6支持
插件式架构
Horizon现在拥有动态加载/卸载操作界面,面板组和面板的特性. 只需在启用目录添加一个文件, 加载到Horizon中的项目是可修改的,不需要修改Django配置文件
集成测试框架
Horizon现在支持在一个运行的devstack系统中运行集成测试. 虽然只是一个有限的测试套件,但是它是一个很大的进步
已知问题
如果在认证API V3版本中使用多域支持,用户级将无法管理除默认域之外的其它域内的资源.
升级说明
用户浏览需要支持JavaScript
"can_set_password" 选项的默认值是False. 这意味着除非将其设置为True,否则将无法再创建虚拟机时设定管理员密码,并不是所有的虚拟化管理程序都支持这一特性,这就会使用户迷惑,另外一个更安全的设置/获取密码的方式正在审查中
"can_set_mountpoint" 选项默认为False,如果希望添加卷的挂载点选项的话,需要将其设为True. 当前这有Xen虚拟化管理程序支持这一特性
6.OpenStack身份认证(keystone)
主要新特性
新V3 API特性
- /v3/OS-FEDERATION/ allows Keystone to consume federated authentication viaShibboleth for multiple Identity Providers, and mapping federated attributes into OpenStack group-based role assignments (see documentation
- POST /v3/users/{user_id}/password 允许用户更改自己的密码(seedocumentation)
- GET /v3/auth/token?nocatalog 允许API用户进行在线身份验证时选择退出或接受服务目录
- /v3/regions 为多区域部署提供了一个通用界面(seedocumentation).
- /v3/OS-SIMPLECERT/ 发布用于PKI身份验证的证书 (seedocumentation).
- /v3/OS-TRUST/trusts 能够提供有限的使用授权通过使用remaining_uses属性
后台任务和后端身份是完全分离的,这意味着你可以备份你的服务认真到LDAP,同时备份认证数据到SQL
KVS令牌驱动能够以键值对永久存储,比如Redis,Cassandra,或者MongoDB
Keystone's driver interfaces are now implemented as Abstract Base Classes (ABCs) to make it easier to track compatibility of custom driver implementations across releases.
keystone配置文件/etc/policy.json被修改为更易读的格式
当创建,更新,或删除roles,groups,和trusts时,会产生警报
Custom extensions and driver implementations may now subscribe to internal-only event notifications, including disable events (which are only exposed externally as part of updateevents).
当有身份验证产生时,keystone会产生Cloud Audit Data Federation(CADF)事件警报
Additional plugins are provided to handle external authentication viaREMOTE_USER with respect to single-domain versus multi-domain deployments.
policy.json can now perform enforcement on the target domain in a domain-aware operation using, for example, %(target.{entity}.domain_id)s.
The LDAP driver for the assignment backend now supports group-based role assignment operations.
Keystone now publishes token revocation events in addition to providing continued support for token revocation lists. Token revocation events are designed to consume much less overhead (when compared to token revocation lists) and will enable Keystone eliminate token persistence during the Juno release.
Deployers can now define arbitrary limits on the size of collections in API responses (for example, GET /v3/users might be configured to return only 100 users, rather than 10,000). Clients will be informed when truncation has occurred.
Lazy translation has been enabled to translating responses according to the requested Accept-Language header.
Keystone now emits i18n-ready log messages.
Collection filtering is now performed in the driver layer, where possible, for improved performance
已知BUG
Bug 1291157如果使用 OS-FEDERATION 扩展,删除一个身份认证提供者,先前的身份认证不会被删除,这个bugs也会存在于稳定版本的icehouse中
Bug 1308218重复的用户资源也会GET /v2.0/tenants/{tenant_id}/users
7.OpenStack网络服务(Neutron)
关键更新
在icehouse开发周期内,开发团队专注于测试Neutron代码库的稳定性. 许多现有的插件和驱动得到修订,以解决已知的性能和稳定方面的问题
新驱动程序/插件
IMB SDN-VE
Nuage
OneCovergence
OpenDaylight
新的负载均衡即服务驱动程序
Embrane
NetScaler
Radware
新的VPN驱动
Cisco SCR
已知BUG
激活Nova的回调功能时,URL中的nova_url配置项需要包含版本号,比如http://127.0.0.1:8774/v2
Midokura maintains its own MidoNet Icehouse plugin in an external public repository. The plugin can be found here: https://github.com/midokura/neutron. Please contact Midokura for more information (info@midokura.com)
Schema migrations when Advance Service Plugins are enabled might not properly update the schema for all configurations. Please test the migration on a copy of the database prior to executing on a live database. The Neutron team will address this as part of the first stable update.
8.OpenStack块存储(Cinder)
主要新功能
能够修改已有卷类型
新增卷元数据,以支持Cinder备份对象
实现API服务的多个workers
新增删除配额的能力
新增导入/导出备份的能力
为卷挂载/卸载时的自动FC分区增加光纤通道域管理器
卷类型加密升级的能力
挂载/卸载时的Ceilometer消息收集
新的后端驱动插件
EMC VMAX/VNX SMI-S FC Driver
EMC VNX iSCSI Direct Driver
HP MSA 2040
IBM SONAS and Storwize V7000 Unified Storage Systems
NetApp ESeries
已知BUG
重新连接失败的多台服务器总是会连接到第一台 (Bug: #1261631)
检查卷的拷贝状态会导致Storwize/SVC 驱动崩溃 (Bug: #1304115)
不支持Glance API v2 (Bug: #1308594)
建议启用Cinder v1 作为Nova不用管怎么与v2通信
9.OpenStack遥测(Ceilometer)
主要新功能
- 添加API
- 查询meters、samples、alarms时,支持复杂组合条件查询
- 新增capabilities API,用于描述数据存储驱动所能提供的能力
- 统计接口增加'聚集'的选择参数,支持方差和标准差函数
- 直接访问样本数据不需要与特定meter耦合
- 新增StackTach风格的事件API
- 告警方面的改进
- 告警中新增时间限制参数,可以根据每天或每周灵活的设置告警时限
- 排除那些计数异常低的样本与弱数据点
- 对于磁盘和网络增加基于速率的计量,以适用于阈值类型的告警
- 集成 touch-points
- 从收集器中将通知代理分离出来,以单独负责处理外部通知
- 为插件化的资源发现重新设计了pipeline的配置
- 对原生通知负载的可配置化,以StackTach的风格实现
- 存储驱动
- 各个特性的实现在HBase 、SQLAlchemy 和DB2驱动中接近均等
- 优化资源查询
- 在HBase驱动中,增加对告警的支持
- 指标的新来源
- Neutron中SDN控制器的北向API
- VMware vCenter Server API
- 裸物理机的SNMP进程
- OpenDaylight REST APIs
已知问题
当运行的存储数据库是PostgreSQL时,SQLAlchemy的驱动在向外扩展收集服务上存在问题,https://bugs.launchpad.net/ceilometer/+bug/1305332
HBase 存储驱动显示不完整的计量数据列表:https://bugs.launchpad.net/ceilometer/+bug/1288284
HappyBase 的版本为 0.7时,HBase 存储驱动不正常运行。
计算结点的代理导致nova-api服务负载过大: https://bugs.launchpad.net/ceilometer/+bug/1297528
升级说明
启动升级后,已存在的collector服务会添加一个新的notification代理
MongoDB 存储驱动现在需要安装2.4及以上版本的MongoDB (havana发布版本MongoDB的版本下限是2.2), 详见 upgrade instructions.
10.OpenStack Orchestration (Heat)
主要新特性
HOT templates: HOT templates格式被支持作为创建heat templates的推荐格式
OpenStack resources: HOT中的资源类型在Icehouse版本中有了较大的扩充,完整列表请参考 http://docs.openstack.org/developer/heat/template_guide/openstack.html
Software configuration:新的API和资源使得能够使用各种技术和工具进行软件配置
Non-admin users:现在能够登录任何的stack,而不需要管理员用户授权
Operator API: 系统管理员有一个专用的API来管理所有的stack
Autoscaling resources: OS::Heat::AutoScalingGroup and OS::Heat::ScalingPolicy能够自动缩放任意资源集合
Notifications:Heat对一些事件能够发送RPC通知,比如stack状态改变,自动缩放触发器
Heat engine scaling: 现在有可能在heat-engine的多个实例中共享配器负荷。锁定是通过可插拔的分布式锁协调,与基于SQL的默认锁插件
File inclusion with get_file: The intrinsic function get_file is used by python-heatclient and heat to allow files to be attached to stack create and update actions, which is useful for representing configuration files and nested stacks in separate files.
Cloud-init resources: 有OS::Heat::CloudConfig 和OS::Heat::MultipartMime
Stack abandon and adopt: It is now possible to abandon a stack, which deletes the stack from Heat without deleting the actual OpenStack resources. The resulting abandon data can also be used to adopt a stack, which creates a new stack based on already existing OpenStack resources. Adopt should be considered an experimental feature for the Icehouse release of Heat
Stack preview: stack-preview动作返回一个预期被创建的资源列表,如果一个stack使用提供的模板创建
New resources: 以下新资源在此版本中被实现
OS::Heat::CloudConfig
OS::Heat::MultipartMime
OS::Heat::SoftwareConfig
OS::Heat::SoftwareDeployment
OS::Heat::StructuredConfig
OS::Heat::StructuredDeployment
OS::Heat::RandomString
OS::Heat::ResourceGroup
OS::Heat::AutoScalingGroup
OS::Heat::ScalingPolicy
OS::Neutron::SecurityGroup
OS::Neutron::MeteringLabel
OS::Neutron::MeteringRule
OS::Neutron::ProviderNet
OS::Neutron::NetworkGateway
OS::Neutron::PoolMember
OS::Nova::KeyPair
OS::Nova::FloatingIP
OS::Nova::FloatingIPAssociation
OS::Trove::Instance
已知问题:
Stack升级期间的任何错误(例如cloud error,heat bug,或者用户模板错误)都会导致stacks进入不可恢复的错误状态,因此,目前stack更新仅仅是建议操作,如果它确实通过删除和重建stack从错误中恢复
新的stack-adopt选项应该被视为一项实验性功能
CFN API在任何错误时都返回HTTP状态吗500 (bug 1291079)
删除一个包含附加卷的stacks可能需要多次尝试,由于一个卷分离(bug 1298350)
升级说明:
请阅读一般注意事项: Heat's security model.