오픈소스기반클라우드인프라 기술현황및진화방향 2012.01.12 / KT 마스터 PM & OpenStack 한국커뮤니티리더, 안재석박사 1
2011 년동향및주요포인트 퍼블릭 / 프라이빗클라우드확산 오픈소스 2
2011 이전 2011 상용클라우드 구축기술 VMware or Nothing VMware or OpenSource 퍼블릭 클라우드 서비스 Amazon (AWS) had all. Amazon still has the most, but other potential competitors are emerging. 프라이빗 & 하이브리드 Only in concept Becoming reality 3
오픈소스와클라우드, 4
OpenStack? 2011년가장중요한 10개의오픈소스프로젝트 (Linux.com) 2012년에주목해야할다섯가지오픈소스 (IDG news, PC World) The most exiting thing happened to cloud in 2011 (infoworld, Eric Knorr) 2011.7 (35파트너) >> 2012.1 (144파트너) NASA, 델, HP, 시트릭스, 시스코, 마이크로소프트, Canonical (Ubuntu Linux), Suse Linux, AT&T, NTT, KT, Intel, F5, NEC 5
OpenStack, Kernal of Cloud OS Connects to apps via APIs Self-service Portals for users USERS ADMINS APPS CLOUD OPERATING SYSTEM Control & Automates Pools of Resources Efficiently allocate resources Compute Pool Virtualized Servers Storage Pool Virtualized Storage Network Pool Virtualized Networks 6
OpenStack 이란? OpenStack 은 Public 과 Private 클라우드를구축하기위한오픈소스소프트웨어 OpenStack 은서버, 스토리지, 네트워크, 가상화기술들과같은리소스들을모으고, 이들을제어하고운영하 기위한 Cloud Operating System OpenStack 은오픈소스기반으로클라우드를구축하고운용하고자하는오픈소스개발자, 회사, 사용자들 로이루어진커뮤니티 7
OpenStack 이가진것은? Open%Source Apache 2.0 license, NO enterprise version Open%Design Open%Development Open Design Summit Lanuchpad 와 Github 를통해이루어지는공개개발. 누구든지제안하고참여할수있는개발프로세스 Open%Community OpenStack Foundation in 2012 8
시작은... 9
2010 년 6 월 OSCON 10
11
OpenStack History 2010. 6 : OpenStack 2010. 7 : design summit in Austin (35 ) 2010. 10 :, Austin 2010. 11 : Design Summit (San Antonio) 2011. 2 : Bexar 2011. 4 : Cactus 2011. 4 : Design Summit (Santa Clara) 2011. 10 : Diablo 2011. 11 : Design Summit (Boston) 2012. 4 : Essex 12
지금은... 13
2219 명과 144 개파트너 Systems Management Hardware Service Providers Government Financial E-commerce >50 M Venture Capital 14
15
OpenStack 의주요프로젝트! Compute (code-named Nova ) -,,.! Object Storage (code-named Swift ) -! Image Service (code-named Glance ) - / / / 16
OpenStack 의주요프로젝트! OpenStack Identity (code-named Keystone) - OpenStack! OpenStack Dashboard - OpenStack Self-service portal (reference implementation) 17
Incubating Projects Atlas-LB: Load Balancing as as Service; 다양한 LB 들을 plug-in 형태로수용하기위한인터페이스 Burrow: 멀티테넌트클라우드를위한 message-queue 시스템 Dodai: Cluster as a Service; 다양한종류의멀티클러스터들을관리하기위한시스템 Crowbar: OpenStack 을 bare-metal 에설치 / 운용 / 관리하기위한자동화툴 ( 프레임워크 ) RedDwarf: A scalable relational database as a service Clanavi: Drupal 기반의클라우드관리툴 Donabe: 하나이상의리소스들을그룹화하여하나의유닛으로관리하고서비스가가능토록하는컨테이너서비스 Julu: ubuntu 에서제공되는 deployment/provisioning 자동화툴 Platform as a Service... 그외다수 18
OpenStack Compute (Nova) 19
OpenStack Nova 모듈 Pluggable - simple (least-load) - chance (random) - distributed scheduler (zone-aware) * host-filter * least-cost function - resource (capability) aware scheduler 하이퍼바이저 - QEMU, KVM, UML, LXC - Xen and XenServer - Hyper-V - VMware vsphere - WSGI middleware - EC2/OpenStack API - Keystone/standalone auth 지원가능한네트워크모드 - Flat, FlatDHCP, Vlan - IPv4 / IPv6 사용가능스토리지종류 - Local LVM volume groups - iscsi - Sheepdog - HP/Lefthand SANs 메타데이터 & Status 정보저장 - Sqlite - MySQL - Postgres 20 P
API 서버 Hypervisor, storage, networking 관련명령 / 제어를할수있도록하는인터페이스 기본적인 HTTP 웹서비스형태 User 는 User 생성시 EC2 access/secret key 와 OpenStack API access key 를할당받는데, API 사용시포함시켜 API 서버가사용자를인증할수있도록한다. AWS API 와 OpenStack API 제공 AWS API VM instance, Security Group, Volume, Snapshot, SSH Key, VM image, IP address, Availability Zone 관련명령 / 제어 EC2 API 의 command-line 툴인 Euca2ools 를통해 EC2 API 사용이가능 OpenStack API 원래 Rackspace Cloud Server 를제어하기위한 API Servers, Images, Flavours, Shared IP 관련명령 / 제어 >> 프로젝트가진행되면서 OpenStack API set 이확대됨 command-line 툴인 novatools 를통해사용가능 21
Scheduler, Compute, Network Scheduler 요청된가상리소스들을실제로어떤하드웨어에제공할지를선택하는역할 Compute Compute Server 리소스들을제공하고인스턴스들을관리 Instance Run, Terminate, Reboot Volume Attach, Detach 지원 Hypervisor별사용가능한 Nova 기능 (http://wiki.openstack.org/hypervisorsupportmatrix) Network 네트워크리소스들을관리 22
System Architecture Web UI (Dashboard) Volume Worker Volume Storage (iscsi Identity (keystone) middleware OpenStack API API 서버 local method Queue Network Worker EC2 API REST Scheduler Compute Worker User (CLI, REST) REST REST Image Store (Local, Swift, AWS S3 etc) Image Service (Glance) 23
OpenStack Glance (Image) 1. 1. VM Store image & retrieve 를저장 VM / 가져오기 images 2. 2. REST-based 기반 API 3. Compatible 대다수의이미지 with all 포맷들과 common 호환가능 image formats 4. Storage 다양한스토리지 agnostic: Store 방식지원 images locally, or use - 로칼 OpenStack 스토리지 Object Storage, HTTP, or S3 - Http, AWS S3, OpenStack Swift 24
Multi Cluster 구조 Zone 은 Nova 서비스들과호스트들의논리적그룹. Zone 은다른 zone 을포함가능 : Nested 구조 A: API Service S: Scheduler Service N: Network Service V: Volume Service 25
Network 구조 Flat Mode 모든 instance가하나의 bridge에연결되어고정 IP 부여받음 Flat DHCP Mode Ethernet device ( eth0 ) 이 bridge가되며 Instance는 dhcpdiscover 로 dnsmasq로부 IP를할당받음 VLAN DHCP mode - - 자신의 instance 를 public 영역에노출시키지않고, VPN 을통해접근가능. 프로젝트별로 VLAN 과 bridge 를생성 ( 프로젝트는 private ip 대역을얻음 ) 하며, Instance 는해당프로젝트가할당받은 private ip 중하나를받음. 26
Network 구조 (VLAN) Security Group: 그룹별로네트워크접근을위한규칙을설정가능 Cloudpipe: 프로젝트별 VPN Tunnel (OpenVPN 서버 ) 27
네트워크서비스 (Quantum) Nova: Virtual Machine 서비스 Quantum: Virtual Network 서비스 - 사용자 / 관리자들이자동으로네트워크리소스를 provisioning 하기위한 API - 물리적리소스들을논리적모델로운용 / 제어 - 다른종류의 back-end 기술들을융합하여활용가능한 plug-in 아키텍처를제공 28
예제시나리오 VM VM VM Create VMs Nova Create Networks OpenStack Cloud User Attach Interfaces Quantum Net1% Net2% 29
Quantum 의장점 OpenStack 서비스들을연결시키는다양한형태의 multi-tier 네트워크 topology 들을생성시키기위한사용자 / 관리자 API (VM, Load Balancers, Firewalls, etc) 네트워크의제약사항들 (e.g., VLAN limitation) 을해결하기위한새로운기술들을수용할수있는플러그인메카니즘 다양한네트워크 Capability (e.g., ACLs, QoS, Netflow) 들을 expose 가능한 API 확장성 30
Quantum 활용구조 ( 예제 ) Dashboard / Automation Tools Tenant API Quantum Service Quantum API Quantum Plugin nova-scheduler Tenant API Nova Service nova-api Internal nova Communication Two Plugins Available: - Open vswitch - Cisco UCS/Nexus Internal Plugin Communication nova-compute vswitch XenServer #1 Hypervisor 31
Quantum 활용구조 ( 예제 ) Tenant API Quantum Service Quantum Plugin physical switch Internal Plugin Communication vswitch vswitch FW FW FW VM VM VM VM Firewall Service Tenant API Network Edge: Point at which a service plugs into the network. Compute Service Tenant API 32
Nova 서비스구성 Atlas Load Balancer Firewall Auth Quantum Instance usage audit Monitor Keystone Auth Nova Mount Volume Storage LDAP Token Auth Auth Glance VM Image R/W Backup Swift ( S3 / File System ) 33
서비스구축시고려사항들 구조적요소 멀티존 네트워크구조 스토리지서비스 / Deployment 구조 Fault Tolerant 구조 모니터링구조 Hypervisor 선택 서비스요소 인터페이스 (UX) Authentication/Authorization ( 현재는 Token Auth 와 LDAP 지원 ) RBAC (Role-Based Access Control) 지원가상호스트용 OS 범위결정 + 알파 : Auto-scaling, Auto-provisioning,... 34
OpenStack is NOT everything monitoring - physical zabbix node - virtual collectdresources - applications nagios... networking - LB, openvpn Switch, firewall, 등 - vswitch, L2/L3 architecture HAProxy,... - Service Open Flow Interfaces... storage (file system) storage (file system) storage architecture - ZFS, GlusterFS,... file system automation - automated opscode chef deployment - puppet configuration management - continuous crowbar (from integration Dell)... datacenter - datacenter open - compute server echo system echo system PaaS - Apache Whirr, jclouds Various Services - Cloud Foundry Applications - 다양한어플리케이션... tools 35
OpenStack Object Storage (Swift) 36
OpenStack Object Storage (Swift) REST-based API 데이타는 시스템들상에 분산됨.! 수억개의 Object, Petabyte 까지확장등의 Scalablility Account/Container/Object ( ) Replication (Account, Container, Object N copy)! No central database! Hardware agnostic: commodity hardware, RAID not required 37
Swift 특성 시스템특성 스토리지가상화 - 물리저장시스템의위치나크기에상관없이, 이를논리적인단일스토리지로매팅하여할당 / 사용 / 관리 메타데이터를집중하지않고, 분산저장함으로써 Single Point of Failure 제거 객제들이여러클러스터내하드웨어장치에분산 / 중복저장되고이들간에무결성지원 Commodity 하드웨어기반의 Cost-Efficiency 하며 Reliable 한페타급스토리지서비스구현이가능 서비스특성 온라인에서제공되는스토리지서비스 - 이미지호스팅, 대용량데이터의백업및아카이빙용도에적합 아마존 (AWS) S3 와유사한서비스 REST 기반으로사용하기간단한 API 를제공함으로써응용이손쉬우며, account/ container/object 를 url 로접근이가능하며멀티테넌트관리가용이. 38
! 논리구조 OpenStack Swift 구조! 물리구조 39
2012 년에는... 프라이빗 & 하이브리드 오픈소스의가능성 vs. 현실화 40
감사합니다. 41