图片 18

Linux虚拟机自动挂载磁盘,利用Azure高级存储搭建高性能Linux服务器

目前Azure针对虚拟机提供两种类型的存储,一种是标准存储,基于HDD的,一种是高性能存储Premium
Storage(在下文中简称PS),基于SSD的。针对用户高性能,低延迟,I/O密集型的应用,比如数据库MySQL,
MongoDB,SAP等提供良好的支持。

Azure 虚拟机使用磁盘来存储 VM 操作系统、应用程序和数据。 创建 VM
时,请务必选择适用于所需工作负荷的磁盘大小和配置。
本教程介绍如何部署和管理 VM 磁盘。 学习内容:

在Azure中创建Linux虚拟机之后,为Linux虚拟机添加磁盘,默认情况下重启后是不会自动挂载的(这其实跟Azure无关,是Linux本身就这样)。我们需要进行一些设置,以让它能自动挂载。本文介绍将/dev/sdc
磁盘设备设置为自动挂载

本文主要介绍如何在CentOS上使用高级存储构建数据库服务器的最佳实践,包括你的应用需求在超过单盘IOPS限制的情况下,如何通过使用软RAID来构建50000级别的IOPS服务器。

OS 磁盘和临时磁盘

1、登录到Linux,使用df –lh 查看当前挂载的磁盘, 并用ls /dev/sd*
查看当前虚机连接的磁盘有哪些。

目前高级存储只能用于DS/GS/FS系列机器作为数据磁盘使用,根据虚拟机的大小不同,对每个虚拟机,你最多可以挂载32T的高级存储,达到最高64000的IOPS(受限于你的虚拟机大小和磁盘带宽)。

数据磁盘数

图片 1

需要理解的是,磁盘性能取决于三个要素:
磁盘类型、磁盘大小和虚拟机大小。高级磁盘比标准磁盘具有更高的 I/O
限制,I/O
限制随磁盘大小而增加,较大的虚拟机比较小虚拟机具有更高的带宽限制。使用高级磁盘时,请确保虚拟机足够大,能够处理总磁盘带宽。

标准磁盘和高级磁盘

2、使用sudo fdisk /dev/sdc 命令进行分区操作

图片 2

磁盘性能

图片 3

注意事项

本文中以CentOS
6.7为例,使用DS14作为测试虚拟机,为在CentOS上使用高级存储用做数据库服务器,需要注意一下几项:

1.如果想获得最佳性能和稳定性,在CentOS
6/7上必须手动安装LIS
4.1以上驱动,下载地址如下:

https://www.microsoft.com/en-us/download/details.aspx?id=51612

对于LIS的说明如下:

为方便下载,我已经把最新的LIS4.1的包放在了blob
storage, Linux下直接wget即可下载:

https://www.azure.cn/documentation/articles/storage-premium-storage/

图片 4

#安装之前首先保证你的系统最新

$ sudo yum
update

请注意:LIS的安装要求你的kernel是最新版本,所以更新之后请重启一下机器确保装载的是最新的Linux
kernel,否则后续安装会报错。

#解压缩并安装LIS4

$ tar -xzvf
lis-rpms-4.1.2-2.tar.gz

$ sudo
./inshall.sh

可能会有一些警告,忽略即可,安装完成后机器需要重启,以便让新的驱动生效。

[azureuser@mycent67
LISISO]$ rpm -aq|grep microsoft

kmod-microsoft-hyper-v-4.1.2.2-20161013.x86_64

microsoft-hyper-v-debuginfo-4.1.2.2-20161013.x86_64

microsoft-hyper-v-4.1.2.2-20161013.x86_64

2.
合理使用高级存储的缓存设置:

关于premium高级磁盘缓存设置,你需要根据你的应用的实际情况进行正确设置获得最佳性能:

设置为无:如果你的应用基本都是写入,或者超过80%以上的都是写入操作,则缓存设置为无。

