The how-to at http://plone.org/documentation/migration/2.1 remains valid, and a must-read.
The process in a nutshell:
A. Create an entirely fresh Plone instance. B. Copy existing content to it and migrate.
The steps to creating a production instance:
1. Checkout pleiades.buildout with the proper tag. 2. Edit root.ini and tasks/zope.ini to set admin password and port. 3. Run pleiades.buildout/build.py to create a fresh instance with all dependencies. 4. Delete instance/var. 5. Delete instance/log. 6. Create a new zeo under instance using zope/Zope-*/bin/mkzeoinstance. 7. Configure zeo to run on port 8100. 8. Configure zope to run as "zope" and use the zeo at 8100. 9. Copy old Data.fs to instance/var. 10. Symbolically link instance/bin/zeoctl to /etc/init.d/zeo-pleiades-beta. 11. Symbolically link instance/bin/zopectl to /etc/init.d/zope-pleiades-beta. 12. Change ownership of instance/var/* and instance/log/* to zope.zope. 12. Start zeo. 13. Start zope. 14. Through Plone admin, install/upgrade all products. 15. Through ZMI, run migration via portal_migration tool. 16. Pack database. 17. Rebuild catalog.
