Chinaunix首页 | 论坛 | 博客
  • 博客访问: 128556
  • 博文数量: 17
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 207
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-07 09:39
文章分类

全部博文(17)

文章存档

2017年(1)

2015年(1)

2014年(15)

我的朋友

分类: 服务器与存储

2014-09-12 15:37:54

 

对卷的每一种操作可以触发一个自定义的脚本,有点像数据库里面的触发器。这些操作包括:

 

Creating a volume

Starting a volume

Adding a brick

Removing a brick

Tuning volume options

Stopping a volume

Deleting a volume

 

对于上面的各种操作,都可以定义一下执行脚本。相应的脚本需要放在固定的位置:

 

/var/lib/glusterd/hooks/1/create/

/var/lib/glusterd/hooks/1/delete/

/var/lib/glusterd/hooks/1/start/

/var/lib/glusterd/hooks/1/stop/

/var/lib/glusterd/hooks/1/set/

/var/lib/glusterd/hooks/1/add-brick/

/var/lib/glusterd/hooks/1/remove-brick/

 

每个目录下面分别有pre和post子目录,分别表示在该操作之前和之后。想要顺利的使这些脚本执行,除了赋予执行权限外,脚本名字需要以‘S’开头,如:SscriptsName.sh

 

For example

[root@g1 ~]# ll /var/lib/glusterd/hooks/1/stop/pre/Stest.sh 

-rwxr-xr-x 1 root root 333 Aug 25 11:03 /var/lib/glusterd/hooks/1/stop/pre/Stest.sh 

# cat/var/lib/glusterd/hooks/1/stop/pre/Stest.sh

===========================================================

#!/bin/bash

 

VOL=

ARGS=$(getopt -l "volname:"  -name "" $@)

eval set -- "$ARGS"

while true; do

    case$1 in

       --volname)

           shift

           VOL=$1

           ;;

       *)

           shift

           break

           ;;

    esac

    shift

done

 

if [[ "$VOL" == "testvolume"]]

then

wall 'The testvolume is will be down!'

fi

===========================================================

 

当停止testvolume时,所有的登陆者会受到信息;而停止其他卷则不会执行脚本。

 

脚本不会在整个glusterfs内执行,只会在脚本所在的节点上执行。

阅读(1917) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~