Skip to content

Commit 4b92ca9

Browse files
committed
Merge remote-tracking branch 'upstream/main' into AB#8605-TOC-update-for-Backup-and-Storage
2 parents aa00e2c + d11a435 commit 4b92ca9

File tree

5 files changed

+212
-33
lines changed

5 files changed

+212
-33
lines changed

support/azure/virtual-machines/windows/windows-vm-wureset-tool.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ ms.date: 11/18/2025
99
ms.custom: sap:Cannot create a VM, H1Hack27Feb2017
1010
ms.reviewer: macla, scotro, glimoli, jarrettr, azurevmcptcic
1111
---
12-
# Azure Virtual Machine (VM) Windows servicing stack reset tool
12+
# Azure Virtual Machine (VM) Windows Update Reset Tool
1313

1414
**Applies to:** :heavy_check_mark: Windows VMs
1515

1616
## Overview
1717

18-
This article covers steps to run a PowerShell script that resets the Windows servicing stack for a VM running in Azure. Running the tool can fix most problems that prevent Windows Updates from installing successfully.
18+
This article covers steps to run a PowerShell script that resets the Windows Update servicing stack for a VM running in Azure. Running the tool can fix most problems that prevent Windows Updates from installing successfully.
1919

2020
> [!NOTE]
2121
> This article is intended for use with support agents and IT professionals. If you're a home user and looking for more information about fixing Windows update errors, see [Fix Windows Update errors](https://support.microsoft.com/help/10164).
@@ -31,7 +31,7 @@ This article covers steps to run a PowerShell script that resets the Windows ser
3131
- Restarts services.
3232
- Generates a summary of actions performed.
3333

