【问题标题】:Adding SSD data disk to Azure classic VM and moving PSQL database files to it将 SSD 数据磁盘添加到 Azure 经典 VM 并将 PSQL 数据库文件移动到其中
【发布时间】:2017-08-10 01:57:54
【问题描述】:

我使用 Azure 基础架构来托管 Django/Postgresql 应用程序。应用程序和数据库位于单独的 VM 上。每个 VM 都有 Ubuntu 14.04,它是 classic 风格。

我一直在使用操作系统磁盘来存储我的数据库(容量:30GB)。在我的数据库很小的早期,这很好。但是现在,磁盘空间不足已成为真正的危险。

我可以通过哪些步骤为我的数据库虚拟机获取更多存储空间。此外,我需要执行哪些步骤才能将 postgresql 数据库移动到这个新采购的存储空间?

我想避免停机或数据丢失,并且作为一个意外的 DBA,我会喜欢用初学者可以理解的术语解释的防呆步骤。提前致谢!


更新:

挂载磁盘后,步骤如下:

编辑/etc/postgresql/9.3/main/postgresql.conf 中的data_directory 以指向新位置(例如/home/data/postgresql/9.3/main

通过sudo rsync -av /var/lib/postgresql /home/data将PG的数据目录内容传输到/home/data

通过sudo /etc/init.d/postgresql restart重启postgtesql

注意:如果附加存储安装在/home/data 以外的其他位置,请相应更改步骤

【问题讨论】:

  • 您要进行数据迁移程序?可能需要查看 Postgresl 文档。至于安装 SSD(高级)数据磁盘:您需要一个 xS-series VM (DS、GS 等)-否则您只能安装标准存储磁盘。如果需要 SSD,您需要迁移到不同的 VM SKU。这将更适合 ServerFault,因为它不是编程问题。
  • 您好,您的虚拟机大小是多少?只有 S 系列 VM 可以装载 SSD 数据。如果你的VM不是S系列VM(如DS)VM,你最好创建一个镜像,并使用新的Portal创建一个S系列VM。但它需要停机。
  • @Walter-MSFT:我的虚拟机是 DS 系列虚拟机。
  • @HassanBaig 如果你的VM是Ds系列,你可以在你的经典VM中添加SSD数据盘,请参考我的回答。
  • @HassanBaig 创建Linux文件系统时正常输出。

标签: azure ubuntu azure-storage azure-virtual-machine


【解决方案1】:

目前只有 S 系列的虚拟机(如 Ds、FS)可以添加 SSD 磁盘。您可以将 SSD 磁盘附加到新 Azure 门户上的经典 VM。请参考以下步骤:

1.创建一个新的经典存储帐户(Premium)。如果您有高级存储帐户,则无法创建它。

2.在新的 Azure 门户上附加 SSD 磁盘。

3.Type:Select Premium (SSD)位置Select your storage account

连接新数据磁盘后,您需要创建文件系统并挂载该磁盘。假设您使用的是ext4 文件系统,以下是如何继续:

sudo mkfs.ext4 /dev/sdc
mkdir -p /home/data
mount /dev/sdc /home/data
df -h            #to view the attached disk

您显然也可以将它安装到与/home/data 不同的位置。

接下来,为确保在系统重新启动时重新安装数据驱动器,请执行以下操作:

sudo -i blkid #get uuid for the relevant disk just added
sudo nano /etc/fstab

然后在文件末尾添加以下内容:

UUID=<uuid>  /home/data  ext4  defaults,nofail  1 2

例如可能是

UUID=753a5b1b-4461-74d5-f6e3-27e9ff3b6c56  /home/data  ext4  defaults,nofail  1 2

请注意,/home/data 是您将磁盘安装到的驱动器,因此请随意更改。

如需完整参考,请访问:https://docs.microsoft.com/en-us/azure/virtual-machines/virtual-machines-linux-classic-attach-disk#initialize-a-new-data-disk-in-linux

【讨论】:

  • 你可以选择其中之一。
  • 将 SSD 磁盘挂载到 VM 后,您可以在磁盘上创建文件系统并将数据迁移到磁盘。
  • 好的,你可以尝试使用mkfs.ext4 /dev/sdc创建文件系统,然后你可以mount它。
  • mkdir -p /home/testmount /dev/sdc /home/test。你可以先做个测试。
  • 只需umount /home/testmount /dev/sdc /home/data
【解决方案2】:

首先,尝试将您的 classic VM 迁移到 ARM VM。迁移步骤如下; https://docs.microsoft.com/en-us/azure/virtual-machines/virtual-machines-windows-ps-migration-classic-resource-manager

这些步骤看起来很长,但没有那么困难或痛苦。将经典迁移到 ARM 是可选的,但强烈建议这样做,因为它提供了更精细和灵活的资源管理,包括安全配置。

然后,(1) 向您的虚拟机添加额外的磁盘,(2) 将安装的磁盘设置到您的数据库存储。

(1) 向您的虚拟机添加额外的磁盘:不需要停机; https://docs.microsoft.com/en-us/azure/virtual-machines/virtual-machines-linux-attach-disk-portal?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json

(2) 设置 postgreSQL 不在 Azure 相关问题中,所以我将省略答案。

【讨论】:

    猜你喜欢
    • 2018-07-11
    • 2021-06-12
    • 2018-01-16
    • 2015-01-17
    • 2019-01-16
    • 2020-04-29
    • 2018-09-28
    • 1970-01-01
    • 2020-06-05
    相关资源
    最近更新 更多