Jump to: navigation, search

ReleaseNotes/Kilo

Revision as of 18:20, 3 May 2015 by Gang Sung Jin (talk | contribs) (Created page with "* 인스턴스 위자드 (beta) 출시 -- 인스턴스 워크 플로워에대한 전체 교체는 기존 인스턴스 워크 플로워의 사용성 문제를 해결 하기 위...")
Other languages:
English • ‎日本語 • ‎한국어 • ‎русский • ‎中文(简体)‎ • ‎中文(台灣)‎

OpenStack 2015.1.0 (Kilo) 릴리즈 노트

OpenStack Kilo 릴리즈를 Chris Yeoh와 사랑하는 기억을 함께 헌정합니다. 그는 너무도 빨리 그의 가족과 우리 곁을 떠났습니다.

Contents


OpenStack Object Storage (Swift)

새로운 주요 기능

Erasure Code (beta)

Swift는 이제 erasure-code (EC) 스토리지 정책 타입을 지원합니다. 이를 통해 배포 대상들이 복제된 스토리지에서 보다 적은 용량을 사용하도록 하면서 매우 높은 지속성을 실현하도록 합니다. 그러나, EC는 보다 많은 CPU 및 네트워크 자원을 필요로 하므로, 모든 유스케이스에 좋은 것은 아닙니다. EC는 단일 region에서 많은 양의, 자주 액세스되지 않는 데이터를 저장 하기 위한 목적에 좋습니다.

Erasure code에 대한 Swift 구현은 최종 사용자에게 알기 쉬워야합니다. 복제된 스토리지와 EC 스토리지 간 API에 있어서의 차이점은 없습니다.

Erasure code를 지원하기 위해, Swift는 이제 PyECLib과 liberasurecode에 의존성을 갖습니다. liberasurecode는 선택에 따라 실제 EC 알고리즘을 구현하도록 하는 플러그인 형태의 라이브러리입니다.

전체 문서는 http://swift.openstack.org/overview_erasure_code.html 에 있습니다.

컴포지트 토큰

컴포지트 토큰은 다른 OpenStack 서비스들이 Swift 내 데이터를 클라이언트 자격으로 저장하도록 하여, 클라이언트와 서비스 모두에서 동의 없이 각각 데이터를 업데이트할 수 없도록 합니다.

예로 Nova에서 스냅샷을 저장하는 사용자 요청이 발생합니다. Nova는 이 요청을 Glance에 전달하고, Glance는 이미지를 Swift 컨테이너에 object set으로 기록합니다. 이 경우, 사용자는 서비스로부터 유요한 토큰을 가지고 있지 않으면 스냅샷을 수정할 수 없으며, 데이터를 업데이트 할 수 없습니다. 그러나 해당 데이터는 Swift내 사용자 계정에 여전히 저장이 되어있으며, 이는 단순히 accounting을 해줍니다.

전체 문서는 http://swift.openstack.org/overview_backing_store.html 에 있습니다

소형, 불균형 클러스터에 대한 데이터 배치 업데이트

Swift에서 데이터 배치는 장치 weight에 의해서 이루어집니다. 이틀 통해서 운영자들이 많은 데이터를 즉시 이동하도록 하지 않으면서, 새로운 zone과 region을 점차적으로 추가할 수 있도록 합니다. 또한, 클러스터가 불균형한 경우 (예: 한 zone의 용량이 다른 zone의 두 배인 두 개의 Zone으로 이루어진 클러스터에서), Swift는 보다 효율있게이용 가능 공간을 사용하고, replica가 클러스터 내에서 충분히 확산되지 않고 배치될때 경고를 줍니다.

글로벌 클러스터 복제 개선

region 사이의 복제가 이제 복제 실행 당 하나의 replica만을 이동시키게 됩니다. 이는 원격 region이 내부적으로 복제를 수행 가능하도록 기회를 제공하고 이에 따라 보다 많은 데이터가 WAN 상에서 이동하는 것을 막아줍니다.

알려진 이슈

  • 베타 릴리즈로, EC 지원은 거의 완벽한 특징으로 이루어져 있으나, multi-range 읽기와 같은 몇몇 특징들은 지원하지 않으며 완벽한 성능을 내지 못합니다. 해당 특징은 지속성을 위한 ssync에 의존하고 있습니다. 배포자들에게 있어 광범위한 테스팅과 함께 erasure 코드 스토리지 정책을 사용한 production 데이터 배포를 하지 않도록 권고합니다.

