6. OpenStack ?
Public Private Sof
tware , ,
, .
“Public & Private”
,
.
7. OpenStack ?
#3 Cloud Prediction for 2011 OpenStack Will Come into its
Own
#2 Cloud Computing Story of 2010
This year's new wonder of the
open-source community
Top 12 Cloud Gifts of 2010
One of the great success stories in open source for the cloud
#3 Biggest Cloud Computing Story of 2010
Cloud Computing Game-Changer
#5 Cloud Company to Watch in 2011 Ranked
Above Red Hat and Salesforce.com
8. OpenStack ?
‣ 커뮤니티: 1020 people /
77 companies
‣ Global 참여:"
디자인 서밋에 14 개국의
450여명이 참여
‣ Global 사용자 그룹:
Japan, Silicon Valley,
New York, Austin, Egypt,
South Korea, UK등
11. OpenStack ?
Control and Flexibility.
. legacy
3rd Party .
Industry Standard. 14 70 Open
Stack . OpenStack
. Linux .
. Public / Private
.
. OpenStack Secur
ity Policy, , ,
Public OpenStack
.
16. Nova ?
Shared-Nothing, Message-based Compute
nova-manag local method Auth Volume
e Manager Controller
local method
Network
Controller
API Server local method Cloud
OpenStack API Controller
EC2 API
Scheduler
/ Scheduler
REST
HTTP
AMQP
Object Compute
Euca2ools
Store Controller
instance
18. Nova ?
API
Hypervisor, storage networking /
HTTP
User EC2 access/secret key OpenStack API access key ,
API API
Amazon EC2 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, S
hared IP /
Command-line novatools
20. Nova ?
4. Ex) euca-run-instance
6. Role-Based
5. VM à
( )
1. API
Scheduler No Compute Nod
de e
User
7.
API Server Network Node
(RabbitMQ)
2.
EC2 Access Key / Secret Key ,
Object Storage Se
Volume Node
rver
3.
rpc.cast method: “run_instance
”
22. Nova ?
VLAN DHCP Mode
instance public VPN
VLAN bridge VLAN
Private IP
Instance VLAN private IP
Nova VPN: CloudPipe
VLAN VLAN instance “cloudp
ipe” VPN instance
CloudPipe instance VLAN IP 2 IP
port , network node public IP
+ port VPN
24. Nova Multi zone ?
• Zones Nova .
• Nested : Zones .
• Zone . (top-level Zones).
A: API Service
S: Scheduler Service
N: Network Service
V: Volume Service
26. Nova ?
Bexar Cactus Cactus
Diablo
Austin Release 2011.1.1 Feature Release
Diablo1 Diablo2 Diablo3 Diablo4 Release
Release (2011.1) Release Freeze (2011.2)
2011-02-03
03-03
2011-03-24
2011-04-14
2011-06-02
2011-06-30
2011-07-28
2011-08-25
2011-09-22
2010-10-21
Cactus Release 33 blueprint (8 deferred)
Cactus Release
Multi cluster in a region
Region multi cluster
http://wiki.openstack.org/MultiClusterZones
IPv6
Flat, FlatDHCP, VLAN IPv4/IPv6
Multi NIC libvirt
Support for more than one NIC per instance. Rackspace requires two nic's minimum (1 public, 1
private), but this should be abstracted to support N NIC’s
VMware vSphere
Support Vmware vSphere as computer provider
27. Nova ?
Cactus Release
Live migration of running cloud servers
Support migration (moving running VMs from one physical node to another) without shutting dow
n the cloud server
OpenStack API 1.1
New features in the OpenStack API 1.1 include IPv6 support, migration to the OpenStack names
pace, and support for API extensions
Unified Image
Allow Nova to build instances directly from VHDs, with the customer data and kernel in one imag
e. XS-Snapshots are already created as VHDs; this blueprint will allow Nova to boot the snapsh
ots.
LXC (Linux Container)
LXC (Linux Containers) is an operating system-level virtualization method for running multiple is
olated Linux systems (containers) on a single control host. LXC does not provide a virtual machi
ne, but rather provides a virtual environment that has its own process and network space
28. Nova ?
Bexar Cactus Cactus
Diablo
Austin Release 2011.1.1 Feature Release
Diablo1 Diablo2 Diablo3 Diablo4 Release
Release (2011.1) Release Freeze (2011.2)
2011-02-03
03-03
2011-03-24
2011-04-14
2011-06-02
2011-06-30
2011-07-28
2011-08-25
2011-09-22
2010-10-21
Diablo 68 blueprint
Diablo blueprint
Integrated nova auth
OpenStack
Rackspace
Integrated network services
IPAM(IP address management), DHCP/dnsmasq virtual network segment, n
etwork containers, LBaaS(Load Balance As A Service) NaaS(Network As A Service)
Integrated block storage
iSCSI volume , volume migration, Swift
volume
29. Nova ?
Diablo Release
Distributed & Advanced scheduler
Multi-zone smart
Service Provider Deployment Readiness
OpenStack Nova deploy service provider
Administrative vms
VM/ API (load balancing, queuing systems,
databases, load balancers, network bridging components)
Boot from Volume
Golden volume snapshot volume boot
※ blueprint https://blueprints.launchpad.net/nova/
30. OpenStack Object Storage (Swift)
• – ,
( ) / /
• Highly available, distributed, eventually consistent object/blob store
• Single Point of Failure
•
à commodity server기반 저렴하고 안정적인 페타급 (PB) 스토리지 서비스 가능
- ,
à Amazon S3 (Simple Storage Service) 와 유사
• Archiving & Distributing (+CDN) Data http://aws.amazon.com/solutions/case-studies/
• 3rd Party Applications & Solutions
REST API / Library 3rd-party
31. Client [HTTP] Proxy Ser Account Account Server
Sqlite
PUT ver Ring , DB file
GET
DELETE Req/API h
POST andling,
Container Container Server
, Ring , Sqlite
DB file
Object Object Server
Ring
Ring ( ) File
•
Object Ring
dev1
10.1.1.1/sdc
“PUT OBJ1” Hash
>> Shift dev1 dev11 dev53 dev11
10.1.1.1/sdm
dev53
10.1.1.5/sdg
:
:
:
* Shift(Hash) ,
32. Account, Container, Object
• URL us
er
User(s)
• Container
Account • Account User
Account:User
token
https://swift.kt.com/v1/AUTH_57069e6e-2b54-4eeb-95a9-1eff53637978
• Object
(ex. Amazon S3 Bucket)
Container Container
• Access Control List(ACL) Contai
ner
https://swift.kt.com/v1/AUTH_57069e6e-2b54-4eeb-95a9-1eff53637978/TESTCONTAINER
•
• Container ACL
Object Object
• Object
( , )
https://swift.kt.com/v1/AUTH_57069e6e-2b54-4eeb-95a9-1eff53637978/TESTCONTAINER/TESTFILE.txt
33. Ring
Ring
• A mapping between the names of entities stored on disk and their physical location
• 3 Rings – Account Ring, Container Ring, Object Ring
• Using Zone, Devices, Partitions and Replicas info. to build a Ring
* zone: zone
(ex. , / )
Ring -
Replica: , 3 replicas
Zone: replica , 3 (=3replicas) ,4
Devices: ( )
- : 12 of 2TB disk per node, 8 node 96 devs, 192TB
cf) 3 replica 1/3 64TB
Partitions:
Zone ⊃ (node) ⊃ Devices Partitions device
* partition skew replication
“ skew
34. Ring
Ring - HW deployment
• Proxy Network IO
• A/C/O Zone (Disk I/O)
Zone-1
A/C/O A/C/O
Server JBOD
file Server JBOD …
Proxy Serv s s
er
Zone-2
A/C/O A/C/O
Server JBOD Server JBOD …
Proxy Serv
er s s
Load Bala
ncer
Zone-3
A/C/O A/C/O
… Server JBOD Server JBOD
file
…
s s
Proxy Serv
er
Zone-4
A/C/O A/C/O
Server file
JBOD Server JBOD …
s s
35. Ring (2)
3 replicas
Ring - Ring build replica replica replica
• (ring-builder) 1
2
3
2^13 Partitions
- zone 4 , zone 24 devs Dev0
Dev24
Dev48
- 8 (2^13) Dev1
Dev25
Dev49
• weight ( = weight )
0~95 dev index …
…
…
• Rebalance : partition * replica , :
:
:
* weigh
t 86*3
Ring
Rebalancing
• 2 weight (
1) weight device
) 96 ,
• ,
, 2) r
eplica 1
* 2^13
192 dev 43*3
2 2
* 1.5*2^13 rebalancing + replication
36. Ring (2)
Ring ?
•
• Partitions * Replicas ,
* Cassandra ring … hash /
• /
• : /
• : /
ex. 1) 70~80% + rebalancing
2) rebalancing
3) partition
• History of Ring, (http://swift.openstack.org/overview_ring.html)
• , Gossip +
• , Single point of failure,
•
37. Related Info
– http://swift.openstack.org
• swift administrator, developers guide
: http://launchpad.net/swift
• , : Swift-1.3.0 (Cactus)
• Python 2.6, Ubuntu 10.04
• xfs (xattr )
• Sqlite3 DB
SAIO – Swift All-In-One
• Virtual machine
• Debugging? eclipse + pydev plugin + pydevd.settrace()
swift update (https://blueprints.launchpad.net/swift/diablo)
•
•
• Multi-cluster
• S3 API
39. Rackspace API
Rackspace CloudFiles API
• , API
• CyberDuck :
• Mobile App: (CDN)
• Plixi(Tweet Photo):
40. KT ucloud storage
KT • cs: server
• ds: database service
•
• storage: storage service
• bs: backup service
cs.ucloud.com ...
41. Swift API
KT ucloud SS (Swift) tools
URL Cloud storage
Cyberduck Open source FTP, SFTP, WebDAV, Cloud Cyberduck.ch Amazon S3
Files, FTP, WebDav
Google Docs & Amazon S3 Browser for M Google Docs
ac & Windows. Cloudfiles
Window Azure
Openstack
Etc…
Gladinet Seamless access, aggregate, and backup Gladinet.com Amazon S3
to cloud storage FTP, WebDav
Google Docs
Cloudfiles
Internap
Openstack
Etc…
Cloudfuse Cloudfuse is a FUSE application which pro ohloh.net/p/cloudfuse Cloudfiles
vides access to Rackspace's Cloud Files ( Openstack(Swift)
or any installation of Swift).
42. Swift API JAVA CLI client (1)
JAVA ANT
• https://github.com/rackspace/java-cloudfiles/archives/master
• /cloudfiles.properties
version=v1
connection_timeout=5000
# Auth info
auth_url=https://ssproxy.ucloud.com/auth/v1.0
auth_token_name=X-Auth-Token
auth_user_header=X-Storage-User
auth_pass_header=X-Storage-Pass
ANT
43. Swift API JAVA CLI client (2)
Windows
@echo off
java -cp lib/commons-cli-1.1.jar;lib/httpcore-4.1.jar;lib/httpclient-4.0.3.jar;lib/commons-lang-2.4.jar;lib/junit.jar;lib/commons-co
dec-1.3.jar;lib/commons-io-1.4.jar;lib/commons-logging-1.1.1.jar;lib/log4j-1.2.15.jar;dist/java-cloudfiles.jar;.;classes; com.racks
pacecloud.client.cloudfiles.sample.FilesCli
pause
Linux, MAC
#!/bin/sh
export CLASSPATH=lib/commons-cli-1.1.jar:lib/httpcore-4.1.jar:lib/httpclient-4.0.3.jar:lib/commons-lang-2.4.jar:lib/junit.jar:lib/co
mmons-codec-1.3.jar:lib/commons-io-1.4.jar:lib/commons-logging-1.1.1.jar:lib/log4j-1.2.15.jar:dist/java-cloudfiles.jar:.
java com.rackspacecloud.client.cloudfiles.sample.FilesCli
• username
• password API KEY (cs.ucloud.com )
• account Enter
• help command
44. Swift API JAVA CLI client (3)
COMMAND
• get List the containers for this account
• get container List the contents of the given container
• get container/object destination Download the given object and store it at the destination
• head Get information about this account
• head container Get the container's information
• head container/object Get the objects's information and metadata
• put container Create the given container
• put container localfile Upload the local file to the container
• delete container Delete the container
• delete container/object Delete the given object
• help Print this help message
• exit Exit the program
45. Swift API
API
Account and Authentication GET account Account , ,
GET accounts list User , ,
PUT account (token, storage url)
DELETE account * API
GET user
GET users list
PUT user
DELETE user
Storage account service GET Storage account Container ,
HEAD Storage account Account
POST Storage account Account metadata
Storage container service HEAD Storage container Object ,
GET Storage container Container
PUT Storage container Container ,
DELETE Storage container Container metadata
POST Storage container : user metadata Container ACL
POST Storage container : ACL
Storage object service HEAD Storage object Object
GET Storage object Object
PUT Storage object Object copy
Chunked Transfer Encoding Object
Copy Object Object metadata
POST Storage object
DELETE Storage object
46. OpenStack Image Service (Glance)
OpenStack , , ,
.
query
Standard REST API
Swift
upload
• RawMachine (kernel/ramdisk outside of imge, a.k.a. AMI)
• VHD (Hyper-V)
• VDI (VirtualBox)
• Qcow2 (QEMU/KVM)
• VMDK (VMWare)
• OVF
48. ( ) www.jclouds.org (multi-cloud library)
▷ jclouds 는 개발자들이 다양한 클라우드를 활용하고,
자바 개발 skill들을 재 사용 가능토록 하는 오픈소스 라이브러리이다.
▷ jclouds API는 Amazon, GoGrid, Microsoft Azure, vCloud, Rackspa
ce, OpenStack등의 다양한 클라우드 환경을 지원하며,
개발자들이 각각 서비스들의 복잡한 API구성과는 상관없이,
자유롭게 클라우드 고유의 기능들을 자유롭게 사용할 수 있도록 함.
( ) How to change cloud providers without restarti
ng your JVM: http://www.youtube.com/watch?v=SJ7sm3lhKnw
Quick Start OpenStack:
http://code.google.com/p/jclouds/wiki/QuickStartOpenStack