# \[FAST'15] Towards SLO Complying SSDs Through OPS Isolation

作者： Jaeho Kim and Donghee Lee, University of Seoul; Sam H. Noh, Hongik University

## 论文概要

### Abstraction

  虚拟化系统应该满足每个VM的SLO(service level objectives, 服务水平目标)。性能隔离通常是通过在VM之间划分底层硬件资源来实现的。在这篇文章中，我们通过实验评估表明，性能SLO不能满足当前的商业SSD需求。我们证明了垃圾收集是这个问题的根源，而且由于VM之间的交互，这个是很难控制的。为了控制垃圾回收对虚拟机的影响，我们提出了一个名为`OPS isolation`的方案。`OPS isolation`以Block为粒度分配闪存资源，所以VM之间的Block在垃圾回收时不会互相干扰。实验结果表明，通过`OPS isolation`可以实现性能SLO。

> 摘要部分说明了几个点： 1. SLO对虚拟化系统的重要性； 2. 当前的算法在这方面存在的问题，以及问题出现的原因； 3. 他们的解决方案以及达到的效果。

### Introduction

  基于闪存的固态盘现在被广泛使用，并且应用场景扩展到了服务器虚拟化。虚拟化系统应该满足每个虚拟机的服务水平目标（SLO）。VM的服务水平目标通常是通过隔离VM的下层硬件资源来实现的。因此，现在有很多关于虚拟机之间的资源分配的研究，比如VMware ESX server hypervisor，提供了CPU和内存的隔离。

  现在的很多研究将SSD作为虚拟化系统中的共享缓存资源。在这个工作中，我们重新讨论这个问题。首先，通过定量检查I/O性能和SSD内部虚拟机之间的干扰。我们展示了，根据SSD状态的不同，实验结果（VM之间的干扰）可能有很显著的变化。然后我们提出了 _**OPS(Over-Provisioning Space) Isolation**_ 。在FTL层，每个虚拟机的OPS都不会被其他用户所干扰。我们展示了，通过OPS Isolation，可以满足虚拟机之间的OPS isolation。

  文章剩下部分的组织架构。

> Introdunction部分分为三个自然段： 1. 第一段讲了固态盘虚拟化场景的现状，以及相关研究的现状。 2. 第二段讲了他们工作的研究场景、主要涉及以及大致效果。 3. 第三段讲文章的组织架构。

### Motivation

  第一段讲，进行了很多实验，但是即便运行相同的workload，SSD的性能表现波形很大，这很大程度上受SSD状态的影响。而SSD的状态是很难控制的。因此，这个结果导致他们想要去**保证SSD性能的可预测性**。

  所有的实验都是在商业SSD上（即买即用）进行的，MLC存储单元、128GB容量。SSD的状态分为`clean`和`aged`。`aged`状态是通过超过SSD容量的4KB-32KB的随机写产生的。

负载I/O特性如下：

|  Workload | Request Total | Write Ratio | Average Write Size |
| :-------: | :-----------: | :---------: | :----------------: |
| Financial |     7.1GB     |     0.76    |        14KB        |
|    MSN    |     14.6GB    |     0.96    |        27KB        |
|  Exchange |     9.8GB     |     0.67    |        17KB        |

#### SSD aging的影响

KVM配置如下：

| Description |         Host         |     VM-1∼4    |
| :---------: | :------------------: | :-----------: |
|   CPU core  |           8          |       1       |
| Memory size |         32GB         |      1GB      |
|      OS     | Ubuntu-14.x with KVM |  Ubuntu-14.x  |
|   Storage   |   Dedicated storage  | Each 30GB SSD |

首先是探究虚拟机之间的带宽比（目标是使得VM之间的I/O带宽成比例分配）

从`图1`可以看出，

![图1. 不同工作负载下VM-1的Cgroup的带宽（注意：VM-x中的x是权重）](https://2309854332-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOeRYmve8jfbmSisuSp%2Fsync%2F47190d4026cb039a96bcfdd3465967f2f65b9edc.png?generation=1609851481265973\&alt=media)

![图2. 虚拟机独立执行和并发执行的I/O带宽](https://2309854332-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MOeRYmve8jfbmSisuSp%2Fsync%2Fe1b96a53fca0373e24bd7849a14d8eb63fd7b650.png?generation=1609919036157486\&alt=media)

## 我的思考

### 本文的优点

首先，本文的实验做的很充分

### 本文的不足

### 有无启发

## 引用格式

**GB/T**

```
Kim J, Lee D, Noh S H. Towards {SLO} Complying SSDs Through {OPS} Isolation[C]//13th {USENIX} Conference on File and Storage Technologies ({FAST} 15). 2015: 183-189.
```