업그레이드 노트

항상 그렇듯이, 해당 버전의 Swift를 최종 사용자의 다운타임 없이 업그레이드 가능합니다.

  • erasure code를 지원하기 위해, Swift는 PyECLib (그리고 liberasurecode, transitively)에 대한 새로운 의존성을 갖고 있습니다. 또한, eventlet에 대한 최소 요구 버전이 올라갔습니다.


OpenStack Compute (Nova)

새로운 주요 기능

API v2.1

  • Kilo에서는 기본으로 여전히 서버 v2.0 API 요청에 대해 v2.0 API 코드를 사용합니다. Liberty에서 v2.1이 v2.0 및 v2.1 모두에 대한 요청을 처리하는데 사용되어질 수 있도록 희망합니다.
  • Liberty를 위해 v2.0은 프리징되었고, 새로운 기능들은 이제 v2.1 API에 마이크로버전 메커니즘을 사용해 추가될 것입니다. Kilo에서 마이크로버전 증가를 통한 릴리즈 사항은 다음과 같습니다:
    • Windows WimRM에서 사용될 x509 인증서를 지원하기 위한 keypair API 확장은 v2.1 API에서 마이크로버전으로 추가되는 첫 API 기능들 중 하나입니다.
    • os-extended-server-attributes 내 부가적인 어트리뷰트 노출
  • python-novaclient는 아직 v2.1 API를 지원하지 않습니다.
  • Nova v2.1 API에 대한 정책 적용이 향상되었습니다.
    • 정책은 API 엔트리에만 적용됩니다.
    • 하나의 단일 API에 중첩된 rule이 더 이상 불가능합니다.
    • 모든 v2.1 API 정책은 rule이 'os_compute_api' 를 v2 API과 구분하기 위해 접두어로 사용합니다.
    • 하드코딩된 권한이 db 계층에서 확인이 이루어지기에, 이전에 Nova API의 일부는 정책에 의해 구성가능하지 않습니다. 이는 admin 사용자에게 있어 항상 필수입니다. Nova v2.1 API의 하드코딩된 권한 확인 중 일부가 API 정책을 구성 가능하도록 제거되었습니다. 나머지 하드코딩된 권한 확인 부분은 Liberty에서 제거될 것입니다.

업그레이드 지원

  • https://review.openstack.org/#/c/97946/ 변경 사항은 null instances.uuid 레코드를 스캔하고 찾으면 fail하는 데이터베이스 마이그레이션 267을 추가하는데, 왜냐하면 해당 마이그레이션은 결국 instances.uuid을 null이 불가능한 상태로 만들고 해당 칼럼에 UniqueConstraint를 추가할 필요가 있기 때문입니다. Helper 스크립트가 제공되어 해당 데이터베이스 마이그레이션을 실행하기 전에 null instances.uuid 레코드를 검색합니다. 'nova-manage db sync'를 실행하기 전에, 디폴트로, 단지 검색한 후 결과를 덤프하여 아무것도 바꾸지 않는 'nova-manage db null_instance_uuid_scan' Helper 스크립트를 실행합니다. --delete 옵션을 null_instance_uuid_scan 커맨드에 전달하여 instances.uuid가 null이었던 null 레코드를 자동으로 제거합니다.

스케줄러

  • 성능 최적화에 대한 선택
  • 스케줄링을 진화 및 향상시키는 데 개선하도록 하는 스케줄러에 대한 구조적인 변경을 추진하도록 하는 과정에 있습니다. 이는 최종 사용자 관점에서는 나타나지 않습니다.

Cells v2

  • Cell v2에 대한 일부 몇몇 초기 지원이 추가되었지만, 해당 기능은 아직 사용하기에 준비되지는 않았습니다.
  • 새로운 'nova-manage api_db sync' 와 'nova-manage api_db version' 명령어들이 cell을 위한 새로운 api 데이터베이스와 함께 동작하지만, 이 데이터베이스를 이용하지 않으므로 설정할 필요가 없습니다.

Compute 드라이버

Hyper-V
Libvirt (KVM)
VMware
Ironic

