CYCBUFF.CONF(5)

NAME
cycbuff.conf - configuration file for CNFS method

DESCRIPTION
The file <pathetc in inn.conf>/cycbuff.conf is required if CNFS (Cyclic News File System) method is used. CNFS is one of storage method which can be defined at storage.conf(5).

The file consists of a series of lines; blank lines and lines beginning with a number sign (``#'') are ignored. There are four kinds of configuration lines: ``cycbuffupdate'', ``refreshinterval'', ``cycbuff'' and ``metacycbuff.'' The order of lines in this file is not important among the same kind of configuration line. But all ``cycbuff'' lines should be presented before any ``metacycbuff'' lines.

``Cycbuffupdate'' line is formatted as:

    cycbuffupdate:update

``Update'' is how many article-stores between cycbuff header updates. This line can be omitted and the default value is ``25.''

``Refreshinterval'' line is formatted as:

    refreshinterval:interval

``Inerval'' is what interval (seconds) between rereading cycbuff header if cycbuff is preopend. (This is in the case nnrpd(8) runs as a daemon.) This line can be omitted and the default value is ``30.''

``Cycbuff'' line is formatted as:

    cycbuff:buffer_name:file_name:buffer_size

``Buffer_name'' is the symbolic name of the buffer. The length of this name should be within 7 letters. This name is referred at ``metacycbuff'' lines. ``File_name'' is the path to buffer file. The length of this path should be within 63 letters. ``Buffer_size'' is the length of buffer file in kilobytes in decimal (1KB = 1024 bytes). If the ``file_name'' is not a special device, the file should be buffer_size * 1024 bytes.

``Metacycbuff'' line is formatted as:

    metacycbuff:meta_cyclic_buffer_name:buffer_names[:mode]

``Meta_cyclic_buffer_name'' is the symbolic name of meta-cyclic buffer. This name is referred at ``options'' field at ``cnfs'' entries in storage.conf(5). ``Buffer_names'' is comma separated list of symbolic names of ``cycbuff.'' These buffer names should be defined at ``cycbuff'' lines. If ``buffer_names'' has more than one buffer names, CNFS method stores articles into each ``cycbuff'' in order cyclically. ``Mode'' is the mode of storing article. Currently there are two mode; ``INTERLEAVE'' and ``SEQUENTIAL''. Mode ``INTERLEAVE'' is to store articles into each cycbuff in round robin way. Mode ``SEQUENTIAL'' is to store articles sequentially into one cycbuff until it is filled up. ``Mode'' is optional and the default value without this option is ``INTERLEAVE''.

Also it is necessary to set up ``options'' field at ``cnfs'' entries in storage.conf(5) to use CNFS method. That field should be one of ``meta_cyclic_buffer_name'' defined at ``metacycbuff'' lines.

To create new ``cycbuff'', there are two different methods for creating the cyclic buffer files.

1. Create a big file on top of a standard filesystem.
    The use "dd" to create the ``cycbuff'' files, such as "dd if=/dev/zero of=/path/to/cycbuff bs=32k count=N" where N is the buffer_size divided by 32.

2. Use block disk devices directly.
    If your operating system will allow you to mmap() block disk devices (Solaris does, FreeBSD does not), this is the recommended method. Partition the disks to make each partition slightly larger (a few MB larger) than the intended size of each cycbuff. It is not recommend to use the block device files already located in ``/dev.'' Instead, use "mknod" to create a new set of block device files. In order to do this, do an "ls -Ll" of the /dev/dsk partition. The major and minor device numbers are in the fifth and sixth columns (right before the date) respectively. This information should be fed to "mknod" to make a "block-type special file" (b). Here is a short script that accomplishes this when fed the ``/dev/dsk/'' partition name:

    #!/bin/sh
    disk=$1
    link=`ls -l /dev/dsk/$disk | awk '{print $11}'`
    major=`ls -l /dev/dsk/$link | awk '{print $5}' | tr -d ,`
    minor=`ls -l /dev/dsk/$link | awk '{print $6}`
    mkdir /cycbuff
    mknod /cycbuff/$disk b $major $minor
    The created device files themselves consume very little space.

In either case, make certain that each overview buffer file is owned by <USER specified with --with-news-user at configure>, <GROUP specified with --with-news-group at configure>, and has read/write modes for the owner and group (mode ``0664'' or ``0660'').

When you first start innd and everything is configured properly, you should see messages in news.notice which look like:

Mar 1 00:00:00 kevlar innd: CNFS-sm No magic cookie found for cycbuff ONE, initializing

HISTORY
Written by Katsuhiro Kondou <kondou@nec.co.jp> for InterNetNews.

SEE ALSO
inn.conf(5), storage.conf(5).