Riak Cloud Storage. Teil 2. Konfigurieren der Riak CS-Komponente

In diesem Artikel werden wir weiterhin die einzelnen Komponenten des Riak Cloud Storage-Systems konfigurieren, nämlich die Riak CS-Komponente.



Bild


Dieser Artikel ist eine Fortsetzung der kostenlosen Übersetzungen des offiziellen Handbuchs für das Riak CS 2.1.1-System.

Teil 1. Konfigurieren von Riak KV

Teil 3. Stütze, Proxy und Lastausgleich, S3-Client

Um den ordnungsgemäßen Betrieb der Riak CS-Komponente sicherzustellen, ist es wichtig zu wissen, wie eine Verbindung zum Riak KV hergestellt wird. Ein Riak CS-Knoten wird normalerweise auf demselben Server wie sein entsprechender Riak KV-Knoten ausgeführt. Dies bedeutet, dass Änderungen nur erforderlich sind, wenn der Riak mit anderen als den Standardparametern konfiguriert wird.



Die Riak CS-Einstellungen befinden sich auf dem CS-Knoten in den Konfigurationsdateien riak-cs.conf und advanced.conf. Beide Dateien befinden sich normalerweise im Verzeichnis / etc / riak-cs. Die neue Datei riak-cs.conf ist eine einfache Liste mit config = option- Paaren . Es gibt jedoch Optionen, die nur über die Datei advanced.config geändert werden können. Es sieht



ungefähr so aus: ADVANCED.CONFIG



{riak_cs, [
    {parameter1, value},
    {parameter2, value},
    %% and so on...
]},


Wenn Sie ein Upgrade von einer früheren Version als 2.0.0 durchführen - als die Datei riak-cs.conf eingeführt wurde -, können Sie weiterhin die Datei app.config verwenden, die sich am Speicherort von riak-cs.conf / advanced.config befindet. Die Datei app.config hat dieselbe Syntax wie die Datei advanced.conf, sodass alle Beispiele, die für die Datei advanced.conf verwendet werden, direkt in der Datei app.config verwendet werden können.

Bitte beachten Sie, dass die alte Datei app.config die neuen Konfigurationsdateien ersetzt. Wenn app.config vorhanden ist, werden weder riak-cs.conf noch advanced.config verwendet.
Hinweis: Informationen zu Legacy-App.config

Wenn Sie ein Upgrade von früheren Versionen von Riak CS auf Riak CS 2.0 durchführen und die geerbte Datei app.config weiterhin verwenden möchten, beachten Sie, dass sich die Optionsnamen in einigen Konfigurationsdateien geändert haben. Außerdem wurde das IP / Port-Format in Version 2.0 für Stanchion, Riak, Riak CS geändert. Sie können die Änderungen im Rolling Upgrades-Dokument sehen .



Eine vollständige Liste der verfügbaren Optionen und eine vollständige Liste der Optionen für app.config finden Sie in der vollständigen Konfigurationsreferenz .
In den folgenden Abschnitten werden wichtige Konfigurationsoptionen für den Riak CS beschrieben.



Host und Port.



Stellen Sie zum Verbinden des Riak CS mit dem Riak KV sicher, dass der vom Riak KV verwendete Host und Port eingestellt ist:



  • riak_host - Ersetzen Sie 127.0.0.1:8087 durch die IP-Adresse und die Portnummer des Riak KV-Knotens, mit dem Sie den Riak CS verbinden möchten.


Sie müssen auch den Listener-Host für Riak CS festlegen:



  • Listener - Ersetzen Sie 127.0.0.1:8080 durch die IP-Adresse und die Portnummer des Riak CS-Hosts, wenn Sie ihn nicht lokal verwenden möchten. Stellen Sie sicher, dass die Portnummer nicht mit dem riak_host- Port des Riak KV-Hosts und des Riak CS-Hosts in Konflikt steht , die auf demselben Computer ausgeführt werden.


