分类目录归档:EBS

Block Device Mapping

关于创建实例的时候添加各种磁盘以及其他设置的boto使用方法,下面给个例子
一般建议字母A用作根分区,B到E用做实例存储(InstanceStore,ephemeral),F以后用作EBS, 只是个规范建议,非不这么搞也行
基本是先用BlockDeviceMapping()创建个磁盘映射的对象,然后用BlockDeviceType()来创建磁盘对象,然后参数里设置大小、类型、IOPS之类的,最后设置挂载映射和对应关系

import boto.ec2
from boto.ec2.blockdevicemapping import BlockDeviceMapping, BlockDeviceType

block_device_map = BlockDeviceMapping()
xvda = BlockDeviceType(delete_on_termination=True, size=12)
xvdb = BlockDeviceType(ephemeral_name='ephemeral0')
xvdf = BlockDeviceType(delete_on_termination=False, size=100, volume_type='gp2')
xvdg = BlockDeviceType(delete_on_termination=False, 
                       size=100, volume_type='io1', iops=1000)
block_device_map['/dev/xvda'] = xvda
block_device_map['/dev/sdb'] = xvdb
block_device_map['/dev/sdf'] = xvdf
block_device_map['/dev/sdg'] = xvdg

conn.run_instances(
    # other arguments
    block_device_map=block_device_map,
    # other arguments
    )

AutoEnableIO Volume

有时候你会发现你的某些个EBS卷的I/O被disable了,并标示“ebs impaired”,磁盘变得不可读写,一般是由于EBS卷数据的一致性出现问题,这种问题一般重启下实例,使他启动时检查并修复文件系统,一般能解决问题。

但是有的DB服务器出现这种问题,不能重启,还非得使这块受损EBS卷变得可读写,至少也得可读吧,然后迁移数据,或者修复之类的。这时候EBS的一个选项就用得上了,叫“AutoEnableIO Volume”。在EBS卷上点右键能看到这个选项,开启它,即使显示EBS impaired,磁盘check也能通过,I/O读写也是正常的,然后检查修复文件系统,或者换磁盘。
按照惯例,来个命令行版的:

aws ec2 enable-volume-io --volume-id vol-xxxxxxxx

 

Windows Server 2012 R2实例重启后失去网络连接或者EBS消失的问题

2014年9月10日之前使用Windows Server 2012 R2 Amazon Machine Images (AMI) 创建的实例,部分发现重启后额外的EBS磁盘消失或者有的实例起来后失去网络连接。

这是因为Windows Server 2012 R2的即插即用(Plug and Play)功能会每30天扫描机器上的不活跃设备,并自动移除这些不活跃设备,EC2的网络设备就被误认为是这样的设备,因此额外的EBS就有可能被自动移除了,重启后系统分区EBS也被移除了,也就彻底失去网络连接了。

解决办法下:
(1)如果机器还能远程连接上去,但是额外的EBS磁盘没了。
下载http://ec2-downloads-windows.s3.amazonaws.com/Scripts/RemediateDriverIssue.zip,用powershell执行脚本修复问题
(2)如果机器重启了,已经连不上去了,那就关机,修改实例类型,再开机,这时候实例能连上去,但是额外的磁盘没了。登上去修复问题。下载http://ec2-downloads-windows.s3.amazonaws.com/Scripts/RemediateDriverIssue.zip 修复补丁,解压后用powershell执行脚本。然后从添加删除组件中卸载 aws pv drivers 并重启,再下载https://s3.amazonaws.com/ec2-windows-drivers/AWS+PV+7.2.0/MicrosoftSigned/Installer/AWSPVDriverPackager.exe新版的安装,安装后重启,重启后再次执行RemediateDriverIssue.zip修复脚本。
检查日志,出现如下字段,代表修复完成:

20141016_0838:39+00 INFO : Scheduled task Plug and Play Cleanup is already disabled.
20141016_0838:40+00 INFO : This machine was found to be in a non-impacted state. At this time it is OK to perform all instance actions including reboot, stop, start and resize.

新的三种EBS类型解析

就在前两天,创建EBS的之后页面发生了点变化,出现三种新的类型:

可见,底层这回底层终于升级成SSD了,而且还保留了旧款的EBS。