알려진 이슈

  • Evacuate 복구 코드가 (VM 디스크) 데이터를 파괴할 가능성이 있습니다. nova-compute 시작시, 하이퍼바이저로부터 보고된 인스턴스가 중단되어 있는 동안 현 호스트로부터 이동되었는지 (즉, evacuate 되었는지)를 확인합니다. 만약 이동되었다고 판단되는 경우, 해당 VM들은 해당 지역에서 삭제됩니다. 이때 잘못 선택되어 인스턴스들이 예기치않게 파괴할 가능성이 있습니다. libvert 계열 노드들에는 호스트 이름을 변경함으로써 발생합니다. vmware 계열 노드들에서는 두 개의 다른 호스트에서 (다른 호스트 이름을 가진 상태) vc​enter 배포를 단일로 관리하려할때 발생합니다. 해당 이슈는 Liberty에서 수정될 예정이지만, 현재는 해당 기능을 배포 환경에서 비활성화하고자 할 경우 예방적인 차원에서 workarounds.destroy_after_evacuate=False로 설정하여 가능합니다. 참고: 이는 회귀가 아닌 초기부터의 evacuate 기능 설계에 대한 결함으로 판명되었습니다. 이에 대한 쉬운 문제 해결이 없기에, 해당 대처법은 손상에 대한 가능성을 제한하는 것입니다. liberty에서 제안된 수정은 여기서 확인 가능합니다: https://review.openstack.org/#/c/161444/.
  • 생성된 config 예제에 oslo와 연관된 구성이 빠져있을 가능성이 있습니다.

업그레이드 노트

다음 사항들은 업그레이드 때에 고려해야만 하는 사항들입니다. 가능한 경우에는, git commit hash가 자세한 정보를 찾도록 제공됩니다:

  • Nova 외부에서 작성된 경우에 대해, Neutron 포트들은 서버가 삭제된 이후에 더 이상 삭제되지 않습니다: 1153a46738fc3ffff98a1df9d94b5a55fdd58777
  • EC2 API 지원이 deprecated되어, 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 VM 동작은 더 이상 새로운 VM을 생성하지 않고 해당 위치에서 발생합니다: cd1765459a24e52e1b933c8e05517fed75ac9d41
  • force_config_drive = always 가 deprecated되었고, force_config_drive = True 를 대신해서 사용해야 합니다: c12a78b35dc910fa97df888960ef2b9a64557254
  • Hyper-v 실행시, b4d57ab65836460d0d9cb8889ec2e6c3986c0a9b 이후, c8e9f8e71de64273f10498c5ad959634bfe79975 커밋 이전 코드를 배포하여 사용하는 경우 수동으로 해결해야 할 문제가 있습니다. 참고: c8e9f8e71de64273f10498c5ad959634bfe79975
  • multi_instance_display_name_template 디폴트 값을 변경합니다. 참고: 609b2df339785bff9e30a9d67d5c853562ae3344
  • DB 마이그레이션을 깔끔하게 적용하도록 보장하고자, "nova-manage db null_instance_uuid_scan"를 사용합니다. 참고: c0ea53ce353684b48303fc59393930c3fa5ade58


OpenStack Image Service (Glance)

새로운 주요 기능

알려진 이슈

업그레이드 노트

  • Deprecated 옵션이었던 db_enforce_mysql_charset이 삭제되었습니다. 관련 커밋: efeb69f9033a57a1c806f71ee3ed9fd3f4d2475e
  • Metadef 자원에 대한 통지를 이제 지원합니다. 관련 커밋: fd547e3717dc4a3a92c1cb2104c18608a4f4872a
  • 몇몇 구성을 변경함으로써 VMware 여러 데이터저장소를 활성화할 수 있습니다. 관련 커밋: 96fb31d7459bd4e05e052053177dce4d38cdaf90
  • Eventlet 처리기를 제거하고 새로운 taskflow 처리기가 비동기 작업을 위해 추가되었습니다. 관련 커밋: ae3135e1d67df77697a24fddaee3efeadb34a0dd and a39debfd55f6872e5f4f955b75728c936d1cee4b
  • Snet 구성을 endpoint 구성으로 대체하였습니다. 관련 커밋: 41a9a065531ec946b4a9baf999f97d10fa493826
  • 다이제스트 알고리즘을 이제 구성 가능합니다. 관련 커밋: 82194e0c422966422f7a4e2157125c7ad8fbc5b5
  • 삭제시 'saving' 상태였던 이미지를 삭제하기 위한 청소 작업을 수행합니다. 관련 커밋: 0dc8fbb3479a53c5bba8475d14f4c7206904c5ea
  • Glance는 이제 (oslo incubator에서 졸업한) oslo.policy를 사용합니다. 관련 커밋: cb7d5a4795bbdaf4dc3eaaf0a6fb1add52c09011
  • 이미지를 이제 비활성화할 수 있습니다. deactivated라는 새로운 상태가 이미지 데이터 자산에 추가되었습니다. 관련 커밋: b000c85b7fabbe944b4df3ab57ff73883328f40d


