Mit Hardware-Beschleunigung und schnellem Netz hilft Desktop-Virtualisierung, Administrationsaufwand und Kosten sparen, ADMIN 04/2013 verrät, wie die ... (mehr)

Den Gateway-Server vorbereiten

Das Gros der Arbeit für die Nutzung des RADOS-Gateways entsteht auf dem Host »Charlie« . Hier sollte wenigstens das Paket »radosgw« installiert sein, das die erforderlichen Komponenten sowie die benötigten Abhängigkeiten auf das System bringt. Von einem der drei anderen Hosts mit funktionierender Ceph-Konfiguration ist anschließend »/etc/ceph/ceph.conf« an dieselbe Stelle auf Charlie zu kopieren.

Damit das RADOS-Gateway auf Charlie später weiß, welchen Schlüssel es verwenden soll, ist die Datei im Anschluss um den Nutzereintrag für »client.radosgw.charlie« am Ende wie folgt zu erweitern:

[client.radosgw.charlie]
   host = charlie
   keyring = /etc/ceph/keyring.radosgw.charlie
   rgw socket path = /tmp/radosgw.sock
   log file = /var/log/ceph/radosgw.log
   rgw print continue = false

Dann fehlt noch ein Verzeichnis, das das RADOS-Gateway benötigt:

sudo mkdir -p /var/lib/ceph/radosgw/ceph-radosgw.charlie

Die RADOS-Gateway-spezifischen Konfigurationsschritte auf dem Host Charlie sind damit bereits beendet. Für das Nutzerglück fehlt nun nur noch die Konfiguration des Apache-Webservers.

Bevor die Konfiguration von Apache selbst ansteht, sollte zunächst das FastCGI-Modul aktiviert sein. Auf Ubuntu-Systemen gelangt »mod_fastcgi« durch die Installation des Paketes »libapache2-mod-fastcgi« auf das System. Inktank, die Firma hinter Ceph, stellt für Ubuntu-Systeme noch eine eigens gepatchte Version des Moduls unter [3]  bereit; zusammen mit diesem kommt eine ebenfalls gepatchte Version von Apache 2.

Die Apache-Konfiguration

Die gepatchten Versionen unterscheiden sich von den Standardpaketen ausschließlich dadurch, dass sie für die Nutzung der HTTP-Antwort »100-response« optimiert sind. Die HTTP-Antwort sorgt bei Webservern dafür, dass diese anhand der Header eines Requests zunächst prüfen, ob sie den Request überhaupt annehmen werden. Bescheiden sie das Ansinnen des Clients negativ, muss dieser nicht den gesamten Request vollständig auf den Server laden (bei binären Objekten können einzelne Requests schnell große Datenmengen erreichen). So soll serverseitig letztlich eine gesteigerte Performance dadurch erreicht werden, dass weniger fehlgeschlagene Requests den Server treffen. Ob es sich lohnt, die gepatchten Pakete zu installieren, ist letztlich Geschmackssache; der Austausch von Apache 2 gegen inoffizielle Pakete ist schließlich kein Pappenstiel.

Übrigens: Die vormals beschriebene »ceph.conf« enthält die Zeile » rgw print continue = false« . Sie bezieht sich auf »100-response« ; ist die Zeile in der Konfiguration vorhanden, geht das RADOS-Gateway ganz automatisch davon aus, dass »mod_fastcgi« und der darunter liegende Webserver nicht für die Nutzung des Codes optimiert sind. Wer die gepatchten Pakete installiert, sollte diese Zeile also aus der Konfiguration entfernen.

Die Konfigurationsdatei, die für Apache und das RADOS-Gateway notwendig ist, sorgt im Wesentlichen dafür, dass eingehende Requests per FCGI direkt an das RADOS-Gateway geleitet werden. Für Amazon-S3-Kompatibilität legt sie zudem eine Rewrite-Regel an, die das andernfalls automatisch aktive Herausfiltern der »HTTP_AUTHORIZATION« -Variable aus Requests verhindert.

Im Listing 1 findet sich eine beispielhafte Konfiguration, die VirtualHost für das RADOS-Gateway entsprechend anlegt. Sie sollte schlussendlich unter »/etc/apache/sites-available/rgw.conf« liegen.

Listing 1

rgw.conf für Apache + RADOS-Gateway

 

Danach lässt sich der VirtualHost mittels »a2ensite /etc/apache2/sites-available/rgw.conf« aktivieren. Sicherheitshalber sollte zudem per »a2dissite default« die Default-Seite abgeschaltet sein. Überdies ist mittels »a2enmod rewrite« mod_rewrite zu aktivieren. Dann fehlt noch die vormals erwähnte »s3gw.fcgi« -Datei, also das eigentliche FCGI-Skript »/var/www/s3gw.fcgi« :

#!/bin/sh
exec /usr/bin/radosgw -c /etc/ceph/ceph.conf -n client.radosgw.charlie

Sicherheitshalber folgt ein Neustart von Apache sowie der erste Start des RADOS-Gateways:

sudo service apache2 restart
sudo /etc/init.d/radosgw start
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023