mirror of
https://git.openafs.org/openafs.git
synced 2025-01-19 07:20:11 +00:00
2f4a1897bf
Done according to adeason's comments on http://gerrit.openafs.org/#change,1655 Change-Id: Ia5b28473fa37ad2a877a5a56b1b7f1c4893e8db1 Reviewed-on: http://gerrit.openafs.org/1666 Reviewed-by: Derrick Brashear <shadow@dementia.org> Tested-by: Derrick Brashear <shadow@dementia.org>
187 lines
3.0 KiB
Plaintext
187 lines
3.0 KiB
Plaintext
=head1 NAME
|
|
|
|
state_analyzer - Explores and queries the fileserver state database interactively
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
=for html
|
|
<div class="synopsis">
|
|
|
|
B<state_analyzer> S<<< [F<state dump file> | B<-h>] >>>
|
|
|
|
=for html
|
|
</div>
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
The demand-attach file server makes host / callback information
|
|
persistent. On shutdown, the state is saved to database L<fsstate.dat(5)>.
|
|
On startup, the state is read, verified and restored.
|
|
This allows for file server shutdowns or restarts without breaking
|
|
all callbacks (an operation that could otherwise take a long time).
|
|
|
|
B<state_analyzer> interactively explores and queries the saved
|
|
state database, L<fsstate.dat(5)>.
|
|
|
|
This command is only supported on the demand-attach file server.
|
|
It operates at an extremely low-level and hence requires detailed
|
|
knowledge of the OpenAFS architecture and code.
|
|
|
|
=head1 COMMANDS
|
|
|
|
B<state_analyzer> supports the following interactive commands:
|
|
|
|
=over 4
|
|
|
|
|
|
=item B<h <...>> -- host menu
|
|
|
|
=over 4
|
|
|
|
=item *
|
|
|
|
B<hdr> -- display the host_state_header struct
|
|
|
|
=item *
|
|
|
|
B<first> -- display the first host
|
|
|
|
=item *
|
|
|
|
B<prev> -- display the previous host
|
|
|
|
=item *
|
|
|
|
B<this> -- display this host
|
|
|
|
=item *
|
|
|
|
B<next> -- display the next host
|
|
|
|
=item *
|
|
|
|
B<last> -- display the last host
|
|
|
|
=item *
|
|
|
|
B<dump> -- display all hosts
|
|
|
|
=back
|
|
|
|
|
|
=item B<fe <...>> -- FileEntry menu
|
|
|
|
=over 4
|
|
|
|
=item *
|
|
|
|
B<hdr> -- display the callback_state_header struct
|
|
|
|
=item *
|
|
|
|
B<first> -- display the first FE
|
|
|
|
=item *
|
|
|
|
B<prev> -- display the previous FE
|
|
|
|
=item *
|
|
|
|
B<this> -- display this FE
|
|
|
|
=item *
|
|
|
|
B<next> -- display the next FE
|
|
|
|
=item *
|
|
|
|
B<last> -- display the last FE
|
|
|
|
=item *
|
|
|
|
B<dump> -- display all FEs
|
|
|
|
=item *
|
|
|
|
B<timeout> -- display the timeout queue heads
|
|
|
|
=item *
|
|
|
|
B<hash> -- display the file entry hash buckets
|
|
|
|
=item *
|
|
|
|
B<find by index I<id>> -- find an fe by its array index
|
|
|
|
=item *
|
|
|
|
B<find by fid I<(vol,vnode,unique)>> -- find an fe by its AFSFid
|
|
|
|
=back
|
|
|
|
|
|
=item B<cb <...>> -- CallBack menu
|
|
|
|
=over 4
|
|
|
|
=item *
|
|
|
|
B<hdr> -- display the callback_state_entry_header struct
|
|
|
|
=item *
|
|
|
|
B<first> -- display the first CB
|
|
|
|
=item *
|
|
|
|
B<prev> -- display the previous CB
|
|
|
|
=item *
|
|
|
|
B<this> -- display this CB
|
|
|
|
=item *
|
|
|
|
B<next> -- display the next CB
|
|
|
|
=item *
|
|
|
|
B<last> -- display the last CB
|
|
|
|
=item *
|
|
|
|
B<dump> -- display all CBs
|
|
|
|
=back
|
|
|
|
=item B<hexdump [B<offset> [B<len>]]> -- hex dump raw data
|
|
|
|
=item B<quit> -- quit current menu
|
|
|
|
=item B<exit> -- exit debugger
|
|
|
|
=item B<help> -- help message
|
|
|
|
=back
|
|
|
|
=head1 PRIVILEGE REQUIRED
|
|
|
|
The issuer must have read access to the file server state database,
|
|
F<fsstate.dat>.
|
|
Usually, this means that the issuer must be the
|
|
local superuser C<root> on the file server machine.
|
|
|
|
=head1 SEE ALSO
|
|
|
|
L<fsstate.dat(5)>,
|
|
L<fssync-debug(8)>,
|
|
L<salvsync-debug(8)>
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
Copyright 2010 Davor Ocelic <docelic@spinlocksolutions.com>
|
|
|
|
This documentation is covered by the IBM Public License Version 1.0. This
|
|
man page was written by Davor Ocelic for OpenAFS, based on documentation
|
|
from Tom Keiser, Steven Jenkins and others.
|