ReleaseNotes/Kilo/zh-hans

= OpenStack 2015.1.0 (Kilo)更新日志 =

纠删码(beta)
Swift现在支持纠删码(EC)存储策略类型. 这样部署人员、以极少的RAW容量达到极高的可用性，如同在副本存储中一样. 然而，EC需要更多的CPU和网络资源，所以并不适合所有应用场景. EC非常适合在一个独立的区域内极少访问的、大容量数据.

Swift纠删码的实现对于用户是透明的. 对于副本存储和纠删码存储的类型，在API上没有任何区别.

为了支持纠删码，Swift现在需要依赖PyECLib和liberasurecode. liberasurecode是一个可插件式的库，允许在你选择的库中实现EC算法.

更详细文档请参阅 http://swift.openstack.org/overview_erasure_code.html

复合型令牌(Composite tokens)
复合型令牌允许其他OpenStack服务以客户端名义将数据存储于Swift中，所以无论是客户端还是服务在更新数据时，都不需要双方彼此的授权.

一个典型的例子就是一个用户请求Nova存放一个VM的快照. Nova将请求传递给Glance，Glance将镜像写入Swift容器中的一组对象中. 在这种场景下，用户没有来自服务的合法令牌时，无法直接修改快照数据. 同样，服务自身也无法在没有用户合法令牌的情况下更新数据. 但是数据的确存在于用户的Swift账户中，这样使得账户管理更简单.

更详细的文档请参阅http://swift.openstack.org/overview_backing_store.html

更小规模、不平衡集群的数据位置更新
Swift数据的存放位置现在根据硬件权重决定. 当前，允许运维人员逐渐的添加新的区域(zones)和地域(regions)，而不需要立即触发大规模数据迁移. 同时，如果一个集群是非平衡的(例如，在一个区域(zones)的集群中，其中一个的容量是另外一的两倍)，Swift会更有效的使用现有空间并且当副本在集群空间不足时发出警告.

全局性集群复制优化
区域(regions)之间复制时，每次复制只迁移一个副本. 这样远程的区域(region)可以在内部复制，避免更多的数据在广域网(WAN)拷贝.

已知问题

 * 作为beta更新，纠删码(EC)的功能接近完成，但是对于某些功能仍然不完整(像多范围(multi-range)读取)，并且没有一个完整的性能测算. 这个功能为了持久性依赖于ssync. 部署人员督促我们做更大规模的测试，并且不要在生产环境部署中使用纠删码存储策略.

升级提示
像往常一样，你能在不影响最终用户体验的前提下，升级到这个版本的Swift.


 * 为了支持纠删码，Swift需要一个新的依赖PyECLib(和liberasurecode等). 并且eventlet的最低版本要求也升高了.

API v2.1

 * 我们有了下一代Nova API的第一个更新版本v2.1. v2.1版本的目的是向回兼容v2.0版本，并且拥有增强的API校验. API所有更新是通过发布微版本(microversion)发现的. 更多信息请参阅：http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/api-microversions.html


 * kilo版本中，我们仍然使用v2.0 API的代码提供v2.0 API的请求. 我们希望v2.1将能够同时为v2.0和v2.1请求提供服务.


 * liberty v2.0现在被冻结了，所有功能被添加在v2.1 API中使用微版本(microversions)机制实现. kilo版本中微版本(microversion)更新包括：
 * 扩展keypair API支持x509证书，能够和Windows WinRM使用，这个功能是v2.1 API中第一个被以微版本(microversions)添加的功能.
 * 在os-extended-server-attributes暴露扩展属性


 * python-novaclient现在还不支持v2.1 API


 * Nova v2.1 API的策略执行得到优化.
 * 只在API入口执行策略
 * 对于单一的API，去掉了重复性规则
 * 所有的v2.1 API的策略规则使用'os_compute_api'作为前缀，以区别于v2 API.
 * 之前，由于在db层面权限检查的硬编码(hard-code)，部分Nova API并不支持策略的配置. 总是需要admin用户权限. 部分在Nova v2.1 API中硬编码(hard-code)权限检查被移除，使得API策略可配置. 其余的硬编码(hard-code)将在Liberty版本被移除掉.

升级支持

 * 我们减少了使用DB迁移脚本执行数据迁移，现在这部分使用一种"懒(lazy)"方式在DB的对象代码中完成. 在nova-manage命令中可以帮助强制进行数据迁移. 更多的信息请见：http://specs.openstack.org/openstack/nova-specs/specs/kilo/approved/flavor-from-sysmeta-to-blob.html


 * https://review.openstack.org/#/c/97946/ 增加了编号为267的数据库迁移脚本，这个脚本主要扫描instances.uuid为空(null)的记录并且一旦发现就会导致失败，因为迁移中需要保证instances.uuid非空并且在那个字段加入了UniqueConstraint限制. 为了避免数据库迁移失败，提供了一个帮助脚本用来搜索空(null)的instances.uuid的记录. 运行'nova-manage db sync'之前，运行帮助脚本‘nova-manage db null_instance_uuid_scan’，默认情况下，该脚本只会检索记录，并将结果输出，不会改变任何内容. 如果在参数中加入--delete，就会自动删除所有instances.uuid为空的记录.

