Xsan: How to move journal data to a dedicated storage pool
Learn how to move the journal data on an Xsan volume to a separate, dedicated storage pool.
Xsan volumes are often configured to store metadata and journal data in the same pool. But you can improve the performance of some operations (such as creating files, deleting files, and allocating space in files) by using a separate, dedicated storage pool for journal data. A dedicated storage pool for journaling can be particularly beneficial for heavily used Xsan volumes, such as those used by file servers.
Follow these steps to move the journal of an existing Xsan volume to a dedicated storage pool. Do not use this procedure for new Xsan volumes. (For new Xsan volumes, you can create a separate journal pool entirely within Xsan Admin.)
Step 1: Prepare a LUN to use for the journal
On your RAID controller, prepare a RAID 1 mirrored LUN to use for the journal.
Note: The disk space used by journals is small (maximum 512 MB), but journal writes can occur very quickly. Always dedicate the entire physical disk to the journal LUN. Performance may be significantly degraded if you create the journal LUN from an array that has been sliced into multiple LUNs.
Step 2: Use Xsan Admin to expand the volume
Expand an existing Xsan volume by adding a single LUN storage pool for journaling only.
1. In Xsan Admin, select Volumes in the SAN Assets list to view the available volumes.
2. Select the volume that you prepared for the journal, then choose Expand Volume from the Action pop-up menu (gear). A setup assistant will open.
3. In the Label LUNs pane of the assistant, label the LUN if it is not already labeled.
Note: "Journal" is reserved and cannot be used as a LUN label, but you can can use a name like "JournalLUN," for example.
4. In the Configure Volume Affinities pane of the assistant:
- Click New Affinity Tag if you are expanding a volume that is based on a preset volume type.
- Click New Pool if you are expanding a custom volume.
5. Drag the LUN onto the new affinity tag or pool.
Note: Do not add more than one LUN to the new tag or pool. A pool used only for journaling requires only one LUN.
6. Select the new tag or pool, then click the Settings button to enter a new name.
Note: Give the tag or pool a name that is not already in use on the volume. "Journal" is reserved, but you can use a name like "JournalingPool," for example.
7. Select the option to use the new tag or pool for "Journaling only."
8. Click Continue. The volume will be unmounted and stopped, the new storage will be added, and the expanded volume will be remounted.
Step 3: Manually edit the Xsan volume configuration file
1. Use Xsan Admin to stop the volume.
2. Use the cvfsck command to to check the file system of the volume and repair it, if necessary.
3. Locate the configuration file on the first metadata controller that hosts the volume. It resides in /Library/Preferences/Xsan and has the name volumename.cfg, where volumename is the name of the volume.
4. Open the the configuration file with a text editor after making a backup of the file. Edit the file as follows:
- Locate the one occurrence of "Journal Yes" in the file. Change it to "Journal No".
- Locate the line that begins "[StripeGroup" (stripe group is another name for storage pool) and ends with the name that you gave to the new affinity tag or pool. Beneath this line, change the first occurrence of "Journal No" to "Journal Yes".
This image shows the required changes made on an example volume. The original configuration file is on the left; the edited configuration file is on the right:
5. Repeat this edit of the Xsan volume's configuration file on all other metadata controllers that control the Xsan volume.
Step 4: Move the journal
1. On the primary metadata controller, use the cvupdatefs command to complete the move of the journal:
sudo cvupdatefs VolumeName
2. Use Xsan Admin to start the volume and mount it on the desired clients. The volume is now ready for normal use.