OpenStack Dashboard (Horizon)

새로운 주요 기능

  • 웹 통합인증(SSO)를 통한 연합 인증 지원 -- Keystone이 구성된 경우, 사용자는 배포시 지원을하는 인증 매커니즘을 선택하여 사용할 수 있습니다. 이 기능은 local_settings.py를 수정하여 활성화 할 수 있습니다. 관련 설정을 확인하려면 여기서 찾을 수 있습니다.
  • 테마 적용 지원 -- Horizon에 대해 사용자 정의 테마를 지정하는 단순한 메커니즘이 포함 되었습니다. 사용자 정의 CSS 뿐만 아니라 Bootstrap의 CSS 값과 Horizon 변수 또한 사용 가능합니다. 자세한 내용은 여기서 찾을 수 있습니다.
  • Sahara UX 개선 -- 클러스터 생성 가이드 및 job 생성 페이지 가이드 페이지 추가화 더불어 Sahara 사용자 경험이 크게 향상되었습니다.
  • 인스턴스 위자드 (beta) 출시 -- 인스턴스 워크 플로워에대한 전체 교체는 기존 인스턴스 워크 플로워의 사용성 문제를 해결 하기 위해 AngularJS를 이용하여 구현되었습니다. 그렇기에 늦게 추가되었고 제한된 테스트로 Kilo에 beta로 포기되어 포함되었으며 기본은 비활성화 상태입니다. 새로운 워크 플로워를 사용하기 위해선, local_settings.py를 변경해야됩니다: LAUNCH_INSTANCE_NG_ENABLED = True. 또한 기존 인스턴스 위자드 런처를 비활성화 해야합니다: LAUNCH_INSTANCE_LEGACY_ENABLED = False. 이 작업은 Horizon의 새로운 개발에대한 내용입니다.
  • Nova
    • 하이퍼바이저에 대한 서비스 disable/enable 허용
    • 호스트로부터 모든 인스턴스 마이그레이션
    • 시리얼 콘솔 노출
  • Cinder
    • 디폴트로 Cinder v2 사용
    • 관리/비관리 볼륨 지원 -- admin이 cinder에 의해 관리되지 않는 볼륨 및 비관리 볼륨을 관리하도록 허용합니다.
    • 프로젝트 간 볼륨 전송 지원
    • 볼륨 암호화 메타데이터 지원
  • Glance
    • Glance 메타데이터 정의를 관리자가 보기/추가/수정 가능하도록 허용하는 뷰가 추가되었습니다.
  • Heat
    • 스택 템플릿 뷰
    • 오케스트레이션 자원 패널
    • 스택에 대한 액션 중지/지속
    • 스택에 대한 미리보기 뷰를 통해 사용자들이 생성하기 전 템플릿에 명시된 스택을 미리볼 수 있습니다.
  • Trove
    • Trove 인스턴스 리사이징 -- 인스턴스 flavor 변경
  • Ceilometer
    • Ceilometer로부터 IPMI 미터 값 디스플레이
  • Horizon에서의 새로운 재사용 가능한 AngularJS 위젯:
    • AngularJS 테이블 구현
      • Table 그리기 -- 확장가능한 테이블 내용
      • 개선된 클라이언트/서버 검색
    • 테이블 위젯 전송
  • Horizon 웹 루트를 단지 '/'만 놓이도록 구성 가능

알려진 이슈

업그레이드 노트

  • Django 1.7을 이제 지원합니다.


OpenStack Identity (Keystone)

새로운 주요 기능

계층화된 멀티테넌시

Projects can be nested under other projects by setting the parent_id attribute to an existing project when creating a new project. You can also discovery the parent-child hierarchy through the existing /v3/projects API.

Role 할당이 이제 usersgroups 모두 프로젝트 계층 내 서브트리로 할당 가능합니다.