调度器(Scheduler)

 * 一系列的性能优化
 * 我们在优化scheudler的代码结构，这将帮助我们能够演进和优化调度过程. 这一点对于终端用户不可见.

Cells v2

 * 已经开始添加了对cell v2版本的支持，但是还没达到能够使用的程度.
 * 新的'nova-manage api_db sync' 和 'nova-manage api_db version'命令用于支持cell新的api数据库结构，但是还没有任何代码使用该数据库，所有没有必要建立.

Hyper-V

 * 支持生成两个虚拟机：https://blueprints.launchpad.net/nova/+spec/hyper-v-generation-2-vms
 * 支持SMB为基础的卷，和已经存在的ISCSI卷：http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/hyper-v-smbfs-volume-support.html
 * 支持x509证书的keyparis：http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/keypair-x509-certificates.html
 * 主机电源操作已经在Hyper-V中可用了：https://blueprints.launchpad.net/nova/+spec/hyper-v-host-power-actions

Libvirt (KVM)

 * NFV相关功能：
 * 以NUMA为基础的调度 : http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/input-output-based-numa-scheduling.html
 * 虚拟机使用固定的物理CPU: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/virt-driver-cpu-pinning.html
 * 超大页(Large Page)支持: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/virt-driver-large-pages.html
 * vhostuser VIF驱动: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/libvirt_vif_vhostuser.html
 * 支持在IBM System z运行KVM: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/libvirt-kvm-systemz.html
 * 支持parallels云服务: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/pcs-support.html
 * 支持SMB卷: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/libvirt-smbfs-volume-support.html
 * 使用QEMU agent静默(Quiesce)文件系统(例如：做快照之前): http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/quiesced-image-snapshots-with-qemu-guest-agent.html
 * Quobyte卷支持: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/quobyte-nova-driver.html
 * 支持QEMU iSCSI initiator: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/qemu-built-in-iscsi-initiator.html

VMware

 * 支持Ephemeral磁盘: http://specs.openstack.org/openstack/nova-specs/specs/kilo/approved/vmware-ephemeral-disk-support.html
 * 支持vSAN: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/vmware-vsan-support.html
 * 支持OVA镜像: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/vmware-driver-ova-support.html
 * 支持SPBM存储策略: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/vmware-spbm-support.html

Ironic

 * 对于ironic支持传递flavor扩展属性：http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/pass-flavor-capabilities-to-ironic-virt-driver.html

已知问题
注意：这个并不是回归(regression)并且在evacuate的设计中已经提到这个瑕疵. 这个并不容易修复，所以使用这种方式绕过去(workaround)解决这个潜在的数据损坏. 在liberty的修复记录：https://review.openstack.org/#/c/161444/.
 * Evacuate恢复部分代码存在损坏数据的潜在危险. 在nova-compute启动过程中，虚拟化端会汇报instance的状态，用于检查物理机发生故障过程中，虚拟机是否被移走了(i.e. 被evacuated). 如果此时发现的确发生迁移了，那么本地的数据就会被彻底删除. 这样就存在潜在的可能出现选择错误，虚拟机被错误的销毁. 在libvirt节点上，这样的情况可能会由于改变系统的主机名引发. 在vmware节点中，这个可能会由于尝试从两个不同的主机(不同的主机名)管理同一个vcenter引发. 这个Bug可能会在Liberty中得到修复，但是在当前部署中，关闭这种行为的建议是设置destroy_after_evacuate=False.


 * 生成的配置文件样例可能会缺少某些oslo相关的配置

