How To Decide The Nos Of Disk on The NAS Or Storage Server Should Have
After working for over a Year and studying the various method used by SI to Size a NAS and also noticing the problems they face. I have documented the following
The parameters that are essential for Selecting the NAS or Storage server
The normal process is to use the storage calc provided by the camera or VMS OEM and find the total TB for total Nos of Camera and then study the spec of the NAS for the TB of storage.. The difficulty with this approach is that some NAS perform as required and most do not..
We end up blaming the NAS for non Performance but fail to understand that we have sized the NAS incorrectly.
The important param which is very very clear from the various post on the Internet on storage calculations is IOPS.. Unfortunately there is no documentation on this for Video surveillance.
I shall attempt to do so..
[su_box style=”glass” radius=”10″ title=”Warning”]
kindly note I am not an expert in Storage and have no great experience with the various NAS available in the Market.
All expert on storage are welcome to point out any error or technical issues with the documentations provided herewith.
[/su_box]
[su_tabs]
[su_tab title=”IOPS: HDD”]Each Hard disk (HDD) has different IOPS (Input Output Per Sec). This is calculated from the following parameters
For 4 Nos of HDD 7200 RPM
[su_table]
HDD Used | 7200 | RPM | From Datasheet of the HDD Used |
Full Rotation | 8.33 | mSec | =RMP/60000 |
Rotational Latency | 4.17 | mSec | =(RPM/60000)/2 |
Average Seek Time | 4.45 | mSec | From Datasheet of the HDD Used |
IO Time | 8.62 | mSec | =IOTime+Avg Seek |
IOPS | 116 | IO per Sec | =(1/IO Time)*1000 |
No of Disks Used | 4 | Nos | from NAS |
Segment Size (Block Size) | 4 | KB | Configure in NAS or OS |
MBPS | 1.81 | MBPS | =(IOPS*NoOfDisk*IO Size)/1024 |
[/su_table]For 8 Nos of HDD 7200 RPM
[su_table]
HDD Used | 7200 | RPM | From Datasheet of the HDD Used |
Full Rotation | 8.33 | mSec | =RMP/60000 |
Rotational Latency | 4.17 | mSec | =(RPM/60000)/2 |
Average Seek Time | 4.45 | mSec | From Datasheet of the HDD Used |
IO Time | 8.62 | mSec | =IOTime+Avg Seek |
IOPS | 116 | IO per Sec | =(1/IO Time)*1000 |
No of Disks Used | 8 | Nos | from NAS |
Segment Size (Block Size) | 4 | KB | Configure in NAS or OS |
MBPS | 3.62 | MBPS | =(IOPS*NoOfDisk*IO Size)/1024 |
[/su_table]
Pls note the just by increasing the Nos of HDD the Throughput is 3.62MegaBytes Per Second. The throughput is for Read Only and is not calculated for the NAS which is Writing the data in RAID Configurations.
The Read “throughput” is very much depended on the spindle speed and block size, hence pls do calc the above for the HDD used in your NAS..
[/su_tab]
[su_tab title=”NAS: Read=100%”]
Calculate the IOPS for the NAS in RAID5
[su_table]
IOPS=d*dIOPS/(%r+(F*%w)) | |||
%r | 100 | % Time for Read | |
%w | 100 | % Time for Write | |
RAID | 5 | RAID used on NAS | |
F | 4 | ||
dIOPS | 75 | ||
No of Disk | 4 | Nos | |
IOPS Calculated | 69 | For the NAS/SAN | |
Block Size | 4 | KBytes | |
Read/ Write Speed | 0.94 | MBytes Per Sec |
[/su_table]
Calculate the IOPS for the NAS in RAID0
[su_table]
IOPS=d*dIOPS/(%r+(F*%w)) | |||
%r | 100 | % Time for Read | |
%w | 100 | % Time for Write | |
RAID | 0 | RAID used on NAS | |
F | 4 | ||
dIOPS | 75 | ||
No of Disk | 4 | Nos | |
IOPS Calculated | 150 | For the NAS/SAN | |
Block Size | 4 | KBytes | |
Read/ Write Speed | 2.34 | MBytes Per Sec |
[/su_table]
We can now understand that RAID0 has higher IOPS than RAID5. Hence NAS performance in RAID0 is Better than RAID5.
Now let us compare the NAS with More No of Disk in RAID5
[su_table]
IOPS=d*dIOPS/(%r+(F*%w)) | |||
%r | 100 | % Time for Read | |
%w | 100 | % Time for Write | |
RAID | 5 | RAID used on NAS | |
F | 4 | ||
dIOPS | 75 | ||
No of Disk | 7 | Nos | |
IOPS Calculated | 105 | For the NAS/SAN | |
Block Size | 4 | KBytes | |
Read/ Write Speed | 2.87 | MBytes Per Sec |
[/su_table]
It’s Clear when we use more no of disk the throughput of the NAS Increases.
[/su_tab]
[su_tab title=”NAS: Read < 100%”]
It’s quite a task to work this out..with the formula you can play with different value of r% = 10, 25, 50 & 75.. You will notice that the throughput is better when the r% is lower.
[su_table]
IOPS=d*dIOPS/(%r+(F*%w)) | |||
%r | 25 | % Time for Read | |
%w | 100 | % Time for Write | |
RAID | 5 | RAID used on NAS | |
F | 4 | ||
dIOPS | 75 | ||
No of Disk | 7 | Nos | |
IOPS Calculated | 124 | For the NAS/SAN | |
Block Size | 4 | KBytes | |
Read/ Write Speed | 3.39 | MBytes Per Sec |
[/su_table]
We can get better throughput if the simultaneous Read along with Write is Lower
Changing the BLOCK SIZE from 4K to 64K
[su_table]
IOPS=d*dIOPS/(%r+(F*%w)) | |||
%r | 25 | % Time for Read | |
%w | 100 | % Time for Write | |
RAID | 5 | RAID used on NAS | |
F | 4 | ||
dIOPS | 75 | ||
No of Disk | 7 | Nos | |
IOPS Calculated | 124 | For the NAS/SAN | |
Block Size | 64 | KBytes | |
Read/ Write Speed | 54.25 | MBytes Per Sec |
[/su_table]
I am not sure if this is possible on NAS.. This Block size is created when the HDD is formatted when the RAID is created.
I have checked a few NAS and noticed that some do.. Also It’s noticed that ReadyNAS has a block size of 16K which makes the HDD not readable on other systems.
Honestly, I would like others to post their comments on this aspects.
[/su_tab]
[/su_tabs]
Sometimes it’s not easy to get these data from HDD OEM’s you can use the following values
HARD Disk IOPS from Internet
[su_table]
RPM | SATA II | Param |
5400 | 50 | IOPS |
7200 | 75 | IOPS |
10000 | 100 | IOPS |
15000 | 150 | IOPS |
[/su_table]
btw Some Reading from the various post on the different head used in the data-sheets
1. Hardware block size= “sector size”
2. Filesystem block size= “block size”
3. Kernel buffer cache block size= “block size”
4. Partition table block size= “cylinder size”