strutture:lnf:dr:calcolo:sistemi:ceph:radosgw
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| strutture:lnf:dr:calcolo:sistemi:ceph:radosgw [2023/11/07 22:17] – rorru@infn.it | strutture:lnf:dr:calcolo:sistemi:ceph:radosgw [2024/03/06 17:14] (current) – rorru@infn.it | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Object Gateway ====== | ||
| + | Il servizio (prima chiamato RADOSGW) permette di implementare uno storage ad oggetti compatibile S3. | ||
| + | L' | ||
| + | |||
| + | ===== Deploy ===== | ||
| + | Assumendo di disporre di un cluster CEPH operativo, per il deploy dei realtivi daemon è possibile seguire i seguenti passi: | ||
| + | |||
| + | 1. Applicare una label (di seguito verrà utilizzata una label '' | ||
| + | | ||
| + | ceph orch host label add < | ||
| + | ... | ||
| + | ceph orch host label add < | ||
| + | | ||
| + | 2. Verificare la corretta associaziome deelle label con: | ||
| + | | ||
| + | ceph orch host ls | ||
| + | |||
| + | 3. Scatenare il deploy dei servizi utilizzando come regola di placemente l' | ||
| + | | ||
| + | ceph orch apply rgw rgw ' | ||
| + | | ||
| + | Il parametro '' | ||
| + | |||
| + | 4. Verificare i servizi effettivamente avviati con: | ||
| + | | ||
| + | ceph orch ls | ||
| + | |||
| + | ===== Configurazione Ingress ===== | ||
| + | Per avere HA e distribuzione del carico su tutti i servizi attivi, è possibile utilizzare la definizione di un servizio '' | ||
| + | {{ : | ||
| + | |||
| + | Per il deploy del servizio ingress procedere come segue: | ||
| + | |||
| + | 1. Identificare dall' | ||
| + | * Identificativo del servizio RGW | ||
| + | * Host sui quali i servizi di LB e gestione VRRP andranno eseguiti | ||
| + | |||
| + | 2. Definire poi indirizzo IP, porta e certificati per l' | ||
| + | |||
| + | |||
| + | 3. Definire un file (es. '' | ||
| + | |||
| + | < | ||
| + | service_type: | ||
| + | service_id: < | ||
| + | service_name: | ||
| + | placement: | ||
| + | label: rgw | ||
| + | spec: | ||
| + | backend_service: | ||
| + | frontend_port: | ||
| + | monitor_port: | ||
| + | first_virtual_router_id: | ||
| + | virtual_ips_list: | ||
| + | - < | ||
| + | - ... | ||
| + | - < | ||
| + | ssl_cert: | | ||
| + | -----BEGIN CERTIFICATE----- | ||
| + | ... | ||
| + | -----END CERTIFICATE----- | ||
| + | -----BEGIN PRIVATE KEY----- | ||
| + | ... | ||
| + | -----END PRIVATE KEY----- | ||
| + | </ | ||
| + | |||
| + | 4. Avviare il deploy del serviio ingress con: | ||
| + | ceph orch apply -i rgw_ingress.yaml | ||
| + | |||
| + | 5. Verificare la presenza dei relativi servizi con '' | ||
| + | | ||
| + | 6. Verificare con l' | ||
| + | < | ||
| + | <?xml version=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | 7. Definire un record wildcard nel DNS per ricondurre ogni risoluzione del sottodominio < | ||
| + | |||
| + | ==== Aggiornamento configurazione ==== | ||
| + | 1. Ottenere le definizioni per il servizio ingress desiderato, ad es: | ||
| + | ceph orch ls ingress ingress.rgw.rgw --export > current_config.yaml | ||
| + | | ||
| + | 2. Modificare il file e poi aggiornare la configurazione con: | ||
| + | ceph orch apply -i current_config.yaml | ||
| + | | ||
| + | 3. Forzare il redeploy dei servizi HAproxy e Keepalived con le nuove configurazioni: | ||
| + | ceph orch redeploy ingress.rgw.rgw < | ||
| + | | ||
| + | ==== Modifica healthcheck Ingress ==== | ||
| + | |||
| + | Il servizio ingress viene avviato utilizando una configurazione per HAproxy che prevede un healthcheck verso i servizi '' | ||
| + | |||
| + | option httpchk HEAD HTTP/1.0 | ||
| + | |||
| + | Il corrispondente servizio '' | ||
| + | |||
| + | client_io-> | ||
| + | | ||
| + | Quindi è opportuno sostituire l' | ||
| + | |||
| + | 1. Otteniamo la configurazione attuale con: | ||
| + | |||
| + | ceph config-key get mgr/ | ||
| + | | ||
| + | 2. Modifichiamo la riga sul file appena creato in: | ||
| + | |||
| + | option httpchk GET / | ||
| + | |||
| + | 3. Aggiornare la chiave di configurazione corrispondente con: | ||
| + | ceph config-key set mgr/ | ||
| + | |||
| + | 4. Riconfigurare il servizio ingress con: | ||
| + | ceph orch reconfig < | ||
| + | | ||
| + | |||
| + | ===== Creazione utenti ===== | ||
| + | |||
| + | Per creare un utente, utilizzare la seguente sintassi: | ||
| + | radosgw-admin user create --uid=< | ||
| + | | ||
| + | Il comando restituisce un piccolo report che contiene tra l' | ||
| + | Le stesse informazioni possono essere visualizzate in un secondo momento con: | ||
| + | radosgw-admin user info --uid=< | ||
| + | |||
| + | ===== Assegnazione quote ===== | ||
| + | Per evitare l' | ||
| + | * numero massimo di oggetti | ||
| + | * dimensioni massime occupate | ||
| + | |||
| + | Ogni tipo di quota viene applicato con un certo scope, quindi le restrizioni possono essere applicate a livello di: | ||
| + | * utente | ||
| + | * bucket | ||
| + | * bucket per i quali lo specifico utente è proprietario | ||
| + | |||
| + | ==== Quota utente ==== | ||
| + | |||
| + | === Creazione quota === | ||
| + | |||
| + | radosgw-admin quota set --quota-scope=user --uid=< | ||
| + | | ||
| + | === Attivazione/ | ||
| + | |||
| + | radosgw-admin quota enable --quota-scope=user --uid=< | ||
| + | | ||
| + | === Visualizzazione quote === | ||
| + | |||
| + | < | ||
| + | # radosgw-admin user info --uid=< | ||
| + | { | ||
| + | " | ||
| + | | ||
| + | ... | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | | ||
| + | ... | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Quota bucket ==== | ||
| + | |||
| + | === Creazione quota === | ||
| + | |||
| + | radosgw-admin quota set --quota-scope=bucket --bucket=< | ||
| + | |||
| + | === Attivazione/ | ||
| + | |||
| + | radosgw-admin quota enable --quota-scope=bucket --bucket=< | ||
| + | |||
| + | === Visualizzazione quote === | ||
| + | |||
| + | < | ||
| + | # radosgw-admin bucket stats --bucket=< | ||
| + | { | ||
| + | " | ||
| + | | ||
| + | ... | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Quota bucket posseduti ==== | ||
| + | |||
| + | === Creazione quota === | ||
| + | |||
| + | radosgw-admin quota set --quota-scope=bucket | ||
| + | |||
| + | === Attivazione/ | ||
| + | |||
| + | radosgw-admin quota enable --quota-scope=bucket --uid=< | ||
| + | |||
| + | === Visualizzazione quote === | ||
| + | |||
| + | < | ||
| + | # radosgw-admin user info --uid=< | ||
| + | { | ||
| + | " | ||
| + | | ||
| + | ... | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | | ||
| + | ... | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Rimozione bucket ==== | ||
| + | |||
| + | radosgw-admin bucket rm --bucket=< | ||
| + | | ||
| + | ===== Riduzione verbosità log ===== | ||
| + | |||
| + | La verbosità del livello di log di default per il servizio è non trascurabile, | ||
| + | ceph config set global debug_rgw 0/5 | ||
