Amazon Elastic Block Store(EBS)可作为EC2实例的持久性数据块级存储。其具有高可用性和持久性的特点,可用性高达99.999%。给现有的EC2实例扩展新的存储块只需要几分钟的时间,省时省力。每个EBS块都被放置在一个特定的可用区内,并且会自动维护一个副本,随时保护数据安全。

Amazon EBS共提供三种硬盘类型,SSD(固态硬盘), Provisioned IOPS SSD(特供IOPS固态硬盘)和Magnetic(普通硬盘)。SSD是默认的EC实例的硬盘格式(凶残啊!Amazon真是有钱,自从咱的本本换了SSD后,也离不开SSD了。)Provisioned IOPS SSD更凶残,具有高一致性及超低延迟的性能,专门设计用于I/O密集型操作,比如数据库。IOPS全称为Input/Output Operations Per Second,即每秒进行读写(I/O)操作的次数,用来衡量随机访问的性能。Provisioned IOPS SSD的每GB IOPS可达30。Magnetic Volumes就是俗称的磁卷了,它最便宜,当然性能也最差了。如果你的应用程序不是I/O密集型的,对数据的访问不是很频繁,使用该类型就比较划算。

EBS还有一个功能就是很方便的创建快照,并保存到Amazon S3上去。EBS的快照是增量存储的。比如你有一块100G的硬盘,第一次快照使用了100G容量,第二次快照时只有5G的数据发生了变化,那么你总共只需花105G的存储费用。当然你不不必担心删除其中一个快照导致数据丢失,因为删除一个快照时,系统只会删除其中不会被其它快照使用的数据,所以不会影响其它快照。

好了,接下来是本文的两个主要任务是两个。第一个任务是给一个EC实例附加一个新的EBS卷,并且加入到当前EC实例的文件系统中。第二个任务是为该EC实例创建一个快照。

首先当然是准备工作了,创建一个新的EC2实例。如何创建上一篇文章已经详细介绍了,这里不再累述。如果还没有AWS account的同学可以使用可以qwiklabs提供的免费实验来进行该练习。地址是https://run.qwiklabs.com。说实话qwiklabs真是个好东西,如果我使用自己的account来进行练习,要花不少钱。而qwiklabs里面有几个免费实验,使用AWS的所有资源不收任何费用,真是业界良心。

EC2创建完毕后,应该是这个样子。

然后远程ssh进去。

1
$: ssh ec2-user@54.191.59.163 -i ~/Downloads/key.pem

先查看下当前的磁盘情况。

