将SSD数据磁盘添加到Azure经典VM并将PSQL数据库文件移动到它

时间:2017-03-18 14:35:13

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

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

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

通过什么步骤,我可以为数据库VM获得更多存储空间。此外,我需要执行哪些步骤来将postgresql DB移动到这个新购买的存储空间?

我想避免停机或数据丢失,并且成为偶然的DBA,会喜欢以初学者可理解的术语解释的万无一失的步骤。提前致谢!

更新:

安装磁盘后,步骤需要:

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

通过/home/data

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

通过sudo /etc/init.d/postgresql restart

重启posgtesql

注意:如果附加存储安装在/home/data

以外的其他位置,请相应地更改步骤

2 个答案:

答案 0 :(得分:2)

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

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

enter image description here

2.在新的Azure门户上安装SSD磁盘。

enter image description here

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

enter image description here

连接新数据磁盘后,您需要创建文件系统并装入磁盘。假设您正在使用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

E.g。它可能是

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

答案 1 :(得分:0)

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

这些步骤似乎很长,但如此困难或痛苦。将classic迁移到ARM是可选的,但强烈建议使用它,因为它提供了更加宏大和灵活的资源管理,包括安全配置。

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

(1)向VM添加额外的磁盘:不需要停机时间; 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相关问题中,所以我将省略答案。