[OSM-Devserver] Tirex auf Gauss

Frederik Ramm frederik at remote.org
Di Mär 16 08:52:47 CET 2010


Hallo,

Nop wrote:
> Davon wußte mein Codegenerator leider nix und erzeugt fröhlich neue 
> Stylefiles mit den alten Namen. Dadurch haben wir natürlich wieder zwei 
> Sätze an Stylefiles.

Fuer Tirex ist es auch wichtig, dass in dem Verzeichnis kein anderer
Krempel rumliegt, der auf .xml endet (also keine _old.xml und so).

>> DB-Update ist voellig unveraendert. Fuer Style-Update muss man dem
>> tirex-renderd-starter ein HUP-Signal schicken. Vorher musstest Du dem
>> renderd ein HUP schicken, oder den neu starten, nehme ich an.
> 
> Ich habe keine Ahnung was ein HUP ist oder wie man den schickt. Ich habe 
> den renderd angehalten und wieder gestartet. Das klappt ja so nicht mehr 
> - und auch tirex-send -w0 stop_rendering_bucket bucket=BUCKETNAME hatte 
> auf der status console keine Wirkung. Mangelnde Rechte?

tirex-send hat eigentlich keine Rechteverwaltung, sollte gehen. Renderd
anhalten und wieder starten war noch nie eine gute Idee (weil eventuell 
in der Queue wartende Requests dabei kaputt gehen - aber frueher gins 
nicht anders). Nun muss man nichts neu starten, sondern fuehrt den Befehl

killall -HUP tirex-renderd-starter

aus. Dann wird alles, was gerade im Moment gerendert wird, noch fertig 
gemacht, und danach der neue Style geladen. Das muss man als root oder 
als der User tirex machen.

> Stressig finde ich es nur, daß ich eben noch eine Renderkette hatte, mit 
> der ich nach einiger Einarbeitung klar gekommen bin und jetzt ohne 
> Vorwarnung eine, von der ich keinen Plan habe und keine Rechte um sie zu 
> bedienen.

Ja, da lag sicherlich ein Kommunikationsproblem vor, ich hatte irgendwie 
gedacht, Sven und Du haettet das irgendwie besprochen, und Sven hatte 
gedacht, er muss nix besprechen, weil sich eh gar nix aendert ;-)

> 1. Die Stilfiles müssen im Generator umbenannt werden. Ok, verstanden.
> 
> Die Stylefiles sind für den user www-data konfiguriert. Wieso 
> funktionieren sie trotzdem für den user tirex?

Ich hatte eine Regel in die Postgres-Authentifizierungsdatei eingebaut, 
die dem Unix-User tirex den Zugriff erlaubt.

> 2. Wo loggt der tirex hin?
> 
> Bisher war das /var/log/renderd
> Scheint jetzt =/var/log/tirex/master.log zu sein, aber ich habe keine 
> Leserechte darauf.
> Kann man den Loglevel beeinflussen?

Im master.log steht nur eine Zeile pro gerendertem Tile. Da gibt es auch 
nicht mehr oder weniger Logging. Aber der tirex-renderd loggt auch in 
/var/log/daemon.log, wenn was schief geht. Verschiedene Loglevel hat der 
nicht, aber er hat einen Debugmodus. Um den zu aktivieren, muss man 
allerdings die /etc/init.d/tirex-renderd aendern (--debug dem Aufruf 
hinzufuegen), oder den renderd von Hand starten (sudo -s tirex; killall 
tirex-renderd-starter; tirex-renderd-starter --debug).

> 3. Neuen Renderstil aktivieren und alle Tiles als expired erklären
> 
> Bisher mit den Befehlen
> 
>     ...Styles hochladen...
>     touch /osm/tiles/planet-import-complete

soweit gleich

>     sudo /etc/init.d/renderd restart

jetzt sudo killall -HUP tirex-renderd-starter

> Habe ich die nötigen Rechte?

Sven?

> 4. Renderer anhalten, DB updaten, Renderer wieder starten
> 
> Bisher mit den Befehlen
> 
>     sudo /etc/init.d/renderd stop
>     ... Tabellen umbenennen...
>     sudo /etc/init.d/renderd start
>     touch /osm/tiles/planet-import-complete
> 
> Wie geht das jetzt?

Puh, da gibt es verschiedene Moeglichkeiten. Du kannst einfach den 
tirex-renderd beenden

sudo /etc/init.d/tirex-renderd stop
(evtl. einen Augenblick warten, da laufende Rendervorgaenge noch beendet 
werden - ps aux|grep tirex-renderd sagt Dir, ob noch was laeuft)
... Tabellen umbenennen ...
touch /osm/tiles/planet-import-complete
sudo /etc/init.d/tirex-renderd start

dieses Verfahren sorgt aber dafuer, dass in der Zeit, in der der renderd 
nicht laeuft, einige Render-Requests verloren gehen. Besser waere es, 
erst alle Buckets im renderd anzuhalten, dann wie oben fortzufahren, und 
sie am Ende wieder zu starten. Dadurch waere sichergestellt, dass nichts 
verloren geht. Wobei Du das mit dem Verlorengehen ja vorher auch in Kauf 
genommen hast.

> Habe ich die nötigen Rechte?

Sven?

> 5. Hohe zoomlevel aus einer Liste von Koordinaten vorrendern
> 
> render_list --map=base --socket=/var/run/renderd/renderd.sock < 
> /osm/topo/mod_tile/prerender_list
> render_list --map=topo --socket=/var/run/renderd/renderd.sock < 
> /osm/topo/mod_tile/prerender_list
> 
> Geht das immer noch so weil es mod_tile ist?
> Geht die Kommunikation mit tirex auch über diesen Socket oder muß es 
> jetzt /var/run/tirex/modtile_sock sein? Oder wieder was anderes?

Das render_list wird zwar noch unterstuetzt (mit dem modtile_sock, nicht 
renderd_sock), aber es waere besser, Du wuerdest tirex_batch benutzen, 
das stopft einfach alles in die Queue und ist dann sofort fertig, statt 
zu warten. Es gibt eine manpage dafuer.

> Ist die Einstellungen für den Apache immer noch wie bekannt?

Ja.

> Ist  /etc/tirex/tirex.conf die Einstellung für den Renderer?

Ja, fuer den Renderer und den Queue-Manager; das sind beim Tirex zwei 
unterschiedliche Programme.

> Habe ich dort Rechte?

Sven?

Bye
Frederik

-- 
Frederik Ramm  ##  eMail frederik at remote.org  ##  N49°00'09" E008°23'33"