Hey Checkyourlogs and Veeam Fans,
Today, I’m going to look at a newly certified configuration from DataON and Veeam. Recently DataON has certified its DCS Storage Server as a Veeam Backup Target. You can check out the details here https://www.veeam.com/kb3019.
In this certified configuration, the unit shipped with a Broadcom RAID Controller with two RAID 50 Spans across 6 HDDs.
My Configuration is going to be slightly different as my team has been using HBA’s and Storage Spaces Standalone for the past 3 + years. We find the configuration extraordinarily stable and it performs like a champ.
Our Backup Target Model number is a DataON S2D-5219i9.
For the disk configuration, we have
- 10 x HGST WD Ultrastar DC HC520 HUH721212AL4200 12TB HDD 7200 RPM SAS 12Gb/s Interface 4Kn ISE 3.5-Inch Helium Data Center Enterprise Internal Hard Disk Drive
- 2 x Intel SSD drives for the OS RAID
- 2 x Intel SSDPE2KE016T8 Hard Drive NVMe 1.6TB, 2.5in, PCIe 3.1, 3D TLC (3DWPD) – DC P4610 Series for the Cache
Running Get-PhysicalDisk, we can see the configuration.
At this time, you cannot configure Storage Spaces on a standalone server via Windows Admin Center so we will configure via Server Manager.
Click on Files and Storage Services and then Storage Pools.
On Storage, Pools, click on Tasks, New Storage Pool.
On the Before you begin page, click next.
On the Specify a storage pool name and subsystem type VeeamSP01 and click next.
On the Select physical disks for the storage, pool, select all of the disks and click next.
Note: We will adjust the SSD Disks after the setup to change them into Journal (Cache) Disks.
On the Confirm selections window, click Create.
On the View results window, select Create a virtual disk when this wizard closes and click close.
On the Select Storage Pool, window, click VeeamSP01 and click OK.
On the New Virtual Disk Wizard Before you begin window, click next.
On the Specify the virtual disk name window type VeeamVD01 and click next.
On the Specify enclosure resiliency window, click Next.
On the Select, the storage layout window select Mirror and click Next.
On the Configure the resiliency settings window select Three-way mirror and click Next.
Note: We have done extensive testing with Veeam Backup Repositories on Storage Spaces Standalone, and the best performance is always three-way mirror. DO NOT USE Parity as it will not perform during veeam synthetical full creation operations. Always use a three-way mirror for everything Veeam Related.
On the Specify the provisioning type window select Fixed and click Next.
On the Specify the size of Virtual Disk window type 10 TB and click Next.
On the Confirm Selections window, click Create.
On the View Results window, click Close.
On the New Volume Wizard / Before you Begin window, click Next.
On the Select the Server and disk window select VeeamVD01 and click Next.
On the Specify the size of volume window click Next.
On the Assign a drive letter or folder window, click Next.
On the Select file system settings window set to REFS, 64K, and on volume label type VeeamBK01.
Note: Veeam recommends that you set the Allocation unit size to 64KB for Backup Repositories. The Veeam Backup and Replication Console will throw an error if you do not make the change to the allocation unit change.
On the Confirm Selections window, click Create.
On the Completion, window, click Close.
Next, we will create another Virtual Disk and Volume for Veeam Replicas called VeeamVD02.
Return to Server Manager and the Storage Pools Tab. Click on Virtual Disks Tasks and select New Virtual
Disk
On the Select, Storage Pool, click on VeeamSP01 and click OK.
On the Before you Begin window, click Next.
On the Specify the virtual disk name window type VeeamVD02 and click Next.
On the Specify enclosure resiliency window, click Next.
On the Select, the storage layout window select Mirror and click Next.
On the Configure the resiliency settings window select Three-way mirror and click Next.
On the Specify the provisioning type window select Fixed and click Next.
On the Specify the size of virtual disk window type 10 TB and click Next.
On the Confirm Selections window, click Create.
On the View results window click Close
On New Volume Wizard / Before you begin window click Next.
On the Select the server and disk window select VeeamVD02 and click Next.
On the Specify the size of volume window type 10 TB and click Next.
On the Assign to a drive letter or folder, window, click Next.
On the Select file system settings window configure file system as ReFS, Allocation Unit Size as Default, and Volume Label as VeeamReplicas01.
On the Confirm selections window, click Create.
Next, we will configure the Storage Pool to use the NVME Disks as Journal (Cache) drives.
Get-physicaldisk Get-Physicaldisk | Where-Object FriendlyName -like "Intel SSD*" Get-Physicaldisk | Where-Object FriendlyName -like "Intel SSD*" | Set-Physicaldisk -useage Journal -verbose
Get-Physicaldisk | select FriendlyName,MediaType,Usage
Next, We will Rename the Server and optionally join it to the domain.
Next, move the Computer Object to the correct Organization Unit in Active Directory.
Next, You can run through the following PowerShell Script to complete the configuration. We are working hard to fully automate the deployment, but at this time, there are still the manual steps required above.
#Build Script for DataON 5212 Veeam Backup Repository and Replica Target #This Configuration assume no RoCE / RDMA #Note -When I have more Time I'll automate the configuration of the Storage Pool, Virtual Disks, Journal Disk, and Volumes via PowerShell. #region 001 - Install the Core Roles Required for Storage Spaces Standalone $nodes = ("Nakaro-BK01") Invoke-Command $nodes {Install-WindowsFeature FS-Data-Deduplication} Invoke-Command $nodes {Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart} #DataON Specific Settings # <<MUST>> Enable Remote Desktop Connnection Invoke-Command $Nodes { # Enable Remote Desktop Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'-Name "fDenyTSConnections" -Value 0 # Allow connections NOT only from computers running RDP with Network Level Authentication Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name "UserAuthentication" -Value 0 # Allow RDP on Firewall Enable-NetFirewallRule -DisplayGroup "Remote Desktop" Get-NetFirewallRule -DisplayGroup "Remote Desktop" | ft Name,Enabled,Profile } # <<MUST>> Enable Ping Invoke-Command -ComputerName $nodes -ScriptBlock { Enable-NetFirewallRule -Name 'FPS-ICMP4-ERQ-In' } # NEW - Fixed Windows Update Settings for Server2019 #Configure Automatic Updates to Download Only / DO NOT DOWNLOAD Drivers post Invoke-Command $Nodes { Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX -Name IsConvergedUpdateStackEnabled -Value 0 -verbose Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings -Name ExcludeWUDriversInQualityUpdate -Value 1 -verbose } #endregion #region 002 - Configure the Hyper-V SET (Switch Embedded Teaming) which supports RDMA over Teamed Connections, also create all the Virtual Adapters.... #Create Hyper-V Virtual SET Switch Invoke-Command $Nodes {Get-Netadapter | FT Name, InterfaceDescription,Status,LinkSpeed} #Invoke-Command $Nodes {New-VmSwitch -Name VSW01 -NetAdapterName "RDMA_1","RDMA_2" -EnableEmbeddedTeaming $True -AllowManagementOS $False -verbose } Invoke-Command $Nodes {New-VmSwitch -Name VSW02 -NetAdapterName "Ethernet" -EnableEmbeddedTeaming $True -AllowManagementOS $False -verbose } #Create the Virtual Adapters --> Open ncpa.cpl to see them being created Invoke-Command $Nodes { #Add-VMNetworkAdapter -SwitchName VSW01 -Name SMB_1 -ManagementOS #Add-VMNetworkAdapter -SwitchName VSW01 -Name SMB_2 -ManagementOS #Add-VMNetworkAdapter -SwitchName VSW01 -Name LM -ManagementOS #Add-VMNetworkAdapter -SwitchName VSW01 -Name HB -ManagementOS Add-VMNetworkAdapter -SwitchName VSW02 -Name MGMT -ManagementOS} Invoke-Command $Nodes { $vmswitch = Get-VMSwitch -Name "vsw02" Add-VMSwitchTeamMember -VMSwitch $VMSwitch -NetAdapterName "Ethernet 2"} #endregion #region 003 - Configure the VLANs for the LAB #All of the configurations were done here per the Mellanox Guide #Assign the VLANs to the Virtual Adapters Invoke-Command $Nodes { $Nic = Get-VMNetworkAdapter -Name SMB_1 -ManagementOS Set-VMNetworkAdapterVlan -VMNetworkAdapter $Nic -VlanId 619 -Access $Nic = Get-VMNetworkAdapter -Name SMB_2 -ManagementOS Set-VMNetworkAdapterVlan -VMNetworkAdapter $nic -VlanId 619 -Access $Nic = Get-VMNetworkAdapter -Name LM -ManagementOS Set-VMNetworkAdapterVlan -VMNetworkAdapter $nic -VlanId 618 -Access $Nic = Get-VMNetworkAdapter -Name HB -ManagementOS Set-VMNetworkAdapterVlan -VMNetworkAdapter $nic -VlanId 617 -Access #$Nic = Get-VMNetworkAdapter -Name MGMT -ManagementOS #Set-VMNetworkAdapterVlan -VMNetworkAdapter $nic -VlanId 877 -Access } #Show the VLAN Configuraiton Invoke-Command $Nodes {Get-VMNetworkAdapterVlan -ManagementOS} #endregion #region 004 - Configure Active Memory Dumps from Full on all Nodes #Configure the Active Memory Dummp from Full Memory Dump on all Nodes Invoke-Command $Nodes { Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl -Name CrashDumpEnabled -Value 1 Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl -Name FilterPages -Value 1 Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl -Name CrashDumpEnabled Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl -Name FilterPages } #endregion #region 005 - Join Backup Targets Nodes to the Domain <#>#Run this command from one of the nodes After S2D1 has been joined if not on a MGMT Server $nodes = ("S2D2", "S2D3", "S2D4") Invoke-Command $Nodes { Add-Computer -DomainName Checkyourlogs.net -Reboot } </#> #endregion #region 006 - [DATAON]Activate Windows DataCenter Edition with Customer KEY - It ships with the EVAL Edition #The DataON Nodes we have Ship with Standard Edition on these Backup Targets #If you want to Convert to DataCenter run the following. #Need a Reatil KEY for this to work we will change it after #Steps from https://www.checkyourlogs.net/?p=64153 - Cary Sun MVP CCIE dism /online /Set-Edition:ServerDataCenter /ProductKey:<REATIL KEY> /AcceptEula slmgr.vbs /ipk <DATACENTERKEY> slmgr /ato #endregion #region 007 - Change Power Plan ****************MANUAL SETUP on BOTH Nodes********************** #Manually go change the powerplan to HIGHPOWER in the control Panel -- This is already set by DATAON #DataON Configured this in their Image #endregion #region 008 - Validate Settings Get-StoragePool | ft Get-VirtualDisk | ft Get-PhysicalDisk | ft #endregion
Next, we will enable Deduplication on the volumes. The first volume we will work on is the D:, which is designated for Veeam Backups.
Open Server Manager, File and Storage Services, Volumes. Right-click on one of the new Volumes and click Configure Data Deduplication.
Set Data Deduplication to Virtualized Backup Server and Deduplicate files older than (in days): to 3. Then click on Set Deduplication Schedule.
On the backup schedule window select Enable background optimization, Enable throughput optimizations, Enable Create a second schedule for throughput optimization, Click Ok twice.
Next, we will configure the Deduplication Settings for the Veeam Replica Volume.
Right-Click on VeeamReplica01, and click Configure Data Deduplication.
Set Data Deduplication to Virtualized Desktop Infrastructure (VDI) Server and Deduplicate files older than (in days): to 0. Then click on Set Deduplication Schedule.
On the backup schedule window select Enable background optimization, Enable throughput optimizations, Enable Create a second schedule for throughput optimization, Click Ok twice.
I highly suggest that you tweak the Deduplication settings as per our blog post. https://www.checkyourlogs.net/?p=62683
Here a sample for configuring a custom Deduplication schedule.
<PowerShell>
Next, run a full pass of Windows Updates.
Note: We are working on a solution right now using PowerShell to disable jobs during maintenance periods and Azure Updates for the orchestration layer. #2020 Goals.
Next, we will add the server to the Veeam Backup and Replication Console as a Backup Repository. Open the Veeam Backup and Replication Console, click on Backup Infrastructure, Click on Add Repository.
On the Add Backup Repository windows, click on Direct attached Storage.
On the Select the operating system type of server you want to use as a backup repository window, click Microsoft Windows.
On the New Backup Repository \ Name type NAKARO-BK01
On the Server (Choose repository server. You can select server from the list of managed servers added to the console page, click Add New.
On the Name (Specify DNS name or IP address of Microsoft Windows Server)
type NAKARO-BK01 and click Next.
On the Credentials (Specify server credentials), Credentials page select the credentials with rights on the server.
On the Review (Please review your settings and click Apply to continue) page, click Apply.
On the Apply (Please wait while required operations are being performed. This may take a few moments) page
click Next.
On the Summary (You can copy the configuration information below for future reference.) page, click Finish.
On the Server (Choose repository server. You can select server from the list of managed servers added to the console.) page, click Next.
On the Repository (Type in path to the folder where backup files should be stored, and set repository load control options.) page, click Browse.
On the Select Folder window click New Folder and type Veeam Backups on the VeeamBK01 (D:\) and click OK
On the Repository (Type in path to the folder where backup files should be stored, and set repository load control options.) page, click Advanced.
On the Storage Compatibility Options window, select Align backup file data blocks, Use Per-VM backup Files, and Decompress backup data blocks before storing click OK, and click Next.
On the Mount Server (Specify a server to mount backups to for file-level restores. vPower NFS service allows running virtual machines directly from backup files, enabled advanced functionality such as Instant VM Recovery, Sure Backup, and On-Demand SandBox.) page, click Next.
On the Review (Please review the settings, and click Apply to continue.) page, click Apply.
On the Apply (Please wait while backup repository is created and saved in configuration. This may take a few minutes…) page, click Finish.
Next, we will add the server to the Veeam Backup and Replication Console as a Wan Accelerator. Click on Wan Accelerators and Add Wan Accelerator.
On the Server (Choose a server to install WAN accelerator components on. You can only select between 64-bit Microsoft Windows servers added to the managed servers tree in the console) page, select NAKARO-BK01 and click Next.
On the Cache (Specify location and size of the global cache used by target WAN Accelerators to cache recurring data blocks. The specified amount of disk space will be allocated separately for each source / Target WAN Accelerator pair in many-to-one deployments.) page select D:\ , ensure the path is D:\VeeamWAN and change the size to 250 GB.
On the Review (Review the settings, and click apply to continue) page, click Apply.
On the Summary (You can copy the Wan accelerator configuration information below for future reference.) page click Finish.
Next, we will add the server as a Hyper-V Server in the Veeam Backup and Replica Console.
Click on Managed Servers, Hyper-V, and in the ribbon click Add Server.
On the Name (Specify DNS name or IP address of Microsoft Hyper-V Server.) page type NAKARO-BK01 and click Next.
On the Type (Select the type of server you want to add) page select Microsoft Hyper-V Server (Standalone), and click Next.
On the Credential (Select server administrator credentials) page, select an account and click Next.
On the Apply (Please review your settings and click Apply to continue) page, click Apply.
On the Results (The following servers have been processed.) page, click Finish.
With that, the Veeam Backup and Replica target is ready for job configuration.
I hope that you found this post useful.
Thanks,
Dave
Hey Dave, how does the journal disks work? Is it a write cache only or the same function as in S2D? I thought journal isn’t working in standalone environments.
Seems to work fine it has been supported all the way back to 2012.