Shared Hosting: ZODB e blobstorage separati

Separiamo i Data.fs e i blobstorage, configurazione molto utile in un ambiente di hosting condiviso

Una delle configurazioni più utili da fare quando ci troviamo a gestire uno shared hosting per portali Plone, è quella di separare i Data.fs e i blobstorage delle varie istanze che andiamo ad installare.

Questo tipo di configurazione ci porta alcuni vantaggi, tra cui:

  • gestione dello spazio occupato da ogni singola istanza
  • flessibilità nelle operazioni di manutenzione (backup, ripristini, pack dello ZODB)

...ma anche alcuni svantaggi, come quello di dover modificare e rilanciare il buildout per aggiungere una nuova istanza.

Configurazione

Vediamo come modificare il buildout per abilitare i punti di mount per lo ZODB e i relativi blobstorage.

E' necessario aggiungere al nostro buildout la part filestorage ed utilizzare la sua recipe che si trova sul portale PyPI, facendo attenzione ad inserire filestorage prima di instance:

[buildout]
extends = base.cfg

parts =
filestorage
instance

...

[filestorage]
recipe = collective.recipe.filestorage
zodb-mountpoint = /instances/%(fs_part_name)s
blob-storage = var/blobstorage/%(fs_part_name)s
parts =
portal-1
portal-2

...

[instance]
recipe = plone.recipe.zope2instance

...

Nello snippet di codice notiamo alcune variabili che dobbiamo valorizzare:

  • zodb-mountpoint indica il percorso delle varie istanze
  • blob-storage indica il percorso dove salvare i blob sul filesystem
  • parts è l'elenco delle istanze da configurare
  • %(fs_part_name)s viene sostituito automaticamente col contenuto della variabile parts

Sul filesystem, la struttura delle directory filestorage e blobstorage sarà la seguente:

filestorage

|-- Data.fs
|-- portal-1
|   `-- portal-1.fs
`-- portal-2
`-- portal-2.fs

blobstorage

|-- portal-1
|   |-- 0x00
|   `-- tmp
|-- portal-2
| |-- 0x00
| `-- tmp
`--tmp

Aggiungiamo il punto di mount attraverso la ZMI

Una volta compilato correttamente il buildout, riavviare zeo-server e gli zeo-client; quindi, entrare nella ZMI ed aggiungere il punto di mount scegliendo la voce ZODB Mount Point dal menu a tendina sulla destra.

add_zodb_mount.png

Quindi dobbiamo creare il punto di mount e, nel caso non fosse stata ancora creata la folder di destinazione, bisogna selezionare anche la voce Create new folder if the mounted objects don't yet exist.

zodb_list.jpg

Se tutto è andato per il verso giusto, abbiamo il punto di mount per la nostra nuova istanza, al cui interno possiamo aggiungere un Plone Site.

Backup

Se utilizziamo la recipe per i backup andiamo a configurare anche quella in modo da avere i backup per ogni istanza

[backup]
recipe = collective.recipe.backup
location = /mnt/backup/shared-zope1/backup
keep = 1
additional_filestorages =
portal-1/portal-1
portal-2/portal-2

In questa part possiamo notare:

  • location è il percorso in cui vengono salvati i backup
  • keep è il numero di backup completi da conservare
  • additional_filestorages indica quali ulteriori Data.fs salvare e in quale path (a partire dalla location)

La struttura della dir dei backup è la seguente:

backup

|-- backup
|-- backup_portal-1
|   `-- portal-1
`-- backup_portal-2
`-- portal-2

Ulteriori informazioni

Documentazione Plone ufficiale per configurare gli ZODB multipli

collective.recipe.filestorage

collective.recipe.backup

    Share this on

    Share |

    On same topics

    Commenti

    comments powered by Disqus