[OracleOSS] [TitleIndex] [WordIndex]

OCFS2/DxdirsTest

OCFS2 Indexed Dir Test

Introduction

This document aims at scheduling the testing plan against dx-dirs which we're currently implementing on Ocfs2,and also capture/record the testing result to trace the status during test where we can easily position a bug. In an addition,we also explain how all of the testcases will be organized and the workflow of their corresponding testing tool.

Test Limitation

The limitation defined by desgin roadmap during dxdirs implementation on ocfs2 should be claimed here to make a clear understanding of how can we expect our testing tool most.

OCFS2_MAX_FILENAME_LEN        255
OCFS2_MAX_SLOTS                    255
VFS_PATH_MAX                         65536
OCFS2_MAX_BLOCKSIZE              4k

Testcases

we concentrated on feature,stress and boundary test for kernel fs both in single and multiple nodes,and then formalize these into a testing tool package.currently,we'll only focused on dx-dirs testing without INLINE-DATA enabled to avoid a confusion here.

1.Single-node Tests

All testcases scheduled in index_dir_run.sh,basically these testing scenarios were provided by index_dir.c while some other cases built by shell.

1. Basic Feature test,consists of a set of dirs operations for dx-dirs,it includes dirents creation,unlink,traverse,lookup etc under a series of block and cluster size(-b 512/1k/2k/4k,-C 4k/8k/16k/../1M)

2. Random tests,run tests with a random directory dirent length,dirent numbers or directory depth, also perform dirent deletion/rename from a random logical offset. also fill up empty dirent blocks randomly.

3. Concurrent tests, tests with a fixed number of processes to concurrently manipulate the dirents under a same directory.

4. Multiple process tests, tests with a fixed number of processes to respectively perform dirents manipulation under different dirs.

5. Boundary tests, 1) Test to right extend a inlined directory into indexed one, 2) Test to right extend a inlined index record block to extent.

6. Growing tests, grow the target volume by filling it up with indexed dirs

7. Stress tests, create more than 40000 dirents under a dir.

8. Destructive test, tests with a enormous dir depth and dirent number to let directory tree grow dramatically.

*Do verifications after each test to see if dirents we're manipulating are missing/duplicated or not.

 

2.Multi-nodes Tests

NOTE:To launch the multi-nodes test,need to install openmpi first,and a configuration of ssh/rsh passwordless access also needed in advance.

1. Concurrent growing test.
             
2. Concurrent rename test.
       
3. Concurrent Read test
           
4. Concurrent unlink test

5. Concurrent dirent fillup test
    
6. Stress test 


2.Performance Comparison Test

We borrow the testcases from inode_alloc_perf_test to perform a information comparison test between indexed-dirs and unindexed-dirs.

Testing Status

Kernel/Patches

Arch/Nodes

Ocfs2 Options

Testing Report

Ocfs2-Tools

Testing Tool

Date

Coverage

Mark's git tree(git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2.git dx_dirs
last commitid:12386e4b65eadee8528f2a2c1c644d376feec623: re-order ocfs2_empty_dir checks.

i686/2 Nodes

/dev/sdo1
Blocksize=4k
Clustersize=32k
Slots=4
Nodes=2
Mount Options:
netdev,nointr

Single Node Testing:Bug 1073

ocfs2-tools.git dx-dirs branch

index_dir_test_0210.tgz

10/02/2009

Mark's git tree(git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2.git dx_dirs
last commitid:12386e4b65eadee8528f2a2c1c644d376feec623: re-order ocfs2_empty_dir checks.

i686/2 Nodes

/dev/sdo1
Blocksize=512/1k/4k
Clustersize=4k/32k/1M
Slots=4
Nodes=2
Mount Options:
netdev,nointr

Single Node Testing Tool Dev: Completed
Multiple Nodes Testing Tool Dev: Completed

ocfs2-tools.git dx-dirs branch

dx_dirs_test_0218.tgz

18/02/2009

Mark's git tree(git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2.git dx_dirs
last commitid:f3135eba13bb08388d8dddc0646cb1ae90066ff6: fix leaf start calculation in ocfs2_dx_dir_rebalance().

i686/2 Nodes

/dev/sdo1
Blocksize=512/1k/4k
Clustersize=4k/32k/1M
Slots=4
Nodes=2
Mount Options:
netdev,nointr

Single Node Testing:Verified bug 1073

ocfs2-tools.git dx-dirs branch

dx_dirs_test_0218.tgz

20/02/2009

Mark's git tree(git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2.git dx_dirs
last commitid:f3135eba13bb08388d8dddc0646cb1ae90066ff6: fix leaf start calculation in ocfs2_dx_dir_rebalance().

i686/2 Nodes

/dev/sdo1
Blocksize=512/1k/4k
Clustersize=4k/32k/1M
Slots=4
Nodes=2
Mount Options:
netdev,nointr

Single Node Testing:All tests get passed

ocfs2-tools.git dx-dirs branch

Upload new attachment "dx_dirs_tests_0225.tgz"

25/02/2009

Testing Tools

Name

Script / Program

Description

Technology

#nodes

Useful?

What is tested

inline_data_test

index_dir.c
index_dir_run.sh

These script and c program together help to coordinate indexed-dirs test on single node,including feature,boundary and stress test.

Shell,C

1

Yes

Check basic indexed-dirs functionality on ocfs2 on single node,and stress the the test by tuning workload,also emulate a race to perform concurrent operations on dx-dirs between multi-nodes.

multi_index_dir.c
multi_index_dir_run.sh

propagate processes on multiple nodes to take a race for dirents operations on one indexed dir to test if dx-dirs support on ocfs2 behave well on concurrent events

C,Shell,Openmpi

2

Yes


2012-11-08 13:01