1 | #!/bin/ksh |
---|
2 | # @(#)40 1.1 src/avs/fs/mmfs/ts/config/gpfsrecover.sample, mmfs, avs_rgpfs24, rgpfs240610b 10/31/05 10:18:06 |
---|
3 | ############################################################################## |
---|
4 | # |
---|
5 | # When properly installed, this script is invoked by the GPFS daemon during |
---|
6 | # node failure recovery before any distributed locks held by failed nodes |
---|
7 | # are released. This script is invoked once for each file system on all |
---|
8 | # nodes on which the file system is mounted or otherwise in use (e.g., due |
---|
9 | # to a pending file system management command). |
---|
10 | # |
---|
11 | # The script is invoked with the following parameters: |
---|
12 | # - The first parameter is the name of the file system. |
---|
13 | # - The second parameter is the "recovery phase". In this release, |
---|
14 | # the recovery phase parameter will always be zero. |
---|
15 | # - The remaining parameters are the node numbers of all failed nodes |
---|
16 | # for which recovery is being run. |
---|
17 | # |
---|
18 | # Note: Should additional node failures occur while node failure recovery |
---|
19 | # is in progress, this script may be invoked more than once per file system. |
---|
20 | # In this case, the list of failed nodes will not necessarily be the same for |
---|
21 | # all file systems for which this script is invoked, and multiple invocations |
---|
22 | # for the same file system may contain non-disjoint sets of failed nodes. |
---|
23 | # Hence, all actions invoked by this script should be idempotent. |
---|
24 | # |
---|
25 | # Example: Say there are two file systems, gpfs1 and gpfs2, and nodes 10, 11, |
---|
26 | # and 12 fail, in that order. This may result in the following sequence of |
---|
27 | # calls to this script: |
---|
28 | # gpfsrecover gpfs1 0 10 |
---|
29 | # gpfsrecover gpfs2 0 10 11 |
---|
30 | # gpfsrecover gpfs1 0 10 11 |
---|
31 | # gpfsrecover gpfs2 0 10 11 12 |
---|
32 | # gpfsrecover gpfs1 0 12 |
---|
33 | # The only guarantee is that for each file system and each failed node, this |
---|
34 | # script will be invoked at least once with that file system and node as |
---|
35 | # parameters. |
---|
36 | # |
---|
37 | # IMPORTANT: This script is invoked synchronously, i.e., gpfs recovery will |
---|
38 | # not progress until this script finishes. Therefore, it should not invoke |
---|
39 | # any long-running actions, and it MUST NOT attempt to access any files or |
---|
40 | # directories in a gpfs file system. |
---|
41 | # |
---|
42 | # |
---|
43 | # To activate the code: |
---|
44 | # |
---|
45 | # a) edit this script and make the appropriate changes |
---|
46 | # b) copy this script to /var/mmfs/etc/gpfsrecover |
---|
47 | # c) ensure this script is executable (chmod +x /var/mmfs/etc/gpfsrecover) |
---|
48 | # |
---|
49 | ############################################################################## |
---|
50 | |
---|
51 | # Get the input parameters. |
---|
52 | fsname=$1 |
---|
53 | phase=$2 |
---|
54 | shift 2 |
---|
55 | failednodes=$* |
---|
56 | |
---|
57 | |
---|
58 | return 0 |
---|