升级提示
下面是你在升级中需要了解的内容. 在可能的情况下，git提交的hash编码会提供你找到更多更详细的信息：


 * 如果你的Neutron端口(ports)是在Nova之外建立的，在你的服务器删除后并不会删除这些端口：1153a46738fc3ffff98a1df9d94b5a55fdd58777
 * EC2 API支持现在被废弃了，可能要在kilo删除掉：f098398a836e3671c49bb884b4a1a1988053f4b2
 * Websocket代理需要被和API节点一起升级，由于旧的API节点在鉴权控制台权限时不会发送access_url，新的代理服务(这个提交和以后的)处理类似请求时会鉴权失败9621ccaf05900009d67cdadeb1aac27368114a61
 * 在全部升级到kilo后(例如，所有节点都运行kilo代码)，你需要在后台运行一个flavor信息更新的迁移，把旧名字改为新名字. Kilo的conductor节点会根据需要进行处理，但是其余的空闲数据需要在后台完成迁移. 这个要在Liberty更新后全部完成，到时候旧的位置会被废弃. 使用"nova-manage migrate-flavor-data"完成迁移.
 * 由于Nova v2.1 API强制策略的优化. 在v2.1 API策略上有一系列改变发生. 因为v2.1 API之前一直没有更新，所以这些改变无法向前兼容. 所以最好使用策略的样例配置取代之前的版本.
 * VMware拯救(rescue)虚拟机的行为不再生成一个新的虚拟机而是直接在当前镜像上进行：cd1765459a24e52e1b933c8e05517fed75ac9d41
 * force_config_drive = always被废弃了，需要使用force_config_drive = True替换：c12a78b35dc910fa97df888960ef2b9a64557254
 * 运行hyper-v，如果你已经部署的代码晚于这个commit b4d57ab65836460d0d9cb8889ec2e6c3986c0a9b，但是早于这个commit c8e9f8e71de64273f10498c5ad959634bfe79975，那么你可能存在问题，需要手动解决，查看这个commit c8e9f8e71de64273f10498c5ad959634bfe79975
 * 改变multi_instance_display_name_template的默认值：609b2df339785bff9e30a9d67d5c853562ae3344
 * 使用"nova-manage db null_instance_uuid_scan"确保DB迁移之前数据是干净的，c0ea53ce353684b48303fc59393930c3fa5ade58

新功能

 * 使用已经毕业的oslo.policy项目. 账户配置信息更新，升级在etc/config下的配置文件. http://specs.openstack.org/openstack/glance-specs/specs/kilo/pass-targets-to-policy-enforcer.html
 * 可以使一个镜像变为非激活状态. 增加了两个新的API调用可能会需要改变策略配置. http://specs.openstack.org/openstack/glance-specs/specs/kilo/deactivate-image.html
 * 在镜像导入过程中，支持基本的镜像格式转换. http://specs.openstack.org/openstack/glance-specs/specs/kilo/conversion-of-images.html
 * Glance排序增强. v2版本的镜像API支持新的排序语法，排序时可以指定排序字段和方向：http://specs.openstack.org/openstack/glance-specs/specs/kilo/sorting-enhancements.html
 * 通知支持metadefs：http://specs.openstack.org/openstack/glance-specs/specs/kilo/metadefs-notifications.html
 * VMware存储驱动支持多datastore：http://specs.openstack.org/openstack/glance-specs/specs/kilo/vmware-store-multiple-datastores.html
 * 在镜像导入过程中获取镜像信息：http://specs.openstack.org/openstack/glance-specs/specs/kilo/introspection-of-images.html
 * 在Metadefs中支持多个值的操作. http://specs.openstack.org/openstack/glance-specs/specs/kilo/metadata-multivalue-operators-support.html
 * 增加新的taskflow执行方法(executor)并且移除了旧的eventlet执行方法. http://specs.openstack.org/openstack/glance-specs/specs/kilo/taskflow-integration.html
 * Digest算法现在是可以配置的. SHA-1现在不适合作为通用的数字签名应用，从安全角度考虑，对于每个FIPS需要112字节，我们提供了一个配置可以在这些标准中进行选择.
 * Metadef标签支持. http://specs.openstack.org/openstack/glance-specs/specs/kilo/metadefs-tags.html
 * 允许API返回空值. Glance的v2版本API现在也返回为空值的字段.
 * 目录索引服务实验性API. http://specs.openstack.org/openstack/glance-specs/specs/kilo/catalog-index-service.html
 * 存储驱动更细粒度的支持. http://specs.openstack.org/openstack/glance-specs/specs/kilo/store-capabilities.html
 * 数据存储使用语义版本(Semver, Semantic Versioning)工具. http://specs.openstack.org/openstack/glance-specs/specs/kilo/semver-support.html
 * 重新加载配置文件时使用SIGHUP信号. 配置重新加载零down机. http://specs.openstack.org/openstack/glance-specs/specs/kilo/sighup-conf-reload.html
 * 软件Metadata定义. http://specs.openstack.org/openstack/glance-specs/specs/kilo/software-metadefs.html
 * Glance Swift存储使用多个容器(Containers)存储镜像. http://specs.openstack.org/openstack/glance-specs/specs/kilo/swift-store-multiple-containers.html

已知问题

 * 当镜像名称大于255个字符时，添加镜像时抛出500错误：https://bugs.launchpad.net/glance/+bug/1424038
 * Glance v2版本API与v1版本更换镜像所有者的API不兼容：https://bugs.launchpad.net/glance/+bug/1420008
 * Glance的scrubber在操作者使用信任模式鉴权下不工作：https://bugs.launchpad.net/glance/+bug/1439666

