[OracleOSS] [TitleIndex] [WordIndex]

OCFS2/InlineDataTest

OCFS2 Inline Data Test

Introduction

This document aims at scheduling the testing plan against Xattr 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.

TestLimitation

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

MAX_INLINE_DATA_SIZE            ocfs2_max_inline_data()
MAX_FILE_NUMS                       defined by ulimit
OCFS2_MAX_FILENAME_LEN        255
OCFS2_MAX_SLOTS                    255
OCFS2_MAX_BLOCKSIZE              4k
OCFS2_MAX_CLUSTERSIZE          1M

Testcases

we concentrated on feature,stress and boundary test for kernel fs and tools both in single and multiple nodes,and then formalize these into a testing tool package.currently,we'll only focused on inline data testing without EA enabled to avoid a confusion here.during test,2 kinds of inodes are expected to be mentioned:regular file and directory.

1.Single-node Case,all cases scheduled in single_inline_run.sh,basically all generic cases provided by single_inline_test.c while some other cases for tools built by shell

1.FS Feature test,consists of a set of file operations around the cut-off limitation for inline data,it includes buffered read/write,mmap read/write, and truncate to a sparse file with various file flags and mode,moreover,a sanity check should be conducted under a series of block and cluster size(-b 512/1k/2k/4k,-C 4k/8k/16k/../1M)

2.Tools Feature test,consists of a set of file operations by calling APIs provided by libocfs2,and also include a shell test of provided tools,i.e,mkfs,debugfs,tunefs.etc.

3.Boundary test,doing testing with growing a file into a exact size which will extent the inline data to external blocks,this include both fs and tools fields.

4.Concurrent operations test with multiple forked processes against one file,this mainly focus on fs test.

5.Multiple file test,manipulates thousands of file simultaneously via spreading the same amount of processes to perform file operations,this include both fs and tools field.

6.Stress test,punch the test by tuning workload extremely high,including file_nums,process numbers.this include both fs and tools field

 

2.Multi-nodes Case

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

Still plan to do test with the help of openmpi,have not schedule the plan yet.should be built on the basis of single test.

TestStatus

Kernel/Patches

Arch/Nodes

Ocfs2 Options

Testing Report

Ocfs2-Tools

Testing Tool

Date

Coverage

2.6.26-rc9

x86_64/2 Nodes

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

Single Node Testing Tool Dev:
Single Node Testing:
bug:998,999

Latest Src build from git repo with inline-data supported

inline_data_test_0804.tgz

08/04/2008

2.6.26-rc9

x86_64/2 Nodes

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

Single Node Testing Tool Dev:Add hole punch/fill,truncate and dir growing testcases.
Single Node Testing:
found bug:1002

Latest Src build from git repo with inline-data supported

inline_data_test_0805.tgz

08/05/2008

2.6.26-rc9 + 0001-ocfs2-correctly-set-i_blocks-after-inline-dir-gets.patch

x86_64/2 Nodes

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

Single Node Testing Tool Dev:Add Multiple process rw testcase
Single Node Testing:
Verify bug 1002

Latest Src build from git repo with inline-data supported

inline_data_test_0806.tgz

08/06/2008

2.6.26-rc9 + 0001-ocfs2-correctly-set-i_blocks-after-inline-dir-gets.patch

x86_64/2 Nodes

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

Single Node Testing Tool Dev:Add Dir RW testcase
Single Node Testing:

Latest Src build from git repo with inline-data supported

inline_data_test_0807.tgz

08/07/2008

2.6.26-rc9

x86_64/2 Nodes

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

Ocfs2-tools-fswreck enhancement: Add inline-data corrupt codes for fswreck
Ocfs2-tools enhancement:Add inline-data testcases for tunefs-test

Latest Src build from git repo with inline-data supported

0002-Add-corrupt-code-for-inline-data-in-fswreck-include.patch
ocfs2-test-fsck.patch

08/12/2008

2.6.26-rc9

x86_64/2 Nodes

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

Ocfs2-tools enhancement:Add enable/disable inline-data testcase for tunefs-test,found bug 1010

Latest Src build from git repo with inline-data supported

tunefs-test-enable-disable-inline-data.patch

08/13/2008

2.6.26-rc9

x86_64/2 Nodes

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

Ocfs2-tools Testt:Found bug 1013

Latest Src build from git repo with inline-data supported

08/19/2008

2.6.26-rc9

x86_64/2 Nodes

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

Single-node Inline-data Testing tool dev: Complete tools integration with existing one and wrapper launcher
Ocfs2-tools Test:Verified bug 1010
Single-node Inline-data test: Pass,Upload new attachment "single-node-inline-data-test-log.tgz"

Latest Src build from git repo with inline-data supported

inline-data-0826.tgz
ocfs2-inline-data-test-enhancement.patch
ocfs2-inline-dirs-test-enhancement.patch

08/26/2008

ocfs2-inline-data-single-node-test-code-coverage-20080826

2.6.26-rc9

x86_64/2 Nodes

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

Multiple-node Testing tool dev:
MPI binaries and shell wrapper compleleted for multiple-node testing
Single-node and Multiple-node Testing result:
Pass,inline-data-test-log-0829.tgz

Latest Src build from git repo with inline-data supported

Upload new attachment "inline-data-0829.tgz"
ocfs2-inline-data-test-enhancement.patch
ocfs2-inline-dirs-test-enhancement.patch

08/29/2008

ocfs2-inline-data-test-code-coverage-20080829

2.6.26-rc9

x86_64/2 Nodes

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

Sinlge/multiple node test:
found bug 1019

Latest Src build from git repo with inline-data supported

09/01/2008

ocfs2-inline-data-test-code-coverage-20080829

2.6.26-rc9

x86_64/2 Nodes

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

Enhancement of dirs testis for multiple nodes:

Latest Src build from git repo with inline-data supported

inline-data-00903.tgz

09/03/2008

2.6.26-rc9

x86_64/2 Nodes

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

Get inline-data test ready for mailing the pathes out

Latest Src build from git repo with inline-data supported

inline-data-0904.tgz

09/04/2008

2.6.26-rc9

x86_64/2 Nodes

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

Mail out minor patches for ocfs2-tools testing.

Latest Src build from git repo with inline-data supported

minor_patches

09/08/2008

2.6.26-rc9

x86_64/2 Nodes

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

Modify multiple launcher with remote_mount.py support.

Latest Src build from git repo with inline-data supported

inline-data-0925.tgz

09/25/2008

Testing Tools

Currently,since I've not got a svn/git repo for source code,I just kept my latest tools src locally on testing nodes,will move to a proper repo soon once get one.

Name

Script / Program

Description

Technology

#nodes

Useful?

What is tested

inline_data_test

single_inline_test.c
single_inline_run.sh

These script and c program together help to coordinate inline data test on single node,including feature,boundary and stress test.

Shell,C

1

Yes

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

multinode_inline_test.c
multinode_inline_run.sh

propagate processes on multiple nodes to take a race for files operations on one file to test if inline data support behave well on concurrent events

C,Shell,Openmpi

2

Yes


2011-12-23 01:01