如何使用 ntdsutil 离线压缩 Active Directory 数据库

中贸 方案 80 信誉分
2026-08-28T02:34:35.4233333+00:00

删除约 50% 的域对象后,Active Directory 数据库(ntds.dit)仍然保持在 500GB 左右,导致目录查询速度明显变慢。 这种情况下,如何使用 ntdsutil 对 ntds.dit 执行离线数据库碎片整理,以回收未使用的磁盘空间? 在执行离线压缩之前,需要停止哪些 Active Directory Domain Services 相关服务? 同时,应该如何确保操作过程安全,并避免影响域控制器上的 Active Directory 数据完整性 ?

Windows 商业版 | Windows 365 企业版
0 个注释 无注释

1 个答案

排序依据: 非常有帮助
  1. Brian Huynh 3,815 信誉分 Microsoft 外部员工
    2026-08-28T07:17:52.55+00:00

    Hello XieJie,感謝您在 Microsoft Q&A 社群發帖。

    在 Windows Server S2D 部署中,RoCE v2 RDMA 依賴於無損乙太網絡(Lossless Ethernet)環境,這需要主機端與網絡交換機端嚴格配合 Priority-based Flow Control (PFC, IEEE 802.1Qbb) 與 Enhanced Transmission Selection (ETS, IEEE 802.1Qaz)。當 NIC 驅動程式更新、系統組態重置或網絡介面卡解除綁定時,服務端 Data-Center-Bridging (DCB) 的 QoS 策略可能失效或取消套用。一旦 SMB Direct 檢測到封包遺失或 PFC 優先權不匹配,為了維持儲存數據傳輸的完整性,系統會自動將傳輸層降級為傳統 TCP/IP,這會引發顯著的 CPU 負載與傳輸延遲,進而造成 S2D 重新同步速率急劇下降。

    您可參考以下步驟,重新配置並驗證主機 NIC 上的 PFC、ETS 及 RDMA 設定:

    標準修復方案:重置與啟用 DCB (PFC/ETS) 與 RDMA 配置

    請在受影響的 S2D 節點上開啟高權限的 PowerShell,執行以下指令重新配置 DCB 與 RDMA 策略:

    1. 確保系統已安裝 Data-Center-Bridging 功能:
    Install-WindowsFeature Data-Center-Bridging
    
    1. 重新設定 SMB Direct 的 QoS 策略(通常將 Priority 3 劃分為儲存專用無損通道):
    # 清除舊有 Qos 策略
    Remove-NetQosPolicy -Confirm:$false -ErrorAction SilentlyContinue
     
    # 新增 SMB Direct QoS 策略並指定 802.1p 優先權值為 3
    New-NetQosPolicy "SMBDirect" -NetDirectPortMatchCondition 445 -PriorityValue8021Action 3
     
    # 啟用 Priority 3 的 PFC 流量控制,並關閉其他優先權
    Enable-NetQosFlowControl -Priority 3
    Disable-NetQosFlowControl -Priority 0,1,2,4,5,6,7
     
    # 設置 ETS 流量類別(配置頻寬分配,例如給予 50% 預留頻寬)
    New-NetQosTrafficClass "SMBDirect" -Priority 3 -BandwidthPercentage 50 -Algorithm ETS
    
    1. 重新將 QoS 策略綁定至儲存實體網卡,並重新啟用 RDMA:
    # 請將 "pNIC1", "pNIC2" 替換為您的實體網卡名稱
    Enable-NetAdapterQos -Name "pNIC1", "pNIC2"
    Enable-NetAdapterRdma -Name "pNIC1", "pNIC2"
    

    進階與疑難排解方案:SET 虛擬交換機與網卡驅動強制設定

    若您的環境採用 Switch Embedded Teaming (SET) 虛擬交換機:

    1. 檢查並確保主機虛擬網卡 (vNIC) 與實體網卡皆已開啟 RDMA 支援:
    Enable-NetAdapterRdma -Name "vSMB1", "vSMB2"
    Set-VMNetworkAdapterRdma -VMNetworkAdapterName "vSMB1" -ManagementOS $true -RdmaWeight 100
    Set-VMNetworkAdapterRdma -VMNetworkAdapterName "vSMB2" -ManagementOS $true -RdmaWeight 100
    
    1. 部分網卡廠商(如 Mellanox/Nvidia 或 Broadcom)在驅動程式重置後可能恢復預設設定,您可以在進階屬性中強制將 RoCE 版本設定為 RoCE v2
    Set-NetAdapterAdvancedProperty -Name "pNIC1" -DisplayName "RoCE Version" -DisplayValue "RoCE v2"
    Set-NetAdapterAdvancedProperty -Name "pNIC2" -DisplayName "RoCE Version" -DisplayValue "RoCE v2"
    

    官方 Microsoft Documentation 參考連結:

    此答案是否有帮助?

    0 个注释 无注释

你的答案

提问者可以将答案标记为“已接受”,审查方可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。