이 기능은 보다 유용하게 되기 위해서는 (계층적 quota와 같은) 다른 OpenStack 서비스들에 걸친 상응하는 지원을 필요로할 것입니다.

Fernet tokens

Unlike UUID tokens which must be persisted to a database, Fernet tokens are entirely non-persistent. Deployers can enable the Fernet token provider using [token] provider = keystone.token.providers.fernet.Provider in keystone.conf.

Fernet tokens require symmetric encryption keys which can be established using keystone-manage fernet_setup and periodically rotated using keystone-manage fernet_rotate. These keys must be shared by all Keystone nodes in a multi-node (or multi-region) deployment, such that tokens generated by one node can be immediately validated against another.

Identity 페더레이션

  • Keystone can now act as a federated identity provider (IdP) for another instance of Keystone by issuing SAML assertions for local users, which may be ECP-wrapped.
  • Added support for OpenID Connect as a federated identity authentication mechanism.
  • Added the ability to associate many "Remote IDs" to a single identity provider in Keystone. This will help in a case where many identity providers use a common mapping.
  • Added the ability for a user to authenticate via a web browser with an existing IdP, through a Single Sign-On page.
  • Federated tokens now use the token authentication method, although both mapped and saml2 remain available.
  • Federated users may now be mapped to existing local identities.
  • Groups specified in the mapping rulesets can be identified by name and domain.
  • Groups appearing in federated identity assertions may now be automatically mapped as locally existing groups with local user membership mappings (filtered by white and blacklists).

LDAP

  • Filter parameters specified by API users are now processed by LDAP itself, instead of by Keystone.
  • Experimental support was added to store domain-specific identity backend configuration in SQL using the HTTP API. The primary use case for this is to create a new domain with the HTTP API, and then immediately configure a domain-specific LDAP driver for it without restarting Keystone.

Authorization

  • The "assignment" backend has been split into a "resource" backend (containing domains, projects, and roles) and an "assignment" backend, containing the authorization mapping model.
  • Added support for trust redelegation. If allowed when the trust is initially created, a trustee can redelegate the roles from the trust via another trust.
  • Added support for explicitly requesting an unscoped token from Keystone, even if the user has a default_project_id attribute set.
  • Deployers may now opt into disallowing the re-scoping of scoped tokens by setting [token] allow_rescope_scoped_token = false in keystone.conf.


업그레이드 노트

  • XML support in Keystone has been removed as of Kilo. When upgrading from Juno to Kilo, it is recommended that references to XML and XmlBodyMiddleware be removed from the Keystone Paste configuration. This includes removing the XML middleware filters and the references from the public_api, admin_api, api_v3, public_version_api, admin_version_api and any other pipelines that may contain the XML filters.
  • All previous extensions (OS-FEDERATION, OS-OAUTH1, OS-ENDPOINT-POLICY and OS-EP-FILTER) are now enabled by default, and are correspondingly marked as either "experimental" or "stable".
  • SQL Schema Downgrades are no longer supported. This change is the result of evaluation that downward SQL migrations are not well tested and become increasingly difficult to support with the volume of data-change that occurs in many of the migrations.
  • The following python libraries are now required: cryptography, msgpack-python, pysaml2 and oauthlib.
  • keystone.middleware.RequestBodySizeLimiter is now deprecated in favor of oslo_middleware.sizelimit.RequestBodySizeLimiter and will be removed in Liberty.
  • Eventlet-specific configuration options such as public_bind_host, bind_host, admin_bind_host, admin_port, public_port, public_workers, admin_workers, tcp_keepalive, tcp_keepidle have been moved from the [DEFAULT] configuration section to a new configuration section called [eventlet_server]. Similarly, Eventlet-specific SSL configuration options such as enable, certfile, keyfile, ca_certs, cert_required have been moved from the [ssl] configuration section to a new configuration section called [eventlet_server_ssl].
  • keystone.token.backends.sql has been removed in favor of keystone.token.persistence.backends.sql.
  • keystone.token.backends.kvs has been removed in favor of keystone.token.persistence.backends.kvs.
  • keystone.token.backends.memcache has been removed in favor of keystone.token.persistence.backends.memcache.
  • keystone.assignment.backends.kvs has been removed in favor of keystone.assignment.backends.sql.
  • keystone.identity.backends.kvs has been removed in favor of keystone.identity.backends.sql.
  • keystone.contrib.stats.core.StatsMiddleware has been removed in favor of external tooling.
  • keystone.catalog.backends.templated.TemplatedCatalog has been removed in favor of keystone.catalog.backends.templated.Catalog.
  • keystone.contrib.access.core.AccessLogMiddleware has been removed in favor of external access logging.
  • keystone.trust.backends.kvs has been removed in favor of keystone.trust.backends.sql.
  • [catalog] endpoint_substitution_whitelist has been removed from keystone.conf as part of a related security hardening effort.
  • [signing] token_format has been removed from keystone.conf in favor of [token] provider.