Hinweis:

Informationen zur IP-Adresse Die hier eingegebene IP-Adresse muss mit der IP-Adresse übereinstimmen, die für die Schnittstelle der Riak KV-Protokollpuffer in der Datei riak.conf angegeben wurde, es sei denn, der Riak CS wird in einem völlig anderen Netzwerk ausgeführt. In diesem Fall ist dies erforderlich Übersetzung von Adressen.
Starten Sie nach einigen Änderungen an riak-cs.conf den Riak CS-Knoten neu, falls er bereits ausgeführt wird.



Rungenknotenparameter



Wenn Sie einen Riak CS-Knoten verwenden, müssen Sie die Stanchion-Einstellungen nicht ändern, da er auf dem lokalen Host ausgeführt wird (Hinweis: Stanchion wird nur in einer Instanz für den gesamten Cluster installiert). Wenn das Riak CS-System mehrere Knoten hat, müssen Sie die IP-Adresse und den Port des Stanchion-Knotens angeben und angeben, ob SSL verwendet wird oder nicht.

Die Parameter für Stanchion befinden sich in der Konfigurationsdatei riak-cs.conf des Riak CS-Knotens im Verzeichnis ./etc/riak-cs/conf jedes Riak CS-Knotens.



Stellen Sie zum Festlegen des Hosts und des Ports für Stanchion sicher, dass der folgende Parameter für den von Stanchion verwendeten Host und Port festgelegt ist:



  • stanchion_host - Ersetzen Sie 127.0.0.1:8085 durch die IP-Adresse und den Port des Stanchion-Hosts.


Verwenden von SSL



SSL ist in Stanchion standardmäßig deaktiviert, d. H. Parameter stanchion_ssl wird ausgeschaltet . Wenn Stanchion für die Verwendung von SSL konfiguriert ist, ändern Sie den Wert in on . Im folgenden Konfigurationsbeispiel wird der Stanchion-Host auf localhost, Port 8085 (Standard), gesetzt und die Verwendung von SSL ermöglicht.



RIAK-CS.CONF



stanchion_host = 127.0.0.1:8085
stanchion_ssl = on


ADVANCED.CONFIG

{riak_cs, [
    %% Other configs
    {stanchion_host, {"127.0.0.1", 8085}},
    {stanchion_ssl, true},
    %% Other configs
]}


Festlegen des Hostnamens



Sie können auch einen bequemeren Riak CS-Hostnamen definieren, um den Host zu identifizieren, der bei der Fehlerbehebung aufgefordert wird. Dies wird in der Konfigurationsdatei riak-cs.conf oder vm.args konfiguriert, die sich ebenfalls in /etc/riak-cs.conf befindet. Der Name des Riak CS-Knotens wird hier festgelegt. Riak_cs@127.0.0.1:



RIAK-CS.CONF



nodename = riak_cs@127.0.0.1


VM.ARGS



-name riak_cs@127.0.0.1


Ändern Sie 127.0.0.1 in die IP-Adresse oder den Hostnamen des Servers, auf dem Riak CS ausgeführt wird.



Erstellen Sie ein Administratorkonto



Ein Administrator ist ein speziell autorisierter Benutzer, der Aktionen wie das Erstellen von Benutzern oder das Abrufen von Statistiken ausführen kann. Ein Administratorkonto unterscheidet sich nicht von dem Konto eines anderen Benutzers. Sie müssen ein Administratorkonto für die zukünftige Verwendung von Riak CS erstellen.

Hinweis: Informationen zum Erstellen eines anonymen Benutzers.



Bevor Sie ein Administratorkonto erstellen, müssen Sie den Parameter anonym_user_creation = on in riak-cs.conf festlegen (oder {anonym_user_creation, true} in advanced.config / app.config festlegen). Sie können es wieder deaktivieren, wenn der Administrator erstellt wird.
Verwenden Sie zum Erstellen eines Administratorkontos eine POST-HTTP-Anforderung und den gewünschten Benutzernamen für das Administratorkonto. Zum Beispiel wie:



