Jump to: navigation, search

ReleaseNotes/Kilo

Revision as of 11:33, 16 June 2015 by DewPoint (talk | contribs)
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)

새로운 주요 기능

계층화된 multitenancy

프로젝트새로운 프로젝트를 생성할 때 기존 프로젝트에 parent_id 속성을 설정하여 다른 프로젝트와 중첩하여 구성할 수 있습니다. /v3/projects API를 통하여 부모-자식 계층을제시할 수 있습니다.

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

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

Fernet 토큰

데이터베이스에서 유지해야하는 UUID 토큰과는 달리, Fernet 토큰은 비 영구적으로 사용할 수 있습니다. 배포자는 keystone.conf에서 [token] provider = keystone.token.providers.fernet.Provider를 사용하여 Fernet 토큰 제공자를 활성화할 수 있습니다.

Fernet token는 대칭 암호화 키가 필요합니다. keystone-manage fornet_setup를 사용하여 설정할 수 있으며, keystone-manage fernet_rotate를 사용하여 일정 기간동안 매번 확인합니다. 이러한 키는 다중 노드(또는 다중 region) 배포시 모든 Keystone 노드에서 공유됩니다. 그리고 한 노드에 의해 생성된 토큰이 즉시 다른 검증이 가능합니다.

Identity 페더레이션

  • Keystone이 이제 다른 Keystone 인스턴스에 로컬 사용자 SAML assertion을 발행하여 페더레이션된 인증 제공자 (IdP)로 동작 가능합니다. (ECP-wrapped 가능)
  • 페더레이션된 identity 인증 방식으로 OpenID 연결 지원이 추가되었습니다.
  • Keystone에서 단일 인증 제공을 위해 많은 "Remote ID"를 연관이 추가되었습니다.. 이는 많은 인증 제공자가 공통 매핑을 사용하는 경우 유용합니다.
  • 싱글 사인-온 페이지를 통해 기존 IdP에 웹 브라우저를 통한 사용자 인증 기능이 추가되었습니다.
  • 페더레이션 토큰이 이제 token 방식을 사용합니다. mappedsaml2도 계속 사용 가능합니다.
  • 페러레이션 사용자가 기존 로컬 identity에 매핑 가능합니다.
  • 매핑 ruleset에 지정된 그룹을 이름과 도메인을 통해 파악 가능합니다.
  • 페더레이션 인증 assertion 내 보이는 그룹은 이제 기존 로컬에 존재하던 그룹을 로컬 사용자 멤버쉽 매핑을 통해 자동으로 매핑 가능합니다. (화이트리스트 및 블랙리스트로 필터링)

LDAP

  • API 사용자에 의해 지정된 필터 매개변수가 Keystone 대신 이제 LDAP 스스로 처리됩니다.
  • HTTP API를 사용하여 도메인 고유의 인증 백엔드 SQL 구성를 HTTP API를 사용하여 저장하는 지원이 실험적으로 추가되었습니다. 이에 대한 주 사용 사례로는 새로운 도메인을 HTTP API를 통해 생성하고, Keystone을 재시작하지 않고 즉시 도메인 고유 LDAP 드라이버를 구성하는 것입니다.

인증

  • "assignment" 백엔드가 "resource" 백엔드 (도메인, 프로젝트, role 포함)와 권한 매핑 모델을 포함하는 "assignment" 백엔드로 분리되었습니다.
  • 트러스트 재위임에 대한 지원이 추가되었습니다. 트러스트가 초기 생성될 때 허용되면, 트러스트 대상은 다른 트러스트를 통해 해당 트러스트로부터 role을 재위임할 수 있습니다.
  • 사용자가 default_project_id 속성이 설정되어 있어도, Keystone으로부터 범위에 해당하지 않는 토큰을 명시적으로 요청할 수 있도록 하는 지원이 추가되었습니다.
  • 배포자는 이제 keystone.conf[token] allow_rescope_scoped_token = false를 설정하여 범위 내 토큰에 대한 재범위 지정을 허용하지 않도록 할 수 있습니다.