升级提示

 * 移除废弃的选项db_enforce_mysql_charset. 相应的commit: efeb69f9033a57a1c806f71ee3ed9fd3f4d2475e
 * 现在支持metadef资源的通知，相应的commit: fd547e3717dc4a3a92c1cb2104c18608a4f4872a
 * VMware多datastore支持可以通过几个选项进行配置，相应的commit: 96fb31d7459bd4e05e052053177dce4d38cdaf90
 * 移除eventlet执行方法，并且增加一个新的Taskflow的执行方法，用于异步任务，相应的commits: ae3135e1d67df77697a24fddaee3efeadb34a0dd和 a39debfd55f6872e5f4f955b75728c936d1cee4b
 * 在配置中使用endpoint配置替代snet配置，相应的commit: 41a9a065531ec946b4a9baf999f97d10fa493826
 * Digest算法现在可以配置，相应的commit: 82194e0c422966422f7a4e2157125c7ad8fbc5b5
 * 清理已经被删除的镜像，镜像在'保存中'状态时删除. 相应的commit: 0dc8fbb3479a53c5bba8475d14f4c7206904c5ea
 * Glance现在使用毕业的oslo.policy模块. 相应的commit: cb7d5a4795bbdaf4dc3eaaf0a6fb1add52c09011
 * 镜像现在可以设置为非激活状态. 一个新的'非激活'状态已经添加到镜像数据中. 相应的commit: b000c85b7fabbe944b4df3ab57ff73883328f40d

新功能

 * 支持通过Web单点登陆的统一认证方式——在keystone中做配置后，用户就能选择认证机制来使用已部署的功能. 这些功能的使用能够通过更改local_settings.py配置实现. 相关启用设置和配置可以在这里找到：here.


 * 支持主题 —— 包含了可以为Horizon指定自定义主题的简单功能. 允许使用Bootstrap的CSS值，Horizon定义的变量，以及自定义CSS. 更多信息参见：here.


 * Sahara UX 改进 —— 集cluster创建和job创建引导页的增加极大改进了Sahara用户体验.


 * Launch Intance向导(beta) —— 用AngularJS实现了launch instance workflow的全面替代，用以解决现有的launch instance workflow的可用性问题. 这项功能最近才引入并且缺乏测试，所以在Kilo版本中标记为beta并且默认是不启用的. 要使用新的workflow，需要对local_settings.py做如下更改： . 另外，可以做如下更改来禁用默认的启用instance向导： . 这项新功能体现了Horizon未来的发展.


 * Nova
 * 允许service在Hypervisor中 禁用/启用
 * 从host迁移所有instance
 * 暴露serial console


 * Cinder
 * 默认为Cinder v2
 * 支持已管理/未管理的volume —— 允许管理员管理已存在的volume不再被cinder管理，未管理的被cinder管理.
 * 支持project间的volume转移
 * 支持volume加密元数据


 * Glance
 * 增加了界面以允许管理员查看/新增/修改 Glance元数据定义


 * Heat
 * Stack Template界面
 * 操作资源控制板
 * Stacks的挂起/恢复操作
 * 预览Stack界面允许用户在定义模板中的stacks前可以先预览.


 * Trove
 * 调整Trove实例 —— 更改instance的flavor


 * Ceilometer
 * 展示来源于Ceilometer的IPMI测量数据


 * Horizon中新的可重复使用的AngularJS widgets:
 * AngularJS 表格实现
 * Table 绘制 —— 扩展的表格内容
 * 改进的 client/server 查找
 * 转换表格widget


 * 可为Horizon配置web root不仅仅限于“/”

已知问题

 * 从快照创建的Volumes是空的－https://bugs.launchpad.net/horizon/+bug/1447288
 * 还没有完全支持Django 1.8

升级提示

 * 目前支持Django 1.7

分层multitenancy
创建一个新的project时，可以设置属性 的值为一个已存在project，使 Projects嵌套在其他projects下.

Role现在可以分配给project分层子树上的 users和groups

这项功能还需要其他Openstack服务(例如hierarchical quotas)的相应支持使其广泛的生效

Fernet tokens
区别于UUID tokens只能持久化存入数据库，Fernet tokens完全不需要持久化. 部署人员可以通过设置 中的 来启用Fernet token

Fernet tokens需要symmetric encryption keys，这些keys可以使用 建立， 并且使用 周期性地轮换. 这些keys必须被在一个multi-node(或者multi-region)部署中的所有Keyston nodes共享，这样就能使一个node生成的tokens可以立即被其他节点验证.

