카카오에서의 trove 운영사례
TRANSCRIPT
Trove (Open stack Database as a service) 란?
The OpenStack Open Source Database as a Service Mission
To provide scalable and reliable Cloud Database as a Service provisioning functionality for both relational and non-relational
database engines, and to continue to improve its fully-featured and extensible open source framework.
Trove에서 제공하는 Database
Trove 특징
• 단일 명령어로 여러 종류의 DB 관리
• 쉬운 데이터베이스 생성
• 확장 가능한 소스 구조
Trove와 일반 VM의 차이
• 현황관리
• 단일 명령으로 여러 종류의 데이터 베이스 관리
• 인스턴스 생성시 자동으로 데이터 볼륨추가
• 쉬운 Replica 추가
• 자동 클러스터 생성
Trove 아키텍처
Trove API
Trove TaskManager
Trove Conductor
Trove GuestAgent
DataBaseMessage Queue
Controller Node VM
Cinder
GlanceData Volume
Trove-GuestImage (mysql)
Trove-GuestImage(redis)
DB
Swift
Backup Data
Backup Data
Trove 사용 현황
인스턴스 : 750개
Region : 4개
제공 DB
관리 인원 : ?
Trove 도입 목적
• 기존 사내 DBaaS 문제점 보완
• 개발자들에게 실서비스용 DB와 유사한 개발용 데이터 베이스를 쉽게 제공
• DBA들의 개발용 DB 관리 부담 감소
설치(Openstack)
• Openstack 이 처음인데요?
설치(Trove Controller)
• Trove Controller node 설치• Trove-api• Trove-taskmanager• Trove-conductor
설치 (클라우드의 꽃은 이미지)
Base
Image
Kpartx,
mount,
chroot
Install
Trove-
guestagent
Install DBBuild
Image
Upload to
glance
Test
Custom database(Postgresql Plus Advanced Server) 지원
• /trove/guestagent/datastore
• /trove/guestagent/strategies • trove.conf 에 추가
실행중인 VM에 작업
Trove VM
Trove VM
Trove VM
Trove VM
Ansible
• 업그레이드• 패치
Openstack 버전 업그레이드
Juno Kilo Liberty Mitaka
Openstack 버전 업그레이드
Old version
setup
New version
cookbook &
Image
Upgrade
Controller
Upload
Image
Upgrade
trove vm
때로는 필요한 기능에 대한 패치
• Redis 백업/복원
• Mysql utf8mb4 지원
• Horizion 패치
더 필요했던 부분
• 자동 일일백업
운영
• 잔여 메세지 큐 비우기
운영
• 전체 현황 대시보드
그외 이슈
• vm이 정상생성되지 않아요• vm쿼터가 부족• ip할당이 안됨
• 사용자가 trove 인스턴스를 nova 에서 지워요
• 사용자가 직접 db 를 조작하고 싶어해요
• 사용자가 인스턴스 안에 별도 스크립트를 돌려요• 사용자가 인스턴스 내에 설치한 파이썬 라이브러리랑 trove-guestagent가 충돌나기도 함
• 한글 프로젝트명은 안되요.
Q&A
감사합니다