CURL



curl -H 'Content-Type: application/json' \
  -XPOST http://<host>:<port>/riak-cs/user \
  --data '{"email":"admin@example.com", "name":"admin"}'


Die JSON-Antwort sollte folgendermaßen aussehen:



{
  "display_name" : "admin",
  "email" : "admin@example.com",
  "id" : "8d6f05190095117120d4449484f5d87691aa03801cc4914411ab432e6ee0fd6b",
  "key_id" : "OUCXMB6I3HOZ6D0GWO2D",
  "key_secret" : "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==",
  "name" : "admin_example",
  "status" : "enabled"
}


Sie können optional XML senden und empfangen, indem Sie den Inhaltstyp auf application / xml setzen.



Nachdem der Administrator erstellt wurde, müssen Sie Administratorrechte für jeden Riak CS-Knoten festlegen. Administratorrechte werden in der Konfigurationsdatei riak-cs.conf festgelegt, die sich im Verzeichnis / etc / riak-cs befindet. Fügen Sie eine key_id-Zeile zwischen die Anführungszeichen für admin.key ein. Fügen Sie das Parameterfeld secret_key admin.secret ein:



RIAK-CS.CONF



admin.key = OUCXMB6I3HOZ6D0GWO2D
admin.secret = a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==


ADVANCED.CONFIG



{riak_cs, [
           %% Admin user credentials
           {admin_key, "OUCXMB6I3HOZ6D0GWO2D"},
           {admin_secret, "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag=="},
           %% Other configs
          ]}


Begrenzung der Eimer



Sie können auch die Anzahl der vom Benutzer erstellten Buckets begrenzen. Der Standardwert beträgt maximal 100 Buckets. Beachten Sie bitte, dass der Benutzer, wenn er das Bucket-Erstellungslimit überschreitet, weiterhin für andere Vorgänge verfügbar ist, einschließlich des Löschens eines Buckets. Sie können das Standardlimit mit dem Parameter max_buckets_per_user auf jedem Knoten in der Datei advanced.config ändern. Dies ist keine gleichwertige Änderung in der Datei riak-cs.conf. In der folgenden Konfiguration ist beispielsweise maximal 1000 angegeben:



ADVANCED.CONFIG



{riak_cs, [
           %% Other configs
           {max_buckets_per_user, 1000},
           %% Other configs
          ]}


Wenn Sie die Einschränkungen für das Erstellen von Buckets durch einen Benutzer aufheben möchten, können Sie den Wert des Parameters max_buckets_per_user auf unbegrenzt setzen.



Verbindungspools



Riak CS verwendet zwei explizite Verbindungspools für die Kommunikation mit Riak KV: primäre (primäre) und sekundäre Pools.



Der primäre Verbindungspool wird verwendet, um die meisten API-Anforderungen im Zusammenhang mit dem Laden oder Abrufen von Objekten zu bearbeiten. Es wird in der Konfigurationsdatei als pool.request.size angegeben . Die Standardpoolgröße ist 128. Der



sekundäre Verbindungspool wird ausschließlich für Aufzählungsanforderungen für Bucket-Inhalte verwendet. Ein separater Verbindungspool ist erforderlich, um die Leistung zu verbessern.

Der sekundäre Verbindungspool ist in der Konfigurationsdatei als pool.list.size definiert . Standardmäßig ist die Größe 5.



Unten finden Sie den Konfigurationseintrag connection_poolsDie Standardeinstellung in der Datei



app.config : RIAK-CS.CONF



pool.request.size = 128
pool.request.overflow = 0
pool.list.size = 5
pool.list.overflow = 0


ADVANCED.CONFIG



{riak_cs, [
           %% Other configs
           {connection_pools,
           [
            {request_pool, {128, 0} },
            {bucket_list_pool, {5, 0} }
           ]},
           %% Other configs
]}


