-
Zextras Carbonio 23.6.0
-
Carbonio Community Edition
-
Suite for Zimbra
- Articles coming soon
Carbonio Backup Architecture
Item
- a message sent through email
- a person or a group of people
- a file folder
- a scheduled appointment
- a task
- a Carbonio Files file
- an account (together with its settings)
- a distribution list
- a website
- a type of service (COS)
Note
The last three items (mailing lists, domains, classes of services) are subject to the SmartScan only, i.e., the Real Time Scan will not record any change of their state.
- Server setup, or the configuration of each server
- Carbonio product global configuration
- Any software modifications (Postfix, Jetty, etc…)
- after an email has been read, deleted, or moved to a folder
- a change in a contact’s name, address, or employment
- the removal or addition of a file from a folder
- a change in the status of an object (for example, an account)
Note
An element in the thrash bin is not considered as a deleted item: It is a regular item, placed in a folder that is special only to us, from the Carbonio Backup’s point of view, the item has only changed its state when moved to the thrash bin.
Transaction
A transaction is a change in the status of an object. A change of status occurs when a user modifies one of the metadata associated with an object. As a result, a Transaction may be viewed as an image of the metadata at a certain point in time. A Transaction ID is assigned to each transaction. It is possible to return an item to a previous transaction. More information may be found under Restore Strategies.
Realtime Scanner and SmartScan
Important
SmartScan runs at a fixed time—that can be configured—on a daily basis and is not deferred. This implies that, if for any reason (like e.g., the server is turned off, or Carbonio is not running), SmartScan does not run, it will not run until the next day. You may however configure the Backup to run the SmartScan every time Carbonio is restarted (although this is discouraged), or you may manually run SmartScan to compensate for the missing run.
Warning
If none of the two Scan Operations is active, no backup is created.
When Should Scan Operations Be Disabled?
Backup Path
The backup path is the location on a disc where all backup and archive information is saved. Each server has a unique backup path; no two servers can share the same backup path. It is organised as a hierarchy of directories, with the uppermost being /opt/zextras/backup/zextras/
. by default. This directory contains the following key files and directories:
map_[server_ID]
are so-called map files that indicate if the Backup was imported from an external backup and include the server’s unique ID in the filename.accounts
is a directory that contains information for all accounts defined in the AppServer. There are particularly significant files and folders to be found there:account_info
is a file that contains all of the account’s metadata, such as the password, signature, and preferences.account_stat
is a file that contains different statistics about the account, such as the ID of the most recently saved material by SmartScan.backupstat
is a file that stores general backup statistics, such as the timestamp of the first run.drive_items
is a directory with up to 256 subfolders (named with two hexadecimal lowercase letters) that contains Carbonio Files items based on the last two letters of their UUID.items
is a directory with up to 100 subfolders (the names of which are made up of two digits, and in which things are placed according to their ID’s last two digits).servers
is a directory containing archives of the server setup and customizations, Carbonio configuration, and chat, one each day up to the chosen server retention duration.items
is a directory that may hold up to 4096 extra folders and is named with two hexadecimal (uppercase and lowercase) characters. Items in the AppServer will be saved in a directory with the last two characters of their ID as the name.id_mapper.log
is a user object ID mapping file that contains a link between the original and restored objects. It may be found in/backup/zextras/accounts/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/id_mapper.log
. This file is only present in the event of an external restoration.
Configuring the Backup Path
zextras$ carbonio config get server mail.example.com ZxBackup_DestPath
server 9d16badb-e89e-4dff-b5b9-bd2bddce53e2
values
attribute ZxBackup_DestPath
value /opt/zextras/backup/zextras/
isInherited false
modules
ZxBackup
Use the set
subcommand instead of get
to update the Backup Path and add the new path.
zextras$ carbonio config set server mail.example.com ZxBackup_DestPath /opt/zextras/new-backup/path ok
The ok message will be displayed if the procedure is successful.
See also
You can do the same from the Carbonio Admin Panel under Server Config (Admin Panel ‣ Global Server Settings ‣ Server Config).
Policy on Retention
- The data retention policy only applies to single items and is set to 30 days by default.
- Account retention policy applies to the accounts and is set to 30 days by default.
All retention durations are adjustable; if set to 0 (zero), archives are retained indefinitely (infinite retention), and the Backup Purge is disabled.
You may use accordingly to determine the current value of the Retention Policy.
zextras$ carbonio config dump global | grep ZxBackup_DataRetentionDays
zextras$ carbonio config dump global | grep backupAccountsRetentionDays
Use 0 for unlimited retention or any integer value as the number of days to update either variable. To set the retention time for data and accounts to 15 days, use:
zextras$ carbonio config set global ZxBackup_DataRetentionDays 15
zextras$ carbonio config set global backupAccountsRetentionDays 15
If an account is deleted and needs to be restored after the Data retention time has expired, it will still be possible to recover all items up to the Account retention time, because even if all metadata has been purged, the digest can still contain the information needed to restore the item.
See also
You can set retention policies from the Carbonio Admin Panel under Server Config (Admin Panel ‣ Global Server Settings ‣ Server Config).
Backup Cleanup
Check for Coherence
zextras$ carbonio backup doCoherencyCheck *backup_path* [param VALUE[,VALUE]]
How Does Carbonio Backup Function?
/opt/zextras/backup/zextras/
. A directory must meet the following requirements in order to be considered for usage as the Backup Path:- The zextras user should be allowed to read and write to it.
- Make use of a case-sensitive filesystem.
Hint
You can modify the default setting by using either technique shown in section Setting the Backup Path.
When Carbonio Backup is first launched, it does a SmartScan to get all data from the AppServer and generate the first backup structure, in which each item is stored along with all of its information as a JSON array on a case sensitive filesystem. Following the first start, the Real Time Scanner, SmartScan, or both can be used to maintain the backup up to date and synchronised with the account.
The Structure of an Item
SmartScan
Scan Operation Scheduling
is enabled in the Carbonio Backup section of the Carbonio Admin Panel). Once a week, on a user-specified day, a Purge is performed with the SmartScan to clean the volume on which the Carbonio Backup is kept of any deleted items that have surpassed the retention term.Note
In case the LDAP backup can not be executed (e.g., because the access credential are wrong or invalid), SmartScan will simply ignore to back up the Directory Server configuration, but will nonetheless save a backup of all the remaining configuration
Running a SmartScan
To start a SmartScan via the CLI, use the command:
zextras$ carbonio backup doSmartScan *start* [param VALUE[,VALUE
Checking the Status of a Running Scan
Before actually carrying out this check, it is suggested to verify how many operations are running, to find the correct UUID. you can do this by using the command
zextras$ carbonio backup getAllOperations [param VALUE[,VALUE]]
To check the status of a running scan via the CLI, use the command
zextras$ carbonio backup monitor *operation_uuid* [param VALUE