Mac OS X Server v10.6: Moving an HFS+ Journal to a different volume
Mac OS X Server v10.6 introduces the ability to have your HFS+ journal on another drive. The HFS+ journal is heavily used under workloads where files are created, deleted, or when file attributes are changed. Many server workloads have these characteristics. For example, a mail server frequently creates and deletes temporary files in the queue area, and also creates new files containing messages in the user's mailbox directory. These activities create synchronous disk activity, which cause the server to wait until the journal entries are complete. Journaled HFS+ file systems can benefit from placing the journal on either a separate disk, or on a smaller, faster device.
- On an Xserve with an internal SSD, reserve a small segment (2 GB) of the SSD to be the journal for the SATA drives.
- A high speed SAS drive can make an excellent journal for an Xserve RAID-based HFS+ (Mac OS Extended) volume.
- With an array of disk drives, such as in an Promise VTrak Fibre Channel storage unit, reserve one drive to be a separate journal by making it a single-drive LUN.
This functionality is only available on computers running Mac OS X Server v10.6 or later.
Mac OS X Server 10.6
Only Mac OS Extended (HFS+) volumes hosted on disk volumes that contain a GUID Partition Table (GPT) may host either the HFS+ volume, or the external journal partition. Any existing Journaled HFS+ volume can be converted to use an external journal when it is cleanly unmounted.
Device ID and /Volumes/(mountpoint) can be used interchangeably in any of the following commands; you may prefer to use the device ID for a volume to avoid the risk of deleting a volume.
In Terminal, execute the following command to find the device ID's for the volumes:
To convert or revert a volume
To convert a volume, execute the following command in Terminal:
diskutil moveJournal external (deviceID of new journal partition) /Volumes/(HFS-J mountpoint)
Note: This command will only work if the HFS+ journaled filesystem can be unmounted.
To revert a file system back to an internal journal execute this Terminal command:
diskutil moveJournal internal /Volumes/(HFS-J mountpoint)
At any time it is possible to find out information about the journal of a partition with this command:
/System/Library/Filesystems/hfs.fs/hfs.util -I /Volumes/(HFS+ or HFS-J mountpoint)
To stop using this feature completely:
- For any volume that an external journal was configured, revert to an internal journal.
- Using Disk Utility, you can remove the Apple_Journal partition and reclaim the space into the partition.
These changes only affect the specified volume. If you have multiple volumes, these commands would need to be run to enable an external journal for each.