Fuel 8.x to 9.1 업그레이드

Oct 28, 2016



Introduction

Fuel로 배포된 Liberty/8.x 를 Mitaka/9.1 로 업그레이드한다. Master 및 Slave 노드 또한 업그레이드하여, 기존 서비스 및 데이터들을 유지한 채 Mitaka로 완전히 전환시킨다.

Fuel Master 업그레이드

Step 1. Fuel 8.x Backup

Fuel 설정 및 Repository 팩키지들을 백업한 뒤 별도의 장비에 위치시킨다.

# fuel-octane 팩키지 설치
yum install fuel-octane

# Fuel 설정 백업 - 200MB 내 여유 공간 필요
octane fuel-backup --to /var/backup/fuel8-backup.tar.gz

# Repository 팩키지 백업 - 3GB+@ 여유 공간 필요
octane fuel-repo-backup --full --to /var/backup/fuel8-repo-backup.tar.gz

# 백업 파일을 별도의 장비로 이동
scp /var/backup/fuel8-backup.tar.gz /var/backup/fuel8-repo-backup.tar.gz <REMOTE_HOST>

Step 2. Fuel 9.1로 재설치

기존 Fuel Master 노드를 Fuel 9.0 ISO 파일을 이용하여 재설치한다. (현재 9.1을 바로 설치할 수는 없다) 이 때 fuelmenu에서 IP 및 패스워드 등 기존과 동일한 설정으로 설치한다. 설치 도중에는 Fuel을 통한 Slave 노드 접속이 불가능하므로 따로 Slave 노드에 접속할 수 있는 수단을 마련해두는 것이 좋다.

Fuel 8.x가 설치되어있는 상태에서 Fuel 9.0 설치시 부트로더 설치에 실패할 수 있다. 이 때는 다음과 같이 모든 디스크의 MBR 및 GPT 파티션 테이블을 날려버린 뒤 설치를 진행한다.

dd if=/dev/zero of=/dev/sda bs=512 count=34

이 후 아래와 같이 9.1로 업그레이드한다.

# YUM 캐쉬 클린
yum clean all

# python-cudet (code-based integrity check tool) 설치
yum install python-cudet

# nailgun 및 astute 팩키지 업데이트 + dbsync + 재시작
update-prepare prepare master

# YUM 팩키지, 서비스, 설정 업데이트
update-prepare update master

Step 3. 이전 Fuel 8.x 설정 복원

백업해둔 Fuel 8.x 데이터를 가져와서 복구한다. 복구라기보다는 Fuel 9.1에 Fuel 8.x 환경을 추가하는 것에 가깝다.

# fuel-octane 팩키지 설치
yum install fuel-octane

# 백업해둔 데이터 가져오기
scp <REMOTE_HOST> /var/backup/

# Fuel 설정 복구
octane fuel-restore --from /var/backup/fuel8-backup.tar.gz --admin-password <FUEL_PASSWORD>

# Repository 팩키지 복구
octane fuel-repo-restore --from /var/backup/fuel8-repo-backup.tar.gz

이 후, 웹 UI에 이전 Env 및 설정들이 Liberty 버전으로 import 된 것을 볼 수 있다.

  • Release : Liberty가 추가되었으나, 배포할 수는 없음 (Manage only)
  • Enviroment : 이전 Liberty Env 및 기존 설정대로 추가됨
  • Node : 이전 노드들이 Ready 상태로 존재함 (Cobbler에도 등록되어있음)
  • Plugin : 이전 플러그인들이 추가됨

Fuel Slave 업그레이드

아래 내용은 보안상 비공개 처리합니다.

핵심은, Fuel-Octane 만으로는 매끄럽지 못하므로 이를 보완하면서 진행해야 하며, Fuel 9.x부터 변경된 OpenStack 아키텍쳐 구성에 얼마나 대처할 수 있느냐 입니다.

Step 1. Seed Enviroment 준비

(Secret Contents)

Step 2. (Secret Contents)

(Secret Contents)

Step 3. Controller #1 노드 이동

(Secret Contents)

Case. PXE 부팅 및 Provision/Deploy 과정을 거치지 못했을 때

(Secret Contents)

Step 4. DB 데이터 마이그레이션

(Secret Contents)

Step 5. Ceph 설정 조정

(Secret Contents)

Step 6. 서비스 전환

(Secret Contents)

Step 7. Redeploy Controller #1 노드

(Secret Contents)

Step 8. 나머지 Controller 노드 이동

(Secret Contents)

Step 9. Compute #1 노드 이동

(Secret Contents)

Step 10. 나머지 Compute 노드 이동

(Secret Contents)

Step 11. Ceph-OSD 노드 이동

(Secret Contents)

Step 12. 그 외 노드들

(Secret Contents)

Step 13. Liberty Env 삭제

(Secret Contents)

References