업그레이드 노트

  • Keystone에서의 XML 지원이 Kilo에서 제거되었습니다. Juno에서 Kilo로 업그레이드시 Keystone Paste configuration에서 XML과 XmlBodyMiddleware를 제거할 것을 권장합니다. 이는 XML 미들웨어 필터 및 XML 필터를 포함할 수 있는 public_api, admin_api, api_v3, public_version_api, admin_version_api 및 다른 파이프라인으로부터의 레퍼런스에 대한 제거를 포함합니다.
  • 모든 이전 확장 (OS-FEDERATION, OS-OAUTH1, OS-ENDPOINT-POLICY 및 OS-EP-FILTER)이 디폴트로 활성화되고, "experimental" 또는 "stable"로 상응하여 표기되었습니다.
  • SQL 스키마 다운그레이드가 더 이상 지원되지 않습니다. 이 변경은 SQL 마이그레이션 다운그레이드가 충분히 테스트되지 않으며 많은 마이그레이션에서 발생하는 데이터 변경량에 대응하기 점차 어려워진다는 평가 결과에 의한 것입니다.
  • 다음 python 라이브러리들은 이제 필수 요소입니다: cryptography, msgpack-python, pysaml2 and oauthlib.
  • oslo_middleware.sizelimit.RequestBodySizeLimiter 사용으로 keystone.middleware.RequestBodySizeLimiter가 이제 deprecated되고 Liberty에서 제거 예정입니다.
  • public_bind_host, bind_host, admin_bind_host, admin_port, public_port, public_workers, admin_workers, tcp_keepalive, tcp_keepidle과 같이 Eventlet에 특화된 구성 옵션이 [DEFAULT] 구성 섹션에서 [eventlet_server]라는 새로운 구성 섹션으로 이동되었습니다. 비슷한 방식으로, enable, certfile, keyfile, ca_certs, cert_required과 같은 Eventlet에 특화된 SSL 구성 옵션이 [ssl] 구성 섹션에서 [eventlet_server_ssl]로 이동되었습니다.
  • keystone.token.persistence.backends.sql로 인해 keystone.token.backends.sql이 제거되었습니다.
  • keystone.token.persistence.backends.kvs로 인해 keystone.token.backends.kvs가 제거되었습니다.
  • keystone.token.persistence.backends.memcache로 인해 keystone.token.backends.memcache 가 제거되었습니다.
  • keystone.assignment.backends.sql로 인해 keystone.assignment.backends.kvs가 제거되었습니다.
  • keystone.identity.backends.sql로 인해 keystone.identity.backends.kvs가 제거되었습니다.
  • 외부 도구 사용으로 인해 keystone.contrib.stats.core.StatsMiddleware가 제거되었습니다.
  • keystone.catalog.backends.templated.Catalog로 인해 keystone.catalog.backends.templated.TemplatedCatalog가 제거되었습니다.
  • 외부 액세스 로깅으로 인해 keystone.contrib.access.core.AccessLogMiddleware가 제거되었습니다.
  • keystone.trust.backends.sql로 인해 keystone.trust.backends.kvs가 제거되었습니다.
  • 관련된 보안 강화 노력의 일부분으로 keystone.conf[catalog] endpoint_substitution_whitelist가 제거되었습니다.
  • [token] provider로 인해 [signing] token_formatkeystone.conf에서 제거되었습니다.

OpenStack Network Service (Neutron)

새로운 주요 기능

  • Subnet allocation 시 주소정보를 직접 작성하지 않고 미리 정의된 주소pool로부터 subnet을 생성할 수 있습니다.
    • python-neutron-client에서 (관련기능) 지원(subnetpool-create/update/list/show/delete and subnet-create --subnetpool)
    • API 문서 작업 중
    • Horizon지원상황은 neutron-subnet-allocation blueprint에서 확인
  • DVR이 이제 VXLAN/GRE 뿐만 아니라 VLAN도 지원합니다.
  • ML2 계층화된 포트 바인딩
  • 새로운 LBaaS 버전 2 API
  • OVS ML2 드라이버를 위한 Portsecurity 지원
  • IPv6 다중 Prefixes (tenant guest interface에 복수의 IPv6 주소를 할당할 수 있습니다.)
  • IPv6 Router (guest들이 global IPv6주소를 할당받고 NAT지원없이 Internet에 접속할 수 있습니다.)
  • MTU (크기) 선택, (선택된 MTU 크기에 대해 guest OS)에 알리기 위한 API추가
  • NFV를 위한 VLAN trunking network 지원여부 확인 API 추가
  • 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 드라이버

