【问题标题】:terraform: azure storage_data_disk lost after rebootterraform:天蓝色 storage_data_disk 重新启动后丢失
【发布时间】:2020-08-23 04:33:44
【问题描述】:

我使用下面的模板在 Azure 中使用 terraform 创建了一个 VM。数据盘已创建并在配置阶段使用:

/dev/sdb1       6.9G   32M  6.5G   1% /mnt
/dev/sdc1        25G  3.7G   20G  16% /datadrive
tmpfs           341M     0  341M   0% /run/user/1000

重新启动我的VM后,data_disk消失了,我在VM创建中做错了什么,我需要持久化data_disk。

/dev/sdb1       6.9G   32M  6.5G   1% /mnt
tmpfs           341M     0  341M   0% /run/user/1000

地形模板

resource "azurerm_managed_disk" "data-disk" {
  name                 = "datadisk-${random_string.resource-id.result}"
  location             = data.azurerm_resource_group.azure-resource-rg.location
  resource_group_name  = data.azurerm_resource_group.azure-resource-rg.name
  storage_account_type = "Standard_LRS"
  create_option        = "Empty"
  disk_size_gb         = "128"
}


# Create virtual machine
resource "azurerm_virtual_machine" "azure-vm" {
    name                  = "${var.prefix}-${random_string.resource-id.result}"
    location              = (var.location)

    (...)

    storage_os_disk {
        name              = "${var.prefix}-${random_string.resource-id.result}-disk"
        caching           = "ReadWrite"
        create_option     = "FromImage"
        managed_disk_type = "Premium_LRS"
    }

    storage_data_disk {
        name            = azurerm_managed_disk.data-disk.name
        managed_disk_id = azurerm_managed_disk.data-disk.id
        create_option   = "Attach"
        lun             = 0
        disk_size_gb    = azurerm_managed_disk.data-disk.disk_size_gb
    }

    storage_image_reference {
        publisher = (var.os-publisher)
        offer     = (var.os-offer)
        sku       = (var.os-sku)
        version   = (var.os-version)
    }

    (...)

}

编辑

挂载数据盘的脚本:

mountpoint /datadrive || echo -e "o\nn\np\n\n\n\n\nt\nfd\nw\n" | sudo fdisk "/dev/sdc"
sudo mkdir /datadrive
sudo mkfs -t ext4 /dev/sdc1
sudo mount /dev/sdc1 /datadrive
sudo -i blkid

【问题讨论】:

  • 您是否检查过磁盘是否仍在 Azure 门户中?我假设磁盘未配置为自动挂载。您能否检查文件 /etc/fstab 是否包含此磁盘的条目?
  • 重启虚拟机后磁盘还是那个。我添加了我用来挂载磁盘的脚本,你能帮帮我吗?

标签: linux azure terraform


【解决方案1】:

为确保驱动器在重新启动后自动重新安装,必须将其添加到/etc/fstab 文件中。还强烈建议在 /etc/fstab 中使用 UUID(通用唯一标识符)来指代驱动器,而不仅仅是设备名称(例如 /dev/sdc1)。

要通过sudo -i blkid 查找新的磁盘UUID,然后将以下行添加到/etc/fstab 文件的末尾:

UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive   ext4   defaults,nofail   1   2

注意

不正确地编辑 /etc/fstab 文件可能会导致无法启动 系统。如果不确定,请参阅发行版的文档 有关如何正确编辑此文件的信息。也推荐 /etc/fstab 文件的备份在编辑之前创建。

阅读https://docs.microsoft.com/en-us/azure/virtual-machines/linux/attach-disk-portal#mount-the-disk

【讨论】:

  • 谢谢,我没有看过这部分教程
猜你喜欢
  • 2014-07-01
  • 1970-01-01
  • 2023-03-29
  • 2013-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-16
  • 2019-03-27
相关资源
最近更新 更多