Der Wert für jeden Pool wird in Paare aufgeteilt, wobei die erste Zahl die normale Größe des Pools darstellt. Dies ist die Anzahl gleichzeitiger Anforderungen eines bestimmten Typs, die der Riak CS-Knoten bedienen kann. Die zweite Zahl ist die Anzahl der zulässigen Poolüberläufe. Es wird hier nicht empfohlen, einen anderen Wert als 0 für den Überlauf zu verwenden, es sei denn, sorgfältige Tests haben gezeigt, dass der ausgewählte Wert für den jeweiligen Fall nützlich ist.



Tuning



Es wird dringend empfohlen, beim Festlegen des Werts des Parameters pb_backlog in Riak KV vorsichtig zu sein . Wenn der Riak CS-Knoten gestartet wird, stellt jeder Verbindungspool Verbindungen zum Riak KV her. Dies kann zu einem donnernden Herdenproblem führen , bei dem angenommen wird, dass die Verbindungen im Pool mit dem Riak KV zusammenhängen, aber in Wirklichkeit wurden sie fallen gelassen. Aufgrund der Begrenzung der TCP-RST- Paketrate (gesteuert durch den Parameter net.inet.icmp.icmplim ) erhalten einige Pakete möglicherweise erst eine Benachrichtigung, wenn sie zur Bearbeitung der Benutzeranforderung verwendet werden. Dies äußert sich in {Fehler, getrennte} Nachrichten in den Riak CS-Protokolldateien und einem an den Benutzer zurückgegebenen Fehler.



SSL-Verbindung in Riak-CS



RIAK-CS.CONF



ssl.certfile = "./etc/cert.pem"
ssl.keyfile = "./etc/key.pem"


ADVANCED.CONFIG

{ssl, [
    {certfile, "./etc/cert.pem"},
    {keyfile, "./etc/key.pem"}
   ]},


Ersetzen Sie den Text in Anführungszeichen im Pfad zu Ihren SSL-Verschlüsselungsschlüsseln. Standardmäßig befinden sich auf jedem Knoten die Dateien cert.pem und key.pem im Verzeichnis / etc. Sie können diese oder Ihre eigenen Schlüssel verwenden.



Bitte beachten Sie, dass Sie auch eine Zertifizierungsstelle (Certification Authority) vorlegen müssen, d. H. Ein CA-Zertifikat. Wenn Sie können, sollten Sie die Konfigurationsdatei advanced.config verwenden und deren Speicherort im Parameter cacertfile angeben . Im Gegensatz zu certfile und keyfile wird der Parameter cacertfile nicht auskommentiert . Hier müssen Sie Ihr Zertifikat hinzufügen. Ein Beispiel für eine solche Konfiguration:



ADVANCED.CONFIG



{ssl, [
       {certfile, "./etc/cert.pem"},
       {keyfile, "./etc/key.pem"},
       {cacertfile, "./etc/cacert.pem"}
      ]},
      %% Other configs


Anweisungen zum Erstellen eines CA-Zertifikats finden Sie in Ressourcen von Drittanbietern .



Proxy vs. Direktverbindung



Riak CS kann auf zwei Arten mit S3-Clients kommunizieren:



  1. Proxy-Konfiguration - Wenn ein S3-Client wie von Amazon S3 aus eine Verbindung zu Riak CS herstellt, dh mit typischen Amazon-URLs.
  2. direkte Verbindung - erfordert, dass der mit dem Riak CS verbundene S3-Client als „S3-kompatibler Dienst“ konfiguriert ist, dh der Riak CS-Verbindungspunkt maskiert sich als Amazon S3. Beispiele für solche Dienste sind Transmit, s3cmd, DragonDisk.


Proxy



Um die Proxy-Konfiguration einzurichten, konfigurieren Sie Ihren Proxy-Client als Punkt an der Riak CS-Clusteradresse. Richten Sie dann Ihren Client mit Riak CS-Anmeldeinformationen ein.



