You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Lsv3虚拟机本地NVME盘能否用于SQL TempDB及自动初始化?

Azure存储优化型VM NVMe临时磁盘的自动挂载与使用场景

问题背景

我使用的存储优化型VM附带1.8TB NVMe临时磁盘,这类磁盘在VM停止/解除分配时会丢失数据。目前遇到两个核心问题:

  • 每次VM重启后,该NVMe磁盘需要手动初始化、格式化并分配驱动器号,无法像另一块SSD临时磁盘那样重置后保持可用状态。我希望用它缓解100多个数据库竞争TempDB空间的压力,但需要在SqlServer.exe启动前完成自动挂载操作。
  • 除了TempDB场景外,想了解这类NVMe临时磁盘还有哪些实用的使用场景。

我曾做过测试:启动时手动初始化磁盘、创建NTFS文件系统并写入小文件,同时在SSD临时磁盘做相同操作;停止VM并调整为等效Lasv3机型后重启,发现SSD临时磁盘正常可用,但NVMe磁盘需要重新初始化。


解决方案:NVMe磁盘自动初始化与挂载(SQL Server启动前完成)

要在SQL Server启动前完成NVMe磁盘的初始化、格式化和挂载,可通过以下步骤实现:

1. 编写PowerShell自动操作脚本

检测未初始化的NVMe磁盘并完成全流程操作,示例脚本如下:

# 筛选未初始化的1.8TB级NVMe磁盘
$targetDisk = Get-Disk | Where-Object {
    $_.OperationalStatus -eq 'Offline' -and
    $_.MediaType -eq 'SSD' -and
    [math]::Round($_.Size / 1TB, 1) -eq 1.8
}

if ($targetDisk) {
    # 初始化磁盘为GPT格式
    Initialize-Disk -Number $targetDisk.Number -PartitionStyle GPT -Confirm:$false
    # 创建分区并分配驱动器号
    $newPartition = New-Partition -DiskNumber $targetDisk.Number -UseMaximumSize -AssignDriveLetter -Confirm:$false
    # 格式化为NTFS文件系统
    Format-Volume -DriveLetter $newPartition.DriveLetter -FileSystem NTFS -NewFileSystemLabel "NVMeTemp" -Confirm:$false
}

2. 配置任务计划确保SQL Server启动前执行脚本

  • 将脚本保存为Initialize-NVMeDisk.ps1,放在VM本地持久化磁盘(如C:\Scripts目录)。
  • 创建Windows任务计划:
    • 触发器设置为「系统启动时」。
    • 操作设置为运行命令:powershell.exe -ExecutionPolicy Bypass -File C:\Scripts\Initialize-NVMeDisk.ps1。
    • 任务权限选择「本地系统账户」,取消勾选「只有在计算机使用交流电源时才启动此任务」。
    • 将SQL Server服务的启动类型改为「自动(延迟启动)」,或在任务计划中设置「任务完成后启动SQL Server服务」,确保磁盘操作优先完成。

NVMe临时磁盘的其他使用场景

  • 应用缓存层:为Redis本地缓存、应用临时数据缓存提供存储,利用NVMe低延迟特性加速高频读写操作。
  • 临时计算存储:用于大数据批量处理、ETL临时数据存储等一次性计算任务,任务完成后无需保留数据。
  • 日志临时存储:将应用调试日志、中间运行日志写入NVMe磁盘,避免占用持久化磁盘IO,日志定期自动清理。
  • CI/CD构建缓存:存储构建依赖包、编译中间文件,加速DevOps构建流程,构建完成后可直接丢弃缓存。

内容的提问来源于stack exchange,提问作者Mitz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 16:02:42