OpenStack Network Service (Neutron)

새로운 주요 기능

  • DVR이 이제 VXLAN/GRE 뿐만 아니라 VLAN도 지원합니다.
  • ML2 계층화된 포트 바인딩
  • 새로운 LBaaS 버전 2 API
  • OVS ML2 드라이버를 위한 Portsecurity 지원
  • Kilo에서 지원되는 새로운 플러그인들은 다음을 포함합니다:
    • A10 Networks LBaaS V2 드라이버
    • Brocade LBaaS V2 드라이버
    • MLX 및 ICX 스위치를 위한 Brocade ML2 드라이버
    • MLX 스위치를 위한 Brocade L3 라우팅 플러그인
    • Brocade Vyatta vRouter L3 플러그인
    • Brocade Vyatta vRouter Firewall 드라이버
    • Brocade Vyatta vRouter VPN 드라이버
    • Cisco CSR VPNaaS 드라이버
    • Dragonflow SDN 기반 분산 가상 라우터 L3 플러그인
    • Freescale FWaaS 드라이버
    • Intel Mcafee NGFW FWaaS 드라이버
    • IPSEC Strongswan VPNaaS 드라이버

알려진 이슈

  • The Firewall-as-a-Service project is still marked as experimental for the Kilo release.
  • Bug 1438819
    • When a new subnet is created on an external network, all existing routers with gateways on the network will get a new address allocated from it. For IPv4 networks, this could consume the entire subnet for router gateway ports.

업그레이드 노트