알려진 이슈

  • Firewall-as-a-Service 프로젝트는 Kilo 릴리즈에서도 experimental로 표기됩니다.
  • 1438819 버그
    • 새로운 서브넷이 외부접속network에 생성될 때, 네트워크 게이트웨이의 모든 라우터들은 생성된 서브넷으로부터 새로운 주소를 할당 받습니다. IPv4 네트워크의 경우에, 이것은 전체 서브넷이 라우터 게이트웨이 포트들에 의해 소모되는 (문제를) 발생시킬 수 있습니다.

업그레이드 노트

Neutron은 Havana부터 (DHCP) lease (time) 데이터베이스를 지원하지 않았습니다 (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, etc/neutron/neutron_vpnaas.conf)들에 영향을 미치게 되어, 업그레이드 후에는 유효한 서비스 제공자 구성이 바뀔 수도 있습니다. (특히, 디폴트 로드 밸런서 (haproxy)와 vpn (openswan) 제공자들은 neutron.conf에서 이전에 비활성화하더라도 활성화될 수 있습니다.) 업그레이드 후에 구성을 서비스 제공자에 대한 원하는 상태로 반영되었는지를 확인하시기 바랍니다.

참고: neutron.conf 중에서 관련 서비스 플러그인이 로드되지 않은 경우에는 영향을 미치지 않습니다.


  • api_workers 기본값이 이제 호스트 내 CPU 개수와 일치합니다. 만일 현재 디폴트 값을 사용하는 경우, api_workers 값이 설치된 환경에 적절한 숫자로 설정되어 있는지 확인하십시오. (https://review.openstack.org/#/c/140493/)
  • neutron.allow_duplicate_networks 구성 옵션은 Kilo에서 deprecated되어 Liberty에서 제거되어, 디폴트 동작은 Neutron에서 동일 네트워크에 있는 인스턴스에 연결된 여러 포트를 단지 허용할 예정입니다. (https://review.openstack.org/163581)
  • linuxbridge 에이전트가 이제 디폴트로 VXLAN을 활성화합니다. (https://review.openstack.org/160826)
  • neutron-ns-metadata-proxy가 이제 non-root 권한으로 실행됩니다. (https://review.openstack.org/147437)

그 외 노트 (Deprecation/EOL 등)

  • Deprecation (비추천/폐지 예정)
    • Brocade VDX / VCS 시리즈에 해당하는 하드웨어 스위치에 대한 Brocade Monolithic 플러그인이 Liberty에서 deprecated 예정입니다. 이 플러그인으로 제공되는 기능은 현재 VDX 시리즈 하드웨어에 대한 사용 가능한 ML2 드라이버에 초점을 주고 있습니다. 해당 플러그인은 Liberty 출시 사이클 후에 제거 예정에 있습니다.
    • Nexus1000V에 대한 monolithic Cisco 메타 플러그인이 Liberty에서 deprecated 예정입니다. 이 플러그인으로 제공되던 기능은 현재 Nexus1000V ML2 메커니즘 드라이버로 사용 가능합니다. monolithic 플러그인은 Liberty 출시 사이클 후에 제거 예정에 있습니다.

OpenStack Block Storage (Cinder)

새로운 주요 기능

  • 이번 릴리즈부터 계속해서 임의의 새로운 데이터베이스 스키마 업그레이드시 Cinder 서비스에 대한 즉각적인 재시작을 필요로하지 않을 것입니다. 해당 서비스가 이제 스키마 업그레이드와 독립적입니다. 이는 Cinder에 대해 롤링 업그레이드를 지원하는 것에 대한 일환입니다!
  • 기존 일관성 그룹으로부터 볼륨 추가/제거가 가능하게 되었습니다 자세한 정보에 대한 문서 읽기.
  • 기존 일관성 그룹 스냅샷에서 새 일관성 그룹을 만들 수 있게 되었습니다 자세한 정보에 대한 문서 읽기.
  • 스케줄러가 볼륨 백엔드를 어떻게 선택하는지를 설정하기 위해 보다 상세히 조정할 수 있는 필터/웨이터를 생성할 수 있습니다 자세한 정보에 대한 문서 읽기.
  • Cinder 백업 서비스를 사용하여 암호화된 볼륨 백업이 이제 가능합니다 자세한 정보에 대한 문서 읽기.
  • 개인 볼륨 유형을 생성할 수 있습니다. 이는 특정 tenant만 사용 가능한 볼륨 유형을 만들거나 새로운 볼륨 유형을 클라우드에서 사용하기 전에 테스트하기 위한 용도에 최적입니다. 이를 위해서는 cinder type-create <name> --is-public을 사용합니다.
  • 씬-프로비저닝에 대한 오버-서브스크립션을 구성 가능합니다 자세한 정보에 대한 문서 읽기.
  • 볼륨 유형에 대한 설명을 추가할 수 있습니다. 이를 위해서는 cinder type-create <name> <description>을 사용합니다.
  • Cinder가 이제 여러 iSCSI 경로 정보를 반환하여 iSCSI 커넥터가 첫 번째 경로가 다운된 경우에도 연결할 수 있습니다. (커넥터 다중 경로 기능을 사용하는 경우 또는 not 사용하지 않는 경우)
  • 로컬 lvm.conf 파일을 지정할 수 있습니다. LVM 드라이버를 사용하는 경우 이 옵션은 /etc/cinder/lvm.conf에서 Cinder 전용 lvm.conf 파일을 설정할 수 있습니다. 이를 통해 Cinder에서 사용하는 경우에만 선택되는 특정 LVM 설정과 필터를 활성화합니다.
  • Cinder 백업 서비스가 이제 NFS로 내보낸 파일시스템으로 백업할 수 있습니다 자세한 정보에 대한 문서 읽기.

업그레이드 노트

  • redis 위치를 지정하는 'host'라는 이름 충돌을 피하기 위해 cinder.conf에서 다중 스토리지 백엔드를 위한 'host' 구성 옵션이 'backend_host'로 이름 변경되었습니다. 이 옵션을 사용하는 경우, 구성 파일이 업데이트되어 있는지 확인하십시오.


OpenStack Telemetry (Ceilometer)

새로운 주요 기능

  • pollster가 서비스 api를 동시에 쿼리하지 않도록 보장하기 위해 polling cycle에서의 jitter 추가를 지원합니다.
  • Ceilometer API RBAC 지원
  • 이벤트 지원 향상:
    • 이벤트에 대한 단일 처리 및 퍼블리싱을 활성화하기 위한 멀티 파이프라인 지원
    • 감사 및 사후 분석을 위한 raw 알림 메시지를 캡처하는 기능 활성화
    • ElasticSearch에 이벤트 저장 지원
    • 데이터베이스, http, file, kafka 및 oslo.messaging을 지원하는 메시지 큐에 발행 지원
    • 이벤트를 분할하여 각각 데이터베이스에 저장하는 옵션
    • Telemetry가 이제 모든 이벤트 유형 meter들을 이벤트로 수집 및 저장을 지원합니다. 새로운 옵션으로, disable_non_metric_meters가 추가되어 전체 이벤트 유형을 샘플로 저장하는 기능에 대해 끌 수 있도록 구성에서 제공합니다. 자세한 내용은 Telemetry 구성 레퍼런스를 참조하십시오.
    • 새로운 이벤트 섹션과 함께 OpenStack 매뉴얼 관리자 가이드가 업데이트되었습니다. 해당 기능에 대한 자세한 정보를 찾을 수 있습니다.
  • 개선된 파이프라인 발행 지원:
    • Kafka or HTTP 타겟에 이벤트 및 샘플 발행 지원
    • 데이터를 여러 큐에 발행
  • 추가된 meter
    • Hyper-V용 메모리 및 디스크 meter
    • LibVirt 용 디스크 meter
    • NodeManager에서의 전원, 온도 관련 IPMI meter, 다른 meter
    • Ceph meter 기능
  • Ceilometer에서 udp publisher 및 collector에 대한 IPv6 지원 활성화
  • ceilometer-collector를 위한 Gnocchi dispatch 지원
  • 자발적 비활성화가 가능한 pollster 메커니즘


업그레이드 노트

  • Deprecate된 meter:
    • instance:<flavor> meter가 Kilo 릴리즈에서 deprecated됩니다. flavor에 기반한 샘플 또는 통계를 가져오기 위해 다음 쿼리를 사용할 수 있습니다:
  statistics:
  ceilometer statistics -m instance -g resource_metadata.instance_type
  samples:
  ceilometer sample-list -m instance -q metadata.instance_type=<value>


OpenStack Orchestration (Heat)

새로운 주요 기능

업그레이드 노트

  • 디폴트 구성 옵션 "num_engine_workers"가 기존 1에서 CPU 개수에 기반한 개수로 변경되었습니다. 이는 다른 프로젝트들에서 worker 개수를 설정하는 것과 이제 같은 방식입니다.
  • "max_nested_stack_depth" 디폴트 구성 옵션이 5로 증가되었습니다.
  • 새로운 구성 옵션 "convergence"는 기본값이 off입니다. 해당 기능은 아직 불완전하여 이 옵션을 off 상태로 두어야 합니다.
  • 다가오는 주요 기능 (convergence) 준비로 DC 스키마에 대한 상당한 변화가 있습니다. 스키마 업그레이드 도중 heat-engine을 중단할 것을 권장합니다.

그 외 노트 (Deprecation/EOL 등)

Deprecation

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


OpenStack Database service (Trove)

새로운 주요 기능

  • 비동기 GTID 복제 (MySQL 5.6의 새로운 기능) 기반의 새로운 복제 방식에 대응
    • API 요청 하나에서 단일 마스터로부터의 여러 복제 생성을 이제 지원합니다.
    • 이제 새로운 'eject-master' API를 사용하여 응답하지 않는 마스터를 가장 최신의 슬레이브로의 장애 조치를 실현 가능하도록 지원합니다.
  • Trove 게스트 관리자에서 다음 새로운 데이터 저장소의 지원이 추가되었습니다:
    • Vertica, and Vertica Cluster
    • DB2
    • CouchDB
  • 확장된 현재 관리 API 계층 :
    • 삭제된 trove 인스턴스를 나열 및 보기를 지원하는 새로운 관리 API가 이제 있습니다.
    • RPM 메커니즘을 통해 데이터 저장소 게스트 에이전트에 ping을 수행하는 새로운 관리 API가 또한 추가되었습니다.
  • Trove 인스턴스 재조정 지원에 대한 Horizon 업데이트
  • 사용자가 Trove 인스턴스 이름을 수정/갱신 가능합니다.
  • OpenStack 프로젝트 공통 프로파일링 라이브러리 (OSProfiler)와 통합

업그레이드 노트

  • deprecated된 oslo-incubator 메시징 코드에서 공식 oslo.messaging python 모듈로 마이그레이션되었습니다. 이를 지원하기 위해 추가된 변경 (이력)된 구성 값들에 대한 자세한 사항은 git.openstack.org/cgit/openstack/trove/tree/etc/trove/trove.conf.sample#n18 에서 확인할 수 있습니다.
  • 임의의 CI에서 현재 테스트되지 않은 데이터저장소 및 방침들이 살펴보는 모듈에 해당하는 'experimental' 섹션으로 이동되었습니다. 데이터저장소와 방침들이 CI에서 적절한 테스트 실행 및 단계가 이루어지게 되면 'stable'로 졸업할 것입니다.
  • 다양한 데이터 저장소 Trove 게스트 이미지를 만드는 법을 설명하는 새로운 문서가 http://docs.openstack.org/developer/trove/dev/building_guest_images.html에 추가되었습니다.


OpenStack Data Processing (Sahara)

새로운 주요 기능

  • 새로운 플러그인, 기능 및 버전:
    • MAPR
    • Apache Storm
    • Apache Hadoop 2.6.0이 추가되어, Apache Hadoop 2.4.1은 deprecated되었습니다.
    • HDFS, YARN, Spark, Oozie, HBase, ZooKeeper 및 기타 서비스에 대응하는 CDH 플러그인을 위한 새로운 서비스
  • Floating IP 사용을 개선하는 간접적인 VM 액세스 추가
  • 프로비저닝 진행 상태에 관한 상세한 정보를 살펴보기 위한 이벤트 로그 지원 추가
  • 플러그인 단위의 옵션 디폴트 노드 그룹 및 클러스터 템플릿
  • Horizon 업데이트:
    • 가이드화된 클러스터 생성 및 job 실행
    • 객체 검색에서의 필터링
  • 노드 그룹 템플릿과 클러스터 템플릿 편집이 구현되었습니다.
  • Oozie를 실행하는 클러스터에 대한 Shell Job 유형 추가
  • 지원하는 Job 유형 목록을 질의하는 새로운 Job 유형 endpoint


업그레이드 노트

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

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


OpenStack Bare Metal service (Ironic)

새로운 주요 기능

상태 머신

Ironic은 이제 각 노드가 관리하는 논리 상태에 대한 형식 모델을 사용합니다 (새로운 Ironic 상태 머신). 이를 통해 2개의 새로운 프로세스가 추가되었습니다: cleaninginspection.

  • 테넌트 간 자동 디스크 삭제가 디폴트로 활성화됩니다. 이는 펌웨어 재적용, BIOS 설정 리셋 등과 같은 부가적인 cleaning 단계를 수행하도록 확장 가능합니다 (노드 클리닝).
  • in-band 및 out-of-band 메서드 모두 하드웨어 inspect에 사용 가능합니다. 해당 메서드들은 자동으로 Node 속성들을 갱신하는 데 사용 가능합니다 (하드웨어 검사).

버전 헤더

Ironic REST API는 각 HTTP[S] 요청에 전달되는 헤더가 새로운 X-OpenStack-Ironic-API-Version가 되도록 기대합니다. 해당 헤더를 통해 클라이언트 및 서버가 상호 지원되는 인터페이스를 확인할 수 있습니다 (REST API "마이크로" 버전). 해당 헤더가 없는 경우, REST 서비스는 디폴트로 호환성 모드로 동작하고 Juno 클라이언트들과 호환되는 응답을 반환합니다. 그러나, 이 모드에서는 Kilo에서 소개된 대부분의 기능에 액세스가 금지됩니다.

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

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


기존 드라이버에 다음과 같은 개선이 있었습니다:


서드파티 및 (소스) 트리 외부 드라이버에 대한 지원에 있어 다음 2가지 기능이 향상되었습니다:

  • 드라이버는 Node에 대한 자신의 "내부" 정보를 저장할 수 있습니다.
  • 드라이버는 Conductor에 의해 실행되는 자체 주기적인 작업들을 등록할 수 있습니다.
  • vendor_passthru 메서드가 이제 부가적인 HTTP 메서드 (예, PUT과 POST)를 지원합니다.
  • vendor_passthru 메서드를 이제 REST API에서 검색 가능합니다. node vendor passthrudriver vendor passthru를 참조하십시오.

기타 변화 사항

  • 표준 UUID 이외에 노드를 지정하는 데 있어 논리 이름을 사용할 수 있습니다.
  • 다양한 로컬 디스크가 포함된 서버에 대해, hints가 OS가 프로비저닝된 디스크 장치에 영향을 주도록 지정할 수 있습니다.
  • 커널, 램디스크 및 인스턴스 이미지를 HTTP[S] 소스로부터 직접 가져오는 지원이 추가되어 Glance와의 의존성을 제거하였습니다. ironic을 단일 서비스로 사용
  • Node를 REST API를 통해 유지관리 모드로 위치시킬 수 있습니다. 이 때, 옵션에 해당하는 유지관리 이유를 지정할 수 있습니다.

알려진 이슈

  • 1개 이상의 nova-compute 프로세스에 대한 실행은 공식적으로 지원하지 않습니다.
    • Ironic에 1개 이상의 nova-compute 프로세스를 Ironic과 함께 실행하게 도와주는 ClusteredComputeManager가 포함되어 있지만, expermental 상태로 간주되고 있으며 많은 알려진 문제점들이 있습니다.
  • "agent" 배포 메커니즘을 사용하는 드라이버들은 "rebuild --preserve-ephemeral"를 지원하지 않습니다.

업그레이드 노트

  • IPMI 암호는 REST API 응답에서 이제 난독화됩니다. 이는 API 정책 설정을 변경하여 비활성화 가능합니다.
  • "agent" 클래스에 해당하는 드라이버들은 이제 전체 디스크 및 파티션 기반 이미지들을 지원합니다.
  • "pxe_deploy_kernel" 및 "pxe_deploy_ramdisk"에 대한 driver_info 파라메터는 deprecated되어 "deploy_kernel" 및 "deploy_ramdisk"를 권장합니다.
  • vendor_passthru() 메서드의 자체 버전을 구현한 드라이버들은 deprecated되어 새로운 @passthru 데코레이터를 권장합니다.

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