设置为只读:这个选项是Premium
Storage的默认选项也是最为常见的选项,如果你的应用操作是读写的,或者只读的操作,建议使用该选项。

设置为读写:如果你的程序可以处理缓存数据,并且在需要的时候可以将缓存数据写入到持久化磁盘,对应用程序有较高要求,处理不当可能会有数据损失。

例如对于SQL
Server而言,你可以:

  • 将有数据库数据文件的磁盘的缓存设置为只读,获得快速读取和处理性能

  • 将日志文件的目录设置为,因为日志文件基本上以写为主

对于MySQL数据库而言,道理比较类似,你可以将bin
log文件设置为一个目录,而将数据文件也单独设置为一个目录,利用缓存获得最佳性能。

3.对于CentOS
6/7用户,你如果你使用的缓存策略是”无”或者”只读”,你必须在挂载磁盘的时候将barrier设为0,具体做法一般是在fstab文件中设置,具体方法见后续例子。

 

4.在设置fstab自动加载的时候,一定要使用UUID,否则某些情况下会出现不可预知的问题;另外,在设置fstab的时候,为避免在某些情况磁盘加载失败而系统无法启动的情况(比如最为常见的UUID写错,配置错误等等)最好加上nobootwait(Ubuntu)或者nofail(centos)参数,具体用法见后面例子。

附加和准备数据磁盘

  输入P命令, 完成后输入w

单个P30盘性能测试

  1. 创建DS系列的虚拟机,如果你需要更高级别的处理性能的虚拟机,可以创建DS
    V2系列的虚拟机,V2系列比DS系列的虚拟机处理能力快35%左右,本实例中创建一台DS14系列的虚拟机:

    图片 5

     

  2. 挂载单个1024���小的P30
    SSD磁盘到虚拟机,我们进行单盘的性能测试:

    图片 6

     

     

  3. 查看添加的磁盘,当前是个裸设备,需要分区并添加:

    $ ls -l
    /dev/sd*

    $ sudo fdisk
    /dev/sdc

    图片 7

输入n创建新的分区,p选择primary,partition
number选择1,其他的选择默认值。

然后输入t,选择partition为1,修改hex code为fd,这个类型代表 Linux
raid auto:

图片 8

 

重复以上步骤,直到新增加的4块盘都分区完成:

图片 9

4.
我们先用sdc来做个单盘测试,格式化设备,创建目录,挂载分区到测试目录:

$ sudo mkfs -t ext4
/dev/sdc1

$ sudo mkdir
/data

$ sudo mount
/dev/sdc1 /data

5.
我们使用标准的Linux磁盘测试工具fio来测试一下磁盘的性能,首先我们安装一下fio软件,使用epel的repo来做安装:

$ sudo yum install
epel-release

图片 10

$ sudo yum install
fio

图片 11

更多详情见请继续阅读下一页的精彩内容
http://www.linuxidc.com/Linux/2016-11/136976p2.htm

图片 12

调整磁盘大小

图片 13

磁盘快照

3、使用sudo mkfs –t ext /dev/sdc 命令,对分区使用ext4进行格式化

Note

图片 14

在 Azure 中国区使用 Azure CLI 2.0 之前,请先运行az cloud set -n
AzureChinaCloud来改变云环境。如果想切回国际版 Azure,请再次运行az cloud
set -n AzureCloud。

4、使用sudo mkdir /data命令,在根目录下创建data目录

如果选择在本地安装并使用 CLI,本教程要求运行 Azure CLI 2.0.4
或更高版本。 运行az –version即可查找版本。
如果需要进行安装或升级,请参阅安装 Azure CLI
2.0。

图片 15

默认 Azure 磁盘

5、使用sudo mount /dev/sdc /data 命令将/dev/sdc 挂载到/data目录

创建 Azure 虚拟机后,将自动向此虚拟机附加两个磁盘。

图片 16

