为运行SQL的VM在Azure中对磁盘条带化的磁盘阵列进行地形化

时间:2020-06-24 07:37:56

标签: terraform terraform-provider-azure

为弄清主题,这是关于Terraform Infrastructure作为代码和Azure分支代码,而不是Windows Server / SQL。

通过阅读ms文档并使用Azure门户GUI进行确认。可以使用多个数据磁盘为SQL日志,数据和临时文件创建一个虚拟驱动器。

与每个驱动器使用一个大型超高级SSD相比,这提供了更好的IOPS和更低的成本。

但是,我正在努力使terraform代码能够工作,该代码可以分配各个磁盘并将它们条带化。

我的代码创建了VM,还创建了所需数量的数据磁盘,并使用指定的lun编号将它们附加到VM。

根据调查,您需要附加一个Azure VM扩展,该扩展调用通过各种参数调用SQL代理。文档缺少正确的参数,因此建议您在门户中创建一个参数,并从此处以手臂代码作为模板。

这是事情开始失败的地方。我可以看到VM扩展已创建,可以从门户网站看到它的其他部分(例如维护窗口和工作负载类型类型)已正确设置,但是它不想将磁盘合并到跨接驱动器中。它们仍显示为操作系统中未分配的单个磁盘。

因此,我假设我在涵盖磁盘配置的JSON中有问题。

下面列出了我用于添加SQL代理的terraform代码。为简便起见,我没有包括完整的TF代码,但假定VM创建正常,并且列出的lun处连接了数据磁盘。任何帮助将不胜感激。

resource "azurerm_virtual_machine_extension" "SqlIaaSAgent-sql1" {
  name                 = "${azurerm_windows_virtual_machine.sql1.name}-SqlIaaSAgent-vmext"
  virtual_machine_id = azurerm_windows_virtual_machine.sql1.id
  publisher            = "Microsoft.SqlServer.Management"
  type                 = "SqlIaaSAgent"
  type_handler_version = "2.0"
  auto_upgrade_minor_version = true

  settings = <<SETTINGS
  {
    "AutoTelemetrySettings": {
      "Region": "${var.location}"
    },
    "AutoPatchingSettings": {
      "PatchCategory": "WindowsMandatoryUpdates",
      "Enable": true,
      "DayOfWeek": "Sunday",
      "MaintenanceWindowStartingHour": "2",
      "MaintenanceWindowDuration": "60"
    },
    "KeyVaultCredentialSettings": {
      "Enable": false,
      "CredentialName": ""
    },
    "ServerConfigurationsManagementSettings": {
      "SQLConnectivityUpdateSettings": {
          "ConnectivityType": "Private",
          "Port": "1433"
      },
      "SQLWorkloadTypeUpdateSettings": {
          "SQLWorkloadType": "GENERAL"
      },
      "DiskConfigurationType": "NEW",
      "SQLDataSettings": {
            "LUNs": "[10,11,12]",
            "DefaultFilePath": "S:\\SQLData"
      },
      "SQLLogSettings": {
            "Luns": "[20,21,22]",
            "DefaultFilePath": "H:\\SQLLog"
      },
      "SQLTempDbSettings": {
          "Luns": "[28,29]",
          "DefaultFilePath": "T:\\SQLTmp"
      },
      "AdditionalFeaturesServerConfigurations": {
          "IsRServicesEnabled": "false"
      }
    }
  }
SETTINGS
}

0 个答案:

没有答案