1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201
|
INSTALLATION
Get and install XMake if you don't have it. You can get XMake
from http://www.backplane.com/xmake/
Edit lib/vendor.h
To use default hash table size or specifically request a small
or large hash table. To maintain dhistory compatibility with
releases < V1.11, set USE_SMALL_HASH. To maintain dhistory
compatibility with releaes > V1.11 from releases < V1.11,
use USE_LARGE_HASH. The default is to use a small hash table
in releases < V1.09, and a large one in releases >= 1.09.
>> We suggest that you follow the instructions at the end of this file
if you wish to upgrade to a larger hash table size. <<
Edit lib/config.h
To port to a new architecture or to refine an existing port
Edit XMakefile.inc
To set compiler flags
xmake clean
xmake
Create a news home called /news (in recognition that usenet news is
a major subsystem, we have none of this /usr/local/news crap). /news
can be a softlink to wherever the real news home is.
Create a news userid and a news groupid.
mkdir /news/dbin (reader and server)
mkdir /news/spool (reader and server)
mkdir /news/dqueue (server only)
mkdir /news/spool/news (server only)
mkdir /news/spool/cache (reader only)
mkdir /news/spool/group (reader only)
mkdir /news/spool/postq (reader only)
chown -R news.news /news
xmake install
Your news spool partition should be mounted as /news/spool/news. Be
sure that both the underlying mount point and the partition is
properly chown'd and chmod'd. Do the same with /news.
cd /news
copy the contents of the samples directory to /news and edit as
appropriate, then run rc.news as root. Read the TUNING_NOTES
and RELEASE_NOTES as well as the various manual pages. The required
files are:
diablo.config (reader and server)
dhistory (server only)
dexpire.ctl (server only)
diablo.hosts (server only)
dnewsfeeds (server only)
dnntpspool.ctl (server only)
dactive.kp (required for reader, optional for server (1))
dcontrol.ctl (reader only)
moderators (reader only)
dreader.hosts (reader only)
dserver.hosts (reader only)
note (1): The dsyncgroups program can be used to generate an initial
dactive.kp database, see the manual page for dsyncgroups.
Don't forget the adm directory with the sample crontab. You will have
to edit the sample crontab as appropriate for your system, and then
install it for the 'news' user.
And you are off.
WHEN UPGRADING: when upgrading from an earlier release of diablo, always
diff the source tree adm directory against your installed adm directory
and update the appropriate files. Note that for any given release of the
code, corruption may result if you do not properly update your
administrative scripts.
HASH METHOD: The default hash method in diablo.config is 'crc/prime',
designed so that people upgrading from 1.13 or earlier releases can
install this one without blowing up their dhistory file. If you are
doing an installation from scratch with no prior dhistory, you can
set the hash method to just 'crc'. Otherwise leave it 'crc/prime'
for a week and THEN set it to just 'crc'.
/NEWS and /NEWS/SPOOL/NEWS HINTS
** FOR A DEDICATED NEWSFEEDS MACHINE **
/news should generally own its own partition, as should /news/spool/news.
/news can usually share the root disk
/news/spool/news should be given its own private disk(s). The MINIMUM
recommended spool size is 8 GB.
Under no circumstances should you use physical disks with storage
capacities greater then 4G.
The minimum recommended configuration when taking a full feed is:
128 MB ram, parity SIMM.
Three 4G seagate barracudas (or better) Use one for the root
drive and /news, and stripe the other two (e.g. with ccd) to make
your spool. The suggested stripe size is 2 cylinders (usually
around 1024 blocks).
pentium 90 or better motherboard (I personally suggest a pentium
pro motherboard, which gives better cpu performance and hardware
ECC when using parity-simm memory).
run FreeBSD, BSDI, or Linux. My personal favorite is FreeBSD.
** FOR A DEDICATED NEWSREADER MACHINE **
/news should generally own its own partition, as should /news/spool/news.
/news can reside on the root disk *IF* you have enough memory not to
swap, otherwise it should own its own disk.
/news/spool/news should be given its own private disk(s). The MINIMUM
recommended spool size is 16 GB if you are taking a full feed, 8 or 12
if you are not.
Under no circumstances should you use physical disks with storage
capacities greater then 4G.
The minimum recommended configuration for a newsreader machine taking
a full feed is:
128 MB ram, parity SIMMs, 256 MB ram if over 100 readers may become
active at once.
Five 4G seagate barracudas (or better). Use one for the root drive
and /news, and stripe the other four (e.g. with ccd) to make your
spool. The suggested stripe size is 2 cylinders (usually around
1024 blocks).
Pentium-pro 200, Adaptec PCI SCSI controller
running FreeBSD.
FREEBSD / PENTIUM BOX / ADAPTEC CONTROLLER
We use pentium boxes running FreeBSD with seagate drives and an
adaptec controller. We have had serious firmware problems with other
drives, especially quantums (even the new ones). If you are going
with a pentium/FreeBSD solution for news, I suggest sticking with
the newer seagate drives.
For any news system, you should not underestimate the memory
requirements. Most modern UNIX operating systems are able to use any
free memory as a disk buffer cache, and that can be very important
when it comes to news. News machines cannot generally afford to
swap, but it depends heavily on the software you are using. Diablo,
for example, can handle swapping/paging much better then something
like INN.
CHECKLIST ONCE IT IS RUNNING
Here's a checklist for once you have Diablo running:
* Make sure syslog is logging news
* fgrep DIABLO /var/log/news (or wherever your syslog puts the log) and
use the uptime and 'arts' numbers to calculate the articles per minute.
The uptime is in HH:MM, so calculate: arts / (HH * 60 + MM) . For
a full feed as of March 1997, you should wind up with between
190 and 250 articles/min if you properly primed the history file.
If you have not primed the history file and are taking multiple feeds,
you may see a higher article rate for several days until Diablo's
history file stabilizes.
* After DIABLO has been running for a day, check the logs generated by
the cron scripts. Make sure that the expire is being run every four
hours.
* After DIABLO has been running for a few days, check the logs again.
Make sure that expire is still running properly, and that the
history rewrite (biweekly.rehist) is running properly.
* After four weeks of operation, double check that biweekly.rehist has
been running properly and that the dhistory file has stabilized to
a reasonable size (as of July 1997, between 200 and 300 MBytes).
If you have a lot of feeds and a lot of memory, it may be worthwhile
increasing the dhistory table hash size from 4 million entries to
8 million, see adm/biweekly.atrim and the manual page to diload for
more information.
|