Wenn Riak CS eine Proxy-Anfrage empfängt, bedient es die Anfrage selbst und antwortet dem Client, als ob die Anfrage an S3 gegangen wäre.



Auf der Serverseite muss der Parameter root_host in der Datei riak-cs.conf s3.amazonaws.com sein, da alle Clientanforderungen für Bucket-URLs auf s3.amazonaws.com abzielen. Dies ist die Standardeinstellung.

Wichtig : Ein Problem bei Proxy-Konfigurationen besteht darin, dass auf vielen GUI-Clients nur ein Proxy für alle Verbindungen konfiguriert werden kann. Für Kunden, die versuchen, eine Verbindung zu S3 und Riak CS herzustellen, kann dies problematisch sein.

Direkte Verbindung



Die direkte Verbindung wird über den Parameter cs_root_host im Abschnitt riak-cs der Datei app.config konfiguriert. Der Wert muss auf den FQDN Ihres Riak CS-Einstiegspunkts festgelegt werden, da alle Bucket-URLs auf den FQDN-Einstiegspunkt abzielen.



Sie benötigen außerdem Platzhalter-DNS-Einträge für jedes untergeordnete Element des Einstiegspunkts, um es auf dem Endpunkt selbst aufzulösen. Beispiel:



KONFIG



data.riakcs.net
*.data.riakcs.net


Garbage Collector-Einstellungen



Bild


Die folgenden Einstellungen stehen zur Verfügung, um den Garbage Collector in Riak CS zu konfigurieren. Weitere Informationen finden Sie im Abschnitt Garbage Collection .



  • gc.leeway_period — (leeway_seconds advanced.config app.config) — , , , , . 24h(24 )
  • gc.interval (gc_interval advanced.config app.config) — , . 15m (15 ). , . , gc_interval infinity.
  • gc.retry_interval (gc_retry_interval advanced.config app.config) — , , pending_delete . - , , - . 6h (6 ).
  • gc.max_workers (gc.max_workers advanced.config app.config) — , . 2.
  • active_delete_threshold (active_delete_threshold in advanced.config oder app.config) - Objektblöcke, die unter dem Schwellenwert liegen, werden synchron gelöscht und ihre Manifeste als Scheduled_delete markiert . Der Standardwert ist 0.


Es gibt einige zusätzliche Einstellungen, die nur in den Konfigurationsdateien advanced.config oder app.config festgelegt werden können. Keine der folgenden Einstellungen ist über die Konfigurationsdatei riak-cs.conf verfügbar



  • epoch_start — , . , + leeway_seconds. 0 . , , , . . Erlang. , 10, <<«10»>>.
  • initial_gc_delaygc_interval Riak CS. : GC ; GC. , initial_gc_delay.
  • max_scheduled_delete_manifests — ( ), scheduled_delete . , , . , , , leeway_seconds. , , . .
  • gc_batch_size - Dieser Parameter gibt die Größe an, mit der die Ergebnisse einer sekundären Indexabfrage paginiert werden. Der Standardwert ist 1000.


Veraltete Konfiguration

Derzeit unterstützt Riak CS 2.0 weiterhin das Festlegen des Parameters pg_pagined_indexes. Es wird dringend empfohlen, diese Einstellungen nicht zu verwenden. Die Einstellungen werden in der nächsten Hauptversion entfernt.

Andere Riak CS-Einstellungen



Eine vollständige Liste der konfigurierbaren Riak CS-Parameter finden Sie im Konfigurationsreferenzdokument .



Links



Riak Cloud Storage. Teil 1. Konfigurieren des Riak KV

Riak Cloud-Speichers. Teil 2. Konfigurieren der Riak CS

Riak Cloud Storage- Komponente . Teil 3. Stütze, Proxy und Lastausgleich, S3 Client



Originalhandbuch.



All Articles