Identity federation

 * Keystone现在可以作为联邦身份提供者(IdP: federated identity provider)为另外一个Keystone实例提供本地用户的SAML断言(SAML assertions)，可能是ECP封装(ECP-wrapped).
 * 支持OpenID连接作为联邦身份鉴权机制(federated identity authentication mechanism).
 * 在Keystone中增加对多"Remote IDs"关联到单一的鉴权提供者. 这有助于有多身份提供者使用一个通用的映射.
 * 增加为已经拥有Idp用户通过web浏览器鉴权的能力，实现单点登录.
 * 联邦令牌(federated tokens)现在使用 鉴权方法， 和 仍然有效.
 * 联邦用户(federated users)可以映射到本地已经存在的身份上.
 * 在规则集(rulesets)映射中定义的组可以用名字和域鉴权
 * 出现在联邦身份断言(federated identity assertions)中的组，可以被自动的映射为本地已经存在的组中，并且拥有本地用户关系映射(通过白名单和黑名单过滤)

LDAP

 * 用户指定的API过滤项现在由LDAP本身处理，现在由keystone取代
 * "试验性"支持存储指定域(domain-specific)鉴权后端HTTP API在SQL中配置. 这个主要用户场景是，当使用HTTP API创建一个新的域(domain)，并且马上配置一个指定域(domain-specific)的LDAP驱动，而不需要重启keystone.

鉴权

 * "分配(assignment)"后端已经被分离到"资源(resource)"后端(包含domains, projects和roles)，并且"分配(assignment)"的后端包含了授权的映射模型
 * 支持再次信任授权. 当信任关系建立后，被信任人可以通过另外一个信任重新授权该信任的角色.
 * Keystone支持无范围(unscoped)的token请求，即使用户设置了.
 * 部署人员可以修改配置来限制已经有范围的令牌重新获取范围(re-scoping)，在 设置.

升级提示

 * Keystone的XML支持将在Kilo版本删除. 当从Juno升级到Kilo，建议将XML和XmlBodyMiddleware相关的信息从Keystone Paste p配置删除. 这包含删除XML中间层过滤器以及public_api, admin_api, api_v3, public_version_api, admin_version_api相关的和其他包含XML过滤器的流水线(pipelines).
 * 所有之前的扩展(OS-FEDERATION, OS-OAUTH1, OS-ENDPOINT-POLICY and OS-EP-FILTER)现在被默认支持，并且在相关标记中，标记为"试验"或者"稳定".
 * 不在支持SQL结构的回退. 这个变化主要是回退并没有经过良好的测试，而且在很多迁移中需要支持数据变化，难度越来越大.
 * 需要以下Python库：cryptography, msgpack-python, pysaml2 和 oauthlib.
 * 被废弃，取而代之的是  并且在Liberty移除.
 * Eventlet相关的配置项，如：, ,  ,  ,  ,  ,  ,  ,  被从 移除掉，移到了 . 相似的，Eventlet相关的SSL配置选项如： ,  ,  ,  ,  已经从 配置项移动到.
 * 被 取代.
 * 被 取代.
 * 被 取代.
 * 被 取代.
 * 被 取代.
 * 被外部工具取代.
 * 被 取代.
 * 被外部访问日志取代.
 * 被 取代.
 * 已经从 删除，作为加强安全的一部分.
 * 被从 删除，取代的是.

新功能

 * DVR现在除了VXLAN/GRE外还支持VLANs
 * ML2分层端口绑定(Port Binding)
 * 新的V2版本的LBaas(负载均衡即服务)API
 * 支持OVS ML2驱动的端口安全


 * 在Kilo版本中支持的新插件：
 * A10 Networks LBaaS V2 Driver
 * Brocade LBaaS V2 Driver
 * Brocade ML2 driver for MLX and ICX switches
 * Brocade L3 routing plugin for MLX switch
 * Brocade Vyatta vRouter L3 Plugin
 * Brocade Vyatta vRouter Firewall Driver
 * Brocade Vyatta vRouter VPN Driver
 * Cisco CSR VPNaaS Driver
 * Dragonflow SDN based Distributed Virtual Router L3 Plugin
 * Freescale FWaaS Driver
 * Intel Mcafee NGFW FWaaS Driver
 * IPSEC Strongswan VPNaaS Driver

已知问题

 * 在Kilo版本中，防火墙即服务仍然标记为试验性功能
 * Bug 1438819
 * 当创建一个新的可访问外部网络的子网，所有与该网络相关的、已经存在的具有网关的路由都会得到一个新的地址. 对于IPv4网络，这样会为路由的网关消耗掉子网中的全部接口.

