.. Ross Patterson's Blog imported post, created by `$ ./bin/rfc822-to-post` on Mar 15, 2021. .. meta:: :description: 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. :keywords: Plone, Zope .. post:: Dec 01, 2010 :tags: Plone, Zope :author: Ross Patterson :redirect: @@redirect-to-uuid/b9fe5e7fe46969399fa820aa7b417a24 ####################### 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. .. update:: Dec 01, 2010 Imported from Plone on Mar 15, 2021. The date for this update is the last modified date in Plone.