summaryrefslogtreecommitdiffstats
path: root/xlators/mount/fuse
diff options
context:
space:
mode:
authorAmar Tumballi <amar@gluster.com>2009-08-04 17:51:31 +0000
committerAnand V. Avati <avati@dev.gluster.com>2009-08-04 17:07:01 -0700
commit2c056117b6cfe4bf3f62c791d2c6514bae8655d9 (patch)
tree56ad3454e596ee598b2316e43056596aa3e8a444 /xlators/mount/fuse
parente26e9b861d92edfb7c00aa1b7c8c3a4126a563fb (diff)
adding an option to mount.glusterfs for server failover to fetch volume files.
With this option, 'single point of failure', in case of volfile server can be avoided Thanks to Cory Meyer <cory.meyer@gmail.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 185 (Request to support secondary volfile-server option in mount.glusterfs) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=185
Diffstat (limited to 'xlators/mount/fuse')
-rwxr-xr-xxlators/mount/fuse/utils/mount.glusterfs.in52
1 files changed, 32 insertions, 20 deletions
diff --git a/xlators/mount/fuse/utils/mount.glusterfs.in b/xlators/mount/fuse/utils/mount.glusterfs.in
index 0bf8efd9d..19418191a 100755
--- a/xlators/mount/fuse/utils/mount.glusterfs.in
+++ b/xlators/mount/fuse/utils/mount.glusterfs.in
@@ -78,41 +78,50 @@ start_glusterfs ()
if [ -n "$direct_io_mode" ]; then
cmd_line=$(echo "$cmd_line --disable-direct-io-mode");
fi
+
+ if [ -n "$volume_name" ]; then
+ cmd_line=$(echo "$cmd_line --volume-name=$volume_name");
+ fi
+ if [ -n "$log_server" ]; then
+ if [ -n "$log_server_port" ]; then
+ cmd_line=$(echo "$cmd_line \
+--log-server=$log_server \
+--log-server-port=$log_server_port");
+ fi
+ fi
+
if [ -z "$volfile_loc" ]; then
if [ -n "$server_ip" ]; then
+ cmd_line=$(echo "$cmd_line --volfile-server-port=$server_port");
if [ -n "$transport" ]; then
- cmd_line=$(echo "$cmd_line \
---volfile-server=$server_ip \
---volfile-server-port=$server_port \
---volfile-server-transport=$transport");
- else
- cmd_line=$(echo "$cmd_line \
---volfile-server=$server_ip \
---volfile-server-port=$server_port");
- fi
+ cmd_line=$(echo "$cmd_line --volfile-server-transport=$transport");
+ fi
if [ -n "$volume_id" ]; then
cmd_line=$(echo "$cmd_line --volfile-id=$volume_id");
fi
+
+ if [ -n "$backupvolfile_server" ]; then
+ cmd_line1=$(echo "$cmd_line --volfile-server=$backupvolfile_server");
+ fi
+
+ cmd_line=$(echo "$cmd_line --volfile-server=$server_ip");
fi
else
cmd_line=$(echo "$cmd_line --volfile=$volfile_loc");
fi
+
+ cmd_line=$(echo "$cmd_line $mount_point");
+ $cmd_line;
- if [ -n "$log_server" ]; then
- if [ -n "$log_server_port" ]; then
- cmd_line=$(echo "$cmd_line \
---log-server=$log_server \
---log-server-port=$log_server_port");
+ # retry the failover
+ if [ $? != "0" ]; then
+ if [ -n "$cmd_line1" ]; then
+ cmd_line1=$(echo "$cmd_line1 $mount_point");
+ $cmd_line1
fi
fi
- if [ -n "$volume_name" ]; then
- cmd_line=$(echo "$cmd_line --volume-name=$volume_name");
- fi
-
- cmd_line=$(echo "$cmd_line $mount_point");
- exec $cmd_line;
}
usage ()
@@ -152,6 +161,7 @@ main ()
volfile_check=$(echo "$options" | sed -n 's/.*volfile-check=\([^,]*\).*/\1/p');
server_port=$(echo "$options" | sed -n 's/.*server-port=\([^,]*\).*/\1/p');
+ backupvolfile_server=$(echo "$options" | sed -n 's/.*backupvolfile-server=\([^,]*\).*/\1/p');
log_server=$(echo "$options" | sed -n 's/.*log-server=\([^,]*\).*/\1/p');
@@ -184,6 +194,7 @@ main ()
-e 's/[,]*direct-io-mode=[^,]*//' \
-e 's/[,]*volfile-check=[^,]*//' \
-e 's/[,]*transport=[^,]*//' \
+ -e 's/[,]*backupvolfile-server=[^,]*//' \
-e 's/[,]*server-port=[^,]*//' \
-e 's/[,]*volume-id=[^,]*//' \
-e 's/[,]*log-server=[^,]*//' \
@@ -223,3 +234,4 @@ main ()
}
_init "$@" && main "$@";
+