Annotation of 43BSDReno/share/doc/smm/08.timedop/timed.ms, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1986 The Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" Redistribution and use in source and binary forms are permitted
                      5: .\" provided that the above copyright notice and this paragraph are
                      6: .\" duplicated in all such forms and that any documentation,
                      7: .\" advertising materials, and other materials related to such
                      8: .\" distribution and use acknowledge that the software was developed
                      9: .\" by the University of California, Berkeley.  The name of the
                     10: .\" University may not be used to endorse or promote products derived
                     11: .\" from this software without specific prior written permission.
                     12: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                     13: .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                     14: .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     15: .\"
                     16: .\"    @(#)timed.ms    6.2 (Berkeley) 3/7/89
                     17: .\"
                     18: .TL
                     19: Timed Installation and Operation Guide
                     20: .AU
                     21: Riccardo Gusella, Stefano Zatti, James M. Bloom
                     22: .AI
                     23: Computer Systems Research Group
                     24: Computer Science Division
                     25: Department of Electrical Engineering and Computer Science
                     26: University of California, Berkeley
                     27: Berkeley, CA 94720
                     28: .AU
                     29: Kirk Smith
                     30: .AI
                     31: Engineering Computer Network
                     32: Department of Electrical Engineering
                     33: Purdue University
                     34: West Lafayette, IN 47906
                     35: .FS
                     36: This work was sponsored by the Defense Advanced Research Projects Agency
                     37: (DoD), monitored by the Naval Electronics Systems
                     38: Command under contract No. N00039-84-C-0089, and by the CSELT 
                     39: Corporation of Italy.
                     40: The views and conclusions contained in this document are those of the
                     41: authors and should not be interpreted as representing official policies,
                     42: either expressed or implied, of the Defense Research Projects Agency,
                     43: of the US Government, or of CSELT.
                     44: .FE
                     45: .LP
                     46: .EH 'SMM:8-%''Timed Installation and Operation'
                     47: .OH 'Timed Installation and Operation''SMM:8-%'
                     48: .SH 
                     49: Introduction
                     50: .PP
                     51: The clock synchronization service for 
                     52: the UNIX 4.3BSD operating system is composed of a collection of
                     53: time daemons (\fItimed\fP) running on the machines in a local
                     54: area network.
                     55: The algorithms implemented by the service is based on a master-slave scheme.
                     56: The time daemons communicate with each other using the 
                     57: \fITime Synchronization Protocol\fP (TSP) which
                     58: is built on the DARPA UDP protocol and described in detail in [4].
                     59: .PP
                     60: A time daemon has a twofold function.
                     61: First, it supports the synchronization of the clocks 
                     62: of the various hosts in a local area network.
                     63: Second, it starts (or takes part in) the election that occurs
                     64: among slave time daemons when, for any reason, the master disappears.
                     65: The synchronization mechanism and the election procedure 
                     66: employed by the program \fItimed\fP are described 
                     67: in other documents [1,2,3].
                     68: The next paragraphs are a brief overview of how the time daemon works.
                     69: This document is mainly concerned with the administrative and technical
                     70: issues of running \fItimed\fP at a particular site.
                     71: .PP
                     72: A \fImaster time daemon\fP measures the time
                     73: differences between the clock of the machine on which it 
                     74: is running and those of all other machines.
                     75: The master computes the \fInetwork time\fP as the average of the 
                     76: times provided by nonfaulty clocks.\**
                     77: .FS
                     78: A clock is considered to be faulty when its value 
                     79: is more than a small specified
                     80: interval apart from the majority of the clocks 
                     81: of the other machines [1,2].
                     82: .FE
                     83: It then sends to each \fIslave time daemon\fP the
                     84: correction that should be performed on the clock of its machine.
                     85: This process is repeated periodically.
                     86: Since the correction is expressed as a time difference rather than an 
                     87: absolute time, transmission delays do not interfere with 
                     88: the accuracy of the synchronization.
                     89: When a machine comes up and joins the network,
                     90: it starts a slave time daemon which
                     91: will ask the master for the correct time and will reset the machine's clock
                     92: before any user activity can begin.
                     93: The time daemons are able to maintain a single network time in spite of 
                     94: the drift of clocks away from each other. 
                     95: The present implementation keeps processor clocks synchronized 
                     96: within 20 milliseconds.
                     97: .PP
                     98: To ensure that the service provided is continuous and reliable,
                     99: it is necessary to implement an election algorithm to elect a
                    100: new master should the machine running the current master crash, the master
                    101: terminate (for example, because of a run-time error), or 
                    102: the network be partitioned.
                    103: Under our algorithm, slaves are able to realize when the master has
                    104: stopped functioning and to elect a new master from among themselves.
                    105: It is important to note that, since the failure of the master results
                    106: only in a gradual divergence of clock values, the election
                    107: need not occur immediately.
                    108: .PP
                    109: The machines that are gateways between distinct local area
                    110: networks require particular care.
                    111: A time daemon on such machines may act as a \fIsubmaster\fP.
                    112: This artifact depends on the current inability of
                    113: transmission protocols to broadcast a message on a network
                    114: other than the one to which the broadcasting machine is connected.
                    115: The submaster appears as a slave on one network, and as a master
                    116: on one or more of the other networks to which it is connected.
                    117: .PP
                    118: A submaster classifies each network as one of three types.
                    119: A \fIslave network\fP is a network on which the submaster acts as a slave.
                    120: There can only be one slave network.
                    121: A \fImaster network\fP is a network on which the submaster acts as a master.
                    122: An \fIignored network\fP is any other network which already has a valid master.
                    123: The submaster tries periodically to become master on an ignored
                    124: network, but gives up immediately if a master already exists.
                    125: .SH
                    126: Guidelines
                    127: .PP
                    128: While the synchronization algorithm is quite general, the election
                    129: one, requiring a broadcast mechanism, puts constraints on
                    130: the kind of network on which time daemons can run.
                    131: The time daemon will only work on networks with broadcast capability
                    132: augmented with point-to-point links.
                    133: Machines that are only connected to point-to-point,
                    134: non-broadcast networks may not use the time daemon.
                    135: .PP
                    136: If we exclude submasters, there will normally be, at most, one master time 
                    137: daemon in a local area internetwork.
                    138: During an election, only one of the slave time daemons
                    139: will become the new master.
                    140: However, because of the characteristics of its machine,
                    141: a slave can be prevented from becoming the master.
                    142: Therefore, a subset of machines must be designated as potential 
                    143: master time daemons.
                    144: A master time daemon will require CPU resources
                    145: proportional to the number of slaves, in general, more than
                    146: a slave time daemon, so it may be advisable to limit master time
                    147: daemons to machines with more powerful processors or lighter loads.
                    148: Also, machines with inaccurate clocks should not be used as masters.
                    149: This is a purely administrative decision: an organization may
                    150: well allow all of its machines to run master time daemons.
                    151: .PP
                    152: At the administrative level, a time daemon on a machine
                    153: with multiple network interfaces, may be told to ignore all
                    154: but one network or to ignore one network.
                    155: This is done with the \fI\-n network\fP and \fI\-i network\fP
                    156: options respectively at start-up time.
                    157: Typically, the time daemon would be instructed to ignore all but
                    158: the networks belonging to the local administrative control.
                    159: .PP
                    160: There are some limitations to the current
                    161: implementation of the time daemon.
                    162: It is expected that these limitations will be removed in future releases.
                    163: The constant NHOSTS in /usr/src/etc/timed/globals.h limits the
                    164: maximum number of machines that may be directly controlled by one
                    165: master time daemon.
                    166: The current maximum is 29 (NHOSTS \- 1).
                    167: The constant  must be changed and the program recompiled if a site wishes to
                    168: run \fItimed\fP on a larger (inter)network.
                    169: .PP
                    170: In addition, there is a \fIpathological situation\fP to
                    171: be avoided at all costs, that might occur when
                    172: time daemons run on multiply-connected local area networks.
                    173: In this case, as we have seen, time daemons running on gateway machines
                    174: will be submasters and they will act on some of those 
                    175: networks as master time daemons.
                    176: Consider machines A and B that are both gateways between
                    177: networks X and Y.
                    178: If time daemons were started on both A and B without constraints, it would be
                    179: possible for submaster time daemon A to be a slave on network X
                    180: and the master on network Y, while submaster time daemon B is a slave on 
                    181: network Y and the master on network X.
                    182: This \fIloop\fP of master time daemons will not function properly
                    183: or guarantee a unique time on both networks, and will cause
                    184: the submasters to use large amounts of system resources in the form
                    185: of network bandwidth and CPU time.
                    186: In fact, this kind of \fIloop\fP can also be generated with more
                    187: than two master time daemons,
                    188: when several local area networks are interconnected.
                    189: .SH
                    190: Installation
                    191: .PP
                    192: In order to start the time daemon on a given machine,
                    193: the following lines should be
                    194: added to the \fIlocal daemons\fP section in the file \fI/etc/rc.local\fP:
                    195: .sp 2
                    196: .in 1i
                    197: .nf
                    198: if [ -f /etc/timed ]; then
                    199:        /etc/timed \fIflags\fP & echo -n ' timed' >/dev/console
                    200: fi
                    201: .fi
                    202: .in -1i
                    203: .sp
                    204: .LP
                    205: In any case, they must appear after the network 
                    206: is configured via ifconfig(8).
                    207: .PP
                    208: Also, the file \fI/etc/services\fP should contain the following
                    209: line:
                    210: .sp 2
                    211: .ti 1i
                    212: timed          525/udp         timeserver
                    213: .sp
                    214: .LP
                    215: The \fIflags\fP are:
                    216: .IP "-n network" 13
                    217: to consider the named network.
                    218: .IP "-i network"
                    219: to ignore the named network.
                    220: .IP -t
                    221: to place tracing information in \fI/usr/adm/timed.log\fP.
                    222: .IP -M
                    223: to allow this time daemon to become a master.
                    224: A time daemon run without this option will be forced in the state of
                    225: slave during an election.
                    226: .SH
                    227: Daily Operation
                    228: .PP
                    229: \fITimedc(8)\fP is used to control the operation of the time daemon.
                    230: It may be used to:
                    231: .IP \(bu
                    232: measure the differences between machines' clocks,
                    233: .IP \(bu
                    234: find the location where the master \fItimed\fP is running,
                    235: .IP \(bu
                    236: cause election timers on several machines to expire at the same time,
                    237: .IP \(bu
                    238: enable or  disable  tracing  of  messages  received  by \fItimed\fP.
                    239: .LP
                    240: See the manual page on \fItimed\fP\|(8) and \fItimedc\fP\|(8)
                    241: for more detailed information.
                    242: .PP
                    243: The \fIdate(1)\fP command can be used to set the network date.
                    244: In order to set the time on a single machine, the \fI-n\fP flag
                    245: can be given to date(1).
                    246: .bp
                    247: .SH
                    248: References
                    249: .IP 1.
                    250: R. Gusella and S. Zatti, 
                    251: \fITEMPO: A Network Time Controller for Distributed Berkeley UNIX System\fP,
                    252: USENIX Summer Conference Proceedings, Salt Lake City, June 1984.
                    253: .IP 2.
                    254: R. Gusella and S. Zatti, \fIClock Synchronization in a Local Area Network\fP,
                    255: University of California, Berkeley, Technical Report, \fIto appear\fP.
                    256: .IP 3.
                    257: R. Gusella and S. Zatti, 
                    258: \fIAn Election Algorithm for a Distributed Clock Synchronization Program\fP,
                    259: University of California, Berkeley, CS Technical Report #275, Dec. 1985.
                    260: .IP 4.
                    261: R. Gusella and S. Zatti,
                    262: \fIThe Berkeley UNIX 4.3BSD Time Synchronization Protocol\fP,
                    263: UNIX Programmer's Manual, 4.3 Berkeley Software Distribution, Volume 2c.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.