General Purpose (SSD) 通用功能SSD
这种EBS磁盘适合做系统盘跟分区、虚拟桌面、测试环境、以及中小型数据库。
这种磁盘创建的时候,随着你输入的磁盘大小GB数,IOPS的值会发生变化,例如,大小设定为100GB的时候,IOPS显示为:300 / 3000,后面还有解释,300的IOPS是基准线baseline,这个数值是磁盘大小的3倍。后面的3000,是说允许突发到3000,并能持续30分钟。
这种磁盘大小最小是1GB,最大1TB。建议非DB服务器,全线换成这个。

Provisioned IOPS (SSD) 预分配IOPS的SSD
这种是之前旧款Provisioned IOPS EBS的升级版,适合做各种生产环境的数据库和数据仓库。
Min: 100 IOPS, Max: 4000 IOPS,而且IOPS/Size的比率能最高达30,例如,IOPS为3000的话,磁盘大小建议最小为100GiB,否则IOPS没法充分利用,最大的话,单块EBS就1TiB,这没得说。

Magnetic 磁性磁盘?不知AWS为啥起这么个名字
为低成本、低访问量的快存储而设计,基本就是旧款的普通EBS。
这种磁盘不能定义IOPS,据说有100的样子。没法精准测出来。

关于成本:(以新加坡ap-southeast-1节点为例)

EBS Type Size IOPS Monthly Cost
Magnetic 100GiB 100 ? $8.00
General Purpose (SSD) 100GiB 300/3000 $12.00
Provisioned IOPS (SSD) 100GiB 300 $46.8

关于读写性能:EC2实例的class type也影响到整体的IO性能,我们采用IO表现为High的m3.xlarge来进行测试
还是大家自己体验吧,边忙边测一下午,测的数据波动太大。
最后,建议大家全线升级至SSD的吧。

关于存储优化型实例和大型数据仓库EC2实例选型

介绍些存储型实例的特性,以及大型数据仓库和大型NoSQL搭建在EC2实例上该如何选型
下表是存储型实例的配置:

Size

ECUs

vCPUs

Memory (GiB)

Instance Storage (GB)

EBS-Optimized Available

Network Performance

hi1.4xlarge

35

16

60.5

2 x 1024 (SSD)

不支持

10 Gigabit

hs1.8xlarge

35

16

117

24 x 2048

不支持

10 Gigabit

存储优化型实例提供与实例直接相连的存储,既保证了较高的IO性能要求,又满足大量的存储要求,推荐作为数据库使用。

(1)hi1.4xlarge提供16个虚拟核心60GB内存,总共拥有35个计算单元,另外还提供2x1TBSSD实例存储,网卡是10Gbps,推荐作为大型NoSQL数据库使用

因为网卡是10Gbps,所以EBS优化选项就没必要了。这种类型拥有非常快的本地存储,加上大量内存和10Gbps的网卡,推荐作为NoSQL数据库使用,它提供非常高的随机读写和较低的延时(因为SSD是本地的实例存储,读写延时都比较低,唯一的隐患是实例存储数据再掉电之后会清空,重启时不会,真的需要关机再开始的时候,我们可以将数据备份到EBS,或者快照)。hi1实例可以提供2GB/s 2MB块的顺序读性能,和1.1GB/s 2MB块的顺序写入性能,4KB块大小的情况下,提供120000随机读IOPS表现,和10000~85000随机写IOPS表现(具体数值取决于具体的逻辑块寻址)

(2)hs1.8xlarge提供117GB内存和24TB存储,适合做大型数据仓库或并行文件系统

Hs1.8xlarge实例提供跟hi1.4xlarge相同的计算能力,每个虚拟核心是Intel Xeon E5-2650CPU的一个超线程,但内存增加至117GB,本地存储虽不是SSD,但容量更大,提供24x2TB的本地实例存储。网卡也是10Gbps, 可以提供2.4GB/s 2MB块的顺序读性能,和2.6GB/s 2MB块的顺序写入性能

(3)另外一种较为廉价的选择就是选择一款内存和CPU都比较合适的EC2实例类型,然后选择EBS优化选项(EBS-Optimized),这样EC2实例到EBS卷的IO通道就是专用通道,更快更稳定。然后选择预设IOPS的EBS卷,目前单块EBS卷最高IOPS为4000。我们可以使用6~7块IOPS为4000的EBS卷做raid0(striping)以获得更高的IOPS表现,raid1不用做了,因为EBS底层就有冗余,基于快照恢复也比较快。

下次做个EBS-Optimized EC2实例加7块4000IOPS的EBS的IO性能测试再分享数据给大家。