Hello everyone! I'm in the process of deploying a new server (running Windows Server 2019) that I plan to host multiple VMs on. I have a RAID and/or Intel RST related question I was hoping someone could help me with.
Before I get too far, let me break down the key storage specs of the server I'll be deploying:
HP Z640
Now, to confirm that the array was indeed degraded (how could it not be after swapping a drive..) I chose recovery mode and had the machine boot to the UEFI settings. I chose the RST 3rd party option ROM and sure enough, it listed the RAID 5 array as degraded. I then followed the prompts to rebuild the array with the drive that I had swapped in and it's currently in the rebuilding state.
Other questions:
EDIT, SOLUTION: 10/11/2021 - 9:44am
So, I'm guessing that some early intel RST controllers or specific ones are unsupported when it comes to the intel RST application. Instead they rely on files within the actual driver (the ones that would be extracted when they go to be installed on a Windows machine). In my case, I found something under the "RSTe_4.700.2072_CLI\x64" directory of the extracted driver. the application is called rstcli64, the 'cli' being a refernce to command line interface. If you open CMD or powershell in windows, you can pass it some arguments to get the status and information about your arrays. Below is a quick guide on how to do so:
EDIT, CODE-BASED SOLUTION: 10/11/2021 - 12:06pm
Hey everyone, here's a snippet of code that can be used to create a .ps1 file to check the status of the array if you have the intel RST CLI application. The result will get emailed to yourself. You can also add support for text notifications as well! My example in the $EmailTo field sends to an email address, and a phone number (separated by a comma). Hope this helps!
Before I get too far, let me break down the key storage specs of the server I'll be deploying:
HP Z640
- HDDs: 4x 4TB WD Re Enterprise drives (WD4000FYYZ)
- Intel RST C600+/C220+ RAID controller
- Note: not compatible with Intel's RST application (GUI), just has drivers for the controller.
Now, to confirm that the array was indeed degraded (how could it not be after swapping a drive..) I chose recovery mode and had the machine boot to the UEFI settings. I chose the RST 3rd party option ROM and sure enough, it listed the RAID 5 array as degraded. I then followed the prompts to rebuild the array with the drive that I had swapped in and it's currently in the rebuilding state.
Other questions:
- Is there a way to query the controller from within Windows Server to see the status of an array (Powershell or CMD, etc.)?
- if so, can this be automated?
- Will the array continue to rebuild itself if I leave the RST option ROM and boot into the Windows Server?
EDIT, SOLUTION: 10/11/2021 - 9:44am
So, I'm guessing that some early intel RST controllers or specific ones are unsupported when it comes to the intel RST application. Instead they rely on files within the actual driver (the ones that would be extracted when they go to be installed on a Windows machine). In my case, I found something under the "RSTe_4.700.2072_CLI\x64" directory of the extracted driver. the application is called rstcli64, the 'cli' being a refernce to command line interface. If you open CMD or powershell in windows, you can pass it some arguments to get the status and information about your arrays. Below is a quick guide on how to do so:
- Navigate to the location of the rstcli64 application in file explorer. SHIFT + Right click and select 'open powershell window here'
- type in the following command: .\rstcli64 --information --volume
- See the status of the volume and drives in the system response.
EDIT, CODE-BASED SOLUTION: 10/11/2021 - 12:06pm
Hey everyone, here's a snippet of code that can be used to create a .ps1 file to check the status of the array if you have the intel RST CLI application. The result will get emailed to yourself. You can also add support for text notifications as well! My example in the $EmailTo field sends to an email address, and a phone number (separated by a comma). Hope this helps!
Code:
cd "PATH\TO\CLI_APPLICATION (will look similar to) D:\HP DRIVER RST\RSTe_4.7.0.2072_CLI\x64"
$degraded = .\rstcli64 --information --volume |Select-String -Pattern "Degraded"
if ($degraded -eq $null)
{
$EmailFrom = "YOUR_EMAIL@MAIL.COM"
$EmailTo = "YOUR_EMAIL@MAIL.COM,1234567890@cellular.com"
$Subject = "RAID 5 is healthy!"
$Body = "RAID 5 is healthy!"
$SMTPServer = "smtp.gmail.com"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("YOUR_USERNAME", "YOUR_PASSWORD");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
}
else
{
$EmailFrom = "YOUR_EMAIL@MAIL.COM"
$EmailTo = "YOUR_EMAIL@MAIL.COM,1234567890@cellular.com"
$Subject = "RAID 5 is Degraded!"
$Body = "RAID 5 is Degraded!"
$SMTPServer = "smtp.gmail.com"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("YOUR_USERNAME", "YOUR_PASSWORD");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
}
Last edited: