Index: openafs/doc/arch/README diff -c /dev/null openafs/doc/arch/README:1.1.2.2 *** /dev/null Mon Apr 21 17:11:51 2008 --- openafs/doc/arch/README Fri Mar 14 14:51:52 2008 *************** *** 0 **** --- 1,7 ---- + dafs-fsa.dot is a description of the finite-state machine for volume + states in the Demand Attach fileserver in Dot (http://www.graphviz.org) + format. An invocation like: + + dot -Tsvg dafs-fsa.dot > dafs-fsa.svg + + will convert the description to an SVG file. Index: openafs/doc/arch/dafs-fsa.dot diff -c /dev/null openafs/doc/arch/dafs-fsa.dot:1.1.2.2 *** /dev/null Mon Apr 21 17:11:51 2008 --- openafs/doc/arch/dafs-fsa.dot Fri Mar 14 14:51:52 2008 *************** *** 0 **** --- 1,109 ---- + # + # This is a dot (http://www.graphviz.org) description of the various + # states volumes can be in for DAFS (Demand Attach File Server). + # + # Author: Steven Jenkins + # Date: 2007-05-24 + # + + digraph VolumeStates { + size="11,17" + graph [ + rankdir = "TB" + ]; + + subgraph clusterKey { + rankdir="LR"; + shape = "rectangle"; + + s1 [ shape=plaintext, label = "VPut after VDetach in brown", + fontcolor="brown" ]; + s2 [ shape=plaintext, label = "VAttach in blue", + fontcolor="blue" ]; + s3 [ shape=plaintext, label = "VGet/VHold in purple", + fontcolor="purple" ]; + s4 [ shape=plaintext, label = "Error States in red", + fontcolor="red" ]; + s5 [ shape=plaintext, label = "VPut after VOffline in green", + fontcolor="green" ]; + s6 [ shape=ellipse, label = "re-entrant" ]; + s7 [ shape=ellipse, peripheries=2, label="non re-entrant" ]; + s8 [ shape=ellipse, color="red", label="Error States" ]; + + s6->s7->s8->s1->s2->s3->s4->s5 [style="invis"]; + + } + + node [ peripheries = "2" ] ATTACHING \ + LOADING_VNODE_BITMAPS HDR_LOADING_FROM_DISK \ + HDR_ATTACHING_LRU_PULL \ + "UPDATING\nSYNCING_VOL_HDR_TO_DISK" \ + OFFLINING DETACHING; + node [ shape = "ellipse", peripheries = "1" ]; + node [ color = "red" ] HARD_ERROR SALVAGE_REQUESTED SALVAGING; + + node [ color = "black" ]; // default back to black + + UNATTACHED->Exclusive_vol_op_executing [label = "controlled by FSSYNC" ]; + Exclusive_vol_op_executing->UNATTACHED [label = "controlled by FSSYNC" ]; + UNATTACHED->FREED [ label = "VCancelReservation_r() after a\nVDetach() or FreeVolume() will\ncause CheckDetach() or CheckFree() to fire" ]; + OFFLINING->UNATTACHED; + UNATTACHED->PREATTACHED [ color = "orange", label = "PreAttach()" ]; + PREATTACHED->UNATTACHED [ color = "orange", label = "VOffline()"]; + HARD_ERROR->PREATTACHED [ color = "orange", label = "operator intervention via FSSYNC" ]; + + PREATTACHED->Exclusive_vol_op_executing [color = "orange", label = "controlled by FSSYNC" ]; + Exclusive_vol_op_executing->PREATTACHED [color = "orange", label = "controlled by FSSYNC" ]; + PREATTACHED->FREED [ color = "orange", label = "VCancelReservation_r() after a\nVDetach() or FreeVolume() will\ncause CheckDetach() or CheckFree() to fire" ]; + PREATTACHED->ATTACHING [ color = "blue", weight = "8" ]; + SALVAGING->PREATTACHED [ label = "controlled via FSSYNC" ]; + + DETACHING->FREED ; + SHUTTING_DOWN->DETACHING [ color = "brown" ]; + ATTACHED_nUsers_GT_0->SHUTTING_DOWN [ color = "orange", label = "VDetach()" ]; + + DETACHING->"UPDATING\nSYNCING_VOL_HDR_TO_DISK" [ color = "brown" ]; + "UPDATING\nSYNCING_VOL_HDR_TO_DISK"->DETACHING [ color = "brown" ]; + OFFLINING->"UPDATING\nSYNCING_VOL_HDR_TO_DISK" [ color = "green" ]; + "UPDATING\nSYNCING_VOL_HDR_TO_DISK"->OFFLINING [ color = "green" ]; + GOING_OFFLINE->OFFLINING [ color = "green" ]; + + "UPDATING\nSYNCING_VOL_HDR_TO_DISK"->SALVAGE_REQUESTED [ color = "red" ]; + "UPDATING\nSYNCING_VOL_HDR_TO_DISK"->ATTACHING [ color = "blue" ]; + ATTACHING->"UPDATING\nSYNCING_VOL_HDR_TO_DISK" [ color = "blue" ]; + + ATTACHED_nUsers_GT_0->GOING_OFFLINE [ color = "orange", label = "VOffline" ]; + ATTACHED_nUsers_GT_0->ATTACHED_nUsers_EQ_0 [ color = "orange", label = "VPut" ]; + + ATTACHED_nUsers_GT_0->SALVAGE_REQUESTED [ color = "red" ]; + + LOADING_VNODE_BITMAPS->ATTACHING [ color = "blue" ]; + ATTACHING->LOADING_VNODE_BITMAPS [ color = "blue" ] ; + LOADING_VNODE_BITMAPS->SALVAGE_REQUESTED [ color = "red" ]; + HDR_LOADING_FROM_DISK->SALVAGE_REQUESTED [ color = "red" ]; + HDR_LOADING_FROM_DISK->ATTACHING [ color = "blue" ] ; + HDR_LOADING_FROM_DISK->ATTACHED_nUsers_GT_0 [ color = "purple" ]; + + SALVAGE_REQUESTED->SALVAGING [ label = "controlled via FSSYNC" ]; + SALVAGE_REQUESTED->HARD_ERROR [ color = "red", + label = "After hard salvage limit reached,\n hard error state is in effect\nuntil there is operator intervention" ]; + + HDR_ATTACHING_LRU_PULL->HDR_LOADING_FROM_DISK [ color = "blue" ]; + HDR_ATTACHING_LRU_PULL->HDR_LOADING_FROM_DISK [ color = "purple" ]; + HDR_ATTACHING_LRU_PULL->ATTACHED_nUsers_GT_0 [ color = "purple", label = "header can be in LRU\nand not have been reclaimed\nthus skipping disk I/O" ]; + + ATTACHING->HDR_ATTACHING_LRU_PULL [ color = "blue" ]; + ATTACHING->ATTACHED_nUsers_EQ_0 [ color = "blue" ]; + + ATTACHING->SALVAGE_REQUESTED [ color = "red" ]; + ATTACHED_nUsers_EQ_0->HDR_ATTACHING_LRU_PULL [ color = "purple" ]; + + ATTACHED_nUsers_EQ_0->SALVAGE_REQUESTED [ color = "red" ]; + + // Various loopback transitions + GOING_OFFLINE->GOING_OFFLINE [ label = "VPut when (nUsers > 1)" ]; + SHUTTING_DOWN->SHUTTING_DOWN + [ label = "VPut when ((nUsers > 1) ||\n((nUsers == 1) && (nWaiters > 0)))" ]; + SHUTTING_DOWN->SHUTTING_DOWN + [ label = "VCancelReservation_r when ((nWaiters > 1)\n|| ((nWaiters == 1) && (nUsers > 0)))"]; + } Index: openafs/doc/man-pages/README diff -c openafs/doc/man-pages/README:1.8.2.17 openafs/doc/man-pages/README:1.8.2.18 *** openafs/doc/man-pages/README:1.8.2.17 Tue Feb 19 10:28:55 2008 --- openafs/doc/man-pages/README Tue Apr 1 02:57:18 2008 *************** *** 213,219 **** vldb_convert vos clone vos setfields - vos shadow vsys * klog.krb, pagsh.krb, and tokens.krb need to be listed as alternative --- 213,218 ---- Index: openafs/doc/man-pages/pod1/vos_shadow.pod diff -c /dev/null openafs/doc/man-pages/pod1/vos_shadow.pod:1.1.2.2 *** /dev/null Mon Apr 21 17:11:52 2008 --- openafs/doc/man-pages/pod1/vos_shadow.pod Tue Apr 1 02:57:19 2008 *************** *** 0 **** --- 1,174 ---- + =head1 NAME + + vos_shadow - Creates a shadow copy of a volume on a different server/partition + + =head1 SYNOPSIS + + =for html +
+ + B S<<< [B<-id>] > >>> + S<<< [B<-fromserver>] > >>> + S<<< [B<-frompartition>] > >>> + S<<< [B<-toserver>] > >>> + S<<< [B<-topartition>] > >>> + S<<< [B<-toname> >] >>> + S<<< [B<-toid> >] >>> [B<-offline>] [B<-readonly>] + [B<-live>] [B<-incremental>] S<<< [B<-cell> >] >>> [B<-noauth>] + [B<-localauth>] [B<-verbose>] [B<-encrypt>] [B<-help>] + + =for html +
+ + =head1 DESCRIPTION + + The B command creates a shadow copy of a volume on a + different partition or server. + + A shadow volume is a copy of a volume that does not normally appear in + the volume location database (VLDB). It is a primitive operation that + is meant to be used in backup or disaster recovery situations. + + =head1 CAUTIONS + + This command is not used during normal OpenAFS administration and may + have adverse effects on the VLDB if not used properly! This command + should only be used by an expert. + + Using this command on a volume when the source volume is not the same + as parent volume used to create the shadow will leave the destination + volume in a unknown state. + + Do NOT run the B or B on any fileserver + containing shadow volumes. This would update the VLDB to show all + shadowed Read/Write volumes instead of the source volumes from which + they were copied. + + Currently, the maximum size of a volume is 2 terabytes (2^31 bytes). + + =head1 OPTIONS + + =over 4 + + =item [B<-id>] > + + Specifies either the complete name or volume ID number of a read/write + volume. + + =item [B<-fromserver>] > + + Identifies the file server machine where the source volume resides. Provide + the machine's IP address or its host name (either fully qualified or using + an unambiguous abbreviation). For details, see L. + + =item [B<-frompartition>] > + + Names the partition where the source volume resides. Provide the full + partition name (for, example, B) or one of the abbreviated forms + described in L. + + =item [B<-toserver>] > + + Identifies the file server machine to which to copy the volume. Provide + the machine's IP address or its host name (either fully qualified or using + an unambiguous abbreviation). For details, see L. + + =item [B<-topartition>] > + + Names the partition to which to copy the volume. Provide the full partition + name (for, example, B) or one of the abbreviated forms described in + L. + + =item B<-toname> > + + The complete name of the new volume to create. + + =item B<-offline> + + Leaves the new volume flagged as off-line in the volume database. + + =item B<-readonly> + + Flags the new volume as read-only in the volume database. + + =item B<-live> + + Copies the live volume without cloning. This is normally not necessary and + causes the volume to be kept locked for longer than the normal copy + mechanism. + + =item B<-incremental> + + Copy the changes from the source volume to a previously created shadow + volume. + + =item B<-cell> > + + Names the cell in which to run the command. Do not combine this argument + with the B<-localauth> flag. For more details, see L. + + =item B<-noauth> + + Assigns the unprivileged identity C to the issuer. Do not + combine this flag with the B<-localauth> flag. For more details, see + L. + + =item B<-localauth> + + Constructs a server ticket using a key from the local + F file. The B command interpreter presents + it to the Volume Server and Volume Location Server during mutual + authentication. Do not combine this flag with the B<-cell> argument or + B<-noauth> flag. For more details, see L. + + =item B<-verbose> + + Produces on the standard output stream a detailed trace of the command's + execution. If this argument is omitted, only warnings and error messages + appear. + + =item B<-encrypt> + + Encrypts the command so that the operation's results are not transmitted + across the network in clear text. + + =item B<-help> + + Prints the online help for this command. All other valid options are + ignored. + + =back + + =head1 OUTPUT + + This command has no output unless C<-verbose> is specified or there is + an error. + + =head1 PRIVILEGE REQUIRED + + The issuer must be listed in the F file on the + machines specified with the B<-toserver> and B<-fromserver> arguments and + on each database server machine. If the B<-localauth> flag is included, + the issuer must instead be logged on to a server machine as the local + superuser C. + + =head1 SEE ALSO + + L, + L, + L, + L + + L + discusses motivation for the creation of this command. + + L discusses + one possible use for it. + + =head1 COPYRIGHT + + Copyright 2008 Jason Edgecombe + + This documentation is covered by the BSD License as written in the + doc/LICENSE file. This man page was written by Jason Edgecombe for + OpenAFS. Index: openafs/doc/man-pages/pod8/buserver.pod diff -c openafs/doc/man-pages/pod8/buserver.pod:1.5 openafs/doc/man-pages/pod8/buserver.pod:1.5.2.1 *** openafs/doc/man-pages/pod8/buserver.pod:1.5 Wed Mar 1 00:02:31 2006 --- openafs/doc/man-pages/pod8/buserver.pod Wed Apr 2 15:51:53 2008 *************** *** 9,16 **** B S<<< [B<-database> >] >>> S<<< [B<-cellservdb> >] >>> [B<-resetdb>] ! [B<-noauth>] [B<-smallht>] [-servers >+] ! [B<-enable_peer_stats>] [-enable_process_stats] [B<-help>] =for html --- 9,17 ---- B S<<< [B<-database> >] >>> S<<< [B<-cellservdb> >] >>> [B<-resetdb>] ! [B<-noauth>] [B<-smallht>] [B<-servers> >+] ! [B<-enable_peer_stats>] [B<-enable_process_stats>] [B<-rxbind>] ! [B<-p> >] [B<-help>] =for html *************** *** 115,120 **** --- 116,131 ---- other machines. To display or otherwise access the records, use the Rx Monitoring API. + =item B<-rxbind> + + Bind the Rx socket to the primary interface only. (If not specified, the + Rx socket will listen on all interfaces.) + + =item B<-p> > + + Sets the number of server lightweight processes (LWPs or pthreads) to run. + Provide a positive integer from the range 3 to 16. The default value is 3. + =item B<-help> Prints the online help for this command. All other valid options are Index: openafs/doc/man-pages/pod8/ptserver.pod diff -c openafs/doc/man-pages/pod8/ptserver.pod:1.3.2.1 openafs/doc/man-pages/pod8/ptserver.pod:1.3.2.2 *** openafs/doc/man-pages/pod8/ptserver.pod:1.3.2.1 Tue Jan 22 23:18:10 2008 --- openafs/doc/man-pages/pod8/ptserver.pod Wed Apr 2 15:51:53 2008 *************** *** 7,15 **** =for html
! B S<<< [B<-database> >] >>> S<<< [B<-p> >] >>> [B<-rebuildDB>] [B<-enable_peer_stats>] [B<-enable_process_stats>] ! [B<-allow-dotted-principal>] [B<-help>] =for html
--- 7,15 ---- =for html
! B S<<< [B<-database> >] >>> S<<< [B<-p> >] >>> [B<-rebuildDB>] [B<-enable_peer_stats>] [B<-enable_process_stats>] ! [B<-allow-dotted-principal>] [B<-rxbind>] [B<-help>] =for html
*************** *** 63,72 **** example, the appropriate value for the default database files is F. ! =item B<-p> > ! Sets the number of server lightweight processes (LWPs) to run. Provide a ! positive integer from the range C<3> to C<16>. The default value is C<3>. =item B<-rebuildDB> --- 63,73 ---- example, the appropriate value for the default database files is F. ! =item B<-p> > ! Sets the number of server lightweight processes (LWPs or pthreads) to run. ! Provide a positive integer from the range C<3> to C<16>. The default ! value is C<3>. =item B<-rebuildDB> *************** *** 99,104 **** --- 100,110 ---- between principal names may disable this check by starting the server with this option. + =item B<-rxbind> + + Bind the Rx socket to the primary interface only. (If not specified, the + Rx socket will listen on all interfaces.) + =item B<-help> Prints the online help for this command. All other valid options are Index: openafs/doc/man-pages/pod8/vlserver.pod diff -c openafs/doc/man-pages/pod8/vlserver.pod:1.3.2.1 openafs/doc/man-pages/pod8/vlserver.pod:1.3.2.2 *** openafs/doc/man-pages/pod8/vlserver.pod:1.3.2.1 Tue Jan 22 23:18:10 2008 --- openafs/doc/man-pages/pod8/vlserver.pod Wed Apr 2 15:51:53 2008 *************** *** 7,13 **** =for html
! B S<<< [B<-p> >] >>> [B<-nojumbo>] [B<-allow-dotted-principal>] [B<-enable_peer_stats>] [B<-enable_process_stats>] [B<-help>] --- 7,13 ---- =for html
! B S<<< [B<-p> >] >>> [B<-nojumbo>] [B<-rxbind>] [B<-allow-dotted-principal>] [B<-enable_peer_stats>] [B<-enable_process_stats>] [B<-help>] *************** *** 55,64 **** =over 4 ! =item B<-p> > ! Sets the number of server lightweight processes (LWPs) to run. Provide an ! integer between C<4> and C<16>. The default is C<9>. =item B<-nojumbo> --- 55,64 ---- =over 4 ! =item B<-p> > ! Sets the number of server lightweight processes (LWPs or pthreads) to run. ! Provide an integer between C<3> and C<16>. The default is C<9>. =item B<-nojumbo> *************** *** 93,98 **** --- 93,103 ---- between principal names may disable this check by starting the server with this option. + =item B<-rxbind> + + Bind the Rx socket to the primary interface only. (If not specified, the + Rx socket will listen on all interfaces.) + =item B<-help> Prints the online help for this command. All other valid options are Index: openafs/doc/txt/winnotes/afs-changes-since-1.2.txt diff -c openafs/doc/txt/winnotes/afs-changes-since-1.2.txt:1.72.2.50 openafs/doc/txt/winnotes/afs-changes-since-1.2.txt:1.72.2.51 *** openafs/doc/txt/winnotes/afs-changes-since-1.2.txt:1.72.2.50 Fri Mar 21 13:17:41 2008 --- openafs/doc/txt/winnotes/afs-changes-since-1.2.txt Mon Apr 21 11:51:28 2008 *************** *** 1,3 **** --- 1,46 ---- + Since 1.5.34 + * Fix a bug preventing the re-initialization of the Freelance + root.cell contents when a change is made. + + * Properly return CM_ERROR_NOSUCHFILE when removing a symlink + or mountpoint that does not exist. + + * aklog, afscreds, integrated logon, and the NIM AFS credential + provider will all attempt to first acquire an afs service ticket + using the service principal: afs/@. This + permits the proper detection of the cell realm when multiple + realms are local realms for the cell. + + * Fix fs commands that re-use file identifiers instead of forcing + a path evaluation each time. This was broken in 1.5.33 when + hashes were added to the cm_fid_t structure. + + * Fix symlink and mountpoint removal and then recreation when + applied to the fake Freelance root.afs volume. + + * Fix SMB change notifications for the Freelance root.afs volume + when creating or removing symlinks and mount points. + + * Force DNS AFSDB cell name lookups to lower case if the DNS + response is not all lower case. + + * 32-bit installers are now built with Visual Studio 2005 + + * All vos.exe commands now support the "-noresolve" option which + forces the display of IP addresses instead of DNS hostnames. + + * No longer hold the cm_volume_t mutex across VL_xxx RPCs. This + permits operations that do not require up to date volume + location data to continue while waiting for the RPC to complete. + Multiple threads waiting for a volume location update on the + same volume set no longer trigger multiple calls VL_xxx RPCs. + + * Volume server references could be marked offline and never + reset to the not_busy state. + + * Further optimizations to cm_Analyze() retry logic for + CM_ERROR_OFFLINE and CM_ERROR_ALLBUSY error handling. + Since 1.5.33 * Optimize the DNLC by applying Interlocked incrementing for statistics gathering and enabling greater use of read