OpenStack 운영을 통해 얻은 교훈을 공유합니다.
목차
1. TOAST 클라우드 지금의 모습
2. OpenStack 선택의 이유
3. 구성의 어려움과 극복 사례
4. 활용 사례
5. 풀어야 할 문제들
대상
- TOAST 클라우드를 사용하고 싶은 분
- WMI를 처음 들어보시는 분
4. 4 / 46
OpenStack == SDDC
Keystone
(Identity)
Nova
(Compute)
Cinder
(Block storage)
Glance
(Image)
Neutron
(Network)
SDDC = SDC + SDS + SDN
Software Defined Data Center
Compute
Service
Storage
Service
Network
Service
7. 7 / 46
걸어온 길
OpenStack
연구시작
2013년 2014년 2015-2016년 2017-2018년 2019년
TOAT Cloud
내부 오픈
안정화 대외 서비스
확장
글로벌 진출
8. 8 / 46
5년의 시간
300+ Computer nodes
3000+ Active IaaS Projects
4000+ Floating IP
5000+ Active Server Instances
Infra Product Volume
Instance / Auto Scale
RDS for MySQL
Block Storage / Object Storage
VPC / Load Balancer
CDN
…
10. 10 / 46
운영을 해보니 마주친 다양한 문제들
SaltStack 사용
OpenStack 패키지 관리
많은 노드의 형상 관리
DVR 적용Network node 부하
방어 체계 구성, neutron 패치BUM Traffic, Switching Loop
QoS 적용Block Storage IO 부하
11. 11 / 46
PoC
• 소수의 장비
• 수동 구성
사례1. Infrastructure as Code
Production
• 다수의 장비
• 구성 자동화
12. 12 / 46
사례1. Infrastructure as Code
형상관리 문제
• Kernel, Package 버전 불일치
• Code patch 누락
구성 변경의 추적 불가
• 디버깅의 유산
불신
두려움수작업
13. 13 / 46
사례1. Infrastructure as Code
Master
Minion
형상 관리
• State 관리
• OS 형상 관리
• OpenStack 패키지 관리
구성 변경 감시
• Event monitoring
• Reactor
Beacons
Reactor
file changes
system load
service status
state
Event bus
Fire Monitor
Minion
Minion
Minion
Apply
SE
Alert
14. 14 / 46
사례2. DVR(Distributed Virtual Routing)
VPC(Virtual Private Cloud)
• 사용자 정의 가상 네트워크 환경
• 클라우드 환경에서 격리된 네트워크 환경을 보장
Router
VM-1 VM-2
Switch
VM-Q VM-W
192.168.0.41/24 192.168.0.51/24 192.168.1.84/24 192.168.1.94/24
192.168.0.1/24
192.168.1.1/24
동일 서브넷 간: MAC, Switching
다른 서브넷 간: IP, Routing
15. 15 / 46
사례2. DVR(Distributed Virtual Routing)
CVR (Centralized Virtual Routing)
• HA 구성 불가 (Ice House)
• External 통신은 Network node 가 전담: 부하집중, SPoF
Compute node Network node
VM Internal network
VM External network
RouterVM
Compute node
VM
crash
16. 16 / 46
사례2. DVR(Distributed Virtual Routing)
전략
• IDC 이전: 목동 -> TCC1
• OpenStack 재구성: Ice House -> Kilo
• DVR 선택
17. 17 / 46
사례2. DVR(Distributed Virtual Routing)
DVR
• Exnternal 통신은 Compue node 의 Router 가 처리(FIP 가 있는 경우)
Compute node
Network node
VM Internal network
VM External network
Router
VM
Compute node
VM
Router Router
18. 18 / 46
사례2. DVR(Distributed Virtual Routing)
적용 후
• 장애 발생 시 영향 범위가 축소됨
• Network node 의 부하 감소하여 Crash 발생 안함
• 그러나 HA 문제는 해결 할 수 없음
19. 19 / 46
사례3. BUM, Loop
Switch
VM
OVSovs-agent
VM VM
OVSovs-agent
VM VM
OVSovs-agent
VM
Neutron server
Management network
Tenant/Provider network
Compute node
21. 21 / 46
사례3. BUM, Loop
문제점
• BUM: Broadcast, Unknown-Unicast, Multicast
• Node 재부팅할 때 다량이 BUM Traffic 발생하여 상단 Switch 부하 유발
• 그로 인해 Overlay Network 품질 저하 및 장애 발생
22. 22 / 46
사례3. BUM, Loop
방지 방안1
• OVS에 Flooding 방지 설정
• fail-mode: secure
Controller와 연결이 안되는 경우에
Flow설정하지 않도록 함
VM
br-int
br-ext br-vlan
VM
bond1bond2
Compute node
Provider network
Tenant network
OVS
23. 23 / 46
사례3. BUM, Loop
방지 방안2
• ovs-agent에서 flow 적용 순서 변경
• Drop rule을 가장 먼저 적용
VM
OVSovs-agent
VM
Management network
Tenant/Provider network
Compute node
24. 24 / 46
사례3. BUM, Loop
방지 방안3
• 상단 Switch 의 Storm control 적용
• Broadcast, Multicast 가 1K/s 이하로 억제
Switch
VM
OVSovs-agent
VM
Management network
Tenant/Provider network
Compute node
25. 25 / 46
사례4. ARP 학습
VM
br-int
br-ext br-vlan
VM
bond1bond2
SwitchSwitch
Compute node
Router
Provider network
Tenant network
OVS
Router Router FIP GW
26. 26 / 46
사례4. ARP 학습
VM
br-int
br-ext br-vlan
bond1bond2
Compute node
OVS
Router
Routing
NAT
Fixed => Floating IP
Fixed <= Floating IP
FIP GW
MAC: FA:16:3E:0C:DD:21
30. 30 / 46
사례4. ARP 학습
개선
• L3-agent가 FIP 설정 담당
• FIP구성 마지막 단계에서 Router 에게 ARP 정보를 전파함
• L3-agent는 Reply형태로 GARP 발생하도록 되어 있음
• Router가 Request 형태의 GARP를 처리함을 확인
• L3-agent 소스코드를 수정함
32. 32 / 46
사례5. Block Storage 부하
Compute node
VM VM VM VM
File File File File
Disk Disk Disk Disk
NAS
Switch
Compute
node
NAS
Compute
node
Compute
node
33. 33 / 46
사례5. Block Storage 부하
문제점
• 규모가 커지고 사용량이 증가하면서 IO 부하 발생
• 일부 Server Instance 가 높은 부하 발생
• 그로 인해 Storage network, NAS 부하 유발
• 연관된 Server Intance 의 Block storage IO 지연 발생
34. 34 / 46
사례5. Block Storage 부하
개선
• IO 측정 및 분석
• NAS 모니터링
• Server Instance 단위의 Block device IO 모니터링
• QoS 를 확보하기 위한 IO 제한 적용
36. 36 / 46
관리의 부담
감소 가용성확장성
Relational Database Service
• MySQL 제공
• 개발 vs OpenStack Trove
RDS
37. 37 / 46
RDS
1차 아키텍처 디자인
VM
Public pool
IaaS Project
VM
10.0.0.0/24
RDS
WMI pool
RDS Project
192.168.0.0/24
Peering
DMZ
RDS Manager
Firewall
NE System
38. 38 / 46
2차 아키텍처 디자인
RDS
VM
Public pool
IaaS Project
VM
10.0.0.0/24
NE System
RDS Manager
RDS
RDS Project
VM
WMI pool
IaaS Project
VM
10.0.0.0/24
RDS
RDS Project
44. 44 / 46
Life with TOAST 클라우드
• 5년의 시간 동안 OpenStack과 기반 기술 내재화
• IaaS 기반의 RDS, Redis 상품 개발 진행 중
• Overlay network 성능 고도화 진행 중
• 일본, 미국에 Region 구축 진행 중
• Dynamic Infrastructure 가능한 환경 제공 준비
• 지금! 바로! http://www.toast.com