操作系统磁盘 – 操作系统磁盘大小可达 1 TB,并可托管 VM 操作系统。
默认情况下,OS 磁盘标记为“/dev/sda”。 已针对 OS 性能优化了 OS
磁盘的磁盘缓存配置。 由于此配置,OS 磁盘不应托管应用程序或数据。
对于应用程序和数据,请使用数据磁盘,本文后面会对其进行详细介绍。

6、使用sudo –i blkid查看磁盘UUID

临时磁盘- 临时磁盘使用 VM 所在的 Azure 主机上的固态驱动器。
临时磁盘具有高性能,可用于临时数据处理等操作。 但是,如果将 VM
移动到新的主机,临时磁盘上存储的数据都将被删除。 临时磁盘的大小由 VM
大小决定。 临时磁盘标记为“/dev/sdb”,且装载点为 /mnt。

图片 17

临时磁盘大小

7、使用sudo vi
/etc/fstab命令,在fstab文件中添加/dev/sdc的相关信息,如下图

类型VM 大小临时磁盘大小上限 (GB)

图片 18

常规用途A
和 D 系列800

保存并退出后,即可完成自动挂载的操作。

计算优化F
系列800

内存优化D
系列6144

Azure 数据磁盘

可添加额外的数据磁盘,用于安装应用程序和存储数据。
在任何需要持久和灵敏数据存储的情况下,都应使用数据磁盘。
每个数据磁盘的最大容量为 1 TB。 虚拟机的大小决定可附加到 VM
的数据磁盘数。 每个 VM 核心可附加两个数据磁盘。

每个 VM 的最大数据磁盘数

类型VM 大小每个 VM 的最大数据磁盘数

常规用途A
和 D 系列32

计算优化F
系列32

内存优化D
系列64

VM 磁盘类型

Azure 提供两种类型的磁盘。

标准磁盘

标准存储以 HDD 为基础,可以在确保性能的同时提供经济高效的存储。
标准磁盘适用于经济高效的开发和测试工作负荷。

高级磁盘

高级磁盘由基于 SSD 的高性能、低延迟磁盘提供支持。
完美适用于运行生产工作负荷的 VM。 高级存储支持 DS 系列、DSv2 系列和 FS
系列 VM。 高级磁盘分为 3 种类型(P10、P20 和
P30),磁盘大小决定磁盘类型。 选择时,磁盘大小值舍入为下一类型。
例如,如果磁盘大小小于 128 GB,则磁盘类型为 P10。 如果磁盘大小介于 129
GB 和 512 GB 之间,则大小为 P20。 如果超过 512 GB,则大小为 P30。

高级磁盘性能

高级存储磁盘类型P10P20P30

磁盘大小(向上舍入)128 GB512 GB1,024 GB (1 TB)

每个磁盘的最大 IOPS5002,3005,000

每个磁盘的吞吐量100 MB/秒150 MB/秒200 MB/秒

尽管上表确定了每个磁盘的最大
IOPS,但还可通过条带化多个数据磁盘实现更高级别的性能。
例如,Standard_GS5 VM 最多可实现 80,000 IOPS。 若要详细了解每个 VM
的最大 IOPS,请参阅Linux VM
大小。

创建并附加磁盘

可创建磁盘,并将其附加到新建 VM 或现有 VM。

在 VM 创建时附加磁盘

使用az group
create命令创建资源组。

Azure CLI复制

azgroupcreate–namemyResourceGroupDisk–locationchinaeast

使用az vm
create命令创建
VM。–datadisk-sizes-gb参数用于指定应创建并附加到虚拟机的附加磁盘。
若要创建并附加多个磁盘,请使用空格分隔的磁盘大小值列表。
在以下示例中,创建的 VM 具有两个均为 128 GB 的数据磁盘。 因为磁盘大小为
128 GB,所以这两个磁盘都配置为 P10,每个磁盘最多提供 500 IOPS。

Azure CLI复制