Migrating a blobstorage

Addressing the “ZODB.blob WARNING (PID) The lawn blob directory layout is deprecated due to scalability issues on some file systems, please consider migrating to the bushy layout.” warnings.

Update: Filed a ZODB bug.

I’ve been getting he following log message ever since I migrated to ZODB BLOBs:

ZODB.blob WARNING (PID) The `lawn` blob directory layout is deprecated due to scalability issues on some file systems, please consider migrating to the `bushy` layout.

It’s not obvious what to do about this, even after initial googling, so I thought I’d document it. Firstly, we need to use the ZODB.scripts.migrateblobs script so create a console script for it that has all the necessary eggs available. Unfortunately, the ZODB3 egg doesn’t define a console_scripts entry point for this script so I used zc.recipe.egg to work around this:

[buildout]
...
parts +=
    zeo
...
    migrateblobs
...
[migrateblobs]
recipe = zc.recipe.egg
eggs = ZODB3
entry-points = migrateblobs=ZODB.scripts.migrateblobs:main

After re-running buildout and shutting down ZEO, I used the generated script to migrate the blobstorage:

$ mv var/blobstorage var/blobstorage-lawn
$ bin/migrateblobs var/blobstorage-lawn/ var/blobstorage
(PID) Blob directory `var/blobstorage-lawn/` has layout marker set. Selected `lawn` layout.
(PID) The `lawn` blob directory layout is deprecated due to scalability issues on some file systems, please consider migrating to the `bushy` layout.
(PID) Blob directory '.../var/blobstorage/' does not exist. Created new directory.
(PID) Blob temporary directory 'var/blobstorage/tmp' does not exist. Created new directory.
Migrating blob data from `var/blobstorage-lawn/` (lawn) to `var/blobstorage` (bushy)
        OID: 0x###### - 1 files
...

Now I’m able to fire up ZEO and I can access AT file and image objects fine without the log warning.

Updated on 01 December 2010

Imported from Plone on Mar 15, 2021. The date for this update is the last modified date in Plone.

Comments

comments powered by Disqus