zimbra HSM Configuration

zimbra HSM Configuration

 

HSM stands for Hierarchical Storage Management , Administrator con configure policy to move message from high performance/costly storage <SAN> to Low performance/inexpensive storage <NAS>. default policy in zimbra is 365 days, that meant message automatically from SAN to NAS older then 365 days. it is nature of users that will read frequently mails that is latest comparison to older mails

 

Create A storage and MAP into server or for testing purpose create directory /opt/zimbra/olermail_store and assign permission zimbra. below is step by step process to configure hsm policy.

 

As root.

[[email protected] ~]mkdir /opt/zimbra/olermail_store
[[email protected] ~]chown zimbra:zimbra /opt/zimbra/olermail_store

Then switch to zimbra.

 [[email protected] ~]su - zimbra
 [[email protected] ~]zmvolume -a -n hsm-volume -t secondaryMessage -p /opt/zimbra/olermail_store
 [[email protected] ~]zmvolume -l
   Volume id: 2
        name: index1
        type: index
        path: /opt/zimbra/index
  compressed: false
     current: true

   Volume id: 1
        name: message1
        type: primaryMessage
        path: /opt/zimbra/store
  compressed: false
     current: true

   Volume id: 3
        name: hsm-volume
        type: secondaryMessage
        path: /opt/zimbra/olermail_store
  compressed: false
     current: false

Set HSM Volume To Current

Now let’s set the hsm-volume to “current”. Otherwise, if you try to run zmhsm you’ll get a error of “invalid request: None of the secondary message volumes are marked as current.”

 [[email protected] ~]$zmvolume -sc -id 3
 [[email protected] ~]$zmvolume -l
   Volume id: 2
        name: index1
        type: index
        path: /opt/zimbra/index
  compressed: false
     current: true

   Volume id: 1
        name: message1
        type: primaryMessage
        path: /opt/zimbra/store
  compressed: false
     current: true

   Volume id: 3
        name: hsm-volume
        type: secondaryMessage
        path: /opt/zimbra/olermail_store
  compressed: false
     current: true

Starting HSM For First Time

This is example is on a test server of mine. I don’t have any messages older than 30 days. The default global configuration for HSM Age is 30 days.

[[email protected] ~]$ ls /opt/zimbra/olermail_store/
[[email protected] ~]$ crontab -l | grep -i hsm
[[email protected] ~]$ zmhsm -t
HSM process started.
[[email protected] ~]$ zmhsm -u
Last HSM Session Stats
----------------------
Start time: Fri Aug 15 15:48:58 EDT 2008
End time:   Fri Aug 15 15:48:58 EDT 2008
Not currently running.
Moved 0 blobs dated earlier than Wed Jul 16 15:48:58 EDT 2008
  to volume 3.
Mailboxes processed: 7 out of 7.
[[email protected] ~]$ ls /opt/zimbra/olermail_store/
[[email protected] ~]$ zmprov gacf | grep zimbraHsmAge
zimbraHsmAge: 30d

So, it worked but didn’t have anything to Age.
Adjusting the zimbraHsmPolicy variable – ZCS

Default policy [ZCS 8.6] :

$ zmprov gacf zimbraHsmPolicy
zimbraHsmPolicy: message,document:before:-30days
$ zmprov desc -a zimbraHsmPolicy

zimbraHsmPolicy
The policy that determines which mail items get moved to secondary
storage during HSM. Each value specifies a comma-separated list of
item types and the search query used to select items to move. See the
spec for <SearchRequest> for the complete list of item types and
query.txt for the search query spec.

type : string
value :
callback :
immutable : false
cardinality : multi
requiredIn :
optionalIn : globalConfig,server
flags : serverInherited
defaults : message,document:before:-30days
min :
max :
id : 1024
requiresRestart :
since : 6.0.0_BETA2
deprecatedSince :

Adjusting the zimbraHsmAge variable – Deprecated since: 6.0.0_BETA2.