1
2
3
4
5
[ec2-user@ip-172-31-17-37 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 1.1G 6.6G 14% /
devtmpfs 486M 56K 486M 1% /dev
tmpfs 499M 0 499M 0% /dev/shm

可以看出当前磁盘总大小在8G左右,有三个文件系统。

接下来就创建一个硬盘。

点击EC2控制面板左侧的Volumes按钮,来到磁盘的控制面板。

这里展示的一块硬盘就是当前ec2实例使用的硬盘。

我们点击上面的Create Volumes来新添加一块硬盘。

硬盘类型就是我上文的说的那几种,IOPS越高,硬盘就越贵,可用区的选择一定要和当前要使用的EC2实例保持一致,要不然会无法跨可用区附加硬盘。如果提供snapshot ID的话,新创建的硬盘会具有该快照的数据。

硬盘创建完毕后如下图所示。

目前它的状态是可用的,如果将其附加到EC2实例则会变为in-use。

点击Action按钮并选择Attach Volume命令,可以将该硬盘附加到EC2实例上。

在该界面中选择实例名及映射的设备地址,然后附加。

可以看到该硬盘状态已经发生改变。

那么再回到终端中查看磁盘情况。

1
2
3
4
5
[ec2-user@ip-172-31-17-37 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 1.1G 6.6G 14% /
devtmpfs 486M 60K 486M 1% /dev
tmpfs 499M 0 499M 0% /dev/shm

跟以前的一模一样,没有看到新添加的20G硬盘。这是怎么回事那?这是因为你虽然给机器添加了一块硬盘,但是还没有格式化和创建文件系统,并将文件系统添加到EC2的文件系统树上来。

我们换另一个命令来查看存储情况。

1
2
3
4
5
[ec2-user@ip-172-31-17-37 ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 20G 0 disk

这里可以看到有一块20G的大硬盘xvdf,但是没有MOUNTPOINT,这个MOUNTPOINT你可以理解为EC2实例上针对这个硬盘的根地址。

细心的读者可能会发现我们附加硬盘时输入的地址是/dev/sdf,为什么命令行中显示的是xvdf那?这是因为调皮的操作系统内核给改了,不同的Linux发行版其修改后的地址也会不太一样。

使用file命令来查看该块硬盘有没有建立文件系统。

1
2
[ec2-user@ip-172-31-17-37 ~]$ sudo file -s /dev/xvdf
/dev/xvdf: data

如果输出是data,说明该块硬盘还未创建文件系统。

使用下述命令来给xvdf来创建文件系统。

1
[ec2-user@ip-172-31-17-37 ~]$ sudo mkfs -t ext4 /dev/xvdf

然后再用file命令确认。

1
2
[ec2-user@ip-172-31-17-37 ~]$ sudo file -s /dev/xvdf
/dev/xvdf: Linux rev 1.0 ext4 filesystem data, UUID=1e14ec91-156a-4eb5-8846-cb5f2fa51b64 (extents) (large files) (huge files)

bash

可以看到该块硬盘已经建立了ext4格式的文件系统。

接下来要将该文件系统加入到当前实例的文件系统树中,这里要使用mount命令。

1
2
[ec2-user@ip-172-31-17-37 ~]$ sudo mkdir /boot2
[ec2-user@ip-172-31-17-37 ~]$ sudo mount /dev/xvdf /boot2

搞定,现在看看EC2实例的存储情况。

1
2
3
4
5
[ec2-user@ip-172-31-17-37 ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 20G 0 disk /boot2

可以在/boot2目录下随意创建文件和文件夹了。

这里并不是万事大吉的时候,我们需要将该MOUNTPOINT加入到系统文件中,要不然系统重启后还是找不到该硬盘。编辑/etc/fstab文件,在其中加入以下行。

1
/dev/xvdf       /data   ext4    defaults,nofail        0       2

这样就不怕重启的时候丢失该MOUNTPOINT了。添加完毕以后可以试一下fstab文件是否能正常运行。

1
[ec2-user@ip-172-31-17-37 ~]$ sudo mount -a

如果没有错误就一切万事大吉,如果有错误而你重启了电脑的话,你就等着哭吧。

这是第一个任务,第二任务是给现有硬盘创建快照,非常简单。回到Volumes控制面板,选择Action里的Create Snapshot按钮。

等一会snapshot就会创建成功。

AWS系列之三 使用EBS的更多相关文章

  1. DataSnap 2009 系列之三 (生命周期篇)

    DataSnap 2009 系列之三 (生命周期篇) DataSnap 2009的服务器对象的生命周期依赖于DSServerClass组件的设置 当DSServer启动时从DSServerClass组 ...

  2. Sql Server来龙去脉系列之三 查询过程跟踪

    我们在读写数据库文件时,当文件被读.写或者出现错误时,这些过程活动都会触发一些运行时事件.从一个用户角度来看,有些时候会关注这些事件,特别是我们调试.审核.服务维护.例如,当数据库错误出现.列数据被更 ...

  3. 完毕port(CompletionPort)具体解释 - 手把手教你玩转网络编程系列之三

       手把手叫你玩转网络编程系列之三    完毕port(Completion Port)具体解释                                                    ...

  4. Red Gate系列之三 SQL Server 开发利器 SQL Prompt 5.3.4.1 Edition T-SQL智能感知分析器 完全破解+使用教程

    原文:Red Gate系列之三 SQL Server 开发利器 SQL Prompt 5.3.4.1 Edition T-SQL智能感知分析器 完全破解+使用教程 Red Gate系列之三 SQL S ...

  5. .NET 4 并行(多核)编程系列之三 从Task的取消

    原文:.NET 4 并行(多核)编程系列之三 从Task的取消 .NET 4 并行(多核)编程系列之三 从Task的取消 前言:因为Task是.NET 4并行编程最为核心的一个类,也我们在是在并行编程 ...

  6. .Neter玩转Linux系列之三:Linux下的分区讲解

    基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...

  7. 单元测试系列之三:JUnit单元测试规范

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6762032.html Junit测试代 ...

  8. CAN总线学习系列之三——CAN控制器的选择

    CAN总线学习系列之三——CAN控制器的选择 在进行CAN总线开发前,首先要选择好CAN总线控制器.下面就比较一些控制器的特点. 一些主要的CAN总线器件产品 制造商 产品型号 器件功能及特点 Int ...

  9. TCP/IP网络编程系列之三(初级)

    TCP/IP网络编程系列之三-地址族与数据序列 分配给套接字的IP地址和端口 IP是Internet Protocol (网络协议)的简写,是为首发网络数据而分配给计算机的值.端口号并非赋予计算机值, ...

随机推荐

  1. asp.net mvc3 利用Ajax实现局部刷新

    1.利用Ajax.ActionLink()方法 首先在_Layout.cshtml文件中加载 运行AJAX必要的Jquery <script src="@Url.Content(&qu ...

  2. 【Mail】搭建邮件服务器(LAMP+Postfix+Dovcot+PostfixAdmin+Roundcubemail)

    大纲 一.mail部署说明 二.安装准备 三.LMAP环境配置 四.配置postfixadmin 五.配置postfix 六.配置dovecot 七.测试SMTP和POP3服务 八.配置Roundcu ...

  3. Winform中Grid跨行复制一列

    Private Sub DataCopyToGrid() '判断剪切板中是否存在内容 If Clipboard.ContainsText Then Dim str = Clipboard.GetTex ...

  4. Stack Overflow is a question and answer site

    http://stackoverflow.com/ _ Stack Overflow is a question and answer site for professional and enthus ...

  5. html input的file文件输入框onchange事件触发一次失效解决方法

    最近在做一个图片上传的功能,出现提交一次后,file输入框的change事件无法再次触发的bug,就是说提交一次后必须刷新才能再次提交,这就坑了~ 于是想办法解决它~ 在网上找了一些资料,找到这几种方 ...

  6. swift禁用webView对H5中数字,链接,日期,地址,电话号码做解析

    showWebView.dataDetectorTypes = .None //swift禁用webView对H5中数字,链接,日期,地址,电话号码做解析 其UIDataDetectorTypes属性 ...

  7. php安装libiconv-1.14.tar.gz遇到的问题

    遇到的Error code In file included from progname.c:26:0: ./stdio.h:1010:1: error: ‘gets‘ undeclared here ...

  8. Redis多机常用架构-主从

    本文内容摘录自同事Perry Zhang的讲解,如需转载须本人同意. 1.主从 命令:slaveof <IP><PORT> redis主从配置:redis支持master-sl ...

  9. TortoiseSVN客户端使用说明

    TortoiseSVN客户端使用说明 TortoiseSVN不是一个独立的窗口程序,而是集成在windows右键菜单中,下面对TortoiseSVN的菜单项做简要的说明.01.SVN Checkout ...

  10. How to create Web Deployment Package and install the package

    Create Web Deployment Package To configure settings on the Connection tab In the Publish method drop ...