Test Plan

advertisement
CoprHD: Test Plan – Cinder behind VPLEX
Revision History
Version
New
Rev1
Rev2
Date
07/27/2015
07/29/2015
08/3/15
Author
H Kushal Prasad
H Kushal Prasad
H Kushal Prasad
Rev3
08/14/15
H Kushal Prasad
Rev4
08/18/15
H Kushal Prasad
Notes
Initial Draft
Dev suggested changes to test cases
Pre-requisites, new use cases and new cases added
based on review comments
EMC Japan Team comments and changes due to
volume-type reset implementation
Modified test strategy: removed point mentioning
about adding arrays to support matrix
Overview:
This document outline the approach for validating 3rd party (Cinder) arrays as backend storage
system for VPLEX in CoprHD
Scope:
This document lists the use cases that need to be supported and test cases executed to validate
each use cases. It also captures the test environment that will be used for validation.
Test Strategy:



Testing should adequately test all the use cases identified and will consists of functional,
regression and negative testing.
Where ever tests are invoked from CoprHD directly, validation needs to be done to
ensure consistency.
All test cases need to be run against every supported target array.
Prerequisite:
1. OpenStack KILO/JUNO deployment for Northbound integration.
2. Configure ViPR Cinder Driver and configure volume-type minimum one per tenant :
https://github.com/emcvipr/controller-openstack-cinder
3. OpenStack KILO deployment for Southbound integration: Use OVA build
https://community.emc.com/docs/DOC-37248
4. Cinder FC Drivers for NetApp, 3Par and Fujitsu arrays configured on OpenStack limited
installation.
5. 3 Node CoprHD installation and configuration: https://community.emc.com/docs/DOC45923
6. Third-party arrays should be discovered on CoprHD using Cinder southbound.
7. Tenants, Varrays, Vpools, Projects to be created on CoprHD.
8. Tenant, varray and project on CoprHD should be configured in cinder.conf and vpool
should be mapped to volume-type.
9. SMI-S for arrays and FC-Switch should be installed and discovered on CoprHD.
10. NTP, AD and DNS servers should be installed and configured on CoprHD.
11. RHEL servers should be registered with RHN.
Use cases:
Use cases are built around the integration of CoprHD and OpenStack and are classified into 4
sections based on the datacenter requirements.
Requirement
Provisioning VM
Use
Case ID
1a
1b
Data Volume operations
Decommissioning VM
Multi-tenancy
Use Cases
Create Persistent Boot Volume for VM (Create Volume from
Image) with HBA on Cinder Northbound
Create Persistent Boot Volume for VM (Create Volume from
Image) without HBA on Cinder Northbound
2
Launch Instance and Attach Boot Volume to Nova VM
3
Create Data Volume (Create Volume)
4
Attach Volume to VM
5
Extend Data Volume
6
Create Snapshot
7
Create Volume from Snapshot
8
Clone Volume (Create Volume from Volume)
9
Detach Volume
10
Delete Cinder Volume
11
Data migration between two pools (Change Volume-type)
12
Data migration between two arrays (Change Volume-type)
13
Create HA volume with VPLEX Local Mirror
14
Create snapshot of HA volume with VPLEX Local Mirror
15
Detach Volume
16
Delete Volume
17
Terminate instance
18
CRUD operations using multiple tenants
Test Environment:
•
•
•
Target arrays
– Fujitsu ETERNUS
– HP 3Par StoreServ7200 with microcode 5.2 SP1
– NetApp FAS (FC Block) 7-mode
OpenStack Kilo Release
Any other devices used should be part of CoprHD support matrix. Example VPLEX,
SAN-Switch
CoprHD
resources
Virtual Pool
Virtual Array
Project
Tenants
Configuration
Separate virtual pools will be used for each backend array. Virtual pools will have
following configuration
1. VPLEX Local High Availability enabled
2. Continuous copies enabled on use case based
3. Snapshot enabled on use case based
4. Expandable enabled on use case based
5. Minimum paths =1, Maximum paths=2 and Paths per initiator=1 will be used as
default
Each array is placed in different virtual array except for the use case where volume is
migrated from one array to another. SAN Zoning will be set to Automatic
3 projects will be used on CoprHD. One project per tenant
3 tenants will be used on Openstack and CoprHD. One to one mapping will be created
using the back-ends configuration and volume-types defined on Openstack. Each
virtual array and virtual pool are associated to specific tenant
Test Cases:
Use Case 1a: Provisioning VM: Create Persistent Boot Volume for VM (Create Volume from Image)
Below tests are initiated by user from OpenStack UI/CLI
These items are tested on Cinder node with HBA configuration
Sl No
1
2
3
4
5
6
Test Case
Create bootable volume from
image/volume/snapshot
List volume-types
List the volume
Show volume details
Delete bootable volume created
from image
Create bootable volume with
invalid input
Example: Without specifying size,
With same name as existing normal
volume
Expected result
New bootable volume is created
Type
Positive
Importance
High
Volume-types are listed
Volumes are listed
Details of volume are shown
Specified bootable volume is
deleted
No new bootable volume is
created and appropriate error
message should be displayed
Positive
Positive
Positive
Positive
Medium
Medium
Medium
High
Negative
Low
Use Case 1b: Provisioning VM: Create Persistent Boot Volume for VM (Create Volume from Image)
Below tests are initiated by user from OpenStack UI/CLI
These items are tested on Cinder node without HBA configuration
Sl No
1
2
3
4
5
6
Test Case
Create bootable volume from
image/volume/snapshot
List volume-types
List the volume
Show volume details
Delete bootable volume created
from image
Create bootable volume with
invalid input
Example: Without specifying size,
With same name as existing normal
volume
Expected result
New bootable volume is created
Type
Positive
Importance
High
Volume-types are listed
Volumes are listed
Details of volume are shown
Specified bootable volume is
deleted
No new bootable volume is
created and appropriate error
message should be displayed
Positive
Positive
Positive
Positive
Medium
Medium
Medium
High
Negative
Low
Use case 2: Provisioning VM: Launch Instance and Attach Boot Volume to Nova VM
Below tests are initiated by user from OpenStack UI/CLI
Sl No
1
Test Case
Create a volume from an image and
Expected result
New bootable volume is created
Type
Positive
Importance
High
boot an instance from that volume
2
4
Create bootable volume with and
without delete on terminate option
Launch an instance from existing
bootable volume
Reboot instance
5
6
Shutdown instance
Start instance
7
Pause instance
8
Resume instance
9
Suspend instance
10
Resize instance
11
Launch instance using normal
volume
12
Attach the same bootable volume to
more than one instance
3
and instance is booted using
newly created volume
New bootable volume is created
with specified option
New instance is launched using
existing bootable volume
Instance comes up and
functions normally
Instance is powered off
Instance power on and
functions normally
Instance current state changed
to pause
Instance comes up and
functions normally
Instance current state changed
to suspend
Newly specified size is updated
on instance
Launch instance operation will
fail with appropriate error
message
Cannot attach a single bootable
volume to more than one
instance. Attach operation will
fail with appropriate error
message
Positive
Medium
Positive
High
Positive
High
Positive
Positive
High
High
Positive
Low
Positive
Low
Positive
Low
Positive
Low
Negative
Low
Negative
Low
Expected result
New data volume is created with
specified size using the volumetype provided
Type
Positive
Importance
High
New large data volume is created
Positive
High
Volumes are listed
Details of specified volume are
shown
Specified volume is removed
Create volume operation fails with
appropriate error message
Create volume operation fails with
appropriate error message
Positive
Positive
Medium
Medium
Positive
Negative
High
Low
Negative
Low
Use case 3: Data Volume operations: Create Data Volume (Create Volume)
Below tests are initiated by user from OpenStack UI/CLI
Sl No
1
2
3
4
5
6
7
Test Case
Create volume with specified
size and volume-type
Example: Size can be 1GB, 10
GB etc
Create large volume
Example: 500GB, 1TB etc
List volumes
Show volume details
Delete volumes
Create volume with invalid size
Example: Size= -1GB, abc GB
Create volume with same name
as existing volume
Use case 4: Data Volume operations: Attach Volume to VM
Below tests are initiated by user from OpenStack UI/CLI
Sl No
1
Test Case
Attach volume to an instance
2
Format the volume on instance
and mount
Example: format the volume as
ext3 and mount
Write data on volume
3
4
Reattach volume to instance
after detach operation
5
Attach multiple volumes to an
instance
6
Try to attach volume with
invalid inputs. Example: use
non existing volume or
instance
Try to attach the same volume
to more than one instances
7
Expected result
Data volume is attached to instance
and attached path is updated in
volume
Data volume will be formatted and
mount path will be listed
Type
Positive
Importance
High
Positive
High
New file/dir can be created and data
can be written
Data volume is attached to instance
and new attached path is updated in
volume
Multiple volumes are attached to an
instance and each volume will have
unique attached path
Attach volume operation fails with
appropriate error message
Positive
High
Positive
High
Positive
High
Negative
Low
Negative
Low
Expected result
Size of a volume is updated with
new size. Volume can be used
normally
Type
Positive
Importance
High
Size of the volume remains same and
appropriate error message displayed.
Volume can be used normally
Negative
Low
Volume expand operation fails with
appropriate error message
Negative
Low
Type
Positive
Importance
High
Attach volume operation fails with
appropriate error message
Use case 5: Data Volume operations: Extend Data Volume
Below tests are initiated by user from OpenStack UI/CLI
Sl No
1
2
3
Test Case
Expand volume which is not
exported
Example: If volume is of size
1GB expand it to 5 GB
Expand volume with invalid
arguments. Example: negative
size or by specifying size less
than current size of volume
Expand when volume is
attached with instance
Use case 6: Data Volume operations: Create Snapshot
Below tests are initiated by user from OpenStack UI/CLI
Sl No
1
Test Case
Create snapshot of volume
Expected result
New snapshot is created
2
3
4
5
6
7
which has data
Create multiple snapshots of
the same volume
Delete volume snapshots
List snapshots
Show snapshot
Create snapshot of volume
which is not attached and has
no data
Create snapshot with invalid
inputs. Example: use same
name as existing snapshot
name
Multiple snapshots of a volume are
created
Volume snapshots are removed
Volume snapshots are listed
Details of volume snapshot are
shown
New snapshot is created
Positive
High
Positive
Positive
Positive
High
Medium
Medium
Positive
Medium
Create volume snapshot operation
fails with appropriate error message
Negative
Low
Expected result
New volume is created
Newly created data volume can be
mounted and data can validated
Multiple data volumes are created
Type
Positive
Positive
Importance
High
High
Positive
Medium
Create volume from snapshot fails
with appropriate error message
Negative
Low
Expected result
New volume is created
Type
Positive
Importance
High
Data volume is attached to instance
and attached path is updated in
volume. Data volume can be
mounted and data can validated
Multiple clones of a volume are
created
Volume clones are removed
Volume clones are listed
Details of clone volume is shown
Create volume clone operation fails
with appropriate error message
Positive
High
Positive
High
Positive
Positive
Positive
Negative
High
Medium
Medium
Low
Use case 7: Data Volume operations: Create Volume from Snapshot
Below tests are initiated by user from OpenStack UI/CLI
Sl No
1
2
3
4
Test Case
Create volume from snapshot
Mount the volume created from
snapshot and validate data
Create multiple volumes from
snapshot
Create volume from snapshot
with invalid inputs. Example:
Use the non-existing snapshot to
create volume
Use case 8: Data Volume operations: Clone Volume (Create Volume from Volume)
Below tests are initiated by user from OpenStack UI/CLI
Sl No
1
2
3
4
5
6
7
Test Case
Create volume from the
existing volume
Attach and mount the clone
volume and verify data
Create multiple clones of a
volume
Delete clone volumes
List clone volumes
Show clone volume
Create clone with invalid
inputs. Example: use the same
name for clone as existing
volume or use the non-existing
volume to create clone
Use case 9: Data Volume operations: Detach Volume
Below tests are initiated by user from OpenStack UI/CLI
Sl No
1
2
3
Test Case
Un-mount volume on instance
Detach volume from instance
Detach volume with invalid
input. Example: use nonexisting volume
Expected result
Volume is un-mounted
Volume is detached from volume
Volume detach operation fails with
appropriate error message
Type
Positive
Positive
Negative
Importance
High
High
Low
Expected result
Volume is removed
Type
Positive
Importance
High
Multiple volumes are removed
Volume is removed
Positive
Positive
High
High
Volume delete operation fails with
appropriate error message
Volume delete operation fails with
appropriate error message
Volume delete operation fails with
appropriate error message
Negative
Low
Negative
Low
Negative
Low
Use case 10: Data Volume operations: Delete Cinder Volume
Below tests are initiated by user from OpenStack UI/CLI
Sl No
1
2
3
4
5
6
Test Case
Delete a volume which is not
attached to instance
Delete multiple volume
Delete volume which has
clones
Delete a volume which is
attached with instance
Delete volume which has
snapshots
Delete volume with invalid
inputs. Example: use nonexisting volume
Use case 11: Data Volume operations: Data migration between two pools (Change Volume-type)
Below tests are initiated by user from Openstack UI/CLI
Sl No
1
Test Case
Migrate a volume between volume-types
2
Migrate all volumes belonging to a
volume-type to different volume-type
Expected result
Volume migrated from
source volume-type to
destination volume-type
given underneath vpool
have different properties
Volume migrated from
source volume-type to
destination volume-type
given underneath vpool
have different properties
Type
Positive
Importance
High
Positive
High
3
Perform volume related operations like
expand, attach, detach ,clone, export,
snapshot after migrating the volume
4
Migrate volumes which are attached to
instance
5
Migrate a non VPLEX volume to
VPLEX
6
Migrate a volume which has clones
between volume-types
7
Migrate bootable volumes which are not
assigned to instance between volumetypes
8
Migrate a volume which has snapshots
9
Migrate a volume between volume-types
which are associated with identical
vpools
Migrate a volume between volume-types
by passing invalid inputs. Example: Use
non-existing volume or non-existing
volume-type
Migrate a volume between volume-types
when target vpool does not have enough
space
10
11
All volume related
operations can be
performed on volume after
migration
Volume migrated from
source volume-type to
destination volume-type
given underneath vpool
have different properties
and is still attached to
instance
Non-VPLEX volume is
converted into VPLEX
volume
Volume migrated from
source volume-type to
destination volume-type
given underneath vpool
have different properties
Volume migrated from
source volume-type to
destination volume-type
given underneath vpool
have different properties
Volume migrate operation
fails with appropriate error
message
Volume migrate operation
fails with appropriate error
message
Volume migrate operation
fails with appropriate error
message
Volume migrate operation
fails with appropriate error
message
Positive
High
Positive
High
Positive
High
Positive
High
Positive
High
Negative
Low
Negative
Low
Negative
Low
Negative
Low
Use case 12: Data Volume operations: Data migration between two arrays (Change Volume-type)
Below tests are initiated by user from OpenStack UI/CLI
Sl No
1
Test Case
Migrate a volume between volume-types
where underneath vpools are associated
with different arrays
Expected result
Volume migrated from
source volume-type to
destination volume-type
and same is reflected on
OpenStack UI/CLI.
Volume migrated to target
Type
Positive
Importance
High
2
Migrate all volume between volume-types
associated with different arrays
3
Perform volume related operations like
expand, clone, export, snapshot after
migrating the volume
4
Migrate a non VPLEX volume to VPLEX
5
Migrate volumes which are attached to
instance
6
Migrate a volume between volume-types
by passing invalid inputs. Example: Use
non-existing volume or volume-type
Migrate a volume between volume-types
when target vpool does not have enough
space
7
array
All volumes are migrated
from source volume-type
to destination volumetype. Volumes are
migrated to target array
All volume related
operations can be
performed on volume after
migration
Non-VPLEX volume are
converted into VPLEX
volume
Volume migrate operation
fails with appropriate error
message
Volume migrate operation
fails with appropriate error
message
Volume migrate operation
fails with appropriate error
message
Positive
High
Positive
High
Positive
Low
Negative
Low
Negative
Low
Negative
Low
Expected result
New vpool is created with VPLEX Local
data protection and continuous copies
enabled
Mirror volume is created
All volume related operations from
OpenStack can be performed on volume
after mirror volume is created
Type
Positive
Importance
High
Positive
Positive
High
High
Mirror volume is deleted
Mirror volume are listed
Details of mirror volume are shown
Mirror volume is paused
Mirror volume is resumed
Swap primary volume with mirror
volume
failover to mirror volume
Establish mirror volume and primary
volume
Positive
Positive
Positive
Positive
Positive
Positive
High
Medium
Medium
Medium
Medium
Medium
Positive
Positive
Medium
Medium
Use case 13: Data Volume operations: Create HA volume with VPLEX Local Mirror
Below tests are initiated by user from CoprHD UI/CLI
Sl No
1
4
5
6
7
8
9
Test Case
Create vpool with VPLEX
Local data protection and
enable continuous copies
Create mirror volume
Perform volume related
operations like expand,
attach/detach, delete after
creating mirror volume
*Note: This tests are
initiated from OpenStack
UI/CLI
Delete mirror volume
List mirror volume
Show mirror volume
Pause mirror volume
Resume mirror volume
Swap mirror volume
10
11
Failover mirror volume
Establish mirror volume
2
3
12
Restore mirror volume
13
Stop mirror volume
14
Create multiple mirror
volumes
Delete volume with mirror
15
16
Restore primary volume from mirror
volume
Stop mirroring between primary and
mirror volume
Multiple new mirror volumes are created
Positive
Medium
Positive
High
Positive
High
Mirror volume delete operation fails with
appropriate error message
Create volume mirror operation fails
with appropriate error message
Negative
Low
Negative
Low
Expected result
New snapshot of volume is created
Type
Positive
Importance
High
Multiple new snapshots are created
Positive
High
Snapshot of a mirrored volume is removed
Positive
High
Snapshots are listed
Details of snapshot are shown
New snapshot of volume is created
Positive
Positive
Positive
Medium
Medium
Low
Create snapshot operation will fail with
appropriate error message
Negative
Low
Type
Positive
Importance
High
Create mirror volume with
invalid input. Example: Use
non-existing volume or use
mirror name same as
existing mirror
Use case 14: Create snapshot of HA volume with VPLEX Local Mirror
Below tests are initiated by user from OpenStack UI/CLI
Sl No
1
2
3
4
5
6
7
Test Case
Create snapshot of a
volume which is
mirrored
Create multiple
snapshots of the
volume which is
mirrored
Deleted snapshot of a
volume which is
mirrored
List snapshots
Show snapshot
Create snapshot of
volume which is not
attached and has no
data
Create snapshot with
invalid inputs.
Example: use same
name as existing
snapshot name
Use case 15: Decommissioning VM: Detach Volume
Below tests are initiated by user from OpenStack UI/CLI
Sl No
1
Test Case
Detach volume after instance is
shutdown
Expected result
Volume is detached from instance
2
Detach volume when instance is
running
Detach volume operation fails with
appropriate error message
Negative
Low
Expected result
Volume is removed
Type
Positive
Importance
High
Volume delete operation fails with
appropriate error message
Negative
Low
Type
Positive
Importance
High
Expected result
Only volume-types to which tenant/user has
access will be listed
All 5 operations completed successfully
Type
Positive
Importance
High
Positive
High
5 new volumes of 1 GB are created
Positive
High
5 new volumes of specified size are created
Positive
High
5 new volumes of 1 TB are created
Positive
High
20 new volumes of 1 TB are created
Positive
High
Use case 16: Decommissioning VM: Delete Volume
Below tests are initiated by user from OpenStack UI/CLI
Sl No
1
2
Test Case
Delete volume after detaching
from instance
Delete volume while it is still
attached to instance
Use case 17: Decommissioning VM: Terminate instance
Below tests are initiated by user from OpenStack UI/CLI
Sl No
1
Test Case
Terminate instance
Expected result
Instance is terminated
Use case 18: Multi-tenancy: CRUD operations using multiple tenants
Below tests are initiated by user from OpenStack UI/CLI
Sl No
1
Test Case
List volume-types
2
Simultaneously
perform 5 operations
(create clone, Delete
volume, Create
snapshot, Create
mirror, list volumes )
as different Tenants
From different Tenants
concurrently create 5
volumes of size 1 GB
each
From different Tenants
concurrently create 5
volumes of size of
different size
From different Tenants
concurrently create 5
volumes of size 1 TB
each
From different Tenants
concurrently create 20
3
4
5
6
7
8
9
volumes of size 1 TB
each
Create volume using
the volume- type
associated with
different tenant
Create a snapshot
using the volume
associated with
different tenant
Delete volume clone
associated with
different tenant
Create volume operation will fail with
appropriate error message
Negative
Low
Create snapshot operation will fail with
appropriate error message
Negative
Low
Delete volume operation will fail with
appropriate error message
Negative
Low
Apart from above listed use case based testing; following Sanity/Unit test cases will be covered from
CoprHD UI/CLI/Catalog services during testing cycle.
Sl No
1
2
3
4
5
6
7
8
9
Test Case
Discover storage
system
Discover fabric
manager
Discover Nova
compute node
Discover
Windows/Linux host
Create virtual array
Associate third-party
storage system with
virtual array
Create virtual pool
with storage pools of
third-party
Create block volume
for a host
Remove volume by
host
10
11
Create block volume
Remove block
volumes
12
Export VPLEX
volume
Unexport volume
Create and mount
13
14
Expected result
Storage system, storage pools and DEFAULT
storage port will be discovered
Fabric manager and associated networks are
discovered
Nova compute node and associated FC ports
are discovered
Windows/Linux host and associated FC ports
are discovered
Virtual array will be created
Third-party array will be added to the virtual
array
Type
Positive
Importance
High
Positive
High
Positive
High
Positive
High
Positive
Positive
High
High
Virtual pool will be created with third-party
storage pools
Positive
High
Block volume will be created and exported to
specified host
Block volume along with snapshot, export
group, clones of a block volume which is
associated with specified host will be
removed
Block volume will be created
Block volume and associated resources like
snapshot, export group, clones will be
removed
VPLEX volume will be attached to specified
host
VPLEX volume will be detached from host
New volume will be created and mounted on
Positive
High
Positive
High
Positive
Positive
High
High
Positive
High
Positive
Positive
High
High
15
16
17
18
19
20
21
block volume on Linux
host
Unmount and delete
volume on Linux host
Mount existing volume
on Linux
Unmount volume on
Linux
Create and mount
volume on Windows
host
Unmount and delete
volume on Windows
host
Mount volume on
Windows
Unmount Volume on
Windows
Linux host
volume will be removed after unmounted
from Linux host
Volume will be mounted on Linux host
Positive
High
Positive
High
volume will be un mounted from Linux host
Positive
High
New volume will be created and mounted on
Windows host
Positive
High
volume will be removed after unmounted
from Windows host
Positive
High
Volume will be mounted on Windows host
Positive
High
Volume will be unmounted from Windows
host
Positive
High
Download