2.4. 오버클라우드 패키지 업데이트
Overcloud는 표준 RPM 방법을 사용하여 환경을 업데이트합니다. 여기에는 director의 openstack overcloud 업데이트를 사용하여 모든 노드에서 업데이트를
수행해야 합니다.
-e
를 사용하여 오버클라우드와 관련된 환경 파일 및 업그레이드 경로를 포함합니다. 후속 환경 파일에 정의된 매개변수와 리소스가 우선하므로 환경 파일의 순서가 중요합니다. 다음 목록은 환경 파일 순서의 예입니다.
-
heat 템플릿 컬렉션의
overcloud-resource-registry-puppet.yaml
파일입니다.openstack overcloud deploy
명령을 실행할 때 이 파일이 자동으로 포함되어 있지만openstack overcloud update
명령을 실행할 때 이 파일을 포함해야 합니다. -
heat 템플릿 컬렉션의 초기화 파일(
environments/network-isolation.yaml
) 및 사용자 지정 NIC 구성 파일을 포함한 네트워크 분리 파일입니다. - 모든 외부 로드 밸런싱 환경 파일입니다.
- 모든 스토리지 환경 파일.
- Red Hat CDN 또는 Satellite 등록의 환경 파일
- 기타 사용자 지정 환경 파일
모든 노드에서 병렬로 업데이트를 실행하면 문제가 발생할 수 있습니다. 예를 들어 패키지를 업데이트하려면 다른 노드를 중단할 수 있는 서비스를 다시 시작해야 할 수 있습니다. 이로 인해 업데이트 프로세스에서 각 노드를 일련의 Cryostat를 사용하여 업데이트합니다. 즉, 노드가 하나씩 업데이트됩니다. 하나의 노드가 패키지 업데이트를 완료하면 업데이트 프로세스가 다음 노드로 이동합니다. 업데이트 프로세스에는 각 Cryostat에서 확인이 필요한 대화형 모드로 명령을 배치하는 -i
옵션도 필요합니다. -i
옵션이 없으면 업데이트는 첫 번째 Cryostat에서 일시 중지된 상태로 유지됩니다.
다음은 Overcloud를 업데이트하기 위한 예제 업데이트 명령입니다.
이 명령을 실행하면 업데이트 프로세스가 시작됩니다. 이 프로세스 중에 director는 IN_PROGRESS
상태를 보고하고 주기적으로 Cryostat를 삭제하라는 메시지를 표시합니다. 예를 들면 다음과 같습니다.
not_started: [u'overcloud-controller-0', u'overcloud-controller-1', u'overcloud-controller-2'] on_breakpoint: [u'overcloud-compute-0'] Breakpoint reached, continue? Regexp or Enter=proceed, no=cancel update, C-c=quit interactive mode:
not_started: [u'overcloud-controller-0', u'overcloud-controller-1', u'overcloud-controller-2']
on_breakpoint: [u'overcloud-compute-0']
Breakpoint reached, continue? Regexp or Enter=proceed, no=cancel update, C-c=quit interactive mode:
Enter를 눌러 on_breakpoint
목록의 마지막 노드에서 Cryostat를 지웁니다. 그러면 해당 노드의 업데이트가 시작됩니다. 노드 이름을 입력하여 특정 노드에서 Cryostat를 지우거나 Python 기반 정규식을 입력하여 한 번에 여러 노드에서 Cryostat를 지울 수도 있습니다. 그러나 한 번에 여러 컨트롤러 노드에서 Cryostat를 지우는 것은 권장되지 않습니다. 모든 노드가 업데이트를 완료할 때까지 이 프로세스를 계속합니다.
업데이트가 완료되면 update 명령은 COMPLETE
상태를 보고합니다.
컨트롤러 노드에 대한 펜싱을 구성한 경우 업데이트 프로세스에서 해당 노드를 비활성화할 수 있습니다. 업데이트 프로세스가 완료되면 컨트롤러 노드 중 하나에서 다음 명령을 사용하여 펜싱을 다시 활성화합니다.
sudo pcs property set stonith-enabled=true
$ sudo pcs property set stonith-enabled=true
업데이트 프로세스에서 오버클라우드의 노드를 자동으로 재부팅하지 않습니다. 필요한 경우 업데이트가 완료된 후 수동으로 재부팅을 수행합니다.