在Azure上创建了虚拟机之后,我们在一些情况下会需要添加更多的数据磁盘来存储持久化数据,本文介绍如何快速的在Azure Linux的虚拟机上添加数据磁盘并初始化:


  1. 登陆Azure的管理界面,并创建虚拟机,本文使用CentOS 6.5作为示例操作系统,其他Linux操作系统类似

    Azure上如何在Linux下挂载数据磁盘

  2. 我们先使用SSH登录到改Linux操作系统,检查下当前系统的磁盘状态:

    Azure上如何在Linux下挂载数据磁盘我们可以看到,目前的Linux系统下只有/sda和/sdb设备,其中/dev/sdb1是系统自动分配的临时磁盘,请不要将重要数据存储在上面,重要的数据需要存储在新建的持久化存储中。


  3. 在Azure的管理门户上,选择你要添加磁盘的虚拟机,选择“仪表板”,在底部的菜单栏选择“附加”-》“附加空磁盘”来添加新的数据盘:

    Azure上如何在Linux下挂载数据磁盘

  4. 在弹出的对话框中,选择你要添加的磁盘大小,单个磁盘最大不超过1T,根据虚拟机大小不同,最大可添加的磁盘书也不相同,具体可以参考官方文档(https://msdn.microsoft.com/zh-cn/library/dn197896.aspx  ),本处为了测试,设为50G:

    Azure上如何在Linux下挂载数据磁盘


  5. 在界面添加完磁盘以后,你可以看到以下信息,系统多了一个数据盘:

    Azure上如何在Linux下挂载数据磁盘

  6. 使用ssh登陆到Linux虚拟机,剩下的步骤都要通过Linux命令行完成。首先检查目前的系统硬件变化和当前的设备变化,使用如下命令检查:

    [[email protected] ~]$ sudo tail -f /var/log/messages

    [[email protected] ~]$ ls -l /dev/sd*

    Azure上如何在Linux下挂载数据磁盘

  7. 可以看到系统中实际上已经添加了一个sdc的设备,这个设备就新添加的系统盘,但没有分区也没有格式化,就像你挂了一块硬盘到一个服务器上是一样的,所以第一步我们用fdisk来做分区:

    $ sudo fdisk /dev/sdc

    Azure上如何在Linux下挂载数据磁盘

在它提示符下输入N,建立新的分区,P选择primary partition,w将相关结果写入分区表。

8. 将新加载的硬盘分区后,我们需要将新建立的分区格式化城系统可以识别的文件系统:

$ sudo mkfs -t ext4 /dev/sdc1

Azure上如何在Linux下挂载数据磁盘

9.建立一个新的目录,用来挂载新的分区,在本例中使用/data,然后将新的分区挂载到该目录下:

$ sudo mkdir /data

$ sudo mount /dev/sdc1 /data

Azure上如何在Linux下挂载数据磁盘

10.到目前为止,你已经可以正常使用新加载的数据盘了,加载目录在/data,然而有个问题是,目前是临时加载硬盘,一旦系统重启,加载信息就会丢失,在Linux下,磁盘加载信息会保存在fstab文件中,系统会自动加载该文件中的分区,而在加载磁盘的时候,我们一般使用UUID来作为标示符:

$ sudo -i blkid

$ sudo vi /etc/fstab

Azure上如何在Linux下挂载数据磁盘

Azure上如何在Linux下挂载数据磁盘


11. 最后一件事情,目前所创建的/data,属于root用户,就意味着其他用户无法使用该目录,如果默认用户azureuser想要读写该目录怎么办呢?可以在该目录下创建一个子目录,使用Linux命令修改owner属性,然后就可以使用了:

Azure上如何在Linux下挂载数据磁盘