Git Product home page Git Product logo

ocfs2-test's Introduction

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

ocfs2-test's People

Contributors

biger410 avatar goldwynr avatar pibroch avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.