升级提示
从Havana版本开始，Neutron不再支持存放指定的租约(https://bugs.launchpad.net/bugs/1202392). 这部分剩余的残留代码包含了一些不曾使用的环境变量. 为了删除掉这些残余代码 (https://review.openstack.org/#/c/152398/)，需要修改dhcp.filter，所以这一行：

dnsmasq: EnvFilter, dnsmasq, root, NEUTRON_NETWORK_ID=

需要被替换为：

dnsmasq: CommandFilter, dnsmasq, root

在一些高级服务被划分到独立的包，并且有自己的配置文件后(特别是：etc/neutron/neutron_lbaas.conf, etc/neutron/neutron_fwaas.conf and etc/neutron/neutron_vpnaas.conf)，当前活跃的服务在升级后，配置会产生变化(特别是，默认的负载均衡软件(haxproxy)和vpn(oepnswn)在升级后会被开启，尽管你之前可能在neutron.conf关闭了他们). 请务必在升级后检查你的配置，保证你的新配置和你之前想要启动的服务一致.

注意：如果在neutron.conf没有加载相关插件，不会受到影响.


 * 默认的api workers的数量变为物理主机CPU的个数. 如果你当前用的是默认值，需要保证为你的api worker设置一个合理的数量. (https://review.openstack.org/#/c/140493/)
 * neutron. allow_duplicate_networks配置项在Kilo版本废弃并且将从Liberty移除，默认的行为是允许同一虚拟机可以绑定在同一子网的多个接口. (https://review.openstack.org/163581)
 * linuxbridge agent现在默认支持VXLAN(https://review.openstack.org/160826)
 * neutron-ns-metadata-proxy可以使用非root用户执行(https://review.openstack.org/147437)

其他的注意信息(废弃/终止等)

 * 废弃
 * Brocade的VDX/VCS系列硬件的Monolithic插件将在L版本中废弃. 原有插件提供的功能已经在ML2中实现. 插件将在这个更新之后被删除.
 * Cisco的Nexus1000V Meta插件将在L版本中废弃. 原有插件功能已经在ML2的Cisco Nexus1000V策略驱动实现. 插件将在这个更新之后被删除.

新功能

 * 从这一刻起，任何新的数据库结构的更新将不需要Cinder服务立即重启. 服务本身和数据库结构间没有直接关联. 这是Cinder支持滚动更新(rolling upgrades)的第一部分！
 * 在已经存在的一致性组中添加或者删除卷. 获取更多信息.
 * 从一个已经存在的一致性组的景象中创建一个新的一致性组. 获取更多信息.
 * 创建了更多已经优化的filters/weighers来设定scheduler如何选择一个卷的后端. 获取更多信息.
 * 加密卷现在可以使用Cinder备份服务进行备份. 获取更多信息.
 * 允许创建私有卷类型. 你可以让卷类型只对特定的租户可见，或者在更新到正式环境前进行测试. 可以用过'cinder type-create --is-public'设置.
 * Thin Provision(精简配置)的超额认购是可以配置的. Read docs for more info.
 * 可以为卷类型增加描述信息. 使用'cinder type-create '命令创建.
 * Cinder现在可以返回多个iSCSI路径信息，这样连接方就能在主路径(Primary Path)挂掉后，使用其他路径(当连接方多路径支持开启 or 未开启).

升级提示

 * cinder.conf中的'host'配置选项被重命名为'backend_host'，目的为了避免与redis配置中的'host'命名冲突. 如果你使用了这个选项，请务必更新你的配置文件.

新功能

 * 支持在polling循环中增加抖动，保证pollsters不要在同一时间查询服务的API
 * 支持Ceilometer API RBAC(基于权限的访问控制)
 * 优化的事件支持:
 * 多流水线(Multi-pipeline)支持开启唯一的处理和发布的事件
 * 支持捕获RAW消息格式，便于审计和事后分析
 * 在弹性搜索中支持持久化事件
 * 发布支持对数据库、http、分拣、kafka和oslo.messaging支持的消息队列
 * 增加一个选项，可以将消息的持久化数据存放在一个单独的数据库中
 * Ceilometer现在支持使用时间(events)采集和存储所有事件类型的测量(meters). 一个新的选项，disable_non_metric_meters被加入到配置中，为了关闭将这些事件作为Samples存取的开关. 更多信息请参阅Ceilometer配置指南
 * OpenStack手册中的管理员指南增加了新的事件的选择, 你能通过这篇文档获取更多信息.
 * 优化了流水线(pipeline)发布支持：
 * 支持将事件(events)和samples发布到Kafka或者Http目标中
 * 将数据发送到多个队列中
 * 更多的测量(meters)
 * Hyper-V的内存和磁盘测量(meters)
 * LibVirt的磁盘测量(meters)
 * IPMI相关的电源和热量的测量(meters)，更多的测量指标查看NodeManager
 * Ceph测量
 * 在Ceilometer中upd的发布和采集支持IPv6格式
 * Gnocchi支持ceilometer-collector分派
 * pollster自我关闭机制

升级提示
统计: ceilometer statistics -m instance -g resource_metadata.instance_type
 * 失效的测量(meters)：
 * instance: 测量在Kilo版本中废弃. 如果想获取flavor的samples或者统计你能使用以下查询：

samples: ceilometer sample-list -m instance -q metadata.instance_type=
 * 用于Swift测量的中间件之前被打包到Ceilometer中，现在被废弃了. 现在被分拆到独立的库：ceilometermiddleware
 * Juno配置: http://docs.openstack.org/juno/install-guide/install/apt/content/ceilometer-swift.html
 * Kilo配置: http://docs.openstack.org/kilo/install-guide/install/apt/content/ceilometer-swift.html

新功能

 * 使用嵌套stacks优化扩展性
 * Heat在任何资源的远程调用(PRC)动作都是基于一个模板(template). 这样对处理复杂stacks时有利于分担负载.
 * oslo版本化对象
 * 数据库层现在使用oslo版本化对象来帮助未来的升级. 这样允许一个新的升级的heat-engine使用一个旧的数据库结构. 注意这并不会帮助升级到kilo版本.
 * 新模板方法
 * 一个新的HOT模板，版本为"20150430"，包含了两个新的方法"digest"和"repeat"
 * 多区域stacks
 * http://docs.openstack.org/hot-reference/content/OS__Heat__Stack.html
 * 访问Heat服务
 * 管理员现在能像其他项目一样访问服务状态. 使用"heat-manage service-list"和Horizon. 这个功能将汇报heat-engines的活跃状态.
 * 优化Nova和Neutron资源(properties)的校验.
 * 在特定资源时(stack钩子)，暂停stack的创建/更新
 * http://specs.openstack.org/openstack/heat-specs/specs/juno/stack-breakpoint.html
 * http://docs.openstack.org/developer/heat/template_guide/environment.html?highlight=hooks#pause-stack-creation-update-on-a-given-resource
 * 新贡献的资源
 * Mistral资源
 * gnocchi告警 https://blueprints.launchpad.net/heat/+spec/ceilometer-gnocchi-alarm
 * Keystone资源支持v3版本，项目、角色、用户和组
 * Stack生命周期调度提示
 * 软件配置优化
 * 使用Swift TempURLs选项作为部署信号 http://specs.openstack.org/openstack/heat-specs/specs/kilo/software-config-swift-signal.html
 * 使用heat命令创建和监控一个部署，在stack之外 http://specs.openstack.org/openstack/heat-specs/specs/kilo/software-config-trigger.html

升级提示

 * "num_engine_workers"选项默认值从1变为CPU个数. 现在这也是其他项目设置worker数量的方法.
 * "max_nested_stack_depth"默认值增加为5.
 * 新增的"convergence"默认为关闭. 这个功能还没有完成，应该保持关闭.
 * 为了准备即将到来的主要更新(convergence)，有一些明显的数据库结构变化. 建议在升级过程中关闭heat-engine.

废弃

 * 下列资源被废弃了OS::Heat::HARestarter和OS::Heat::CWLiteAlarm
 * CloudWatch API (heat-api-cw)

新功能

 * 支持一个新的复制策略，基于异步的GTID复制(MySQL 5.6新功能)
 * 当前一个API调用支持从一个单master节点创建n个副本
 * 使用新的'eject-master' API，我们也能支持从一个未响应的master节点，恢复到最近更新的slave节点上
 * Trove guest管理支持以下新的数据存储：
 * Vertica, and Vertica Cluster
 * DB2
 * CouchDB
 * 扩展当前管理API层：
 * 新的管理API用来获取列表或查看已经删除的trove虚拟机
 * 新的管理API用来ping一个数据存储的guest agent，基于RPC机制
 * Horizon支持重置Trove实例(instances)的规格
 * 用户现在可以编辑/更新Trove虚拟机(instances)的名字
 * 集成跨项目的OpenStack性能分析库(OSProfiler)

升级提示

 * 我们从已经废弃的oslo-incubator消息代码迁移至官方的oslo.messaging模块中. 配置变更详情请查看git.openstack.org/cgit/openstack/trove/tree/etc/trove/trove.conf.sample#n18，(更新)
 * 没有经过任何CI测试过的数据存储和策略被移入'测试'段中的各自模块中. 一旦这些数据存储和策略在CI中通过测试和gate验证，他们就会被标记为'稳定'.
 * 添加了新文档帮助为不同的数据存储创建镜像 http://docs.openstack.org/developer/trove/dev/building_guest_images.html

新功能

 * 新插件，功能和版本：
 * MAPR
 * Apache Storm
 * 添加了Apache Hadoop 2.6.0, Apache Hadoop 2.4.1被废弃
 * 新的服务CDH插件加入HDFS, YARN, Spark, Oozie, HBase, Zookeeper和其他服务
 * 增加非直接的虚拟机(instances)访问，以更好地利用floating ip
 * 增加事件日志支持注入过程中的详细信息
 * 每个插件可选择的默认节点组和集群模板
 * Horizon更新:
 * 向导式创建集群和任务调度
 * 查找对象时过滤
 * 实现了节点组模板编辑和集群模板
 * 为集群运行Oozie增加了Shell任务类型
 * 新的任务类型端点(endpoint)，用于查询已知的任务类型列表

升级提示
更多详细信息：http://docs.openstack.org/developer/sahara/userdoc/upgrade.guide.html#juno-kilo


 * Sahara现在支持policy.json配置文件.

状态机(State Machine)
Ironic现在使用一个正式的模式管理每个节点的逻辑状态. . 这样就开启了两个附属的进程：清理(cleaning) and 检查(inspection)
 * 现在默认支持项目间的自动磁盘清除. 这可能需要为清理(cleaning)扩展额外的步骤，例如重新申请fireware，重置BIOS设置等


 * 硬件的检查(inspect)，同时支持带内(in-band)和带外(out-of-band)两种方式. 这些方法可能会自动更新节点设置.

版本头信息
Ironic REST API在HTTP[S]请求的头信息中增加了一个新的X-OpenStack-Ironic-API-Version. 这个头信息允许客户端和服务端在协商时支持一个统一的接口. . 如果头信息缺失，REST服务会默认进入兼容模式，并且产生一个兼容Juno客户端的响应. 这种模式是被限制访问Kilo提供的最新功能的.

硬件驱动更新
以下驱动被添加:
 * AMT
 * iRMC
 * VirtualBox (testing driver only)

对于已经存在的驱动，有以下增强点：
 * Configdrives 可以用于"agent"驱动替代metadata服务.
 * SeaMicro驱动支持串口控制台
 * iLO驱动支持UEFI安全启动
 * iLO驱动支持带外(out-of-band)节点检查
 * iLO驱动在清理过程中支持ilo和bios重置

支持第三方和未列出的驱动，通过以下两点得到增强：
 * 驱动可以存储节点"内部的"信息
 * 驱动可以注册自己的定时任务，并且由Conductor执行
 * vender_passthru方法现在支持额外的HTTP方法(例如PUT和POST)
 * vendor_passthru方法现在可以在REST API中被发现. 查看node vendor passthru和 driver vendor passthru

其他更新

 * 除了正式的UUID之外，逻辑名称可以被用来标识节点.
 * 对于拥有多个本地磁盘的服务器，提示可以提供哪些OS在注入时产生影响
 * 支持从HTTP[S]源中直接获取kernel, ramdisk和实例镜像，并且从Glance移除了依赖使用Ironic作为独立服务
 * 可以通过REST API将节点设置为维护模式维护模式. 一个可选项维护模式原因可以标识原因.

已知问题

 * 运行一个以上的nova-compute没有被正式的支持
 * 当然Ironic包含了ClusteredComputeManager，允许多余一个以上的nova-compute进程，这个功能被视为实验阶段，并且已经存在了很多问题
 * 使用“agent”驱动的部署策略不支持"rebuild --preserve-ephemeral"

升级提示

 * IPMI的密码使REST API请求混乱. 可以通过API策略设定关闭.
 * 驱动的"agent"类现在支持全盘或者分区镜像.
 * "pxe_deploy_kernel"和"pxe_deploy_ramdisk"的driver_info参数被废弃，取而代之的是"deploy_kernel"和"deploy_ramdisk".
 * 驱动自己实现的版本的方法vendor_passthru被废弃，取而代之的是使用装饰器@passthru.

Juno升级到Kilo
升级文档请参考：
 * http://docs.openstack.org/developer/ironic/deploy/upgrade-guide.html#upgrading-from-juno-to-kilo

从Icehouse的"nova-baremetal"升级
直接从Icehouse的Nova安装中使用“baremetal”驱动直接到Kilo的Ironic，没有经过测试也不支持. 替代方案，请遵循以下升级顺序：
 * 1) Icehouse Nova "baremetal" -> Juno Nova "baremetal"
 * 2) Juno Nova "baremetal" -> Juno Ironic
 * 3) Juno Ironic -> Kilo Ironic

第一步和第二步的文档：https://wiki.openstack.org/wiki/Ironic/NovaBaremetalIronicMigration

OpenStack文档

 * 全新的 docs.openstack.org访问页面和全新设计的 用户使用指南(End User Guide)和 管理员指南(Admin User Guide)
 * 第一个版本的 网络指南(Networking Guide)
 * 将RST迁移至 用户使用指南(End User Guide)和 管理员指南(Admin User Guide)
 * 全新的专业团队：
 * 安装指南(Install Guides)
 * 网络指南(Networking Guide)
 * 高可靠指南(High Availability Guide)
 * 用户指南(包含管理员和最终用户)
 * 第一个App指导(First App Tutorial sprint)
 * 驱动文档说明和关系说明(Driver documentation clarification and connections)