1BUFFINDEXED.CONF(5) InterNetNews Documentation BUFFINDEXED.CONF(5)
2
3
4
6 buffindexed.conf - Configuration for the buffindexed overview method
7
9 buffindexed.conf, found in pathetc, specifies the buffers that the
10 buffindexed overview method should use. It is required if the server
11 uses buffindexed (as configured by the ovmethod parameter in inn.conf).
12
13 Buffindexed uses pre-built buffer files to store overview data and
14 indexes to that data. The buffers are divided into 8 KB internally,
15 and a given block is used either for overview data or for index data.
16 A block is always allocated to a single newsgroup and is never shared
17 among newsgroups.
18
19 In addition to the buffers, buffindexed also stores information in a
20 file named group.index in pathdb. (This file should not be mistaken
21 for the one named group.index in pathoverview which is used by the
22 tradindexed overview method.) It contains information about each
23 newsgroup: the pointer to the index block for the newsgroup, the high
24 mark, the low mark, the flag of the group, the number of articles, and
25 so forth. This file is created automatically when all buffers are
26 initialized and should not be manually edited.
27
28 Buffindexed buffers are of fixed size, so buffindexed will never use
29 more space than what is available in those buffers. If all buffers are
30 full, innd will throttle when it attempts to store overview information
31 for any additional articles until space is freed (with expireover, for
32 instance) or another buffer is added. This is unlike the CNFS storage
33 method.
34
35 You can see the current usage of the buffers with the -o option to
36 inndf.
37
38 In the buffindexed.conf file, blank lines and lines beginning with a
39 number sign ("#") are ignored. All other lines must be of the format:
40
41 <index>:<filename>:<size>
42
43 The order of lines is not significant.
44
45 <index> is the index of this overview buffer and must be unique. Other
46 than that constraint, it can be any number between 0 and 65535.
47
48 <filename> is the path to the buffer. The length of the path should
49 not be longer than 63 characters.
50
51 <size> is the length of the buffer in kilobytes (1 KB = 1024 bytes).
52 If <filename> does not specify a special device, the file size of the
53 buffer must be <size> * 1024 bytes. If it does specify a special
54 device, that device must have at least <size> space available. For
55 more information on setting up the buffers, see "CREATING BUFFERS".
56
57 An example of buffindexed.conf file can be:
58
59 0:<pathoverview in inn.conf>/OV1:1536000
60 1:<pathoverview in inn.conf>/OV2:1536000
61
62 When you first start innd with everything configured properly, you
63 should see messages like this in pathlog/news.notice:
64
65 Aug 27 00:00:00 kevlar innd: buffindexed: no magic cookie found
66 for ovbuff 0, initializing
67
68 You MUST recreate overview completely using makehistory if you remove
69 or replace buffers. However, new buffers can be added without any
70 special care (other than restarting innd after modifying
71 buffindexed.conf). If you need to rebuild overview, you should zero
72 all of the buffers first.
73
75 There are two methods to create a new buffindexed buffer:
76
77 1. Create a large file on top of a regular file system. The easiest
78 way to do this is probably with dd(1), using a command like:
79
80 dd if=/dev/zero of=/path/to/cycbuff bs=1024 count=<size>
81
82 where <size> is the size from the relevant line in
83 buffindexed.conf.
84
85 This is the simplest method, but has the disadvantage that very
86 large files on regular file systems can be fairly slow to access,
87 particularly at the end of the file, and INN incurs unnecessary
88 file system overhead when accessing the buffer.
89
90 2. Use block devices directly. If your operating system allows you to
91 call mmap() on block devices (Solaris and recent versions of Linux
92 do, FreeBSD at last report does not), this method can avoid all of
93 the native file system overhead. Note, however, that Solaris has
94 problems with byte range locking on block devices, and therefore
95 this method should not be used on Solaris.
96
97 Partition the disk. If you're using Solaris, set up your
98 partitions to avoid the first cylinder of the disk (or otherwise
99 the buffindexed header will overwrite the disk partition table and
100 render the buffers inaccessible). Then, create device files for
101 each block device you're going to use.
102
103 It's not recommended to use the block device files in /dev, since
104 the news system doesn't have permission to write to them and
105 changing the permissions of the system device files may affect
106 something else. Instead, use mknod(1) to create a new set of block
107 devices (in somewhere like pathspool/overview that's only writable
108 by the news user). To do this, run "ls -Ll" on the devices in /dev
109 that correspond to the block devices that you want to use. The
110 major and minor device numbers are in the fifth and sixth columns
111 (right before the date), respectively. Then run mknod like:
112
113 mknod <filename> b <major> <minor>
114
115 where <filename> is the path to the device to create (matching the
116 <filename> part of the buffindexed configuration line) and <major>
117 and <minor> are the major and minor device numbers as discovered
118 above.
119
120 Here's a short script to do this when given the path to the system
121 device file as an argument:
122
123 #!/bin/sh
124 base=`echo "$1" | sed 's%.*/%%'`
125 major=`ls -Ll "$1" | awk '{print $5}' | tr -d ,`
126 minor=`ls -Ll "$1" | awk '{print $6}`
127 mkdir -p <pathoverview in inn.conf>
128 mknod <pathoverview>/"$base" b "$major" "$minor"
129 chown news:news <pathoverview>/"$base"
130 chmod 644 <pathoverview>/"$base"
131
132 Make sure that the created files are owned by the news user and
133 news group, as specified at configure time (the default being
134 "news" for both). Also make sure that the permissions on the
135 devices allow the news user to read and write.
136
138 Written by Katsuhiro Kondou <kondou@nec.co.jp> for InterNetNews.
139 Converted to POD by Russ Allbery <eagle@eyrie.org>.
140
141 $Id: buffindexed.conf.pod 9925 2015-08-08 17:05:43Z iulius $
142
144 expireover(8), inn.conf(5), inndf(8), makehistory(8).
145
146
147
148INN 2.6.3 2015-09-12 BUFFINDEXED.CONF(5)