OCFS2 Inline Data Test
Contents
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 |
Single Node Testing Tool Dev: |
Latest Src build from git repo with inline-data supported |
08/04/2008 |
||
2.6.26-rc9 |
x86_64/2 Nodes |
/dev/sdd1 |
Single Node Testing Tool Dev:Add hole punch/fill,truncate and dir growing testcases. |
Latest Src build from git repo with inline-data supported |
08/05/2008 |
||
2.6.26-rc9 + 0001-ocfs2-correctly-set-i_blocks-after-inline-dir-gets.patch |
x86_64/2 Nodes |
/dev/sdd1 |
Single Node Testing Tool Dev:Add Multiple process rw testcase |
Latest Src build from git repo with inline-data supported |
08/06/2008 |
||
2.6.26-rc9 + 0001-ocfs2-correctly-set-i_blocks-after-inline-dir-gets.patch |
x86_64/2 Nodes |
/dev/sdd1 |
Single Node Testing Tool Dev:Add Dir RW testcase |
Latest Src build from git repo with inline-data supported |
08/07/2008 |
||
2.6.26-rc9 |
x86_64/2 Nodes |
/dev/sdd1 |
Ocfs2-tools-fswreck enhancement: Add inline-data corrupt codes for fswreck |
Latest Src build from git repo with inline-data supported |
0002-Add-corrupt-code-for-inline-data-in-fswreck-include.patch |
08/12/2008 |
|
2.6.26-rc9 |
x86_64/2 Nodes |
/dev/sdd1 |
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 |
08/13/2008 |
||
2.6.26-rc9 |
x86_64/2 Nodes |
/dev/sdd1 |
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 |
Single-node Inline-data Testing tool dev: Complete tools integration with existing one and wrapper launcher |
Latest Src build from git repo with inline-data supported |
inline-data-0826.tgz |
08/26/2008 |
|
2.6.26-rc9 |
x86_64/2 Nodes |
/dev/sdd1 |
Multiple-node Testing tool dev: |
Latest Src build from git repo with inline-data supported |
Upload new attachment "inline-data-0829.tgz" |
08/29/2008 |
|
2.6.26-rc9 |
x86_64/2 Nodes |
/dev/sdd1 |
Sinlge/multiple node test: |
Latest Src build from git repo with inline-data supported |
09/01/2008 |
||
2.6.26-rc9 |
x86_64/2 Nodes |
/dev/sdd1 |
Enhancement of dirs testis for multiple nodes: |
Latest Src build from git repo with inline-data supported |
09/03/2008 |
||
2.6.26-rc9 |
x86_64/2 Nodes |
/dev/sdd1 |
Get inline-data test ready for mailing the pathes out |
Latest Src build from git repo with inline-data supported |
09/04/2008 |
||
2.6.26-rc9 |
x86_64/2 Nodes |
/dev/sdd1 |
Mail out minor patches for ocfs2-tools testing. |
Latest Src build from git repo with inline-data supported |
09/08/2008 |
||
2.6.26-rc9 |
x86_64/2 Nodes |
/dev/sdd1 |
Modify multiple launcher with remote_mount.py support. |
Latest Src build from git repo with inline-data supported |
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 |
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 |
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 |