Havana부터, Neutron은 더 이상 명시된 lease 데이터베이스를 지원하지 않습니다 (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

After advanced services were split into separate packages and received their own service configuration files (specifically, etc/neutron/neutron_lbaas.conf, etc/neutron/neutron_fwaas.conf and etc/neutron/neutron_vpnaas.conf), active service provider configuration can be different after upgrade (specifically, default load balancer (haproxy) and vpn (openswan) providers can be enabled for you even though you previously disabled them in neutron.conf). Please make sure you review configuration after upgrade so that it reflects the desired state of service providers.

Note: this will have no effect if the related service plugin is not loaded in neutron.conf.


그 외 노트 (Deprecation/EOL 등)

  • Deprecation
    • Brocade Monolithic plugin for Brocade's VDX/VCS series of hardware switches will be deprecated in the L-Release. The functionality provided by this plugin is now addressed by the ML2 Driver available for the VDX series of hardware. The plugin is slated for removal after this release cycle.
    • The monolithic Cisco Meta plugin for Nexus1000V will be deprecated in the L-Release. The functionality provided by this plugin is now available with the Cisco Nexus1000V ML2 mechanism driver. The monolithic plugin is slated for removal after this release cycle.

OpenStack Block Storage (Cinder)

새로운 주요 기능

  • From this point forward any new database schema upgrades will not require restarting Cinder services right away. The services are now independent of schema upgrades. This is part one to Cinder supporting rolling upgrades!
  • Ability to add/remove volumes from an existing consistency group. Read docs for more info.
  • Ability to create a consistency group from an existing consistency group snapshot. Read docs for more info.
  • Create more fine tuned filters/weighers to set how the scheduler will choose a volume backend. Read the docs for more info.
  • Encrypted volumes can now be backed up using the Cinder backup service. Read the docs for more info.
  • Ability to create private volume types. This is perfect when you want to make volume types available to only a specific tenant or to test it before making available to your cloud. To do so use the cinder type-create <name> --is-public.
  • Oversubscription with thin provision is configurable. Read docs for more info.
  • Ability to add descriptions to volume types. To do so use cinder type-create <name> <description>
  • Cinder now can return multiple iSCSI paths information so that the connector can attach volumes even when the primary path is down (when connector's multipath feature is enabled or not enabled).

업그레이드 노트

  • The 'host' config option for multiple-storage backends in cinder.conf is renamed to 'backend_host' in order to avoid a naming conflict with the 'host' to locate redis. If you use this option, please ensure your configuration files are updated.


OpenStack Telemetry (Ceilometer)

새로운 주요 기능

  • Support to add jitter to polling cycles to ensure pollsters are not querying service's api at the same time
  • Ceilometer API RBAC support
  • Improved Event support:
    • Multi-pipeline support to enable unique processing and publishing of events
    • Enabled ability to capture raw notification messages for auditing and postmortem analysis
    • Support for persisting events into ElasticSearch
    • Publishing support to database, http, file, kafka and oslo.messaging supported message queues
    • Option to split off the events persistence into a separate database
    • Telemetry now supports to collect and store all the event type meters as events. A new option, disable_non_metric_meters, was added to the configuration in order to provide the possibility to turn off storing these events as samples. For further information please see the Telemetry Configuration Reference
    • The Administrator Guide in OpenStack Manuals was updated with a new Events section, where you can find further information about this functionality.
  • Improved pipeline publishing support:
    • Support to publish events and samples to Kafka or HTTP targets
    • Publish data to multiple queues
  • Additional meters
    • memory and disk meters for Hyper-V
    • disk meters for LibVirt
    • power and thermal related IPMI meters, more meters from NodeManager
    • ability to meter Ceph
  • IPv6 support enabled in Ceilometer udp publisher and collector
  • Gnocchi dispatch support for ceilometer-collector
  • Self-disabled pollster mechanism


업그레이드 노트

  • Deprecated meters:
    • The instance:<flavor> meter is deprecated in the Kilo release. In order to retrieve samples or statistics based on flavor you can use the following queries:
  statistics:
  ceilometer statistics -m instance -g resource_metadata.instance_type
  samples:
  ceilometer sample-list -m instance -q metadata.instance_type=<value>


OpenStack Orchestration (Heat)

새로운 주요 기능

업그레이드 노트

  • The default of the configuration option "num_engine_workers" has changed from 1 to a number based on the the number of CPUs. This is now the same as the way other projects set the number of workers.
  • The default for the configuration option "max_nested_stack_depth" has been increased to 5.
  • There is a new configuration option "convergence" it is by default off. This feature is not yet complete and this option should remain off.
  • In preparation of an upcoming major feature (convergence) there have been some significant DB schema changes. It is suggested that the heat-engine is shutdown during schema upgrades.

그 외 노트 (Deprecation/EOL 등)

Deprecation

  • OS::Heat::HARestarter 와 OS::Heat::CWLiteAlarm 자원들이 deprecated 됩니다.
  • The CloudWatch API (heat-api-cw)


OpenStack Database service (Trove)

새로운 주요 기능

  • Support for a new replication strategy based on async GTID replication (new in MySQL 5.6)
    • We now support for creating n-replicas from a single master in one API call
    • We also support for failover from an unresponsive master to the most up-to-date slave can now be achieved using the new 'eject-master' API
  • Support for Trove guest managers to support the following new datastores:
    • Vertica, and Vertica Cluster
    • DB2
    • CouchDB
  • Extended current management API layer :
    • We now have a new management API to support listing and viewing deleted trove instances
    • We also added a new management API to ping a datastore guestagent via the RPC mechanism
  • Horizon updates to support resize of Trove instances.
  • Users now have the ability to edit/update the names of Trove instances
  • Integration with the cross-project OpenStack profiling library (OSProfiler)

업그레이드 노트

  • We migrated from deprecated oslo-incubator messaging code to the official oslo.messaging python module. Please look at git.openstack.org/cgit/openstack/trove/tree/etc/trove/trove.conf.sample#n18 for more details on the changed config values that were added to support this, (Change)
  • Datastores and strategies that are not currently being tested by any CI have been moved into an 'experimental' section in their respective modules. Once these datastores and strategies have appropriate tests exercising and gating against them in CI, they will be graduated to 'stable'.
  • Added new documentation to help with the process of building trove guest images for different datastores at http://docs.openstack.org/developer/trove/dev/building_guest_images.html


OpenStack Data Processing (Sahara)

새로운 주요 기능

  • New plugins, their features and versions:
    • MAPR
    • Apache Storm
    • Apache Hadoop 2.6.0 was added, Apache Hadoop 2.4.1 deprecated
    • New services for CDH plugin added up to HDFS, YARN, Spark, Oozie, HBase, ZooKeeper and other services
  • Added indirect VM access for better utilization of floating IPs
  • Added event log support to have detailed info about provisioning progress
  • Optional default node group and cluster templates per plugin
  • Horizon updates:
    • Guided cluster creation and job execution
    • Filtering on search for objects
  • Editing of Node Group templates and Cluster templates implemented
  • Added Shell Job Type for clusters running Oozie
  • New Job Types endpoint to query list of the supported Job Types


업그레이드 노트

세부 내용: http://docs.openstack.org/developer/sahara/userdoc/upgrade.guide.html#juno-kilo

  • Sahara는 이제 policy.json 구성 파일을 필요로합니다.


OpenStack Bare Metal service (Ironic)

새로운 주요 기능

State Machine

Ironic now uses a formal model for the logical state of each node it manages.[1] This has enabled the addition of two new processes: cleaning and inspection.

  • Automatic disk erasure between tenants is now enabled by default. This may be extended to perform additional cleaning steps, such as re-applying firmware, resetting BIOS settings, etc.[2]
  • Both in-band and out-of-band methods are available to inspect hardware. These methods may be used to update Node properties automatically.[3]

버전 헤더

The Ironic REST API expects a new X-OpenStack-Ironic-API-Version header be passed with each HTTP[S] request. This header allows client and server to negotiate a mutually supported interface.[4] In the absence of this header, the REST service will default to a compatibility mode and yield responses compatible with Juno clients. This mode, however, prevents access to most features introduced in Kilo.

하드웨어 드라이버 변경사항

다음 새로운 드라이버들이 추가되었습니다:


The following enhancements were made to existing drivers:


Support for third-party and out-of-tree drivers is enhanced by the following two changes:

  • Drivers may store their own "internal" information about Nodes.
  • Drivers may register their own periodic tasks to be run by the Conductor.
  • vendor_passthru methods now support additional HTTP methods (eg, PUT and POST).
  • vendor_passthru methods are now discoverable in the REST API. See node vendor passthru and driver vendor passthru

기타 변화 사항

  • Logical names may be used to address Nodes, in addition to their canonical UUID.
  • For servers with varied local disks, hints may be supplied that affect which disk device the OS is provisioned to.
  • Support for fetching kernel, ramdisk, and instance images from HTTP[S] sources directly has been added to remove the dependency on Glance. Using ironic as a standalone service
  • Nodes may be placed into maintenance mode via REST API calls. An optional maintenance reason may be specified when doing so.

알려진 이슈

  • Running more than one nova-compute process is not officially supported.
    • While Ironic does include a ClusteredComputeManager, which allows running more than one nova-compute process with Ironic, it should be considered experimental and has many known problems.
  • Drivers using the "agent" deploy mechanism do not support "rebuild --preserve-ephemeral"

업그레이드 노트

  • IPMI Passwords are now obfuscated in REST API responses. This may be disabled by changing API policy settings.
  • The "agent" class of drivers now support both whole-disk and partition based images.
  • The driver_info parameters of "pxe_deploy_kernel" and "pxe_deploy_ramdisk" are deprecated in favour of "deploy_kernel" and "deploy_ramdisk".
  • Drivers implementing their own version of the vendor_passthru() method has been deprecated in favour of the new @passthru decorator.

Juno에서 Kilo로

권장하는 업그레이드 과정이 여기에 문서화되어 있습니다:

Icehouse "nova-baremetal"로부터의 업그레이드

"baremetal" 드라이버를 사용한 Icehouse Nova 설치로부터 직접 Kilo Ironic으로의 업그레이트는 테스트되지 않았으며 미지원합니다. 대신, 다음 업그레이드 경로를 따르십시오:

  1. Icehouse Nova "baremetal" -> Juno Nova "baremetal"
  2. Juno Nova "baremetal" -> Juno Ironic
  3. Juno Ironic -> Kilo Ironic

단계 1 및 2에 대한 문서를 확인 가능합니다: https://wiki.openstack.org/wiki/Ironic/NovaBaremetalIronicMigration


OpenStack Documentation

  • [1]New Ironic State Machine
  • [2]Node Cleaning
  • [3]Hardware Inspection
  • [4]REST API "micro" versions