Categories
Internet, Unix en security

Inode mismatch bij INN

Als je INN gebruikt met een traditionele newsspool dan wil het voorkomen dan je de melding innd: tradindexed: index inode mismatch for kijkt in de logfiles. Zeker als je van filesysteem verandert, maar het volgende commando werkt de index bij:

$ sudo su - news -c '/usr/lib/news/bin/tdx-util -F'

Er zullen veel meldingen komen over welke entries in de index van de newsspool gecorrigeerd moeten worden.

Categories
Internet, Unix en security

INN zonder filesystemen

InterNetNews (INN) heeft verschillende mogelijkheden om artikelen op te slaan en tradspool is leuk newsservers met een lage hoeveelheid berichten. Maar al flink wat jaren bestaat er Cyclical News Filesystem (CNFS) om efficienter om te gaan met artikelen en de overhead van een filesystem te beperken. Ook het rekening houden met de hoeveelheid inodes er nodig zijn, de accesstime van bestanden bijhouden en vervuiling van directorylistings behoren daarmee tot de verleden tijd.

INN kan met behulp van CNFS in een groot bestand al zijn werk doen, maar ook direct met een raw-device zodat de overhead van een filesystem weg is. En hoewel ik zelf niet altijd voorstander van en menig dba’er weet dit ook werd het toch tijd om de proef op de som te nemen. Er zit wel een beperking op zoals dat je de volumes niet meer kan aanpassen qua omvang, maar een extra volume toevoegen kan altijd.

We beginnen om in volumegroup vg01 twee logical volumes aan te maken:

sudo lvcreate -L 1g -n cnfsnl00 vg01
sudo lvcreate -L 1g -n cnfsnl01 vg01

LVM op Linux zit niet zo goed in elkaar als bij Veritas bijvoorbeeld om ownership te waarborgen, maar Debian heeft voorzieningen getroffen en door /etc/default/lvm-common te voorzien van de volgende regels moet de devices bij een reboot de correct permissies krijgen voor INN op Debian.

MODE_vg01_cnfsnl00="news:disk 660"
MODE_vg01_cnfsnl01="news:disk 660"

Mocht je niet kunnen of willen rebooten dan kan het volgde statement ook worden uitgevoerd.

sudo /etc/init.d/inn2 restart

De devices kunnen nu worden opgenomen in /etc/news/cycbuff.conf om aan te wijzen als CNFS-volume:

cycbuff:NL00:/dev/mapper/vg01-cnfsnl00:1024000
cycbuff:NL01:/dev/mapper/vg01-cnfsnl01:1024000
metacycbuff:NL:NL00,NL01

Door nu aan INN te vertellen in /etc/news/storage.conf dat met behulp van CNFS de berichten moeten worden opgeslagen is de aanpassing na een reload compleet. In het voorbeeld worden alle artikelen uit de nl-tree opgeslagen in de zojuist aangemaakt CNFS-volumes.

method cnfs {
newsgroups: nl.*
options: NL
}

Bij een herstart zal te zien zijn in de syslog-file dat INN de volumes initialiseert en ingebruik neemt.

innd: CNFS-sm: No magic cookie found for cycbuff NL00, initializing

Extra ruimte kan worden gegeven door een etxra volume aan te maken en in cycbuff.conf te definiëren.