Was this article helpful?

Object Storage (Swift) test plan

 

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

  1. 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.
  2. One swift cluster per CloudStack Management Server setup with following provision:
    1. CS uses one swift account
    2. ISO uses one ISO container
    3. template uses one template container
    4. 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

  • python-swift
  • swift
  • swift openssh-server
  • swift-proxy
  • swift-auth
  • swift-account
  • swift-container
  • swift-object
  • xfsprogs

OpenStack APT packages

  • python-software-properties
  • update
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

  1. Domains, Accounts, Users         
  2. Hosts operations:
    1. add
    2. remove
    3. maintenance
    4. disable/enable zones / pods / clusters
  3. Network configurations:
    1. advanced
      1. virtual network
      2. direct tagged
      3. multi nic 
    2. basic
  4. Offerings
    1. service
    2. disk
    3. system service  
  5. Guest VM: VM  lifecycle            
  6. ISO / template operations
  7. snapshots management
  8. volumes management
  9. secondary storage:  iso  /  template operations 
  10. primary storage :
  11. network operations: IP forwarding, load balancing, VPN
  12. HA
  13. 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

Was this article helpful?
Page statistics
1867 view(s), 11 edit(s) and 17358 character(s)

Tags

This page has no custom tags set.

Comments

Viewing 1 of 1 comments: view all
Hi david,
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
Posted 08:29, 24 Feb 2012
Viewing 1 of 1 comments: view all
You must to post a comment.

Attach file

Attachments