Table of contents
- 1.
- 2. Introduction
- 2.1. Overview
- 2.2. Scope
- 2.3. Swift v1.4.4 functions summary
- 2.4. CloudStack OpenStack integration
- 2.5. Assumptions
- 2.6. 2.6 Hardware & software Requirements
- 2.6.1. Hardware:
- 2.6.2. Software:
- 2.6.3. Networking:
- 2.6.4. Database:
- 3. Features to test
- 4. Approach Refinements
- 5. Test environment
- 6. Related
- 1.
- 2. Introduction
- 2.1. Overview
- 2.2. Scope
- 2.3. Swift v1.4.4 functions summary
- 2.4. CloudStack OpenStack integration
- 2.5. Assumptions
- 2.6. 2.6 Hardware & software Requirements
- 2.6.1. Hardware:
- 2.6.2. Software:
- 2.6.3. Networking:
- 2.6.4. Database:
- 3. Features to test
- 4. Approach Refinements
- 5. Test environment
- 6. Related
Introduction
Overview
To provide highly redundant and scalable solution, CloudStack will deploy OpenStack Object Storage Swift as part of foundation for cloud storage infrastructure. In CloudStack 3.0 Acton, Swift is underlying storage engine in addition to Secondary Storage. This document will describe the test effort for CloudStack functionalities with the integration of OpenStack Swift.
Scope
The test strategy is to validate CloudStack functionalities with the integration of OpenStack Diablo release Swift v1.4.4 for KVM, OVM, Vmware, Xenserver hypervisor platforms. Validation of OpenStack Diablo Swift v1.4.4 topology, installation, configuration is conducted. Regression testing of CloudStack functionalities will be performed. Upgrade testing from 2.2.11, 2.2.12 to Acton Release will be conducted. Clustered Management Server configuration will also be validated. Stress testing will be done.
Swift v1.4.4 functions summary
Swift cluster contains following types of nodes/hosts:
- Proxy node runs proxy server processes which proxy API requests to appropriate storage nodes.
- One proxy node can run both proxy server and auth server.
- Auth node runs auth server which controls authentication and authorization for all requests.
- Storage nodes run account server, container server, object-server processes and maintain data copies that are updated and retrieved by proxy servers. Storage servers distribute data across all storage fault zones. Five storage nodes are recommended for storage of the account databases, the container databases, as well as the actual stored objects.
Proxy and Auth services can be run on single node. Load balancing is provided among Multiple proxy/auth and storage nodes in cluster expansions or migrations for reliability and performance.
Swift cluster can be deployed across zones grouped by physical locations, power separations, network separations, etc. As data is replicated 3 times across the cluster, a minimum of 5 zones is recommended.
Failover management is provided within a cluster of nodes by the proxy servers.
Swift supports default limit of 5GB on size of a single uploaded or downloaded object. Virtually unlimited object size is supported via segmentation where large object is split into segments via the Swift Tool with possibility of parallel uploads of the segments.
Swift has five separate services: proxy, authentication, account, container, object
. Swift system components:
- Proxy server processes API requests and routes requests to storage nodes
- Auth server authenticates and authorizes requests
- Ring represents a mapping between the names of entities stored on disk and their physical location. There are separate rings for accounts, containers, and objects. When other components need to perform any operation on an object, container, or account, they need to interact with the appropriate ring to determine its location in the cluster.
- Replicator provides redundancy for accounts, containers, objects
- Updater processes failed or queued updates
- Auditor verifies integrity of objects, containers, and accounts
- Account Server handles listing of containers, stores as SQLite DB
- Container Server handles listing of objects, stores as SQLite DB
- Object Server stores, retrieves, and deletes objects stored on local devices.
Swift works on any modern filesystem that supports Extended Attributes (XATTRS). XFS is recommend as it demonstrated the best overall performance.
CloudStack OpenStack integration
- Prior to CS 3.0 Acton, templates, ISOs and snapshots are stored in secondary storage. This scheme is not scaleable and presents performance problems when multiple hosts access secondary storage concurrently via a SSVM. Swift cluster proxy servers are dedicated to provide higher performance and scalability. Internally, Swift cluster replaces secondary storage for storage only. ISOs are copied from Swift cluster to secondary storage, then to primary storage during VM creation.
- One swift cluster per CloudStack Management Server setup with following provision:
- CS uses one swift account
- ISO uses one ISO container
- template uses one template container
- snapshot uses one container per volume
Assumptions
- 1 proxy node running Proxy server and Auth server
- 5 storage nodes in Swift cluster
2.6 Hardware & software Requirements
Hardware:
| Type | Count |
|---|---|
| CS hosts (x86 hardware + KVM, OVM, VMware, XEN) | 10 |
| CS NFS share | 4 |
| CS iSCSI share | 2 |
| Swift proxy node | 1 |
| Swift auth node | 1 |
| Swift storage node | 5 |
| Swift storage (RAID not recommended) | 1 |
Software:
| Type | OS |
| CS MS | CentOS 5.5 |
| CS hosts KVM | RHEL 6.0 RHEL 6.1 |
| CS hosts OVM | OVM 2.3 |
| CS hosts VMware | ESXi 4.1 |
| CS hosts Xen | XenServer 5.6 GA FP1 |
| Swift OS
OpenStack APT packages
| Ubuntu Server 11.10 or 10.04 |
Networking:
- Swift configured with Two separate GbE networks:
- management/control network connecting Swift Proxy and Auth nodes and non-Swift hosts
- to internet
- private storage network not accessible from outside the cluster connecting all Swift storage nodes
Database:
CloudStack mysql
OpenStack Swift SQLite database is part of container and account management process
Features to test
Swift Installation on each node
- Install baseline Ubuntu Server 11.10 or 10.04 LTS
- Install common OpenStack Swift software and prerequisites
- Install Auth node
- Install Proxy node
- Install Storage nodes
- Install & Configure NTP package
Swift Configuration
- Configure Swift
- Configure Auth node
- Configure Proxy node
- Configure Storage nodes
- Configure Rsync
- Create Admin account
- Configure account, container, object rings
- Verify Swift installation using Curl
CloudStack Management Server functionalities
- Management Server
- Domains / Accounts
- Hosts
- Network Configurations
- Offerings
- Storage
- Secondary Storage
- Primary Storage
- Guest VMs
- Snapshots
- HA
Approach Refinements
CloudStack with Swift cluster topology
Internet
|
Public switch
|
CS MS - 10 CS hosts - CS PS - Swift proxy/auth nodes - CS SS
|
Private switch
|
5 Swift storage nodes
Hypervisor host Configurations
KVM
zone1 pod1 cluster1
host1 RHEL 6.1
host2 RHEL 6.1
host3 RHEL 6.1
PS1
cluster2
host4 RHEL 6.1
PS2
pod2 cluster3
host5 RHEL 6.1
PS3
cluster4
host6 RHEL 6.1
PS4
SS1
SS2
zone2 pod3 cluster5
host7 RHEL 6.1
PS5
cluster6
host8 RHEL 6.1
PS6
SS3
SS4
OVM
zone1 pod1 cluster1
host1 XEN 5.6 GA FP1
PS1
cluster2
host2 OVM 2.3
host3 OVM 2.3
host4 OVM 2.3
PS2
pod2 cluster4
host6 OVM 2.3
PS3
cluster5
host7 OVM 2.3
PS4
SS1
SS2
zone2 pod3 cluster6
host8 XEN 5.6 GA FP1
PS5
cluster7
host9 OVM 2.3
PS6
cluster8
host10 OVM 2.3
PS7
SS3
SS4
Vmware
zone1 pod1 cluster1
host1 ESXi 4.1
host2 ESXi 4.1
host3 ESXi 4.1
PS1
cluster2
host4 ESXi 4.1
PS2
pod2 cluster3
host5 ESXi 4.1
PS3
cluster4
host6 ESXi 4.1
PS4
SS1
SS2
zone2 pod3 cluster5
host7 ESXi 4.1
PS5
cluster6
host8 ESXi 4.1
PS6
SS3
SS4
XenServer
zone1 pod1 cluster1
host1 XEN 5.6 GA FP1
host2 XEN 5.6 GA FP1
host3 XEN 5.6 GA FP1
PS1
cluster2
host4 XEN 5.6 GA FP1
PS2
pod2 cluster3
host5 XEN 5.6 GA FP1
PS3
cluster4
host6 XEN 5.6 GA FP1
PS4
SS1
SS2
zone2 pod2 cluster5
host7 XEN 5.6 GA FP1
PS5
cluster6
host8 XEN 5.6 GA FP1
PS6
SS3
SS4
Management Server Configurations
- single MS, 2 zones, pods with multiple clusters with multiple hosts, single primary & secondary storage
- clustered management servers, 2 zones, pods with multiple clusters with multiple hosts, multiple primary & secondary storage
Primary storage Configurations
- NFS
- iSCSI
- local
Test Cases / Workflows
- Domains, Accounts, Users
- Hosts operations:
- add
- remove
- maintenance
- disable/enable zones / pods / clusters
- Network configurations:
- advanced
- virtual network
- direct tagged
- multi nic
- basic
- advanced
- Offerings
- service
- disk
- system service
- Guest VM: VM lifecycle
- ISO / template operations
- snapshots management
- volumes management
- secondary storage: iso / template operations
- primary storage :
- network operations: IP forwarding, load balancing, VPN
- HA
- Clustered management servers
Test environment
Entry Criteria
CloudStack 3.0 Acton Release availability
OpenStack Diablo Swift v1.4.4 availability
Hardware, networking availability
Exit Criteria
Validation of Acceptance Testing :
Management Servers
Domains / Accounts
Hosts
Network Configurations
Offerings
Storage
Secondary Storage
Primary Storage
Guest VMs
Snapshots
HA

Comments
We have install the cloud stack 3.0,and use nfs for second storage. Now we want to use swift for second storage,i have already install the swift. but when i have completed read the install guide, no charter give me the solution to configure the swift for cloud stack. i also check the cloudstack web ui ,it also no page to configure the swift for second storage. Could you tell me how can i configure the swift for the cloudstack?
My email address:
daniel_d_wang@trendmicro.com.cn
Wait for your reply.
Many thanks.
Best Regards
Daniel Wang