记得以前好像写过一篇Azure虚拟机添加磁盘的博文,今天再写这个是因为有了一些更新。
在Azure种新建一台虚拟机在默认情况下只有一块操作系统磁盘和一块临时磁盘。临时磁盘不是永久化的磁盘,它的读写速度要略高于系统磁盘或者普通的附加磁盘,所以通常用于存放一些临时数据,进行swap分区或者虚拟内存的配置,或者存放一些安装程序来使用。注意:临时磁盘上的数据在虚拟机关闭重新开机后数据会丢失。
系统磁盘同样不适用于存放应用的数据,原因是系统磁盘空间本身不大,对于Windows虚拟机而言,默认的系统磁盘只有127G,对于Linux而言,则只有30G。所以对于后期数据可能大量增长的用户来说,系统磁盘的空间实在太小了。因此,为了扩展虚拟机的磁盘空间,可以通过向虚拟机附加新的数据磁盘来实现。不同的虚拟机型号最多可附加的数据磁盘的数量是不同的,可以通过公式来计算:虚拟机最多可附加的磁盘数量=虚拟机CPU核数x2.例如标准A1虚拟机是1核,最多可以附加2块数据磁盘。
1、Windows虚拟机附加数据磁盘
首先登录倒Azure管理门户种,选中要附加磁盘的虚拟机,切换到虚机仪表板,选中磁盘,如下图
如何为Azure虚拟机添加数据磁盘
点击添加数据磁盘

如何为Azure虚拟机添加数据磁盘
创建新磁盘

如何为Azure虚拟机添加数据磁盘
输入磁盘名称,资源组选择试用现有项然后选择与虚拟机在同一资源组,账户类型选择标准HDD(这个根据实际需要进行选择),源选择空磁盘,大小输入所需的大小,然后点击创建
如何为Azure虚拟机添加数据磁盘
点击保存
如何为Azure虚拟机添加数据磁盘
完成操作后,登录到虚拟机,打开磁盘管理界面,会自动识别出这块刚刚添加的磁盘,如下图
如何为Azure虚拟机添加数据磁盘
创建卷
如何为Azure虚拟机添加数据磁盘
按着向导中的提示一次配置卷的大小、盘符、文件系统类型等,即可完成卷的创建。创建后会提示要对磁盘进行格式化,完成格式化后,就能够在系统中看到这块新的卷了,如下图
如何为Azure虚拟机添加数据磁盘
2、Linux虚拟机附加数据磁盘
要为Linux虚拟机附加数据磁盘,同样要在Azure管理界面先附加一块新的磁盘。附加完成后,登录虚拟机,试用fdisk -l查看是否能够正常识别到未分区的设备。如下图,从图中红框中的信息可以看到识别到了新添加的磁盘sdc
如何为Azure虚拟机添加数据磁盘
成功识别后,使用fdisk对设备进行分区,见下图
如何为Azure虚拟机添加数据磁盘
写入分区后,使用mkfs.ext4为刚刚建立好的分区/dev/sdc建立ext4文件系统,见下图
如何为Azure虚拟机添加数据磁盘
然后创建一个挂载目录,以便将创建好的文件系统的分区挂载到目录上
如何为Azure虚拟机添加数据磁盘
使用mount命令挂载之后,用df -h命令查看挂载情况
如何为Azure虚拟机添加数据磁盘
对于Linux虚拟机来说,如果洗碗每次系统重启后,分区都能自动挂载,有两种方法可以实现。
方法一:在/etc/fstab文件中添加一行挂载项,
添加之前,先用blkid /dev/sdc查看分区的UUID,如下图
如何为Azure虚拟机添加数据磁盘
使用vi /etc/fstab 命令编辑fstab文件,在文件中添加一行UUID的信息,如下图
如何为Azure虚拟机添加数据磁盘
这种方法存在一个风险,就是在这个分区文件系统出现异常的情况下,可能由于无法挂载异常分区引起虚拟机启动失败。要避免这个问题,可以通过在/etc/rc.local种添加挂载命令来实现虚拟机开机后挂载分区,由于/etc/rc.local的脚本事在虚拟机启动完成后才执行,所以不会由于分区问题影响虚拟机的启动过程。
这就是方法二:
如何为Azure虚拟机添加数据磁盘
不过在/etc/rc.local种进行挂载也有一些东西需要注意,如果系统种某些应用或者服务依赖于这里挂载的分区,例如数据库文件存储在这个分区种,那么这些应用或者服务一定要在分区挂载后启动。