[ English | русский | español | English (United Kingdom) | Deutsch | Indonesia ]
Zugänglichkeit für den Multi-Region-Objektspeicher¶
Bei der Objektspeicherung in mehreren Regionen mit separaten Datenbank-Back-Ends können Objekte von einem alternativen Speicherort abgerufen werden, wenn die default_project_id
für einen Benutzer in der Keystone-Datenbank in jedem Datenbank-Backend identisch ist.
Wichtig
Es wird empfohlen, die folgenden Schritte auszuführen, bevor ein Fehler auftritt, um zu vermeiden, dass die Datenbank gesichert und wiederhergestellt werden muss.
Wenn ein Fehler auftritt, führen Sie die folgenden Schritte aus, um die Datenbank aus der primären (fehlgeschlagenen) Region wiederherzustellen:
Zeichnen Sie die primäre Region-Ausgabe der
default_project_id
für den angegebenen Benutzer aus der Benutzertabelle in der Keystone-Datenbank auf:Bemerkung
Der Benutzer ist in diesem Beispiel
admin
.# mysql -e "SELECT default_project_id from keystone.user WHERE \ name='admin';" +----------------------------------+ | default_project_id | +----------------------------------+ | 76ef6df109744a03b64ffaad2a7cf504 | +-----------------—————————————————+
Zeichnen Sie die Ausgabe der sekundären Region der
default_project_id
für den angegebenen Benutzer aus der Benutzertabelle in der Keystone-Datenbank auf:# mysql -e "SELECT default_project_id from keystone.user WHERE \ name='admin';" +----------------------------------+ | default_project_id | +----------------------------------+ | 69c46f8ad1cf4a058aa76640985c | +----------------------------------+
Aktualisieren Sie im sekundären Bereich die Verweise auf
project_id
so, dass sie mit der ID aus dem primären Bereich übereinstimmen:# export PRIMARY_REGION_TENANT_ID="76ef6df109744a03b64ffaad2a7cf504" # export SECONDARY_REGION_TENANT_ID="69c46f8ad1cf4a058aa76640985c" # mysql -e "UPDATE keystone.assignment set \ target_id='${PRIMARY_REGION_TENANT_ID}' \ WHERE target_id='${SECONDARY_REGION_TENANT_ID}';" # mysql -e "UPDATE keystone.user set \ default_project_id='${PRIMARY_REGION_TENANT_ID}' WHERE \ default_project_id='${SECONDARY_REGION_TENANT_ID}';" # mysql -e "UPDATE keystone.project set \ id='${PRIMARY_REGION_TENANT_ID}' WHERE \ id='${SECONDARY_REGION_TENANT_ID}';"
Der Benutzer in der sekundären Region hat nun Zugriff auf Objekte PUT in der primären Region. Die sekundäre Region kann Objekte, auf die der Benutzer in der primären Region zugreifen kann, auf PUT stellen.