34-
For more information, see [Resetting Windows Update servicing stack script](https://github.com/Azure/azure-support-scripts/blob/master/RunCommand/Windows/Windows_WUA_Update_Reset?).
34+
For more information, see [Azure VM Windows WUA Update Reset Tool](https://github.com/Azure/azure-support-scripts/blob/master/RunCommand/Windows/Windows_WUA_Update_Reset?).
3535

3636

3737
:::image type="content" source="media/windows-vm-wureset-tool/windows-vm-wureset-tool.png" alt-text="Azure portal view Run Command example." lightbox="media/windows-vm-wureset-tool/windows-vm-wureset-tool.png":::
@@ -50,12 +50,12 @@ For more information, see [Run scripts in your Windows VM by using action run co
5050

5151
## Recommended workflow
5252

53-
1. Run `Windows_Update_Reset` to reset the servicing stack.
53+
1. Run `Windows_Update_Reset` to reset the Windows Update servicing stack.
5454
2. Try to install the Windows Update that previously failed.
5555

5656
## Additional resources
5757

58-
- [Resetting Window Update servicing stack script](https://github.com/Azure/azure-support-scripts/blob/master/RunCommand/Windows/Windows_Update_Reset).
58+
- [Azure VM Windows WUA Update Reset Tool](https://github.com/Azure/azure-support-scripts/blob/master/RunCommand/Windows/Windows_Update_Reset).
5959

6060

6161
[!INCLUDE [azure-help-support](~/includes/azure-help-support.md)]

support/includes/azure/virtual-machines-runcmd-wu-tools.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
>Trying to diagnose and resolve Windows Update or Windows OS upgrade issues for your Azure VM? Try one of the following tools:
55
>
66
>* [Azure VM Windows Update Error Detection Tool](../../azure/virtual-machines/windows/windows-vm-ipu-tool.md) to diagnose specific Windows Update errors.
7-
>* [Azure VM Windows Servicing Stack Reset Tool](../../azure/virtual-machines/windows/windows-vm-wureset-tool.md) to reset the Windows servicing stack.
8-
>* [Azure Virtual Machine (VM) Windows OS Upgrade Assessment Tool](../../azure/virtual-machines/windows/windows-vm-osupgradeassessment-tool.md) to validate the OS upgrade path and any known issues.
7+
>* [Azure VM Windows Windows Update Reset Tool](../../azure/virtual-machines/windows/windows-vm-wureset-tool.md) to reset the Windows servicing stack.
8+
>* [Azure VM Windows OS Upgrade Assessment Tool](../../azure/virtual-machines/windows/windows-vm-osupgradeassessment-tool.md) to validate the OS upgrade path and any known issues.
99
>
1010
>If you're experiencing performance problems with VMs, run these tools first before contacting support.
1111

support/system-center/scom/use-ca-certificate-on-scx-agent.md

Lines changed: 71 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Convert self-signed SCX certificates to CA certificates
33
description: Introduces how to convert a self-signed certificate on an SCX agent to a Certificate Authority (CA) signed certificate.
44
ms.date: 04/15/2024
5-
ms.reviewer: alexkre, blakedrumm, edpaca, stparker, udmudiar, v-weizhu
5+
ms.reviewer: alexkre, blakedrumm, edpaca, stparker, udmudiar, v-weizhu, v-ryanberg
66
ms.topic: how-to
77
ms.custom: linux-related-content
88
---
@@ -76,65 +76,108 @@ On a CA server in your SCOM environment, follow these steps to create a certific
7676

7777
## Copy and edit the certificate on the Unix/Linux server
7878

79+
Use one of the following methods to configure the certificate on the the Unix/Linux server:
80+
81+
### Method 1: Configure certificate manually
82+
7983
1. Copy the certificate to the Unix/Linux server for which the certificate was issued.
8084
1. Export the private key by using the following command:
8185

8286
```console
83-
openssl pkcs12 -in <FileName>.pfx -nocerts -out key.pem
87+
openssl pkcs12 -in <FileName>.pfx -nocerts -out /etc/opt/omi/ssl/omikey.pem -nodes -passin pass:"pfxpassword"
8488
```
8589

86-
While exporting the private key from the certificate store, a new password has to be set for the new key file.
87-
88-
:::image type="content" source="media/use-ca-certificate-on-scom-linux-agent/command-export-private-key.png" alt-text="Screenshot that shows the command to export the private key.":::
89-
90-
After the export is completed, you should see a *key.pem* file:
91-
92-
:::image type="content" source="media/use-ca-certificate-on-scom-linux-agent/command-get-key-dot-pem-file.png" alt-text="Screenshot that shows the command to get the private key file.":::
90+
While exporting the private key from the certificate store, include the `-nodes` paramter (which stands for no Desktop Environments (DEs)). This instructs OpenSSL to output the private key in an unencrypted format. Otherwise a new password has to be set for the new key file.
9391

9492
1. Export the certificate by using the following command:
9593

9694
```console
97-
openssl pkcs12 -in <FileName>.pfx -clcerts -nokeys -out omi.pem
95+
openssl pkcs12 -in <FileName>.pfx -clcerts -nokeys -out /etc/opt/omi/ssl/omi-host-$(hostname).pem -passin pass:"pfxpassword"
9896
```
9997

100-
While exporting the certificate from the certificate store, you have to enter the password for the *\<FileName>.pfx* file.
98+
1. Delete and create a new symbolic link:
10199

102-
:::image type="content" source="media/use-ca-certificate-on-scom-linux-agent/command-export-certificate.png" alt-text="Screenshot that shows the command to export the certificate.":::
100+
```console
101+
rm -f /etc/opt/omi/ssl/omi.pem
102+
ln -s /etc/opt/omi/ssl/omi-host-$(hostname).pem /etc/opt/omi/ssl/omi.pem
103+
```
104+
105+
1. Set the correct permissions and ownership on the private key, certificate, and symbolic link:
103106

104-
After the export is completed, you should see an *omi.pem* file:
107+
```console
108+
chmod 600 /etc/opt/omi/ssl/omikey.pem
109+
chmod 640 /etc/opt/omi/ssl/omi-host-$(hostname).pem /etc/opt/omi/ssl/omi.pem
110+
chown omi:omi /etc/opt/omi/ssl/omikey.pem
111+
chown root:omi /etc/opt/omi/ssl/omi-host-$(hostname).pem /etc/opt/omi/ssl/omi.pem
112+
```
105113

106-
:::image type="content" source="media/use-ca-certificate-on-scom-linux-agent/command-get-omi-dot-pem-file.png" alt-text="Screenshot that shows the command to get the certificate file.":::
114+
1. Restart the SCX agent by running the following command:
107115

108-
1. Remove the password from the private key by using the following command:
116+
```console
117+
scxadmin -restart
118+
```
119+
120+
1. Make sure the Open Management Infrastructure (OMI) processes are running after restarting the agent:
109121

110122
```console
111-
openssl rsa -in key.pem -out omikey.pem
123+
ps -ef | grep omi | grep -v grep
112124
```
113125

114-
:::image type="content" source="media/use-ca-certificate-on-scom-linux-agent/command-remove-password-from-private-key.png" alt-text="Screenshot that shows the command to remove password from the private key.":::
126+
:::image type="content" source="media/use-ca-certificate-on-scom-linux-agent/command-validate-omi-processes.png" alt-text="Screenshot that shows the command to validate omi processes running." lightbox="media/use-ca-certificate-on-scom-linux-agent/command-validate-omi-processes.png":::
115127

116-
This action is needed since the Linux agent doesn't know the password for the file.
128+
### Method 2: Configure certificate with bash script
117129

118-
1. Move the *omikey.pem* file to the Open Management Infrastructure (OMI) directory by using the following command:
130+
1. Save the following bash script: `extract_scx_cert.sh`
119131

120132
```console
121-
mv omikey.pem /etc/opt/omi/ssl/omikey.pem
133+
#!/bin/bash
134+
135+
# Usage: sudo ./extract_scx_cert.sh /path/to/certificate.pfx <pfx_password>
136+
137+
PFX_FILE="$1"
138+
PFX_PASS="$2"
139+
SSL_DIR="/etc/opt/omi/ssl"
140+
KEY_FILE="$SSL_DIR/omikey.pem"
141+
CERT_FILE="$SSL_DIR/omi-host-$(hostname).pem"
142+
SYMLINK_FILE="$SSL_DIR/omi.pem"
143+
144+
if [[ -z "$PFX_FILE" || -z "$PFX_PASS" ]]; then
145+
echo "Usage: $0 /path/to/certificate.pfx <pfx_password>"
146+
exit 1
147+
fi
148+
149+
echo "Extracting private key..."
150+
openssl pkcs12 -in "$PFX_FILE" -nocerts -out "$KEY_FILE" -nodes -passin pass:"$PFX_PASS"
151+
152+
echo "Extracting certificate..."
153+
openssl pkcs12 -in "$PFX_FILE" -clcerts -nokeys -out "$CERT_FILE" -passin pass:"$PFX_PASS"
154+
155+
echo "Creating symbolic link..."
156+
rm -f "$SYMLINK_FILE"
157+
ln -s "$CERT_FILE" "$SYMLINK_FILE"
158+
159+
echo "Setting permissions..."
160+
chmod 600 "$KEY_FILE"
161+
chmod 640 "$CERT_FILE" "$SYMLINK_FILE"
162+
chown root:omi "$CERT_FILE" "$SYMLINK_FILE"
163+
chown omi:omi "$KEY_FILE"
164+
165+
echo "Restarting omid service..."
166+
systemctl restart omid
122167
```
123168

124-
1. Restart the SCX agent by using the following command:
169+
1. Change the script permissions to be run:
125170

126171
```console
127-
scxadmin -restart
172+
chmod +x /home/user/extract_scx_cert.sh
128173
```
129174

130-
1. Make sure the *omi* processes are running after restarting the agent:
175+
1. Run the following command to run the script with these two parameters: the path to the PFX file and the password for it.
131176

132177
```console
133-
ps -ef | grep omi | grep -v grep
178+
sudo ./extract_scx_cert.sh /path/to/certificate.pfx pfx_password
134179
```
135180

136-
:::image type="content" source="media/use-ca-certificate-on-scom-linux-agent/command-validate-omi-processes.png" alt-text="Screenshot that shows the command to validate omi processes running." lightbox="media/use-ca-certificate-on-scom-linux-agent/command-validate-omi-processes.png":::
137-
138181
## Validate that the certificate is signed by the CA
139182

140183
1. Run the following command on the agent to verify that the certificate is signed by the CA:
@@ -159,6 +202,8 @@ On a CA server in your SCOM environment, follow these steps to create a certific
159202
notAfter=Jul 25 12:12:14 2033 GMT
160203
```
161204

205+
> The path `/etc/opt/microsoft/scx/ssl` contains a symbolic link `scx.pem -> /etc/opt/omi/ssl/omi.pem` that's used by the SCX agent in order to use the OMI certificate created earlier.
206+
162207
1. Run a network trace on one of the management servers/gateways in the UNIX/Linux resource pool.
163208
1. Run the following `WinRM` command against the agent and make sure you get the instance output:
164209

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
---
2+
title: Troubleshoot Performance Issues in Storage Spaces Direct
3+
description: Helps you identify and fix performance issues related to Storage Spaces Direct (S2D) in Windows Server environments.
4+
ms.date: 12/08/2025
5+
manager: dcscontentpm
6+
audience: itpro
7+
ms.topic: troubleshooting
8+
ms.reviewer: kaushika, simonw, v-appelgatet
9+
ms.custom:
10+
- sap:backup, recovery, disk, and storage\Storage Spaces Direct (S2D)
11+
- pcy:WinComm Storage High Avail
12+
appliesto:
13+
- ✅ <a href=https://learn.microsoft.com/windows/release-health/windows-server-release-info target=_blank>Supported versions of Windows Server</a>
14+
---
15+
# Troubleshoot performance issues in Storage Spaces Direct
16+
17+
This article helps you identify and fix performance issues that are related to Storage Spaces Direct (S2D) in Windows Server environments.
18+
19+
## Symptoms
20+
21+
You experience one or more of the following performance issues:
22+
23+
- When you access files that are stored in storage spaces, read and write speeds are slower than expected.
24+
- When you perform disk-intensive operations such as transferring large files, you experience delays or lags.
25+
- Task Manager shows high disk queue length or high disk usage.
26+
- Applications take longer than usual to load or respond.
27+
28+
## Causes
29+
30+
Several factors can cause degraded performance or bottlenecks for Storage Spaces. The following list includes the most common causes:
31+
32+
- **Incorrect drive configuration**: Using mismatched or incompatible drives within a storage pool
33+
- **Incorrect storage space type**: Selecting the wrong resiliency option (such as parity instead of simple or mirror) for the workload
34+
- **Insufficient system resources**: Low memory or CPU availability
35+
- **Fragmentation**: Excessive fragmentation within the storage pool (slow data access)
36+
- **Firmware and driver issues**: Outdated or incompatible drive firmware and drivers
37+
- **Background tasks**: Resource-intensive background tasks, such as disk scrubbing or repair jobs
38+
39+
## Resolution
40+
41+
Follow the steps in this section to improve the performance of your storage space.
42+
43+
Before you start to troubleshoot performance issues, consider measuring the system's current performance to establish a baseline. You can use tools such as Performance Monitor or Resource Monitor to collect metrics. You can also use third-party tools such as DiskSpd or CrystalDiskMark to run benchmark tests and gather detailed performance metrics.
44+
45+
> [!IMPORTANT]
46+
> Before you start changing your storage space configuration, make sure that you back up the storage space data and configuration settings.
47+
48+
### Step 1: Collect performance metrics, events, and configuration information
49+
50+
To help identify issues, collect the following data:
51+
52+
- A detailed description of the storage space configuration, including the resiliency type and drive details. Use the following questions as guidelines:
53+
- What type of storage space configuration is being used? For example, simple, mirror, or parity?
54+
- What's the size of the storage pool, and how many drives are included?
55+
- What are the current firmware and driver versions for the drives in the storage pool?
56+
- Are all drives in the pool of the same type, capacity, and speed?
57+
- Were any recent changes made to the system, such as software updates, hardware replacements, or new applications installed?
58+
59+
- Performance metrics, such as disk queue length and throughput. You can use tools such as Performance Monitor or Task Manager to collect this information. You can also review performance history information, as described in [Performance history for Storage Spaces Direct](/windows-server/storage/storage-spaces/performance-history).
60+
- Logs from the Event Viewer, specifically under the **System** and **Storage Spaces** categories. Include:
61+
- Any error messages or warnings in the Event Viewer that are related to S2D, storage pools, or disk operations.
62+
- Screenshots or photos of any error messages or alerts.
63+
64+
- The output of the following Windows PowerShell commands:
65+
66+
```powershell
67+
Get-StoragePool | Get-PhysicalDisk | Select-Object DeviceID, MediaType, Size, HealthStatus
68+
Get-VirtualDisk | Select-Object FriendlyName, ResiliencySettingName, OperationalStatus
69+
Get-StoragePool | Get-StorageSubSystem | Select-Object FriendlyName, HealthStatus
70+
```
71+
72+
### Step 2: Verify the Storage Space configuration
73+
74+
1. Make sure that all the drives in the pool are of the same type (for example, all solid-state drives (SSDs) or all hard disk drives (HDDs)). Also make sure that the drives have similar performance characteristics.
75+
1. Verify that the storage space type (simple, mirror, or parity) is appropriate for the workload. For more information about storage space types in S2D, see [Deep Dive: Volumes in Storage Spaces Direct](https://techcommunity.microsoft.com/blog/filecab/deep-dive-volumes-in-storage-spaces-direct/425807).
76+
1. If you make any changes during this step, test the system's performance, and compare it to earlier measurements.
77+
78+
### Step 3: Review the Server Manager and the event logs for potential issues
79+
80+
1. In Server Manager (or by using Windows PowerShell) check the health and operational states of the storage pools and other S2D components. For more information, see [Troubleshoot Storage Spaces and Storage Spaces Direct health and operational states](/windows-server/storage/storage-spaces/storage-spaces-states).
81+
1. In Event Viewer, review the logs for Storage Spaces Direct warnings or errors.
82+
1. If you identify any issues (such as failing drives or subsystem errors), remediate them, as appropriate.
83+
1. If you make any changes during this step, test the system's performance, and compare it to earlier measurements.
84+
85+
### Step 4: Make sure that the drivers and firmware for the drives are up to date
86+
87+
1. Verify that all drives have the latest firmware installed.
88+
1. Update the storage controller and drive drivers to the most recent versions that the manufacturer supports.
89+
1. If you make any changes during this step, test the system's performance, and compare it to earlier measurements.
90+
91+
### Step 5: Run storage maintenance tasks
92+
93+
1. To optimize the storage pool, run the following cmdlet at a PowerShell command prompt:
94+
95+
```powershell
96+
Optimize-StoragePool -FriendlyName <StoragePoolName>
97+
```
98+
99+
> [!NOTE]
100+
> In this cmdlet, \<StoragePoolName> is the name of the storage pool. If you have to identify the storage pool name, run `Get-StoragePool`.
101+
102+
1. If the storage pool uses HDD drives, manually defragment the drives.
103+
104+
> [!WARNING]
105+
> Don't perform this step if the storage pool uses SSD drives. Defragmentation can reduce the lifespan and performance of SSD drives.
106+
107+
1. Test the system's performance, and compare it to earlier measurements.
108+
109+
### Step 6: Identify resource usage issues
110+
111+
1. Use monitoring tools such as Task Manager, Performance Monitor, or Resource Monitor to identify bottlenecks in CPU, memory, or disk usage. For more information about how to use these tools, see [Scenario guide: Troubleshoot performance problems in Windows](../performance/troubleshoot-performance-problems-in-windows.md).
112+
1. Close any unnecessary applications or processes that consume system resources.
113+
1. If you make any changes during this step, test the system's performance, and compare it to earlier measurements.
114+
115+
### Step 7: Rebuild or re-create the storage space
116+
117+
If you followed the previous steps, and the S2D performance didn't improve sufficiently, consider rebuilding the storage space. Follow these steps:
118+
119+
1. Make sure that all backups are current and available.
120+
1. Delete the existing storage space.
121+
1. Re-create the storage space. Use optimal settings.
122+
1. Restore the data to the new storage space.
123+
124+
## Preventing future performance issues
125+
126+
To avoid future S2D performance issues, consider the following guidelines and best practices:
127+
128+
- Make sure that a single storage pool uses drives that have similar performance, capacity, and media type. For more information about hardware requirements, see [Storage Spaces Direct hardware requirements in Windows Server](/windows-server/storage/storage-spaces/storage-spaces-direct-hardware-requirements).
129+
- Regularly update firmware and drivers to the latest manufacturer-recommended versions.
130+
- Monitor storage pool health by using the `Get-StoragePool` and `Get-PhysicalDisk` cmdlets.
131+
- To prevent data loss if a drive fails, schedule regular backups.
132+
- Unless you're implementing tiered storage, don't mix SSD and HDD drives in the same storage pool.

support/windows-server/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -778,6 +778,8 @@ items:
778778
href: ./backup-and-storage/extend-stand-alone-tiered-storage-spaces.md
779779
- name: Manage disks in standalone Storage Spaces
780780
href: ./backup-and-storage/manage-disks-standalone-storage-spaces.md
781+
- name: Troubleshoot performance issues in Storage Spaces Direct
782+
href: ./backup-and-storage/troubleshoot-performance-issues-storage-spaces-direct.md
781783
- name: System Restore or resetting your computer
782784
items:
783785
- name: How to restore a Windows 7 installation

0 commit comments

Comments
 (0)