Server multipli Postgres (uno scrittore, più lettori) con disco condiviso

Ecco lo scenario:

  1. Un disco a scacchi (Gluster)
  2. Più server Postgres

Requisiti:

  • Docker: il permesso negato sulle cartelle aggiunte con ADD
  • Come ripristinare una copia di livello di file system di un database PostgreSQL (non dump) a un altro PC
  • Come posso avere accesso a hashing password in postgresql? Provato ad installare postgresql-contrib in ubuntu, ancora non è ansible accedere alle funzioni di hashing
  • Errore di avviare il server postgresql su ubuntu
  • Disaster Recovery Planning, torre o cremagliera?
  • bzip2 troppo lento. Multicore o alternative
    1. Utilizzare il disco condiviso per memorizzare i file di database
    2. Utilizzare una configuration che fornisce la massima efficienza

    I risultati finora,

    1. È ansible utilizzare un disco condiviso per memorizzare i dati come dice questo documento . Ma dice anche che "Un altro problema è che il server standby non dovrebbe mai accedere alla memory condivisa mentre il server primario è in esecuzione". Ciò significa che tutti i server (ad exception del master) sono rimasti inutilizzati che è quasi inaccettabile per noi.

    2. Poiché utilizziamo il disco condiviso, non ci dovrebbe essere alcuna replica. È stato trovato in questo documento che alcune configurazioni (modalità Raw e Master / Slave) sono abbastanza buone. Ma l'altro problema è che potrebbero causare il problema di cui sopra.

    I problemi:

    1. C'è molta documentazione sul web che mi ha fatto confondere sui loro requisiti e le loro caratteristiche. La mia comprensione è corretta?
    2. In caso affermativo, c'è la possibilità di realizzare questo progetto (con pgpool o altri strumenti)
    3. In caso affermativo, ti preghiamo di indicare gli strumenti e le parole chiave in modo da poter trovare ulteriori informazioni.

    Nota (per coloro che sono interessati a chiudere domande per quanto ansible) – Mi è successo prima di me. Alcuni dicono che sto cercando risposte basate su opinioni. In realtà non lo sono. Quello che sto cercando è il nome della tecnologia o una sorta di parole chiave, non import cosa. In modo che, usandoli, posso cercare ulteriori informazioni. A volte capita di sapere alcune parole chiave per la ricerca e la ricerca delle informazioni.

    Grazie in anticipo.

    One Solution collect form web for “Server multipli Postgres (uno scrittore, più lettori) con disco condiviso”

    Non è ansible eseguire più server PostgreSQL dalla stessa directory di dati, anche se tutti tranne uno sono in sola lettura. Assolutamente 100% non supportto. Non può essere fatto. Rinunciare adesso.

    Qualcuno potrebbe un giorno aggiungere una tale caratteristica, ma comporterebbe importnti modifiche a PostgreSQL, poiché Pg si basa fortemente sulla memory condivisa e sui segnali per la sincronizzazione tra processi. Inoltre, i shared_buffers contengono shared_buffers "sporchi" che non sono ancora scritti; questi possono essere scritti pigramente perché PostgreSQL sa che tutti i backend leggeranno da lì e solo andare su disco se i dati non sono in shared_buffers .

    È probabilmente pratico farlo con modifiche minori a PostgreSQL se tutti i server sono solo di sola lettura, ma non l'ho ancora studiato in quanto è un caso d'uso abbastanza poco interessante.

    I riferimenti all'archivio condiviso che hai visto sono solo per il failover, non per l'operazione concorrente. Il manuale è piuttosto specifico che è necessario assicurarsi che esista una corretta scherma per impedire l'accesso simultaneo all'archiviazione da più server DB e che la corruzione maggiore dovrà risultare se non lo fai.

    Dovrai fare affidamento sulla replica o utilizzare un altro motore DB che supporti l'archiviazione condivisa (e si occupa dell'impatto della prestazione risultante).

    Indipendentemente, però: i DB sono spesso I / O limitati. L'archiviazione condivisa non ti guadagna se si dispone ora di due server in grado di 1000tps anziché di un server che può fare 2000. Oppure, data l'overheads della sincronizzazione di un sistema di storage condiviso con un bus di bassa latenza (pensare Infiniband / Myrinet ), più come due server in grado di 200 tps ciascuno.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.