De:GentooSpecial

Aus YaCyWiki
Wechseln zu: Navigation, Suche

Spezielle Anpassungen / Konfigurationen von YaCy unter Gentoo

Warning.png Die nachfolgenden Beispiele beziehen sich auf überwiegend auf die Verwendung mit dem YaCy-Overlay für Gentoo, dessen Pflege aber eingestellt wurde. Daher sollen Scripte nur als Anregung oder Ausgangsbasis für eigene Anpassungen dienen. Mehr zu YaCy unter Gentoo siehe De:GentooInstall

YaCy mit RAM-Disks benutzen

Hier ein Beispiel wie beim Start von YaCy automatisch eine RAM-Disk für DATA/HTCACHE erzeugt und nach dem Stoppen wieder entfernt wird.

Icon info.png Note: Der Einsatz einer Ramdisk für DATA/HTCACHE ist meist nur sinnvoll wenn die (Festplatten-) IO-Last verringert werden soll und eher weniger sinnvoll für den Einsatz von YaCy als cachenden Proxy. In den meisten Fällen bringt jedoch der Einsatz einer Ramdisk für die Logfiles Vorteile.

Wir legen zuerst ein Script im YaCy-Homeverzeichnis /opt/yacy-svn/yacy-gentoo-helper.sh an. Es hat folgenden Inhalt:

#!/bin/bash

TODO="$1"
YACY_HOME="$2"

case "$TODO" in
start)
       mount | grep $YACY_HOME/DATA/HTCACHE &> /dev/null || mount -t tmpfs tmpfs -o nr_inodes=1M,noatime,noexec,nodev,nosuid $YACY_HOME/DATA/HTCACHE
       chown yacy: $YACY_HOME/DATA/HTCACHE
       ;;
stop)
       umount $YACY_HOME/DATA/HTCACHE
       ;;
esac

Unser Script wird nun ausführbar gemacht.

chmod +x /opt/yacy-svn/yacy-gentoo-helper.sh

Das Script wird nun in /etc/conf.d/yacy-svn wie folgt eingetragen. Die Variable $YACY_HOME können wir hier direkt benutzen, diese zeigt auf das Home-Verzeichnis von YaCy, dort wo auch unsere Script ist.

PRE_START_CMD="${YACY_HOME}/yacy-gentoo-helper.sh start ${YACY_HOME}"
POST_STOP_CMD="${YACY_HOME}/yacy-gentoo-helper.sh stop ${YACY_HOME}"

Die Variable $YACY_HOME wird auch per Kommandozeile an das Script übergeben, somit kann die Variable im Script selbst benutzt werden. Das Script legt nun beim Start von YaCy eine RAM-Disk an. Ohne weitere Angaben werden hier 50% vom RAM reserviert, aber erst bei Gebrauch wirklich belegt. Wer die Größe ändern möchte muß die optionale Mountoption size z.B. wie folgt für 850 MB angeben:

... mount -t tmpfs tmpfs -o size=850M,nr_inodes=1M,noatime,noexec,nodev,nosuid ...

Nach dem Stoppen von YaCy durch das Initscript wird die RAM-Disk wieder entfernt.

Hier mein Script mit dem ich recht zufrieden bin, ohne Gewähr auf Performance-Gewinn o.ä.

#!/bin/bash

TODO="$1"
YACY_HOME="$2"

