Commit | Line | Data |
---|---|---|
805e021f CE |
1 | The Salvager restores internal consistency to corrupted read/write volumes |
2 | on the local file server machine where possible. For read-only or backup | |
3 | volumes, it inspects only the volume header: | |
4 | ||
5 | =over 4 | |
6 | ||
7 | =item * | |
8 | ||
9 | If the volume header is corrupted, the Salvager removes the volume | |
10 | completely and records the removal in its log file, | |
11 | F</usr/afs/logs/SalvageLog>. Issue the B<vos release> or B<vos backup> | |
12 | command to create the read-only or backup volume again. | |
13 | ||
14 | =item * | |
15 | ||
16 | If the volume header is intact, the Salvager skips the volume (does not | |
17 | check for corruption in the contents). However, if the File Server notices | |
18 | corruption as it initializes, it sometimes refuses to attach the volume or | |
19 | bring it online. In this case, it is simplest to remove the volume by | |
20 | issuing the B<vos remove> or B<vos zap> command. Then issue the B<vos | |
21 | release> or B<vos backup> command to create it again. | |
22 | ||
23 | =back | |
24 | ||
25 | Unlike other server process initialization commands, the Salvager | |
26 | command is designed to be issued at the command shell prompt, as well as | |
27 | being placed into a file server machine's F</usr/afs/local/BosConfig> file | |
28 | with the B<bos create> command. It is also possible to invoke the Salvager | |
29 | remotely by issuing the B<bos salvage> command. | |
30 | ||
31 | Combine the command's options as indicated to salvage different numbers of | |
32 | read/write volumes: | |
33 | ||
34 | =over 4 | |
35 | ||
36 | =item * | |
37 | ||
38 | To salvage all volumes on the file server machine, provide no arguments. | |
39 | No volumes on the machine are accessible to Cache Managers during the | |
40 | salvage, because the BOS Server stops the File Server and Volume Server | |
41 | processes while the Salvager runs. | |
42 | ||
43 | =item * | |
44 | ||
45 | To salvage all of the volumes on one partition, provide the B<-partition> | |
46 | argument. As for a salvage of all volumes on the machine, no volumes on | |
47 | the machine are accessible to Cache Managers during the salvage operation. | |
48 | ||
49 | =item * | |
50 | ||
51 | To salvage only one volume, combine the B<-partition> and B<-volumeid> | |
52 | arguments. Only that volume is inaccessible to Cache Managers, because the | |
53 | BOS Server does not shutdown the File Server and Volume Server processes. | |
54 | ||
55 | =back | |
56 | ||
57 | The Salvager normally salvages only those read/write volumes that are | |
58 | marked as having been active when a crash occurred. To have it salvage all | |
59 | relevant read/write volumes, add the B<-force> flag. | |
60 | ||
61 | The Salvager normally creates new inodes as it repairs damage. If the | |
62 | partition is so full that there is no room for new inodes, use the | |
63 | B<-nowrite> argument to bringing undamaged volumes online without | |
64 | attempting to salvage damaged volumes. Then use the B<vos move> command to | |
65 | move one or more of the undamaged volumes to other partitions, freeing up | |
66 | the space that the Salvager needs to create new inodes. | |
67 | ||
68 | By default, multiple Salvager subprocesses run in parallel: one for each | |
69 | partition up to four, and four subprocesses for four or more | |
70 | partitions. To increase or decrease the number of subprocesses running in | |
71 | parallel, provide a positive integer value for the B<-parallel> argument. | |
72 | ||
73 | If there is more than one server partition on a physical disk, the | |
74 | Salvager by default salvages them serially to avoid the inefficiency of | |
75 | constantly moving the disk head from one partition to another. However, | |
76 | this strategy is often not ideal if the partitions are configured as | |
77 | logical volumes that span multiple disks. To force the Salvager to salvage | |
78 | logical volumes in parallel as if they were on separate disks, provide the | |
79 | string C<all> as the value for the B<-parallel> argument. | |
80 | ||
81 | To set both parameters at the same time, append the number of Salvager | |
82 | processes to the string C<all>. For example, C<-parallel all5> treats | |
83 | each partition as a separate disk and runs five Salvager processes, thus | |
84 | salvaging five partitions at a time. | |
85 | ||
86 | The Salvager creates temporary files as it runs, by default writing them | |
87 | to the partition it is salvaging. The number of files can be quite large, | |
88 | and if the partition is too full to accommodate them, the Salvager | |
89 | terminates without completing the salvage operation (it always removes the | |
90 | temporary files before exiting). Other Salvager subprocesses running at | |
91 | the same time continue until they finish salvaging all other partitions | |
92 | where there is enough disk space for temporary files. To complete the | |
93 | interrupted salvage, reissue the command against the appropriate | |
94 | partitions, adding the B<-tmpdir> argument to redirect the temporary files | |
95 | to a local disk directory that has enough space. | |
96 | ||
97 | The B<-orphans> argument controls how the Salvager handles orphaned files | |
98 | and directories that it finds on server partitions it is salvaging. An | |
99 | I<orphaned> element is completely inaccessible because it is not | |
100 | referenced by the vnode of any directory that can act as its parent (is | |
101 | higher in the filespace). Orphaned objects occupy space on the server | |
102 | partition, but do not count against the volume's quota. | |
103 | ||
104 | To generate a list of all mount points that reside in one or more volumes, | |
105 | rather than actually salvaging them, include the B<-showmounts> flag. | |
106 | ||
107 | This command does not use the syntax conventions of the AFS command | |
108 | suites. Provide the command name and all option names in full. | |
109 |