SQL Server - EBS 存储设计

2021-10-27 00:00:00 amazon-web-services sql-server

我们正在 amazon 上规划我们的新 EBS 结构,以便从 SQL Server 中获得最佳性能.过程中出现了一些疑惑:

We are planning our new EBS structure on amazon to get the best performance out of SQL Server. During the process some doubts appeared:

1 - 使用亚马逊计算器 (http://calculator.s3.amazonaws.com/index.html) 我们得到的成本如下:

1 - Using the Amazon calculator (http://calculator.s3.amazonaws.com/index.html) we got the costs below:

  • 通用 (SSD) - 1000GB - 3000 IOPS = 184,30 美元
  • 预配置 IOPS (SSD) - 1000GB - 3000 IOPS = 511,00 美元

对于相同的性能 (???),这个数量在一个月内是一个巨大的差异,我知道通用 SSD 上的IOPS 突发实现",但根据文档:

This amount is a huge diference in a month for the same performance (???), I'm aware about the "IOPS burst implementation" on General purpose SSD, but according to documentation:

http://docs.aws.amazon.com/AWSEC2/最新/用户指南/EBSVolumeTypes.html

当卷大小为 1000 GB 时,突发持续时间为无限"(始终为 3000 IOPS).

When the volume size is 1000 GB the burst duration is "infinite" (Always 3000 IOPS).

可以说上面两个磁盘的性能完全一样吗?

Is it safe to say that the performance between the two disks above are exactly the same?

2 - 我们需要大约 1700 GB 用于 100 个数据库,我们应该使用什么布局?

2 - We need about 1700 GB for 100 databases, what layout should we use?

选项:

  • 获取两个磁盘 (GP SSD),每个磁盘具有 1000GB (3000 IOPS),并在这两个磁盘之间分配工作负载.
  • 获得两个磁盘 (GP SSD),每个磁盘具有 1000GB (3000 IOPS),然后与 RAID 0 放在一起?(我们将能够有 6000 IOPS 突发,但我应该担心 EBS 故障吗?)
  • 获得四个磁盘 (GP SSD),每个磁盘具有 1000GB (3000 IOPS) 并使用 RAID 10?(EBS 有必要吗?)
  • 提出您的建议,我会很高兴听到的.

推荐答案

来自亚马逊支持,希望对您有所帮助!

From Amazon support, hope this helps!

问候

磁盘成本问题很容易回答.通用 (SSD) 和预配置 IOPS (SSD) 使用类似的技术.它们并排可以达到相同的速度,唯一的区别是 GP2 最大速度为 3000,PIOPs 为 4000,每卷.PIOPS 昂贵得多的原因之一是您还需要为使​​用的 IO 数量付费,而 GP2 没有每个 IO 的成本.

The disk cost question is easy enough to answer. General purpose (SSD) and Provisioned IOPS (SSD) use similar technology. Side by side they can achieve the same speeds, the only difference being that GP2 maximum sped is 3000 and PIOPs is 4000, per volume. One reason PIOPS is much more expensive is that you also pay for the number of IO you use, where as GP2 there is no per IO cost.

至于 1700GB 数据存储的设计,有两个主要因素.冗余和性能.当然,成本是一个重要因素.为了在此处提供适当的指导,我们需要知道您的实际需求是什么,然后我们可以提出一些解决方案.但是,有几个主要的 RAID 级别等符合您的建议,我们可以讨论.

As for the design of the 1700GB datastore, there are 2 main factors. Redundancy and Performance. And of course cost is a big factor. To provide proper guidance here we would need to know what your actual needs are going to be then we could suggest some solutions. However, there are a couple of main RAID levels etc that match what you suggested that we can talk about.

  • 获取两个磁盘 (GP SSD),每个磁盘具有 1000GB (3000 IOPS) 并在这两个磁盘之间分配工作负载.没有RAID.我认为你的意思是只有一个卷上有一些数据库,而另一卷上有一些数据库?这对我来说,其实很好.我要做的就是将数据库备份到其他一些本地连接的 EBS 卷.这适用于不超过 3000 IO(读取和写入组合)的工作负载.它也很容易扩展.只需添加更多磁盘即可.

  • Get two disks (GP SSD) with 1000GB (3000 IOPS) each and distribute the workload among this two. No RAID. I take it you mean just have some databases on one volume and some on the other? This to me, is actually fine. All i would do in addition is backup the DBs to some other locally attached EBS volumes. This would be for workloads no greater that 3000 IO (read and writes combined). It's also easily expandable. Just add more disk.

获得两个磁盘(GP SSD),每个磁盘具有 1000GB(3000 IOPS),然后与 RAID 0 放在一起?(我们将能够有 6000 IOPS 的突发,但我应该担心 EBS 故障吗?)RAID 0.您在这里所做的只是使速度提高一倍.但是丢失一张磁盘,您将失去一切.同样,如果您愿意在磁盘出现故障时从备份中恢复,那么这是一个快速且廉价的配置,最多 6000 次 IO.不容易扩展.

Get two disks (GP SSD) with 1000GB (3000 IOPS) each and put then together with RAID 0 ? (We will be able to have 6000 IOPS burst, but should I be worried about EBS fault?) RAID 0. All you have done here is make things twice as fast. But lose one disk and you lose everything. Again, if you are happy to restore from backup if a disk fails, this is a fast cheap config, for upto 6000 IO. Not easily expandable.

获得四个磁盘 (GP SSD),每个磁盘具有 1000GB (3000 IOPS) 并使用 RAID 10?(EBS 有必要吗?)RAID 5、6 和 10.这些都更快、更冗余.可以说,RAID 10 是数据库的最佳配置,也可能是适合您的配置.拥有 1700 GB 的数据,如果出现问题,就会有很多不开心的人.

Get four disks (GP SSD) with 1000GB (3000 IOPS) each and use RAID 10? (Is it necessary with EBS?) RAID 5, 6, and 10. These are all faster and more redundant. Arguably, RAID 10 is the best config for database, and probably the right config for you. With 1700 GB of data, if things go wrong there will be lots and lots of unhappy people.

有什么建议吗?你考虑过亚马逊RDS吗?RDS 有很多优点.我们负责所有繁重的工作,包括多可用区部署,并且 RDS 可以随着您的需求增长而垂直(CPU)和水平(空间)扩展.

Any suggestions? Have you considered Amazon RDS? RDS has lots of advantages. We do all the heavy lifting, including multi AZ deployments, and RDS can expand vertically (CPU) and horizontally (Space) as your needs grow.

http://aws.amazon.com/rds/details/

使用 GP2 需要考虑的另一件事是……您可能"不需要配置 1TB 卷.您可能不需要 3000 IO 的无限"突发模型.假设您确实希望一直以 3000 IO 运行.为什么不配置 5 x 200GB 卷,其中每个卷每 GB 有 3 个 IO.所以 5x200x3=3000IO 基线.将 5 个卷放在 raid 5 中(例如),你应该一整天都在 3000IO 左右,如果你不超过它就永远不会耗尽信用(并且 IO 是平均分配的)

The other thing to consider with GP2 is.... you 'might' not need to provision 1TB volumes. You probably do not need the 3000 IO 'infinity' burst model. Lets say you do want to run at 3000 IO all the time. Why not provision 5 x 200GB volumes, where each volume has 3 IO per GB. So 5x200x3=3000IO baseline. Put the 5 volumes in raid 5 (for example) and you should get around 3000IO all day long, and never run out of credit if you dont go over that (and IO is equally distributed)

但是,在您将速率限制为每卷 600IO 之前,这些卷可以连续 30 分钟突增至 3000 IO.总共仍然是3000IO.所以...在这个配置中,您可以随时突增到 15,000IO,当您受到限制时,您仍然拥有您预测需要的 3000IO.只是不要超过 3000 运行超过需要,否则你将没有爆发.

However, those volumes can each burst to 3000 IO for 30 minutes continuous before you get rate limited to 600IO per vol. Which is still 3000IO in total. So... in this config you can burst to 15,000IO at anytime and when you do get limited you still have the 3000IO you predicted you need. Just don't run at over 3000 for more than needed or you'll have no burst left.

整洁吧?我认为值得打电话或聊天以讨论您的实际需求并回答任何问题.但最终,您需要测试和基准测试您决定采用的设计,因为谈论事物和实际结果总是不同的!我想你们很先进,但是 - 如果您想对各种设计进行一些简单的测试以帮助您决定什么是最好的,这里有一个很好的示例基准测试.

Neat huh? I think it is worthwhile to call or chat in to discuss your actual needs and answer any questions. Ultimately though, you will need to test and benchmark which ever design you decide to go with as talking about things and actual results will always differ! I imagine you guys are quite advanced but - here is a great example benchmark if you want to do some simple tests on various designs to help you decide what is best.

http://docs.aws.amazon.com/AWSEC2/最新/用户指南/benchmark_piops.html

相关文章