-
Notifications
You must be signed in to change notification settings - Fork 11
/
README
154 lines (113 loc) · 4.89 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
Ocfs2 test suite
Installation
============
1. Before installation, the following rpms should be installed:
* For OL6 or OL7:
openmpi libgomp openmpi-devel mpi-selector gcc autoconf libaio-devel e2fsprogs-devel nc reflink
and ocfs2-tools(>1.6) ocfs2-tools-devel(>1.6)
* For OL5:
openmpi libgomp openmpi-devel openmpi-libs mpi-selector gcc autoconf libaio-devel e2fsprogs-devel
and ocfs2-2.6.18-348 ocfs2-tools(>1.6) ocfs2-tools-devel(>1.6)
* For SLES/opensuse:
$sudo zypper in openmpi openmpi-devel gcc autoconf libaio-devel e2fsprogs-devel ocfs2-kmp-default
ocfs2-tools ocfs2-tools-devel ocfs2-tools-devel-static
Note:
For SLE12 later, dev packages(eg. ocfs2-tools-devel) now go into SDK repo. Please add it first, like:
$sudo zypper ar sdk-repo-url sdk-repo-name
2. Add user "ocfs2test" for all nodes
3. The following environment parameters should be set in /home/ocfs2test/.bash_profile for all nodes:
* For OL6 or OL7:
PATH=$PATH:$HOME/bin:/usr/sbin/:/usr/lib64/openmpi/bin:$HOME/bin/ocfs2/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/openmpi/lib
export PATH
export LD_LIBRARY_PATH
* For OL5:
PATH=$PATH:$HOME/bin:/usr/lib64/openmpi/1.4-gcc/bin:$HOME/bin/ocfs2/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/openmpi/1.4-gcc/lib
export PATH
export LD_LIBRARY_PATH
* For SLES/opensuse:
PATH=$PATH:$HOME/bin:/usr/lib64/mpi/gcc/openmpi/bin:$HOME/bin/ocfs2/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/mpi/gcc/openmpi/lib64
export PATH
export LD_LIBRARY_PATH
Note:
Import above env variables by:
$. ~/.bash_profile
4. Install OCFS2 testing suite for all nodes through steps as follows:
* su - ocfs2test
* git clone https://github.com/markfasheh/ocfs2-test #or download from github website
* cd ocfs2-test
* make clean
* ./autogen.sh prefix=/
* make
* make install DESTDIR=/home/ocfs2test/bin/ocfs2
Setup test environment
======================
1. Get access to other nodes
* add the all hosts in cluster.conf info into /etc/hosts for EACH node.
* as "root" user and "ocfs2test" user, generate ssh id on the first node, and ssh-copy-id to other nodes
2. Add "ocfs2test" user into sudo list
* add this line into /etc/sudoers
ocfs2test ALL=(ALL) NOPASSWD:ALL
* comment 'Defaults requiretty' in /etc/sudoers #no need for sles/opensuse now
3. chmod 777 /dev/sdax by root on EACH node
4. Stop iptables service for all nodes
Run the test
============
1. single node test
* login as "ocfs2test"
* cd ~/bin/ocfs2/bin;
* single_run-WIP.sh -m <mount point> -l <log_location> [-t testcase] -d <device>
e.g. ./single_run-WIP.sh -k ~/linux-kernel.tar.gz -m /mnt/ocfs2 -l ~/ocfs2log -d/dev/sdax
e.g. ./single_run-WIP.sh -k ~/linux-kernel.tar.gz -m /mnt/ocfs2 -l ~/ocfs2log -t directaio -d/dev/sdax
2. multiple nodes test
* login as "ocfs2test"
* cd ~/bin/ocfs2/bin;
* multiple_run.sh -k /kernel/linux-2.6.tgz -n node1.us.oracle.com,node2.us.oracle.com -d <device> [-t testcase] <mount point>
e.g. ./multiple_run.sh -i eth0 -k ~/linux-kernel.tar.gz -n ocfs2-test8.cn.oracle.com,ocfs2-test9.cn.oracle.com -d /dev/sdax /mnt/ocfs2
e.g. ./multiple_run.sh -i eth0 -k ~/linux-kernel.tar.gz -n ocfs2-test8.cn.oracle.com,ocfs2-test9.cn.oracle.com -d /dev/sdax -t multi_mmap /mnt/ocfs2
3. discontig single node test
* login as "ocfs2test"
* cd ~/bin/ocfs2/bin;
* discontig_runner.sh <-d device> [-o logdir] [-a access_method] <mount point>
e.g../discontig_runner.sh -d /dev/sdax -o ~/ocfs2log/ /mnt/ocfs2
4. discontig multiple nodes test
* login as "ocfs2test"
* cd ~/bin/ocfs2/bin;
* discontig_runner.sh <-d device> [-o logdir] [-m multi_hosts] [-a access_method] <mount point>
e.g. ./discontig_runner.sh -d /dev/sdax -o ~/ocfs2log/ -m ocfs2-test8.cn.oracle.com,ocfs2-test9.cn.oracle.com /mnt/ocfs2
Available Testcases
===================
1. Single node testcases
The following testcases run in one node ocfs2 cluster.
[create_and_open] - file create and open test
[directaio] - aio/dio test
[fillverifyholes] - file hole write and verify test
[renamewriterace] - file rename and extend write race test
[aiostress] - aio stress test
[filesizelimits] - file size limitation test
[mmaptruncate] - mmap truncate race test
[buildkernel] - kernel building test
[splice] - ocfs2 splice feature test
[sendfile] - sendfile() test
[mmap] - mmap test
[reserve_space] - unwritten extent test
[inline] - inline data test
[xattr] - xattr test
[reflink] - reflink test
[mkfs] - ocfs2 tools mkfs test
[tunefs] - ocfs2 tools tunefs test
[backup_super] - ocfs2 tools backup super block test
2. multiple nodes testcases
The following testcases run in multiple nodes ocfs2 cluster.
[xattr] - xattr test
[inline] - inline data test
[reflink] - reflink test
[write_append_truncate] - extend write truncate race test
[multi_mmap] - mmap test
[create_racer] - file create and access race test
[flock_unit] - file lock test
[cross_delete] - cross delete file test
[open_delete] - delete opened file test
[lvb_torture] - dlm lock lvb test