Azure虚拟机挂载数据磁盘

在Microsoft的Azure中新建一台虚拟机在默认情况下只有一块操作系统磁盘和一块临时磁盘。临时磁盘不是永久化的磁盘,它的读写速度要略高于系统磁盘或者普通的附加磁盘,所以通常用于存放一些临时数据,进行swap分区或者虚拟内存的配置,或者存放一些安装程序来使用。注意:临时磁盘上的数据在虚拟机关闭重新开机后数据会丢失,默认Windows为D盘,Linux为/dev/sdb1。
系统磁盘同样不适用于存放应用的数据,原因是系统磁盘空间本身不大,对于Windows虚拟机而言,默认的系统磁盘只有127G,对于Linux而言,则只有30G。所以对于后期数据可能大量增长的用户来说,系统磁盘的空间实在太小了。因此,为了扩展虚拟机的磁盘空间,可以通过向虚拟机附加新的数据磁盘来实现。不同的虚拟机型号最多可附加的数据磁盘的数量是不同的,可以通过公式来计算:虚拟机最多可附加的磁盘数量=虚拟机CPU核数x2.例如标准A1虚拟机是1核,最多可以附加2块数据磁盘。

要为Linux虚拟机附加数据磁盘,同样要在Azure管理界面先附加一块新的磁盘。附加完成后,登录虚拟机,试用fdisk -l查看是否能够正常识别到未分区的设备。

fdisk -l

倘若Shell界面出现Disk /dev/sdc字样,则说明Linux虚拟机已经正确识别到要挂载的磁盘了。成功识别后,使用fdisk对设备进行分区。

fdisk /dev/sdc
Command(m for help): n #创建分区
Select (default): p #创建主分区
Partition number(1-4, default 1): 1 #创建一个分区
First sector(default 2048): #回车保持默认

Command (m for help): p #再次检查磁盘分区情况
Device Boot      Start     End           Blocks        Id      System
/dev/sdc         2048      2145386495   1072692224     83       Linux     
Command (m for help): wq #保存退出 

将分区格式化为xfs格式:

mkfs.xfs /dev/sdc1

或者使用mkfs.ext4为刚刚建立好的分区/dev/sdc建立ext4文件系统:

mkfs.ext4 /dev/sdc

创建挂载点/创建一个挂载目录,以便将创建好的文件系统的分区挂载到目录上:

mkdir /mnt/sdc

使用mount命令挂载之后,用df -h命令查看挂载情况:

mount /dev/sdc /mnt/sdc
df -h
Filesystem    Size  Used   Avail   Use%  Mounted on
/dev/sda1     30G   2.8G   26G      10%   /
tmpfs         772M  0      772M      0%   /dev/shm
/dev/sdb1      40G   48M    38G      1%   /mnt/rescource
/dev/sdc     1007G   72M    956G     1%   /mnt/sdc

对于Linux虚拟机来说,倘若要实现每次系统重启后,分区都能自动挂载,有两种方法可以实现。
方法一:在/etc/fstab文件中添加一行挂载项,
添加之前,先用blkid /dev/sdc查看分区的UUID,找到最后一行:

blkid /dev/sdc

类似:

UUID=*********-****-****-****-******** /mnt/sdc ext4 default 0 0 

使用vi /etc/fstab 命令编辑fstab文件,在文件末尾处中添加一行UUID的信息。
或者:

#vi  /etc/fatab  设置开机自动挂载
/dev/sdc /mnt/sdc  xfs  default 0 0

这种方法存在一个风险,就是在这个分区文件系统出现异常的情况下,可能由于无法挂载异常分区引起虚拟机启动失败。
方法二:为避免上述问题,可以通过在/etc/rc.local种添加挂载命令来实现虚拟机开机后挂载分区,由于/etc/rc.local的脚本事在虚拟机启动完成后才执行,所以不会由于分区问题影响虚拟机的启动过程。

mount -U *********-****-****-****-******** /mnt/sdc

不过在/etc/rc.local种进行挂载也有一些东西需要注意,如果系统种某些应用或者服务依赖于这里挂载的分区,例如数据库文件存储在这个分区种,那么这些应用或者服务一定要在分区挂载后启动。

相关命令及详解:

一、df 命令;
df 是来自于coreutils 软件包,系统安装时,就自带的;我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置;举例:

[[email protected] summer]# df -lh
Filesystem            容量  已用 可用 已用% 挂载点
/dev/hda8              11G  6.0G  4.4G  58% /
/dev/shm              236M     0  236M   0% /dev/shm
/dev/sda1              56G   22G   35G  39% /mnt/sda1

二、fdsik
fdisk 是一款强大的磁盘操作工具,来自util-linux软件包,我们在这里只说他如何查看磁盘分区表及分区结构;参数 -l ,通过-l 参数,能获得机器中所有的硬盘的分区情况;

[[email protected] summer]# fdisk -l

Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         765     6144831    7  HPFS/NTFS
/dev/hda2             766        2805    16386300    c  W95 FAT32 (LBA)
/dev/hda3            2806        7751    39728745    5  Extended
/dev/hda5            2806        3825     8193118+  83  Linux
/dev/hda6            3826        5100    10241406   83  Linux
/dev/hda7            5101        5198      787153+  82  Linux swap / Solaris
/dev/hda8            5199        6657    11719386   83  Linux
/dev/hda9            6658        7751     8787523+  83  Linux

Disk /dev/sda: 60.0 GB, 60011642880 bytes
64 heads, 32 sectors/track, 57231 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       57231    58604528   83  Linux

三、cfdisk 来自于util-linux的软件包;
cfdisk 也是一款不错的分区工具;在有些发行版中,此工具已经从util-linux包中剔除;cfdisk 简单易用是他的特点;和DOS中的fdisk 相似;在本标题中,我们只来解说如何查看机器的中的磁盘分区状况及所用的文件系统等;查看磁盘分区的用法 cfdisk -Ps 磁盘设备名:

[[email protected] summer]cfdisk -Ps  
[[email protected] summer]cfdisk -Ps   /dev/hda 

[[email protected] summer]cfdisk -Ps 
Partition Table for /dev/hda

               First       Last
# Type     Sector    Sector          Offset   Length   Filesystem Type (ID)      Flag
-- ------- ----------- ----------- ------ ----------- -------------------- -------------------------
1 Primary    0          23438834       63      23438835   Linux (83)        Boot
2 Primary    23438835    156296384      0        132857550  Extended (05)       None
5 Logical    23438835    155268224     63        131829390  Linux (83)        None
6 Logical    155268225   156296384     63       1028160    Linux swap (82)      None

四、查看目前机器中的所有磁盘及分区情况:

[[email protected] ~]$ cat /proc/partitions
major minor  #blocks  name
3     0   78150744 hda
3     1    6144831 hda1
3     2   16386300 hda2
3     5    8193118 hda5
3     6   10241406 hda6
3     7     787153 hda7
3     8   11719386 hda8
3     9    8787523 hda9
8     0   58605120 sda
8     1   58604528 sda1
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注