$ zmprov desc -a zimbraHsmAge
zimbraHsmAge
    Deprecated since: 6.0.0_BETA2. deprecated in favor for
    zimbraHsmPolicy. Orig desc: Minimum age of mail items whose filesystem
    data will be moved to secondary storage.. Must be in valid duration
    format: {digits}{time-unit}. digits: 0-9, time-unit: [hmsd]|ms. h -
    hours, m - minutes, s - seconds, d - days, ms - milliseconds. If time
    unit is not specified, the default is s(seconds).

               type : duration
              value :
           callback :
          immutable : false
        cardinality : single
         requiredIn :
         optionalIn : globalConfig,server
              flags : serverInherited
           defaults : 30d
                min : 0
                max :
                 id : 8
    requiresRestart :
              since :
    deprecatedSince : 6.0.0_BETA2


zimbraHsmAge must be a valid duration of: nnn[hsmd]

    "zimbraHsmAge variables unclear from output"
        http://bugzilla.zimbra.com/show_bug.cgi?id=32290

[[email protected] ~]$ zmprov mcf zimbraHsmAge 30d
### example initially had to reproduce issue for my RFE - please don't use 1d ###
###  [[email protected] ~]$ zmprov mcf zimbraHsmAge 1d ###
[[email protected] ~]$ zmprov gacf | grep zimbraHsmAge
zimbraHsmAge: 1
[[email protected] ~]$ zmhsm -t
HSM process started.
[[email protected] ~]$ zmhsm -u
Last HSM Session Stats
----------------------
Start time: Fri Aug 15 15:56:39 EDT 2008
End time:   Fri Aug 15 15:56:40 EDT 2008
Not currently running.
Moved 63 blobs dated earlier than Fri Aug 15 15:56:38 EDT 2008
  to volume 3.
Mailboxes processed: 7 out of 7.
[[email protected] ~]$ ls /opt/zimbra/olermail_store/
0
[[email protected] ~]$ ls /opt/zimbra/olermail_store/0/
1  14  15  3

The above commands modified the zimbraHsmAge as a global setting. You can also modify it on a server basis.

[[email protected] ~]$ zmprov gs knowledgelinux.com.internal.homeunix.com | grep zimbraHsmAge
zimbraHsmAge: 1d
[[email protected] ~]$ zmprov gacf | grep zimbraHsmAge
zimbraHsmAge: 1d
[[email protected] ~]$ zmprov ms knowledgelinux.com.internal.homeunix.com zimbraHsmAge 30d
[[email protected] ~]$ zmprov gs knowledgelinux.com.internal.homeunix.com | grep zimbraHsmAge
zimbraHsmAge: 30d
[[email protected] ~]$ zmprov gacf | grep zimbraHsmAge
zimbraHsmAge: 1d

Moving zimbraHsmAge Back To A Lower Number

Continuing after the above steps, let's see what happens if we now run zmhsm.

[[email protected] ~]$ zmhsm -t
HSM process started.
[[email protected] ~]$ zmhsm -u
Last HSM Session Stats
----------------------
Start time: Fri Aug 15 16:09:05 EDT 2008
End time:   Fri Aug 15 16:09:05 EDT 2008
Not currently running.
Moved 0 blobs dated earlier than Fri Aug 15 16:08:35 EDT 2008
  to volume 3.
Mailboxes processed: 7 out of 7.

Did the message files get moved back?

 [[email protected] ~]$ find /opt/zimbra/store/0/15 -name *.msg -print
 [[email protected] ~]$ find /opt/zimbra/olermail_store/0/15 -name *.msg -print
 /opt/zimbra/olermail_store/0/15/msg/0/269-21.msg
 /opt/zimbra/olermail_store/0/15/msg/0/263-10.msg
 /opt/zimbra/olermail_store/0/15/msg/0/268-14.msg
 /opt/zimbra/olermail_store/0/15/msg/0/261-8.msg
 /opt/zimbra/olermail_store/0/15/msg/0/266-13.msg
 /opt/zimbra/olermail_store/0/15/msg/0/259-4.msg
 /opt/zimbra/olermail_store/0/15/msg/0/265-12.msg
 /opt/zimbra/olermail_store/0/15/msg/0/257-2.msg


Leave a Reply

Your email address will not be published. Required fields are marked *