《CloudstackManagementServerInternals.ppt》由会员分享,可在线阅读,更多相关《CloudstackManagementServerInternals.ppt(35页珍藏版)》请在三一办公上搜索。
1、CloudStack Architecture,Alex Huang,Old Architecture,ProsAgile development for existing developersScales well horizontallyConsMonolithicDifficult to educate new and third-party developersEasy to introduce bugs,2,XenServer Resource,Agent Manager,API Layer,EC2,CloudStack,Virtual Machine Manager,KVM Res
2、ource,SRX Resource,F5 Resource,NetScaler Resource,Other Resources,Access Control,Storage Manager,Network Manager,Console Proxy Manager,Snapshot Manager,Template Manager,Async Job Manager,New Deployment Architecture,Scales horizontally to different pressure pointsAutomatically scales service VMs in z
3、ones to facilitate most efficient data path transfersFault isolation between API servers and Execution Servers and resources within zones,API Server,New Architecture API Server,API Server isolates integration code from Execution ServerAPI Server can horizontally scale to handle trafficEasily adds ot
4、her API compatibilityEasily exposes API needed by third party vendors,Pluggable API Engine,OAM&P API,End User API,EC2 API,Other APIs,ACL&AuthenticationAccounts,Domains,and ProjectsACL,limits checking,Management ServicesResource managementConfigurationAdditional operations added by third party,REST,F
5、rameworkJob Queue Database Access LayerOSGi,Integration,New Architecture Execution Server,Execution Server protected by job queueKernel kept small for stability.It only drives processes.Plugins provide mappings of virtual entities to physical resourcesThird party plugins to provide vendor differenti
6、ation in CloudStackCommunicates with resources within data center over message bus,Execution Server,KernelDrives long running VM operationsSyncs between resources managed and DBGenerates events,FrameworkCluster ManagementJob ManagementAlert&Event ManagementDatabase Access LayerMessaging Layer,Plugin
7、sStorage HandlingNetwork HandlingDeployment planningHypervisor Handling,Component Framework(OSGi)Transaction Management,Services API,New Architecture Resources,Resources are carried in service VMs to be in close network proximity to the physical resources it managesEasily scales to utilize the most
8、abundant resource in data center(CPU&RAM)Communicates with Execution Server over message bus(JSON)Can be replicated for fault toleranceControl gateway to resources within data center,Agent,Hypervisor Resources,Network Resources,Storage Resources,Image&Template Resources,Snapshot Resources,Management
9、 Server,KernelDrives long running VM operationsSyncs between resources managed and DBGenerates events,Resource Management,Cluster Management,JobManagement,DB,Job Queue,Deployment Planning,Network Configurations,Network Elements,Hypervisor Gurus,DatabaseAccess,Alert&EventManagement,Plugin API,Hypervi
10、sor Resources,Network Resources,Storage Resources,ImageResources,SnapshotResources,REST API,OAM&P API,End User API,EC2 API,Pluggable Service API Engine,Other APIs,Security Adapters,Account Management Connectors,ACL&AuthenticationAccounts,Domains,and ProjectsACL,limits checking,Services API,Services
11、API,Console Proxy Management,Template Access,HA,Usage Calculations,Additional Services,Event Bus,Message Bus,Kernel Module,Understands how to orchestrate long running processes(i.e.VM starts,Snapshot copies,Template propagation)Well defined process stepsCalls Plugin API to execute functionalities th
12、at it needs,Plugins,Various ways to add more capability to CloudStackImplements clearly defined interfacesAll operations must be idempotentAll calls are at transaction boundariesCompiles only against the Plugin API module,Anatomy of a Plugin,ServerResourceOptional.Required if Plugin needs to be co-l
13、ocated with the resourceImplements translation layer to talk to resourceCommunicates with server component via JSON,Rest APIOptional.Required only if needs to expose configuration API to admin.,Plugin API,Data Access Layer,Implmentation,Anatomy of a Plugin,Can be two jars:server component to be depl
14、oyed on management server and an optional ServerResource component to be deployed co-located with the resourceServer component can implement multiple Plugin APIs to affect its featureCan expose its own API through Pluggable Service so administrators can configure the pluginAs an example,OVS plugin a
15、ctually implements both NetworkGuru and NetworkElement,Plugin Interfaces Available,NetworkGuru Implements various network isolation technologies and ip address technologiesNetworkElement Facilitate network services on network elements to support a VM(i.e.DNS,DHCP,LB,VPN,Port Forwarding,etc)Deploymen
16、tPlanner Different algorithms to place a VM and volumes.Investigator Ways to find out if a host is down or VM is down.Fencer Ways to fence off a VM if the state is unknownUserAuthenticator Methods of authenticating a userSecurityChecker ACL accessHostAllocator Provides different ways to allocate hos
17、tStoragePoolAllocator Provides different ways to allocate volumes,Adding a Plugin to CloudStack,Components are configured though components.xmlSupports DAO,Manager,and Adapter patternsOpen to other component frameworks(OSGi a possibility),Components.xml Example,Kernel,Sequence Flow for deploy VM,End
18、 User Rest API,SecurityCheckers,User VM Mgr,Network Mgr,Storage Mgr,Job Scheduling,VirtualMachine Mgr,Network Guru,Deploy VM,ACL Checks,Allocate Entity in CS,Allocate VM,Allocate NIC,Allocate Volume,Allocate IP,Schedules Deploy Job,Returns with job id,VM id,Query Job Result,Returns with job status,S
19、equence Flow for deploy VM,Job Threads,Network Element,User VM Mgr,Network Mgr,Storage Mgr,VirtualMachine Mgr,Network Guru,Start VM,Start VM,Prepare Nics,Notify that Nic is about to be started in network,Reserve resources for Nic,Services API,ServerResources,Start User VM,Agent Calls,Prepare Volumes
20、,Template Mgr,DeploymentPlanner,Get a Deployment Plan(Host and StoragePool),Prepare template on Primary Storage,Agent Calls,Agent Start VM Call,Stores job result,ServerResource,Translation layer between CloudStack commands and resource APIMay be Co-located with resourceHave no access to DBAPI define
21、d in JSON messages,DAO,SQL generation done mostly in GenericDaoBaseUses JPA annotationsVery little code to write for each individual DAODatabase Access Layer for KernelNo support for more complicated features such as fetch strategyWelcome to use other types of ORM in other modules but like to hear a
22、bout preferred library.(Hibernate is out due to licensing issues),Example DAO,/ExampleVO.javaEntityTable(name=“example”)public class ExampleVO Id GeneratedValue(strategy=GenerationType.IDENTITY)Column(name=“id”)long id;Column(name=“name”)String name;Column(name=“value”)String value;,/ExampleDao.java
23、public interface ExampleDao extends GenericDao/ExampleDaoImpl.javaLocal(value=ExampleDao.class)public class ExampleDaoImpl extends GenericDaoBase implements ExampleDao protected ExampleDaoImpl(),CloudStack Storage,Alex Huang,Storage,Zone-Level Layer 3 Switch,Pod 2,Pod N,Private Network,Pod 1,Scale-O
24、ut NFS,Cluster 2,Cluster 1,Primary Storage,Scale-Out NFS,Primary Storage Block device to the VMIOPs intensiveAccessible from host or cluster wideSupports storage tieringWORM StorageSecondary Storage or Object Store for templates,ISO,and snapshot archivingHigh capacityCloudStack manages the storage b
25、etween the two to achieve maximum benefit and resiliency,Primary Storage Support Matrix,Disk Offering,Disk Offering specifies how block storage are offered to the end userDisk spaceLocal or shared diskDisk Offering has storage tags which can be used to implementing storage tieringService Offering ac
26、tually contains a disk offering for the root disk,Storage Tiering,Supported via storage tags for primary storageSpecify a tag when adding a storage poolSpecify a tag when adding a disk offeringOnly storage pools with the tag will be allocated for the volume,WORM Storage,Write Once Read Many storage
27、pattern is supported by two different storage typesSecondary Storage(NFS Server within an availability zone)Object Store(Swift implementation for cross-zone)Objective for WORM storageHigh capacity,cheap storageEasy to increase capacityUsed to store templates,ISOs,and snapshots,Snapshots,Snapshots ar
28、e used as backups for DRSTaken on the primary storage and moved to secondary storageSupports individual snapshots and recurring snapshotsFull snapshots on VmWare and KVM.Need help.Incremental snapshots on XenServerAllows backup network traffic to be specified in zone to segregate the backup network
29、traffic from other network traffic types,Base Copy,Template,D1,S1,D2,VM,S2,Full1,S11,S12,S13,Full2,S21,S22,S23,Snapshot Example(XenServer),Primary Storage,Secondary Storage,New storage is allocated when a snapshot is taken and changes are written into new storageOnce Snapshot is taken,it is transfer
30、red to secondary storageOld snapshots are removed to allow for storage to be garbage collectedOne snapshot is always kept on primary storage to prevent coalescing of the delta dataEvery nth copy is a full copy to work against bad data in delta copies corrupting the entire chainCannot delete physical
31、 data until snapshots kept have passed the full copy,Storage Network,Direct access to storage server(iSCSI,CIFS,NFS,etc)from within a VMSetup the storage access via a shared networkVMs deployed will have two or more nics:One or more nics for internet accessOne nic for storage accessSecurity around s
32、torage network is lacking and requires workACL support is done by the operator,Storage Future,Secondary Storage multi-homed in PodObject Store for between zonesProduction Storage Network for enterpriseStorage Plugin Framework,CloudStack Resource Management,Organized into zones,pods,clustersEach can
33、be enabled,disabled,unmanaged,and inactive,CloudStack High Availability,Alex Huang,High Availability,Service Offering contains a flag for whether HA should be supported for the VMDoes not use the native HA capability of hypervisors for XenServer and KVMUses adapters to fine tune HA process,High Avai
34、lability,Investigation Uses investigators to find out if VM is alive or downEach investigator returns three statesUpDownUnknownFencingUses fencers to fence off the VM from accessing storage to ensure VM is not corruptedEach Fencer returns three statesFencedUnable to FenceDont know how to fenceRestar
35、tRestarts the VM,Triggering High Availability,VM HA are triggered via the following methods:VM Sync detects out of band VM changesResource Management detects that a resource is unreachable and its state can not be determined.VM start/stop has been sent to the resource but resource does not returnDet
36、ails of how high availability is done is at http:/docs.cloudstack.org/CloudStack_Documentation/Design_Documents/CloudStack_High_Availability_-_Developers_Guide,High Availability Future,Moving toward using the native HA capability of the hypervisor.Looking to do more in the DRS area to coordinate recovery of wide spread outage.,