The document summarizes recommendations,
best practices and some tips for performance inSync server. Please feel
free to comment or contribute.
Understanding Druva inSync Architecture
InSync Backup Client
Druva inSync backup client is a multi-threaded application. It uses
multiple threads to over the same socket interact with the backup
server.
The client also uses hierarchical caching (file and checksum cache)
to speed up data deduplication and optimize the utilization of the
bandwidth. The cache and the logging is thread safe and is concurrently
accessed by all the active threads.
The number of threads may vary from 1 to 8, and depends upon the network latency or CPU priority set by the administrator.
InSync Backup Server
Druva InSync server is a multi-threaded
transactional application. It maintains a pool of active threads and
allocates them to handle incoming connections from same or multiple
clients. Although it is a 32bit application it makes use of operating
system page cache to utilize the available memory and has no limitation on extend of memory it can use.
At the core of the inSync backup architecture is the PostgreSQL database. PostgreSQL is a mult-fork
application, and spawns multiple child processes to take care of the
parallel SQL queries. Each child process has its own memory space and
can scale exceptionally well on available memory and processors (CPUs).
First Backup Vs Incremental Backup
InSync is an intelligent backup solution. During
the first backup it does much more than just copying files to the
backup server. The first backup involved processing data for at-source
data deduplication, data indexing and cache creation, which makes it
relatively slow.
Incremental backups make use of the hierarchical
cache available and are much faster compared to the first backup. As
long as the cache is available on the laptop, the inSync agent does not
need to do full backup again.
Hardware and OS Recommendation
|
Users
|
CPU
|
Memory
|
OS
|
Disk Space
|
|
< 100
|
1.6 GHz Dual Core
|
2 GB
|
Windows 2003
Ubuntu Linux 8
|
OS/App – 30GB,
Data/DB – 250GB
|
|
101-250
|
1.6 GHz Dual Core
|
3 GB
|
Windows 2003
Ubuntu Linux 8+
|
OS/App – 30GB,
Data – 500 GB, DB – 120GB
|
|
251-500
|
1.6 GHz Quad Core
|
4 GB
|
Windows 2003
Ubuntu Linux 8+
|
OS/App – 30GB,
PG WLogs – 20 GB
Data – 1 TB, DB – 250 GB
|
|
501-1000
|
1.8 GHz Quad Core
|
8 GB
|
Windows 2003
Ubuntu Linux 8+
|
OS/App – 30GB,
Page File – 20 GB
PG WLogs – 20 GB
Data – 2 TB, DB – 500 GB
|
Data – refers to the backup data space created under the “Data” configuration of the SIS storage
DB – Refers to the Postgres table space created under the “DB” configuration of the SIS storage
PG WLogs – Refer to the PostgreSQL Write Logs created by default under the PosgreSQL installation directory.
An exact disk
space requirement for “Data” and “DB” depends upon the amount of data,
captured from each user. Please refer to the general disk related
guidelines below.
Please Note: If the backups are configured for BMR (Bare Metal Restore), it is highly recommended to use separate disks for data and db.
General Disk Related Recommendations
- InSync server supports DAS, SAN and NAS. Please choose disks with 300 MBps (SATA II) or better read/write throughput.
- NAS
is supported but not recommended because of possible latencies and
throughput restrictions imposed by the network, which may cause
performance issues.
- Creating Volume
- Windows - Create dynamic disk volumes with NTFS file-system
- Linux - Use LVM volumes with XFS or EXT3 file-system
- For deployments with more than 250 users, please use an additional dedicated volume for PostgreSQL write-ahead logs.
- For exact disk space requirements to capture backup data, please refer to the ROI Calculator on the website.
- The size of database table space ("db" folder), varies between 20-25% of the backed up data i.e "Data" folder.
Installation and Postgres Setup
InSync server installation is quite straight forward and doesn’t have much configuration. By
default the PostgreSQL database is installed on the primary boot device
(C drive for windows). For better performance (especially for larger
deployments > 250 users), it is advised to choose an additional
dedicated volume for PostgreSQL write ahead logs. This can be done by –
- Installing PostgreSQL from binaries provided by PostgreSQL
official website (www.postgresql.org) and choosing an alternate volume
for write ahead logs OR
- Changing the location of write ahead logs after standard installation, as described by the knowledge base article – Fine Tuning PostgreSQL Database
Maintenance of PostgreSQL
Although most of the maintenance tasks for
PostgreSQL database are automated by the inSync server. It is still
advised, to run the maintenance tasks once every month as described the
knowledge base article – PostgreSQL database maintenance.
Provisioning Storage
It’s highly recommended to use "Fast SIS" store
for backup needs. This store uses advance data deduplication,
compression and encryption to make backup faster and safer. While
creating a SIS (Single Instance Store) it’s recommended to choose
different disk volumes for "data" and "db" folders. This helps the
InSync server parallelize the writes and improve backup throughput.
The InSync server stores the PostgreSQL tablespace
under the “db” folder which is usually between 20-25% of the “data”
folder in size.
Backup Schedule
- Synchronization Interval – This should be chosen as per your backup need. It is recommended to choose 2 hours as an interval
- Backup
Interval – It is highly recommended to choose different backup interval
for different user profiles. It distributes the server load and helps
in resource management.
For example,
if you may like to allow the local users to synchronize first in the
morning and then let the remote users synchronize later in the
afternoon. Data deduplication ensures that remote users have lesser
data to synchronize, as most of it would have already been synchronized
by the local users. This helps you distribute the server load and save
on backup time and bandwidth.
Controlling CPU and Bandwidth
Administrator can use the Dynamic CPU and
Bandwidth prioritization features to slow down the backups if needed.
The CPU and bandwidth utilization can be controlled from the “User
Profiles”.
CPU Priority - If set between
50-90% prioritizes inSync client backup lower compared to other active
applications. If the CPU priority is set below 50%, the backup is
slowed down to reduce CPU and disk pressure. It is recommended to set
priority at 40% for incremental backups.
Bandwidth – It is highly
recommended to limit the bandwidth usage for each profile.
Administrator can set percentage or absolute value based limit on each
incoming connection. Please check the ROI calculator for estimated
incremental backup times for different bandwidth settings –
www.druva.com/insync/roi-calculator
Suggested Reading
We suggest you to use knowledge base extensively and go through the following documents published on the website (here) -
- Knowledge Base – InSync Recommendations and Best Practices (here)
- Druva inSync - Overview and Advantage
- Druva inSync - Security Overview
- Druva inSync - Reporting Options