使用 Terraform 扩展磁盘 SQL Server 虚拟机

问题描述

我正在尝试使用 terraform 扩展 sql Server“数据”/“日志”磁盘。

我们目前使用 terraform 部署以下(一些用于测试部署的片段),它运行良好并且完美地部署了机器:

resource "azurerm_windows_virtual_machine" "vm_sql" {
  name                = "vm-...mssql01"
  computer_name       = "vm-mssql01"
  resource_group_name = REDACTED
  location            = REDACTED
  size                = "Standard_D4as_v4"
  admin_username      = REDACTED
  admin_password      = REDACTED
  license_type        = "Windows_Server"
  network_interface_ids = [
etc ...
}

resource "azurerm_managed_disk" "data_disk" {
  name                 = "dsk-${azurerm_windows_virtual_machine.vm_sql.name}-data"
  location             = REDACTED
  resource_group_name  = REDACTED
  storage_account_type = "StandardSSD_lrs"
  create_option        = "Empty"
  disk_size_gb         = "512"
}

resource "azurerm_virtual_machine_data_disk_attachment" "data-disk" {
  managed_disk_id    = azurerm_managed_disk.data_disk.id
  virtual_machine_id = azurerm_windows_virtual_machine.vm_sql.id
  lun                = "2"
  caching            = "ReadWrite"
}

resource "azurerm_mssql_virtual_machine" "sql_setup" {
 *all other parameters,shorted for readability*
   storage_configuration {
    disk_type             = "NEW"
    storage_workload_type = "GENERAL"
    data_settings {
      default_file_path = "F:\\data"
      luns              = [2]
    }
    log_settings {
      default_file_path = "F:\\log"
      luns              = [2]
    } 

     temp_db_settings {
      default_file_path = "D:\\tempdb"
      luns              = []
    }

当然,我们可以使用Portal来扩展磁盘,这会增加一个额外的磁盘,并将其添加到VM内的存储池中,但当然,我的terraform代码不能再次使用。

我尝试了以下方法

  1. 添加并附加一个额外的托管磁盘 (lun 3) 之后,我尝试了以下 API 中的以下错误
   storage_configuration {
    disk_type             = "EXTEND"
    storage_workload_type = "GENERAL"
    data_settings {
      default_file_path = "F:\\data"
      luns              = [2,3]
    }
    log_settings {
      default_file_path = "F:\\log"
      luns              = [2,3]
    } 

     temp_db_settings {
      default_file_path = "D:\\tempdb"
      luns              = []
    }

错误 InvalidExtendPayload" Message="无效的 sql 存储设置扩展有效负载。一次只支持扩展一个驱动器。

    storage_configuration {
    disk_type             = "EXTEND"
    storage_workload_type = "GENERAL"
    data_settings {
      default_file_path = "F:\\data"
      luns              = [3]

    }
    } 

创建 sql 虚拟机时出错(sql 虚拟机名称“vm-iss-sand-mssql01”/资源组“rg-iss-sand-database”):sqlvirtualmachine.sqlVirtualMachinesClient#CreateOrUpdate:发送请求失败:StatusCode=0 - - 原始错误:Code="InvalidArgument" Message="无效参数 'DefaultFilePath'。"

我尝试了许多选项和组合,但最终都没有扩展 VM 和 sql 配置。 我开始认为这在 terraform 中是不可能的。 我使用最新的 azurerm 提供程序等。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...