summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--c_pgms/INFO2
-rw-r--r--c_pgms/truncate_write.c156
-rw-r--r--helper_scrips/INFO10
-rwxr-xr-xhelper_scrips/glusterfs_uninstall.sh46
-rwxr-xr-xhelper_scrips/install_glusterfs_rpm.sh75
-rwxr-xr-xhelper_scrips/install_parallel_glusterfs.sh64
-rwxr-xr-xhelper_scrips/multi_uninstall.sh66
-rwxr-xr-xhelper_scrips/rpm_download_install.sh161
-rwxr-xr-xsanity/nightly_sanity/nightly_updated.sh8
9 files changed, 583 insertions, 5 deletions
diff --git a/c_pgms/INFO b/c_pgms/INFO
index b755c79..a73a6df 100644
--- a/c_pgms/INFO
+++ b/c_pgms/INFO
@@ -17,3 +17,5 @@ c_pgms/new-ps-perf(new-fs-perf.c) -----> fs-perf test program modified. Now the
===============================================
c_pgms/ping_pong.c (ping_pong.c) -------> ping_pong program modified. Now the time duration for which ping_pong should execute can be given as an argument. By default it executed for 600 seconds.
+
+c_pgms/truncate_write.c (trucate_write.c) -----> it truncates a file to the size specified (default is 5GB, and creates and truncates if the file does not exist), writes some data to some offset.
diff --git a/c_pgms/truncate_write.c b/c_pgms/truncate_write.c
new file mode 100644
index 0000000..d6dcce9
--- /dev/null
+++ b/c_pgms/truncate_write.c
@@ -0,0 +1,156 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#define UNIT_KB 1024ULL
+#define UNIT_MB UNIT_KB*1024ULL
+#define UNIT_GB UNIT_MB*1024ULL
+#define UNIT_TB UNIT_GB*1024ULL
+#define UNIT_PB UNIT_TB*1024ULL
+
+#define UNIT_KB_STRING "KB"
+#define UNIT_MB_STRING "MB"
+#define UNIT_GB_STRING "GB"
+#define UNIT_TB_STRING "TB"
+#define UNIT_PB_STRING "PB"
+
+int
+string2bytesize (const char *str, unsigned long long *n)
+{
+ unsigned long long value = 0ULL;
+ char *tail = NULL;
+ int old_errno = 0;
+ const char *s = NULL;
+
+ if (str == NULL || n == NULL)
+ {
+ errno = EINVAL;
+ return -1;
+ }
+
+ for (s = str; *s != '\0'; s++)
+ {
+ if (isspace (*s))
+ {
+ continue;
+ }
+ if (*s == '-')
+ {
+ return -1;
+ }
+ break;
+ }
+
+ old_errno = errno;
+ errno = 0;
+ value = strtoull (str, &tail, 10);
+
+ if (errno == ERANGE || errno == EINVAL)
+ {
+ return -1;
+ }
+
+ if (errno == 0)
+ {
+ errno = old_errno;
+ }
+
+ if (tail[0] != '\0')
+ {
+ if (strcasecmp (tail, UNIT_KB_STRING) == 0)
+ {
+ value *= UNIT_KB;
+ }
+ else if (strcasecmp (tail, UNIT_MB_STRING) == 0)
+ {
+ value *= UNIT_MB;
+ }
+ else if (strcasecmp (tail, UNIT_GB_STRING) == 0)
+ {
+ value *= UNIT_GB;
+ }
+ else if (strcasecmp (tail, UNIT_TB_STRING) == 0)
+ {
+ value *= UNIT_TB;
+ }
+ else if (strcasecmp (tail, UNIT_PB_STRING) == 0)
+ {
+ value *= UNIT_PB;
+ }
+
+ else
+ {
+ return -1;
+ }
+ }
+
+ *n = value;
+
+ return 0;
+}
+
+int main (int argc, char *argv[])
+{
+ int ret = -1;
+ int fd = -1;
+ char *buf = "This is a string";
+ char *filename = NULL;
+ unsigned long long size = 0;
+
+ if (argc < 2) {
+ fprintf (stderr, "Usage:./a.out <filename>\n");
+ return 2;
+ }
+
+ filename = argv[1];
+
+ fd = open (filename, O_CREAT|O_RDWR, 0644);
+ if (fd == -1) {
+ fprintf (stderr, "OPEN: cannot open the file fff. (%s)",
+ strerror (errno));
+ return 2;
+ }
+
+ if (argc < 3)
+ size = 5 * UNIT_GB;
+ else
+ string2bytesize (argv[2], &size);
+
+ ret = ftruncate (fd, size);
+ if (ret == -1) {
+ fprintf (stderr, "TRUNCATE: cannot truncate the file %s. (%s)",
+ filename, strerror (errno));
+ goto out;
+ }
+
+ printf ("File got truncated tp %llu bytes. Sleeping for 22 seconds. "
+ "Kill the brick.....\n", size);
+
+ sleep (22);
+
+ ret = lseek (fd, 1048576, SEEK_SET);
+ if (ret == -1) {
+ fprintf (stderr, "LSEEK: cannot seek to the offset file fff. "
+ "(%s)", strerror (errno));
+ goto out;
+ }
+
+ ret = write (fd, buf, strlen (buf));
+ if (ret == -1) {
+ fprintf (stderr, "WRITE: cannot write to the file fff. (%s)",
+ strerror (errno));
+ goto out;
+ }
+
+ ret = 0;
+out:
+ if (fd)
+ close (fd);
+
+ return ret;
+}
diff --git a/helper_scrips/INFO b/helper_scrips/INFO
index 1f09a1b..d030697 100644
--- a/helper_scrips/INFO
+++ b/helper_scrips/INFO
@@ -6,10 +6,18 @@ helper_scrips/rpm_qa_download_install.sh -----> downloads the rpms for the speci
=============================================================================================================================================
-herper_scripts/clean_glusterd.sh
+helper_scripts/clean_glusterd.sh
helper_scripts/clean_logs.sh
helper_scripts/start_glusterd.sh
helper_scripts/probe.sh
The above scripts are usable with the passwordless ssh connection setup between the glusterfs servers, which helps in cleaning the logs, probing, cleaning glusterd, starting glusterd etc.
+=============================================================================================================================================
+helper_scripts/install_parallel_glusterfs.sh --------> executes the download_and_install.sh scripts prallely on multiple machines, such that glusterfs gets installed on multiple machines simultaneously.
+
+=============================================================================================================================================
+helper_scrips/glusterfs_uninstall.sh ------> uninstalls the specified glusterfs version if it finds the source directory.
+herper_scripts/multi_uninstall.sh -------> uninstalls the specified glusterfs from multiple machines, by executing glusterfs_uninstall.sh script.
+
+helper_scrips/install_glusterfs_rpm.sh -----> installs the specified glusterfs rpms on the machines whose list is provided in /root/machines,parallely \ No newline at end of file
diff --git a/helper_scrips/glusterfs_uninstall.sh b/helper_scrips/glusterfs_uninstall.sh
new file mode 100755
index 0000000..31a000d
--- /dev/null
+++ b/helper_scrips/glusterfs_uninstall.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+#set -x;
+
+function _init ()
+{
+ # echo $0;
+ # echo $#;
+ # echo $1;
+ set -u;
+ if [ $# -lt 1 ]; then
+ echo "usage: download_and_install <glusterfs-version>";
+ exit 1;
+ fi
+
+ version=$1;
+ echo $version;
+ echo $version | grep "glusterfs" 2>/dev/null 1>/dev/null;
+ if [ $? -ne 0 ]; then
+ echo "given argument is not glusterfs";
+ exit 1;
+ fi
+}
+
+function un_install ()
+{
+ cd /root/$version;
+
+ cd build;
+ make uninstall && make clean && make distclean;
+
+ cd /root;
+}
+
+main ()
+{
+
+ if [ ! -d $version ]; then
+ echo "the glusterfs version ($version) directory is not there."
+ return 1;
+ fi
+
+ un_install;
+}
+
+_init "$@" && main "$@"
diff --git a/helper_scrips/install_glusterfs_rpm.sh b/helper_scrips/install_glusterfs_rpm.sh
new file mode 100755
index 0000000..4e82b58
--- /dev/null
+++ b/helper_scrips/install_glusterfs_rpm.sh
@@ -0,0 +1,75 @@
+#!/bin/bash
+
+function _init ()
+{
+ set -u;
+ VERSION=$1;
+ if [ $# -lt 2 ]; then
+ upgrade="no";
+ else
+ if [ $2 == "yes" ]; then
+ upgrade="yes";
+ else
+ upgrade="no";
+ fi
+ fi
+}
+
+function install_glusterfs ()
+{
+ local remote_server=;
+
+ if [ $# -eq 1 ]; then
+ remote_server=$1;
+ fi
+
+ if [ $remote_server ]; then
+ ssh $remote_server cp -f /root/scripts/rpm_download_install.sh /root/;
+ ssh $remote_server /root/rpm_download_install.sh $VERSION $upgrade;
+ return 0;
+ fi
+
+ j=0;
+ for i in $(cat /root/machines)
+ do
+ j=$(($j+1));
+ (install_glusterfs $i)&
+ done
+
+}
+
+function install_my_glusterfs ()
+{
+ old_PWD=$PWD;
+
+ cd /root;
+ cp /root/scripts/rpm_download_install.sh /root/;
+ /root/rpm_download_install.sh $VERSION $upgrade;
+
+ cd $old_PWD;
+ return 0;
+}
+
+function main ()
+{
+ stat --printf=%i /root/machines 2>/dev/null 1>/dev/null;
+ if [ $? -ne 0 ]; then
+ echo "servers file is not present /root. Cannot execute further.";
+
+ exit 1;
+ fi
+
+ install_glusterfs;
+ for i in $(1 $j)
+ do
+ wait %$j;
+ done
+
+ install_my_glusterfs;
+
+ return 0;
+}
+
+_init "$@" && main "$@"
+
+
diff --git a/helper_scrips/install_parallel_glusterfs.sh b/helper_scrips/install_parallel_glusterfs.sh
new file mode 100755
index 0000000..15455fb
--- /dev/null
+++ b/helper_scrips/install_parallel_glusterfs.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+
+function _init ()
+{
+ set -u;
+ VERSION=$1;
+}
+
+function install_glusterfs ()
+{
+ local remote_server=;
+
+ if [ $# -eq 1 ]; then
+ remote_server=$1;
+ fi
+
+ if [ $remote_server ]; then
+ ssh $remote_server cp -f /root/scripts/download_and_install.sh /root/;
+ ssh $remote_server /root/download_and_install.sh $VERSION;
+ return 0;
+ fi
+
+ j=0;
+ for i in $(cat /root/machines)
+ do
+ j=$(($j+1));
+ (install_glusterfs $i)&
+ done
+
+}
+
+function install_my_glusterfs ()
+{
+ old_PWD=$PWD;
+
+ cd /root;
+ cp /root/scripts/download_and_install.sh /root/;
+ /root/download_and_install.sh $VERSION;
+
+ cd $old_PWD;
+ return 0;
+}
+
+function main ()
+{
+ stat --printf=%i /root/machines 2>/dev/null 1>/dev/null;
+ if [ $? -ne 0 ]; then
+ echo "servers file is not present /root. Cannot execute further.";
+
+ exit 1;
+ fi
+
+ install_glusterfs;
+ for i in $(1 $j)
+ do
+ wait %$j;
+ done
+
+ install_my_glusterfs;
+
+ return 0;
+}
+
+_init "$@" && main "$@"
diff --git a/helper_scrips/multi_uninstall.sh b/helper_scrips/multi_uninstall.sh
new file mode 100755
index 0000000..dca2350
--- /dev/null
+++ b/helper_scrips/multi_uninstall.sh
@@ -0,0 +1,66 @@
+#!/bin/bash
+
+#!/bin/bash
+
+function _init ()
+{
+ set -u;
+ VERSION=$1;
+}
+
+function uninstall_glusterfs ()
+{
+ local remote_server=;
+
+ if [ $# -eq 1 ]; then
+ remote_server=$1;
+ fi
+
+ if [ $remote_server ]; then
+ ssh $remote_server cp -f /root/scripts/glusterfs_uninstall.sh /root/;
+ ssh $remote_server /root/glusterfs_uninstall.sh $VERSION;
+ return 0;
+ fi
+
+ j=0;
+ for i in $(cat /root/machines)
+ do
+ j=$(($j+1));
+ (uninstall_glusterfs $i)&
+ done
+
+}
+
+function uninstall_my_glusterfs ()
+{
+ old_PWD=$PWD;
+
+ cd /root;
+ cp -f /root/scripts/glusterfs_uninstall.sh /root/;
+ /root/glusterfs_uninstall.sh $VERSION;
+
+ cd $old_PWD;
+ return 0;
+}
+
+function main ()
+{
+ stat --printf=%i /root/machines 2>/dev/null 1>/dev/null;
+ if [ $? -ne 0 ]; then
+ echo "servers file is not present /root. Cannot execute further.";
+
+ exit 1;
+ fi
+
+ uninstall_glusterfs;
+ for i in $(1 $j)
+ do
+ wait %$j;
+ done
+
+ uninstall_my_glusterfs;
+
+ return 0;
+}
+
+_init "$@" && main "$@"
diff --git a/helper_scrips/rpm_download_install.sh b/helper_scrips/rpm_download_install.sh
new file mode 100755
index 0000000..f1a071a
--- /dev/null
+++ b/helper_scrips/rpm_download_install.sh
@@ -0,0 +1,161 @@
+#!/bin/bash
+
+#set -x;
+
+function _init ()
+{
+ # echo $0;
+ # echo $#;
+ # echo $1;
+ set -u;
+ if [ $# -lt 1 ]; then
+ echo "usage: download_and_install <glusterfs-version> [upgrade decision]";
+ exit 1;
+ fi
+
+ version=$1;
+ echo $version;
+ echo $version | grep "glusterfs" 2>/dev/null 1>/dev/null;
+ if [ $? -ne 0 ]; then
+ echo "given argument is not glusterfs";
+ exit 1;
+ fi
+
+ version_number=$(echo $version | cut -f 2 -d "-");
+ check_if_qa_release $version;
+ op_ret=$?;
+
+ if [ $op_ret -eq 0 ]; then
+ download_address="http://bits.gluster.com/pub/gluster/glusterfs/";
+ else
+ echo $version | grep "3.2" 2>/dev/null 1>/dev/null;
+ if [ $? -eq 0 ]; then
+ version_number=$(echo $version | cut -f 2 -d "-");
+ download_address="http://download.gluster.com/pub/gluster/glusterfs/3.2/$version_number/RHEL/";
+ else
+ grep "3.1" $version 2>/dev/null 1>/dev/null;
+ echo "haha yes"
+ if [ $? -eq 0 ]; then
+ version_number=$(echo $version | cut -f 2 -d "-");
+ download_address="http://download.gluster.com/pub/gluster/glusterfs/3.1/$version_number/RHEL/";
+ else
+ grep "3.0" $version 2>/dev/null 1>/dev/null;
+ if [ $? -eq 0 ]; then
+ version_number=$(cut -f 2 -d "-" $version);
+ download_address="http://download.gluster.com/pub/gluster/glusterfs/3.0/$version_number/RHEL/";
+ fi
+ fi
+ fi
+ fi
+
+ echo "Download address: $download_address" && sleep 2;
+# ls -l "$version".tar.gz 2>/dev/null 1>/dev/null
+# if [ $? -ne 0 ]; then
+}
+
+function check_if_qa_release ()
+{
+ glusterfs_version=$1;
+
+ echo $glusterfs_version | grep "qa" 2>/dev/null 1>/dev/null;
+ ret=$?;
+
+ return $ret;
+}
+
+function download_rpms ()
+{
+ address=$1;
+ local ret;
+
+ if [ ! -d $PWD/rpms ] || [ ! -d $PWD/rpms/$version_number ]; then
+ mkdir $PWD/rpms/$version_number -p;
+ else
+ echo "the directory for the mentioned versrion $version_number is present";
+ return;
+ fi
+
+ cd $PWD/rpms/$version_number;
+
+ echo $version_number | grep "3.2";
+ is_32=$?;
+ if [ $is_32 -ne 0 ]; then
+ echo $version_number | grep "3.3";
+ is_32=$?;
+ fi
+
+ check_if_qa_release $version;
+ ret=$?
+
+ if [ $ret -eq 0 ]; then
+ wget $address/$version_number/x86_64/glusterfs-core-$version_number-1.x86_64.rpm;
+ wget $address/$version_number/x86_64/glusterfs-debuginfo-$version_number-1.x86_64.rpm;
+ wget $address/$version_number/x86_64/glusterfs-fuse-$version_number-1.x86_64.rpm;
+ if [ $is_32 -eq 0 ]; then
+ wget $address/$version_number/x86_64/glusterfs-geo-replication-$version_number-1.x86_64.rpm;
+ echo "3.2 version";
+ fi
+ else
+ wget $address/glusterfs-core-$version_number-1.el6.x86_64.rpm;
+ wget $address/glusterfs-debuginfo-$version_number-1.el6.x86_64.rpm;
+ wget $address/glusterfs-fuse-$version_number-1.el6.x86_64.rpm;
+ if [ $is_32 -eq 0 ]; then
+ wget $address/glusterfs-geo-replication-$version_number-1.el6.x86_64.rpm;
+ echo "3.2 version";
+ fi
+ fi
+}
+
+
+function install_or_upgrade ()
+{
+ local old_PWD;
+
+ old_PWD=$PWD;
+
+ cd $PWD/rpms/$version_number;
+ if [ $upgrade != "yes" ]; then
+ for i in $(ls)
+ do
+ rpm -ivh $i;
+ done
+ else
+ for i in $(ls)
+ do
+ rpm -Uvh $i;
+ done
+ fi
+
+ ret=$?;
+ cd $old_PWD;
+
+ ldconfig;
+ return $ret;
+}
+
+main ()
+{
+ echo $download_address;
+ download_rpms $download_address;
+
+ upgrade="no";
+ if [ $# -eq 2 ]; then
+ upgrade=$2;
+ fi
+
+ if [ $upgrade != "yes" ] && [ $upgrade != "no" ]; then
+ echo "Invalid upgrade decision $upgrade";
+ rm -rf /root/rpms/$version_number;
+ exit 1;
+ fi
+
+ install_or_upgrade $upgrade;
+ ret=$?;
+ if [ $ret -ne 0 ]; then
+ rm -rf /root/rpms/$version_number;
+ fi
+}
+
+_init "$@" && main "$@"
+
+ \ No newline at end of file
diff --git a/sanity/nightly_sanity/nightly_updated.sh b/sanity/nightly_sanity/nightly_updated.sh
index baed7d3..a8f4da1 100755
--- a/sanity/nightly_sanity/nightly_updated.sh
+++ b/sanity/nightly_sanity/nightly_updated.sh
@@ -702,7 +702,7 @@ function take_statedump ()
BRICK_PID=$(cat /etc/glusterd/vols/vol/run/$i);
kill -USR1 $BRICK_PID;
sleep 1;
- mv /tmp/glusterdump.$BRICK_PID $dir;
+ mv /tmp/*.$BRICK_PID.dump $dir;
done
for j in $(seq 1 $num_clients)
@@ -710,10 +710,10 @@ function take_statedump ()
CLIENT_PID=$(cat /tmp/client_pid$j);
kill -USR1 $CLIENT_PID;
sleep 1;
- mv /tmp/glusterdump.$CLIENT_PID $dir;
+ mv /tmp/*.$CLIENT_PID.dump $dir;
done
}
-
+
function main()
{
echo "In main";
@@ -724,7 +724,7 @@ function main()
start_glusterd;
start_glusterfs;
take_statedump $LOGDIR/old_dump/;
- run_tests;
+ run_tests;
take_statedump $LOGDIR/new_dump/;
trap - INT TERM EXIT
post_run;