case "$TODO" in
start)
       mount | grep $YACY_HOME/DATA/HTCACHE &> /dev/null || mount -t tmpfs tmpfs -o nr_inodes=1M,noatime,noexec,nodev,nosuid $YACY_HOME/DATA/HTCACHE
       chown yacy: $YACY_HOME/DATA/HTCACHE

       mount | grep /var/log/yacy-svn &> /dev/null || mount -t tmpfs tmpfs -o nr_inodes=1M,noatime,noexec,nodev,nosuid /var/log/yacy-svn
       chown yacy: /var/log/yacy-svn

       test -e $YACY_HOME/DATA/YACYDB_BKP || cp -a $YACY_HOME/DATA/YACYDB $YACY_HOME/DATA/YACYDB_BKP
       mount | grep $YACY_HOME/DATA/YACYDB &> /dev/null || mount -t tmpfs tmpfs -o nr_inodes=1M,noatime,noexec,nodev,nosuid $YACY_HOME/DATA/YACYDB
       chown yacy: $YACY_HOME/DATA/YACYDB
       cp -a $YACY_HOME/DATA/YACYDB_BKP/* $YACY_HOME/DATA/YACYDB/
       ;;
stop)
       cp -a $YACY_HOME/DATA/YACYDB/* $YACY_HOME/DATA/YACYDB_BKP/
       umount $YACY_HOME/DATA/HTCACHE
       umount $YACY_HOME/DATA/YACYDB
       umount /var/log/yacy-svn
       ;;
esac
Icon info.png Note: Wird DATA/HTCACHE als Ramdisk verwendet kann es beim Neustart von YaCy zu Fehlermeldungen kommen, die sich darauf beziehen das die in DATA/HTCACHE zum Indexieren gecachten Dateien nicht mehr gefunden wurden, da durch das Neueinbinden Ramdisk alle Dateien in DATA/HTCACHE verloren gingen.

YaCy periodisch neu starten

Folgendes Script kann eingesetzt werden um YaCy unter Gentoo z.B. per cronjob regelmäßig neu starten zu lassen. Gegebenenfalls sind alle Vorkommen von yacy-svn durch yacy zu ersetzen. Das Script muss als User root aufgerufen werden.

#!/bin/bash
/etc/init.d/yacy-svn stop &> /dev/null
sleep 5
/etc/init.d/yacy-svn zap &> /dev/null
/etc/init.d/yacy-svn start &> /dev/null

Parallelinstallationen und deren Betrieb

Warning.png Eine Parallelinstallation wird nur erfahrenen Anwendern oder Entwicklern zu Test- und Entwicklungszwecken empfohlen.

Es ist möglich net-misc/yacy und net-misc/yacy-svn parallel zu installieren und diese auch beide zu betreiben. Für den Betrieb der parallel installierten Versionen gibt es zwei Varianten, wobei keine von beiden wirklich empfehlenswert ist. Beide Varianten wurden erfolgreich vom Autor getestet.

mit unterschiedlichen DATA-Verzeichnissen

Es ist möglich net-misc/yacy und net-misc/yacy-svn gleichzeitig, aber getrennt voneinander, zu betreiben, hierbei ist jedoch zwingend ein jeweils anderer Port festzulegen. Die Konfiguration des Ports über das Webinterface kann aber nur erfolgen wenn nur eine Verion der beiden läuft, da beide sonst standartmäßig Port 8090 benutzen würden, was ein Start der zuletzt gestarteten Version unmöglich machen wird. Daher erst die eine Version starten, Port festlegen und diese wieder stoppen, anschliessend die andere Version starten, anderen Port festlegen und wieder stoppen. Anschliessend können beide Versionen parallel gestartet werden.

Zu beachten ist dass der gleichzeitige Betrieb eine doppelt so hohe Auslastung des Systems zu Folge haben wird.

mit gleichem DATA-Verzeichnis

Hat man beide Pakete installiert kann man durch die Befehle

cd /opt/yacy-svn
rmdir DATA
ln -sf ../yacy/DATA DATA

einen symbolische Link setzen, sodass net-misc/yacy-svn das DATA-Vereichnis von net-misc/yacy verwendet. Die Datei DATA/LOG/yacy.logging muß evt. einmal editiert werden, da jetzt beide Pakete diese zur Konfiguration benutzen und somit keine getrennten Verzeichnisse für Logfiles benutzen können. Hier sind folgende Zeilen zu editieren, als Beispiel wird vom Verzeichnis /var/log/yacy für Logfiles ausgegangen.

java.util.logging.FileHandler.pattern = /var/log/yacy/yacy%u%g.log
de.anomic.http.httpdProxyHandler.logging.FileHandler.pattern = /var/log/yacy/proxyAccess%u%g.log

Somit werden beide Varianten mit einem DATA-Verzeichnis betrieben. Hierbei ist jedoch durch den Anwender sicher zu stellen dass nur jeweils net-misc/yacy oder net-misc/yacy-svn gestartet werden. Sollten beide gleichzeitig laufen wird dies eine Beschädigung der Datenbank zu Folge haben.

Zu beachten ist das net-misc/yacy-svn Änderungen an der Datenbank oder an Konfigurationsdateien in Verzeichnis DATA vornehmen könnte, welche nicht kompatibel zu net-misc/yacy sind und somit der spätere Start von net-misc/yacy fehlschlagen, sowie die Datenbank zerstören, könnte. Das Erstellen eines Backups des DATA-Verzeichnisses wird daher vor jedem Start einer neuen SVN-Version empfohlen.