Most of my customers try to backup their infrastructure at night to avoid impacting the user workloads. Sometimes there are so much data that the night is not enough to backup the whole infrastructure. Usually customers have a decent production infrastructure in term of speed and the bottleneck is the storage repository. For this kind of storage, we prefer to get the most of capacity so usually only HDD are installed. But the performances are poor. To significantly increase performance, SSD/NVMe can be added to the storage repository. Thanks to SSD we can implement caching and tiering. By increasing the storage repository performances, the backup window will be reduced. However, to take advantage of SSD, a 10Gb/s network is required in the storage repository.
In its product list, Qnap has a lot of enterprise-grade NAS that offer redundant power supply, 10Gb/s network adapters, tiering (Qtier), caching and 2x NVMe location (M.2 2280). These NAS can support enough drives to fit your need. To write this topic, I used a TS-873U. With the rails and an additional 4Gb memory, I paid this NAS 1650€. If you require more drives, you can choose the TS-1673U-RP with 64GB of memory for 3500€. For a company, I think they are cheap.
I built the following configuration (not full optimized because I didn’t want to buy new SSD / NVMe / HDD):
- Cache acceleration (Read / Write): 2x Crucial MX500 500GB => RAID 1
Storage Pool (Qtier):
- High Speed tier: 2x SSD Intel S3610 500GB => RAID 1
- Capacity tier: 4x HDD Western Digital 2TB Red PRO => RAID 6
Let’s see how to configure step-by-step this Qnap to get good performance.
First of all, download QFinder Pro from this URL. In order that QFinder Pro discover your NAS, make sure you are in the same network subnet. From my side, I connected directly my laptop to a 1Gb/s port. Then run QFinder Pro. The tool should discover your NAS, on the first window, just click on Next.
Then a web browser is open to start the configuration. Just click on Start Smart Installation Guide.
In the next window, provide a NAS name and the admin password.
Then specify the NTP server. Currently it won’t work because the NAS is not connected to the production network.
Then fill the network settings.
Next choose which file transfer service you want to enable. I choose only the Windows services.
Because I need to configure Qtier, cache acceleration and so on, I choose to Configure disks later.
I choose to not enable the multimedia functions.
Finally click on Apply to start the configuration of the NAS.
Update the firmware
When the NAS is ready, check the firmware version and update the NAS. Navigate to Control Panel | System | Firmware Update. Because the NAS has currently no Internet connection, I downloaded the firmware from QNAP website and I used it to update the NAS.
Click on OK to update the firmware.
N.B: In this example, I didn’t implement the most optimize network solution. Because I have 2x 10Gb/s ports, I should implement one IP per adapter and use iSCSI / MPIO. But I use also my NAS to store data such as movies, ISO, VHDX, VMDK etc. and fetch them with SMB. This is why I chose to implement a NIC teaming. But if the only NAS purpose is backup, I recommend you to not implement NIC teaming.
Open the Network & Virtual Switch panel and navigate to Interfaces. Click on Port Trunking.
Then click on Add.
Select the 10Gb/s adapters. In this example they are called Adapter 5 and Adapter 6.
Next choose General Switch (most common).
Next choose Balance-alb. I selected this mode because according to the QNAP documentation, it provides the best performance.
Now your trunk is created, and you can click on Close.
In Network & Virtual Switch, in the trunk click on configure.
Fill the network settings and specify a Jumbo Frame of 9000. To leverage Jumbo Frame, this configuration must be applied on the switches and on the backup server(s).
Then I set the VLAN number.
Now you can plug the NAS to your production network with the 10Gb/s network adapter.
Create the storage pool
Open Storage & Snapshots and create a Storage Pool. Click on Enable Qtier.
In SSD tab, select the SSD and in SATA tab choose the HDD.
Then click on Create.
Once the storage pool is created the wizard asks you if you want to create a new volume. If you chose to leverage iSCSI / MPIO, click on close and create a iSCSI volume in Storage & Snapshot. From my side, I clicked on New Volume.
Then select the storage pool and click on Next.
Specify the volume alias, the capacity and bytes per inode. I chose 4K. Then you can create a shared folder and an alert threshold.
Click on finish to create the volume.
Configure the cache acceleration
To configure cache acceleration, open Storage & Snapshots. Navigate to Cache Acceleration. Click on Create.
Choose the NVMe drives and Read-Write cache type. Click on Next.
I chose to accelerate sequential I/O because backup works on large file.
Then choose the volume that will be accelerated.
Once the cache acceleration is created, the hit rate should increase.
Then I configured Veeam to try the solution. Veeam backup VMs located in my 2-Node S2D cluster based on S3610 200GB SSD. Because These SSD are only 200GB, the performances are poor. When I ran benchmark, I was not able to exceed 450-500MB/s (130K IOPS 4K Read 70% – Write 30%). The following capture shows a processing rate of 373MB/s with a Bottleneck located at the source. 373MB/s is fast compared to some customer productions. But I’m sure I can go beyond this value with a faster S2D cluster.
Today, it’s a non-sense to implement a full flash array for backup repository because it is too expansive. What we need in a storage repository is capacity. But some time, because of the large amount of data to backup, we need also to implement some high-speed drives such as SSD to reduce the backup window. With a small amount of SSD and tiering/caching, we are able to significantly increase performance.