ZCS88-zxbackup-Loss-of-HSM-Volume
Loss of HSM Volume
Display List of Volumes
zxsuite hsm getallvolumes
If there is an HSM volume at /opt/zimbra/hsm, the listing would look something like this...
primaries
id 1
name message1
path /opt/zimbra/store
compressed false
threshold 4096
storeType LOCAL
isCurrent true
volumeType primary
secondaries
id 3 <<== Note the ID of the Volume we will use as an example in this article
name hsm
path /opt/zimbra/hsm
compressed false
threshold 4096
storeType LOCAL
isCurrent true
volumeType secondary
indexes
id 2
name index1
path /opt/zimbra/index
compressed false
threshold 4096
storeType LOCAL
isCurrent true
volumeType index
If the /opt/zimbra/hsm volume went missing, you can create the volume with this command
Make sure you have done your due diligence repairing the device attached to your HSM volume (or replacing it).
Once the hardware is fixed or replace, recreate the directory, and mount the hardware device.
Example...
mkdir /opt/zimbra/hsm
chown -R zimbra:zimbra /opt/zimbra/hsm
mount /dev/dddddd /opt/zimbra/hsm
Now, recreate the missing volume.
zxsuite hsm docreatevolume secondary "hsm" "/opt/zimbra/hsm/" false 4096
zxsuite hsm doupdatevolume hsm current_volume true
If you see this error...
Error creating volume: com.zimbra.cs.volume.VolumeServiceException: volume with the same id, name, or path already exists
You will need to remove the old volume ID from mysql first.
mysql zimbra -e "delete from current_volumes where secondary_message_volume_id='3';"
mysql zimbra -e "delete from volume where id='3';"
Check for Missing BLOBS
zxsuite hsm doCheckBlobs start
Now search for the word WARN in the CheckBlobs log
grep WARN /opt/zimbra/log/op_CheckBlobs_bdbd8112-8c2f-4f8f-bc7b-a82ef5388378.log
If any BLOB is missing, you would see lines like the following in the output
2017-08-22 15:16:53,877 WARN Missing Blob file: Mailbox id: 5 - Item id: 4610 - Revision: 8720 - Blob path: /opt/zimbra/store/0/5/msg/1/4610-8720.msg - Size: 1859 - Digest: dYV2+dXtH9AUAHH4au1jWquWgCeBCz7XpsYtHza0ofw=
Restore the Missing BLOBS
zxsuite --progress backup dorestoreblobs 3 backup_path /opt/zimbra/backup dryrun false
Note the number 3 to indicate the volume ID.