3VR VisionPoint VMS Enterprise Server Storage Guide

Introduction

For large enterprises, it may make sense to use custom-configured server hardware to host the 3VR VisionPoint systems. While we do not intend this guide to replace or override the recommendations of IT professionals, we can offer some general guidelines of best practices for managing storage that will give our customers the best possible experience with our software solutions. Note that this document will make extensive reference to different types of RAID (Redundant Array of Inexpensive Disks) configurations and partitions.

Table 1 - Minimum Recommended Storage Summary

The bare minimum HDD storage configuration must be four enterprise class HDD's. In this scenario, the four drives must be divided into two independent RAID 1 pairs. The first RAID 1 pair can be small enough to hold just the Windows operating system along with at least 50% additional free space. The second RAID 1 pair must be as large as possible to hold both the video information and the database file. Please see the table below:

RoleDisk DrivesConfigurationSettingsPartition(s)
Boot VolumeTwo Enterprise Class HDD's any RPM/Cache

RAID 1

(Mirror)

N/ARecommend single partition with NTFS or ReFS to hold Windows Operating System
Video/DB Volume(s)Two Enterprise Class HDD's, 7200 RPM/256MB Cache

RAID 1

(Mirror)

N/ARecommend single partition for both video and database

Table 2: Ideal Storage Summary

In the ideal scenario, there are separate RAID arrays backing the boot volume, video application volume and the SQL storage volume. Again, only enterprise class HDD's should be considered. This scenario presumes that the database will be stored locally instead of a dedicated Database Server. If you are using an external Database Server, you can ignore the Database Volume row.

RoleDisk DrivesConfigurationSettingsPartition(s)
Boot VolumeTwo Enterprise Class HDD's any RPM/Cache

RAID 1 (Mirror)

N/ARecommend single partition with NTFS or ReFS to hold Windows Operating System
Video VolumeTwo Enterprise Class HDD's any RPM/Cache

RAID 1 or

RAID 5

If RAID 5, larger stripe block sizes (i.e. 64K) tend to give best performance. Recommend single partition

Database

Volume

Two Enterprise Class HDD's, 7200 RPM/256MB Cache

RAID 1 or

RAID 10

if RAID 10, consider minimal stripe block sizes to improve IOPSRecommend single partition

RAID Options Detail

It is beyond the scope of this document to try and illustrate every possible hardware/software RAID configuration. Instead, Identiv offers the following general recommendations that the above tables are based upon.

Dedicated Boot Volume (Contains Windows Installation and Applications):

RAID 1 (Mirror) to store the Operating System (OS) is highly recommended for server environments. Technically, a single drive will suffice, but it will need to be replaced and software restored if the drive fails. Other RAID configurations are possible, but should be considered overkill since the presumption is that the 3VR Video Files and Database Files will not be stored on the same RAID system as the OS.

Dedicated Data Volume(s)

Option 1: Database and Video Files stored on the same RAID system

This is the scenario described in Table 1 above. If your only option is to store the Database and Video files on the same RAID system, then the preferred strategy is to optimize for the Database transaction performance. This limits options to either RAID 1 or RAID 10. If you choose RAID1 there are no RAID specific settings to be considered. However, if you choose RAID 10 it is recommended to choose one of the smaller stripe block sizes offered by your RAID setup software. The reason for this is to optimize for a high number of reads and writes with relatively small data payload sizes. This will help the max number SQL transactions per second, but potentially hinder the video storage performance. It may be worth trying a couple different stripe block sizes to get the optimal balance between the SQL and Video.

Option 2: Database and Video Files stored on separate RAID systems

This is the ideal scenario described in Table 2 above. In this scenario, we can optimize for both Video and SQL in performance and reliability.

Video Volume RAID Options

To setup an optimal, dedicated RAID system to store video, you should consider RAID 5. RAID 5 strikes a great balance between streaming read/write performance and reliability. However, RAID 5 requires at least 3 dedicated HDD's and is best suited for between 4 and 6 HDD's. Using only 3 drives is inefficient and more than six drives can be too risky because you only have a singe drive failure tolerance. If you require more than 6 drives, consider RAID 6. However, if you only have 2 drives to store your video your only reliable option is RAID 1. For RAID 5, Identiv recommends a relatively large stripe block size like 64K.

Database Volume RAID Options

To setup and optimal, dedicated RAID system to store your SQL database locally, you should choose either RAID 1 or RAID 10. RAID 0 is not recommended because a single drive failure will cause loss of the entire database. If you choose RAID 1, there are no options to consider. But if you choose RAID 10, there is the additional consideration of stripe block size. Because SQL transactions tend to be smaller in nature, it is important to optimize as much as possible for smaller transfer sizes in order to see a performance improvement. It is not possible to specify a perfect size, but Identiv recommends starting with smaller stripe block sizes rather than larger ones to get the best performance.

Performance Tuning

Some additional Windows settings have some significant performance improvement potential.

Data Compression

Turn this setting off.

File Indexing

Turn this setting off.

File Defragmenting

Severe file fragmenting can seriously degrade storage performance. Identiv recommends setting up file defragmentation to run once a week (preferably at low system load times)

File System Allocation Block Sizes

Internal Identiv testing has not shown any performance gains by choosing a non-default file system allocation block size. Your experience may differ, but at the current time we do not recommend any changes to the default Windows file system allocation block size settings.

Volume Cache Flushing Option

Once the RAID volumes have been created and a file system created on a RAID volume, there is one last setting which can dramatically improve performance on the volume: disabling the file system write buffer flushing. This setting controls whether Windows aggressively tries to keep file system related information synchronized between what is stored in the relatively fast RAM and what is stored in the relatively slower permanent storage system. To keep the data between the two in sync, the data in RAM needs to be written out to the RAID system as often as possible in case there is a sudden and unexpected loss of power. In the case of sudden power loss, any information that was kept in RAM but not committed to the permanent storage system (i.e. the RAID drives) will be lost forever. However, this strategy to protect against potential data loss comes at the price of performance when the system is under heavy loads. But sometimes it is the cache buffer flushing which is actually contributing to the heavy system workloads. This means that one of the of the performance improving options for systems with heavy workloads is to disable this aggressive cache flushing behavior.

But won't disabling the write cache buffer flushing potentially expose you to data loss in the event of unexpected power loss? Yes, it will. So if you feel that you need the extra data i/o performance that you can get from disabling the cache flushing, Identiv strongly recommends the use of a smart uninterruptible power supply (UPS) for your system. The reason a smart UPS is required is that servers often run completely unattended. So if power is lost, the smart UPS will continue to supply battery power to the system while it gracefully shuts the server down according to some pre-defined schedule.

Here is a standard screen shot of where to find this setting in Windows 10: