<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Projects | ADSLAB</title><link>https://adslab.netlify.app/project/</link><atom:link href="https://adslab.netlify.app/project/index.xml" rel="self" type="application/rss+xml"/><description>Projects</description><generator>Wowchemy (https://wowchemy.com)</generator><language>zh-Hans</language><copyright>Copyright © 先进数据系统实验室 - 2020</copyright><lastBuildDate>Wed, 14 Oct 2020 16:21:58 +0800</lastBuildDate><image><url>https://adslab.netlify.app/images/logo_hu810b42fade58221369d83a751ce54092_11973_300x300_fit_lanczos_2.png</url><title>Projects</title><link>https://adslab.netlify.app/project/</link></image><item><title>分布式存储系统</title><link>https://adslab.netlify.app/project/%E5%88%86%E5%B8%83%E5%BC%8F%E5%AD%98%E5%82%A8%E7%B3%BB%E7%BB%9F/</link><pubDate>Wed, 14 Oct 2020 16:21:58 +0800</pubDate><guid>https://adslab.netlify.app/project/%E5%88%86%E5%B8%83%E5%BC%8F%E5%AD%98%E5%82%A8%E7%B3%BB%E7%BB%9F/</guid><description>&lt;h1 id="分布式存储系统">分布式存储系统&lt;/h1>
&lt;h2 id="背景">背景&lt;/h2>
&lt;p>多年来，存储数据已经发生变化，以满足公司和个人的需求。由于技术和经济原因，我们现在正处于一个临界点，传统的存储方法 – 使用独立的专用存储盒 – 不再有效。我们不仅需要更快的驱动器和网络，我们还需要一种新的方法，即进行数据存储的新概念。多年来，这个概念以不同的形式和形状出现。虽然没有普遍接受的分布式存储系统定义，但我们可以将其概括为：“将数据存储在众多标准服务器上，尽管数据是在这些服务器之间分配的，但它们仍然作为一个存储系统运行。”分布式存储系统（DSS）是“软件定义存储”概念的高级形式。&lt;/p>
&lt;p>分布式缓存当前CephFS的数据和元数据都是存储在Ceph的RADOS集群上，存在下述的一些问题：&lt;br>
数据存储会使用EC池，EC存在很大的写放大问题。&lt;br>
MDS当前存储的Journal和数据存储Omap机制，受限于Journal的写入性能，会导致MDS在元数据更新操作的延时比较高其整体吞吐性能比较差，并且后续的刷写OMap的性能也比较差，会使得存储的脏数据比较大，为冷启动的replay过程造成很大压力。&lt;br>
小IO的场景下EC的性能非常严重，需要通过聚合IO来提升系统的整体性能。&lt;br>
当前的多MDS的场景中，MDS间的数据迁移是采用MDS的缓存数据迁移（内存中），然后通过2PC的方式来完成节点的迁移，而这样的实现方式会导致处理过于复杂。&lt;/p>
&lt;p>针对上述的问题，提出下面的一些分布式缓存的设计目标：&lt;br>
解决小IO的EC写放大问题&lt;br>
当前Ceph的IO路径过长，整体IOPS性能偏低，能够通过缓存提供系统的整体IOPS&lt;br>
提升MDS的元数据事务处理性能，可以通过元数据的写事务的优化加速&lt;br>
提升MDS的读性能处理，优化数据加载的策略和数据从RADOS加载时的读性能的处理。&lt;/p>
&lt;h2 id="分布式预取">分布式预取&lt;/h2></description></item><item><title>分布式机器学习</title><link>https://adslab.netlify.app/project/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/</link><pubDate>Wed, 14 Oct 2020 16:21:44 +0800</pubDate><guid>https://adslab.netlify.app/project/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/</guid><description>&lt;h1 id="分布式机器学习">分布式机器学习&lt;/h1>
&lt;h2 id="背景">背景&lt;/h2>
&lt;p>机器学习在近些年带来的突破无须赘言，已经在许多技术领域被证明是非常有效，比如图像和语音识别，自然语言处理，强化学习等，有些已经达到甚至超越人类的水平。这进而使得它在近些年中，已经部分成功的或者是很有希望成功的被应用在许多我们生活的实际场景中，比如自动驾驶，安防，翻译，医疗等等。&lt;br>
机器学习是从大量的数据中，学习出一个模型，该模型刻画了很多事件的特征，用来对未来发生的事件做出判断。很多机器学习模型，包括绝大部分的神经网络（Neural Networks）、图模型（Graphical Models）、矩阵分解（MF）等等，它们的训练算法都可以被抽象成一个迭代收敛（iterative-convergent）的过程，这个过程将占用大量的计算资源去完成。有研究表明，一个主频为2.0GHz的CPU使用vgg16模型在ImageNet数据集上进行训练，将需要好几年的时间，这跟模型应用的实时性完全不符！由于单机计算能力的受限、训练数据本身非集中等原因，机器学习正在向分布式场景下发展。
&lt;img src="%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%BA%94%E7%94%A8%E9%A2%86%E5%9F%9F.png" alt="">&lt;/p>
&lt;h2 id="目标">目标&lt;/h2>
&lt;p>分布式机器学习系统，即搭建在多设备、多节点的分布式集群上，底层支持多种设备，如CPU、GPU、TPU等，并提供自适应的任务调度能力，以合理地利用计算资源。上层提供接口，提供不同编程语言的实现，以编写不同种类的机器学习算法。如何在多机多设备间合理地调度，以更快的速度计算完成机器学习算法，是分布式机器学习系统设计的主要目标。目前流行的分布式机器学习系统有TensorFlow、MxNet、PyTorch等。&lt;br>
&lt;img src="dml.png" alt="">&lt;/p>
&lt;h2 id="研究方向">研究方向&lt;/h2>
&lt;p>基于参数服务器（parameter server）架构的训练流程优化&lt;br>
参数服务器架构（parameter server）架构被广泛应用在大部分流行的分布式机器学习框架中，如TensorFlow、MxNet等。参数服务器主要由server group和worker group组成，worker group负责模型的计算，server保存整个模型的参数，worker将计算之后的结果的变化和server进行同步，并从server端获取到最新的模型参数，然后进行下一轮迭代计算。&lt;/p>
&lt;p>我们发现，使用该架构进行训练，分布式训练竟然比单机训练还要慢，尽管计算力提升不止一倍。这个现象引发了我们的思考，目前主流的分布式机器学习框架都是从单机版本衍生而来，对分布式调度缺少深刻的认识，以至于这些模型并不能完全发挥计算力的提升所带来的效益。主要针对以上这点，我们展开研究。&lt;/p>
&lt;p>目前正在阅读MxNet源码和TensorFlow源码，发现了一些非常有趣的现象，并在其中做一些break down的实验，探究影响分布式训练速度的本质因素。&lt;/p></description></item><item><title>图分析技术</title><link>https://adslab.netlify.app/project/%E5%9B%BE%E5%88%86%E6%9E%90%E6%8A%80%E6%9C%AF/</link><pubDate>Wed, 14 Oct 2020 16:21:30 +0800</pubDate><guid>https://adslab.netlify.app/project/%E5%9B%BE%E5%88%86%E6%9E%90%E6%8A%80%E6%9C%AF/</guid><description>&lt;h1 id="图分析技术">图分析技术&lt;/h1>
&lt;p>图数据广泛存在于我们的日常生活中，包括社交网络中好友关系、关注关系、点赞评论等， Web图中的网页链接关系、用户点击浏览、收藏网页等，电商平台中用户对商品的收藏、加购物车、购买、评分等行为，音乐视频网、电影评分网中用户听歌、看视频，加喜欢，评论点赞回复等，以及蛋白质分子网、交通网络和路由网络等等。对这些图数据加以分析，我们得到很多有用的信息，例如对社交网络的分析，我们可以进行个性化的好友推荐；对Web网页链接关系分析，得到搜索引擎的网页搜索和排序；对电商平台中用户行为分析，可以对其进行个性化的商品推荐等等。&lt;br>
&lt;img src="%E5%9B%BE%E5%BA%94%E7%94%A8.jpg" alt="">
&lt;img src="%E5%9B%BE%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84.jpg" alt="">&lt;br>
对于图数据的分析处理，我们可以大致分成上图的分层架构，上层是一些图算法及其支持的图应用，下层是对图数据的存储支持以及图计算的通用计算模型。所以我们研究内容也分为下面两个方向。&lt;/p>
&lt;h2 id="研究内容一-图计算">研究内容一 图计算&lt;/h2>
&lt;p>&lt;strong>随机游走采样加速&lt;/strong>：随机游走因为具有良好的理论分析基础以及实现简单的原因，被广泛应用于对大规模在线社交网络的采样中。然而，由于随机游走在社交网络上收敛速度较慢和收敛速度不稳定，导致基于随机游走的在线社交网络采样效率受到严重 制约。本研究提出通过利用随机游走访问路径上的历史节点邻居信息加快其收敛速度的策略。基于如何利用历史节点信息的分析，本研究提出了一种基于公共邻居感知的随机游走算法 (CNARW)。该算法的主要思想是利用局部的邻居信息打破随机游走在选择下一跳时的随机均匀性进而设计一种带权的随机游走。这种带权的随机游走在选择下一跳时会优先选择和当前节点公共邻居较少且自身邻居数目较大的候选节点。随后为了保证 CNARW 能够适用于无偏的图采样。实验结果表明，CNARW算法相比于当前最杰出的两个算法不仅有更快的收敛速度(最大能快 71.9%) 而且收敛速度也更加稳定。在利用 CNARW 算法对在线社交网络做无偏采样时，本研究在理论保证下又分别设计了针对节点属性和拓扑属性的无偏估计算法。通过在真实数据集上的具体实验，发现相比于当前最杰出的两个算法，基于CNARW 的采样算法最 多能节省35.7%的访问开销。进一步，为了验证算法在真实场景中的适用性，本研究从两个具体的应用出发，通过实验发现均有较好的估计效果。
&lt;img src="%E9%9A%8F%E6%9C%BA%E6%B8%B8%E8%B5%B0%E9%87%87%E6%A0%B7.jpg" alt="">
&lt;img src="CNARW.jpg" alt="">&lt;/p>
&lt;p>&lt;strong>Graphlet（图元）统计&lt;/strong>:
Graphlets(图元)是指大规模网络中那些节点数目较少的连通诱导子图，在社交网络和生物信息学等领域有着广泛的应用。随着graphlets节点数目的增多，graphlets的种类数增长迅速且结构变化复杂，快速估计大规模社交网络中所有graphlets的频率是一项挑战。由于精确计数的计算成本较高，目前大多用基于随机游走的采样算法来近似估计graphlets的频率，而这些算法大多只能估计不超过5个节点的graphlets，很难扩展到高阶graphlets。因此，设计一个估计精度高且能扩展到估计高阶graphlets频率的采样算法具有重要的研究意义。我们提出了一种基于最大公共子结构感知的社交网络graphlets采样算法CSRW(Common Substructure based graphlets sampling via Random Walk)。给定graphlets的节点数k，CSRW首先感知并游走一个所有k-graphlets都共享的最大公共子结构2-path，再从多个节点的邻居中随机生成下一跳节点，直至得到k-graphlets样本，从而以统一的方式估计所有类型k-graphlets的频率。综合性实验表明，CSRW能统一地估计所有k-graphlets类型，其算法精确性优于当前代表性算法SRW2CSS和WRW；6, 7-graphlets的估计结果也证明了CSRW的可扩展性。CSRW2也以统一的框架估计所有k-graphlets的频率(k=4, 5)，且相对CSRW来说，CSRW2更有利于估计那些出现较少、结构较稠密的graphlets。
&lt;img src="%E7%BD%91%E7%BB%9C%E4%BF%A1%E6%81%AF%E6%8C%96%E6%8E%98%E4%B8%8E%E5%BA%94%E7%94%A8.jpg" alt="">
&lt;img src="3-4-5-6-7-Graphlets-%E7%BB%93%E6%9E%84%E5%9B%BE.jpg" alt="">&lt;/p>
&lt;p>&lt;strong>影响力最大化问题&lt;/strong>:
影响力最大化算法是在一个社交网络中寻找一组节点，使其能够在相应的影响力传播模型下能够影响更多的节点，传统的影响力最大化算法仅仅是适用于社交网络。对于社交活动网络的影响力最大化算法，我们主要是通过将一个社交活动网络等效为一个超图，并利用超图上的随机游走，定义影响力中心性指标，最终根据影响力中心性指标设计出简单贪心算法。最后利用中心性指标的子模特性，优化算法，最终该算法的时间复杂度能降低到线性时间复杂度。&lt;/p>
&lt;p>&lt;strong>网络异常检测&lt;/strong>:&lt;br>
&lt;img src="%E7%BD%91%E7%BB%9C%E5%BC%82%E5%B8%B8%E6%A3%80%E6%B5%8B.png" alt="">&lt;br>
基于图分析中的random walk 实现对共识机制网络中异常行为的检测与防御。已知点对点和其他分级、分布式系统中是特别容易受到sybil攻击，在sybil攻击中，恶意用户通过虚构多个虚假身份来伪装成系统多个不同节点，通过控制共识机制网络及系统中的大多数节点来“投票”出诚实用户，打破以前防范恶意行为机制。为此对于共识机制网络中异常行为sybil的检测与防御,我们主要通过基于图顶点及子图的相关特征顶点度数、聚类系数等特征变量和传播概率模型中随机游走的结合来实现对异常节点的检测与防御。&lt;/p>
&lt;h2 id="研究方向二-图系统">研究方向二 图系统&lt;/h2>
&lt;p>&lt;strong>基于磁盘的随机游走图系统&lt;/strong>:&lt;br>
&lt;img src="%E5%9F%BA%E4%BA%8E%E7%A3%81%E7%9B%98%E7%9A%84%E5%9B%BE%E5%A4%84%E7%90%86%E7%B3%BB%E7%BB%9F.jpg" alt="">&lt;br>
近些年来，大数据的研究非常火热，而大图分析是其中一个重要分支。随着图规模的不断增大，图不能放进一个单机的内存，针对这个问题，目前有两种解决路径：1. 基于集群的处理，即将图信息分布存储在多个机器，利用分布式算法来计算。2. 单个机器的处理，即利用单个机器的外部存储设备来存储图信息。第二种方法，由于其经济实用性，很多研究工作者对此展开研究工作。&lt;br>
随机游走是图上很重要的一类算法，广泛应用在我们的实际生活中，比如搜索引擎中的网页排序，图片的自动字幕，图采样，以及社交网络中的好友推荐或音乐电影的推荐等。所以能够实现图上的快速随机游走有着十分重要的意义。&lt;br>
下图所示的是现有的基于磁盘的图处理系统，他们都是针对通用的图算法，对随机游走来说可能会有一些实现或者效率上的问题，所以如何设计实现专门的图系统来实现图上的快速随机游走是我们目前的一个研究课题&lt;/p></description></item><item><title>Key Value存储系统</title><link>https://adslab.netlify.app/project/key-value%E5%AD%98%E5%82%A8%E7%B3%BB%E7%BB%9F/</link><pubDate>Wed, 14 Oct 2020 16:21:16 +0800</pubDate><guid>https://adslab.netlify.app/project/key-value%E5%AD%98%E5%82%A8%E7%B3%BB%E7%BB%9F/</guid><description/></item><item><title>容错与灾备系统</title><link>https://adslab.netlify.app/project/%E5%AE%B9%E9%94%99%E4%B8%8E%E7%81%BE%E5%A4%87%E7%B3%BB%E7%BB%9F/</link><pubDate>Mon, 21 Sep 2020 19:58:40 +0800</pubDate><guid>https://adslab.netlify.app/project/%E5%AE%B9%E9%94%99%E4%B8%8E%E7%81%BE%E5%A4%87%E7%B3%BB%E7%BB%9F/</guid><description>&lt;h1 id="容错与灾备系统">容错与灾备系统&lt;/h1>
&lt;p>如今，数据与国家、公司和个人都息息相关。特别是近年来，全球数据量呈爆发式增长，根据EMC和IDC联合发布的一份研究报告显示，直至下一个十年，数据年增长率大约为40%。预计到2020年，全球每年产生和拷贝的数据将达到44ZB（1ZB为1万亿GB）。存储系统是数据的载体，不断膨胀的数据存储需求导致存储系统规模不断扩张，2017年全球云存储市场规模已达307亿美元，预计2022年将增长致889.1亿美元。然而在数据中心中，每年约有5%的磁盘失效、每日约有0.1%的服务器发生宕机。在出现故障时，为保证数据不丢失且可以正常访问，存储系统必须提供可靠性保障。目前存储系统以存储数据冗余的方式提供可靠性，其中包括：多副本技术与纠删码技术。本课题组针对性能修复优化、SSD RAID、扩容和分布式容错等方面对容错灾备系统进行可靠性研究，相关代表工作介绍如下。&lt;/p>
&lt;h2 id="修复性能优化">修复性能优化&lt;/h2>
&lt;p>&lt;img src="RDP%E7%BC%96%E7%A0%81%E6%96%B9%E6%A1%88%E4%B8%8ERDOR-RDP%E4%BF%AE%E5%A4%8D%E8%BF%87%E7%A8%8B.jpg" alt="">&lt;/p>
&lt;p>RDP（Row Diagonal Parity）编码是存储系统中最常采用的RAID-6编码之一，它通过在系统中添加两个磁盘的冗余数据来保证任意两个磁盘同时故障时，数据不会丢失。我们研究了基于RDP码的单盘故障修复问题，分析了任意单个磁盘的故障修复过程中，从存活磁盘读取的数据量的理论下界，同时设计了一种混合修复算法RDOR-RDP(Row Diagonal Optimal Recovery-RDP) ，该算法综合利用RDP编码的两类校验，行校验和对角线校验，共同修复单个故障盘中的数据，实现了修复过程中的数据读取量达到理论下界。此外，RDOR-RDP从系统中各存活磁盘读取等量的数据用于故障恢复，从而保证了修复过程中各存活磁盘的负载均衡。理论分析表明，RDOR-RDP在修复过程中的数据读取量与传统单盘修复算法相比减少了将近25%。模拟实验结果表明，与RDP编码的传统单盘修复算法相比，RDOR-RDP的平均磁盘访问时间减少了15%-22%，总修复时间减少了5%-12%。（”Optimal Recovery of Single Disk Failure in RDP Code Storage Systems”, ACM SIGMETRICS 2010.）&lt;/p>
&lt;h2 id="ssd-raid">SSD RAID&lt;/h2>
&lt;p>&lt;img src="SSD_RAID%E7%9A%84%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6%E8%BF%87%E7%A8%8B%E4%B8%8E%E8%BF%9B%E8%A1%8C%E6%95%B0%E6%8D%AE%E5%86%B7%E7%83%AD%E5%8C%BA%E5%88%86%E7%9A%84GC%E8%BF%87%E7%A8%8B.jpg" alt="">
传统的阵列系统常常采用读-修改-写或读-重构-写机制来进行校验块的更新。但是这两种机制依然会给阵列系统带来许多额外的I/O访问，进而降低固态硬盘阵列系统的性能。近年来，有研究者为固态硬盘阵列系统提出了弹性条带写机制。当数据块需要更新时，该机制将这些需要更新的数据块重构成新的条带，而不是对相应的校验块进行更新。弹性条代写机制能够有效的减少检验块更新带来的开销，然而，它引入了阵列级别垃圾回收操作，这将极大影响固态硬盘阵列系统的性能和寿命。为了解决这个问题，我们首先使用热度感知缓存将进入阵列系统的数据块按照它们的热度值进行划分并缓存进相应的热度组，然后使用分组弹性条带写机制将不同热度组的数据块写入阵列系统的不同区域。为了验证该设计的有效性，我们将热度感知缓存和分组弹性条带写机制部署到由八块固态硬盘构成的RAID-5阵列系统中。实验结果表明，相较于弹性条带写机制，我们提出的机制能够减少26%-65%的阵列级别垃圾回收写操作，将平均响应时间降低到原先的17%-63%，并有助于达到系统级别磨损均衡。（”Grouping-based Elastic Striping with Hotness Awareness for Improving SSD RAID Performance”, IEEE/IFIP DSN 2015.）&lt;/p>
&lt;h2 id="扩容">扩容&lt;/h2>
&lt;p>&lt;img src="CRS%E7%9A%84%E7%BC%96%E7%A0%81%E8%BF%87%E7%A8%8B%E4%B8%8E%E6%8F%90%E5%87%BA%E7%9A%84%E6%89%A9%E5%AE%B9%E6%96%B9%E6%A1%88" alt="">
随着当前存储系统对容错要求的逐渐提高，考虑容任意错的CRS（Cauchy Reed-Solomon）编码的扩容问题愈发重要。CRS编码主要适用于由众多存储节点以及互联网络组成的分布式存储系统。扩容过程需要迁移部分数据到新的存储设备，同时需要更新校验。数据迁移与校验更新带来的存储I／O与网络传输带宽开销直接影响扩容过程中的系统性能。我们研究了基于CRS编码的分布式存储系统的扩容问题，通过第一步设计扩容后的编码矩阵，第二步设计扩容过程中的数据迁移方案，第三步利用校验解码部分数据的思想进一步优化数据迁移过程，为CRS系统扩容设计了一个三阶段优化扩容算法。理论分析表明，三阶段优化扩容算法相对于基本扩容算法，能有效逐步地减少CRS系统扩容过程中的系统I／O与网络传输带宽。通过在实际的分布式文件系统中部署CRS三阶段优化扩容算法，并与基本扩容算法进行广泛实验对比，证实了算法在单线程以及多线程架构下的有效性与实用性。（”I/O-Efficient Scaling Schemes for Distributed Storage Systems with CRS Codes”, IEEE TPDS 2016.&lt;/p>
&lt;h2 id="分布式容错">分布式容错&lt;/h2>
&lt;p>&lt;img src="%E9%9D%99%E6%80%81%E6%9D%A1%E5%B8%A6%E6%9E%84%E5%BB%BA%E7%A4%BA%E4%BE%8B%E4%B8%8E%E5%8A%A8%E6%80%81%E6%9D%A1%E5%B8%A6%E6%9E%84%E5%BB%BA%E7%A4%BA%E4%BE%8B.jpg" alt="">
为保证数据访问性能的同时降低系统的冗余存储开销，分布式存储系统通常会采用异步编码技术。在新数据被写入时，系统使用多副本机制对这些数据进行存储，并在数据访问变少后，在后台将这些数据转化为纠删码方式存储。由于分布式系统通常采用随机分布的数据块放置方法，逻辑地址连续的数据块通常会分散在系统的所有节点中。因此在执行编码操作时，编码进程需要通过跨机架下载来获取数据块。而在编码完成后，又需要跨机架的数据块重新分布来保证数据的可靠性。这种方法即降低了异步编码操作的执行效率，也影响系统中前台任务进程的性能。为提高异步编码的执行效率并降低其对前台任务性能的影响，我们提出了一种新型的编码条带构建方式，称之为动态条带构建技术DSC(Dynamic Stripe Construction)。DSC 根据当前系统中数据块的放置信息来组建编码条带。放入同一编码条带中的数据块需要满足以下两种性质：(1)这些数据块存在副本存储于同一机架中，以保证在编码时不会引起跨机架的数据块下载；(2)这些数据块存在副本分散在其他独立的机架中，以保证编码完成后不会引起跨机架的数据块重新分布。为了在庞大选择空间中有效地组建编码条带，我们设计了一种管理数据块放置信息的数据结构，并基于这一数据结构提出了一种线性时间复杂度的动态条带构建算法。该算法可以以热插拔的方式应用于使用任何数据放置方式与纠删码配置的分布式集群。为了验证动态条带构建技术的有效性，我们将DSC实现在HDFS系统上。在真实集群的测试实验中，DSC可以显著的提高异步编码的执行效率(实验中最高改进可达81%)，并降低其对前台任务进程的影响。（”DSC: Dynamic Stripe Construction for Asynchronous Encoding in Clustered File System”, IEEE INFOCOM 2017.）&lt;/p></description></item><item><title>虚拟化技术</title><link>https://adslab.netlify.app/project/%E8%99%9A%E6%8B%9F%E5%8C%96%E6%8A%80%E6%9C%AF/</link><pubDate>Wed, 16 Sep 2020 20:02:19 +0800</pubDate><guid>https://adslab.netlify.app/project/%E8%99%9A%E6%8B%9F%E5%8C%96%E6%8A%80%E6%9C%AF/</guid><description>&lt;h1 id="虚拟化技术">虚拟化技术&lt;/h1>
&lt;h2 id="背景">背景&lt;/h2>
&lt;p>虚拟化作为一套资源使用方式得到了越来越广泛的关注，尤其是近年来随着云计算的高速发展和广泛应用，虚拟化作为云计算核心技术，更是得到了蓬勃发展。所谓虚拟化，是指通过虚拟化技术将一台物理计算机虚拟为多台逻辑计算机。在一台物理机上同时运行多个逻辑计算机，每个逻辑计算机可运行不同的操作系统，并且应用程序都可以在相互独立的空间内运行而互不影响，从而显著提高系统的工作效率。
正是由于虚拟化技术在云计算中的关键地位，如何设计、使用高效的虚拟化方案成为云计算中关注的重点，这也正是我们所关注的。&lt;/p>
&lt;h2 id="目标">目标&lt;/h2>
&lt;p>本小组主要关注系统层面的虚拟化管理，如虚拟化环境中的内存管理、IO性能、容器管理等。我们致力于实现虚拟化中高效的内存管理方案和容器管理。&lt;/p>
&lt;h2 id="内存重删">内存重删&lt;/h2>
&lt;p>&lt;img src="%E5%86%85%E5%AD%98%E9%87%8D%E5%88%A0.png" alt="">
内存重删技术是虚拟化环境中提升内存利用率的重要技术。内存重删不仅可以为云提供商内存超卖提供技术支持，而且能够提升内存利用率，提升系统性能。因此内存重删不仅在工业界得到广泛应用，在学术界也颇受关注。如何以最小的资源（硬件资源、时间等）开销实现高效、灵敏的内存重删方案一直是业界关注的重点。
实验室郭帆博士提出了一种大小页混合的高效内存重删方案&lt;a href="https://www.usenix.org/conference/atc17/technical-sessions/presentation/guo-fan" target="_blank" rel="noopener">SmartMD&lt;/a>，相关论文发表在ATC’17会议上（CCF A类会议）。&lt;/p>
&lt;h2 id="虚拟机内存回收">虚拟机内存回收&lt;/h2>
&lt;p>&lt;img src="%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%86%85%E5%AD%98%E5%9B%9E%E6%94%B6.png" alt="">
内存作为高速的存储设备在存储系统中占据非常重要的地位。由于内存价格昂贵，所以系统的内存大小通常受限（相比与硬盘的TB级，内存往往只有GB级），内存也成为大数据系统的性能瓶颈。因此提升内存利用率具有重要意义。
在虚拟化环境中，由于传统虚拟机的隔离性等特点，主机无法直接从客户机中回收内存，这就导致主机在内存紧张时，无法直接回收虚拟机的空闲内存。为解决此问题，ballooning技术应运而生，正如其名字一样，ballooning如同客户机中的“气球”，它通过控制气球的“充气”和“放气”实现内存在主机和虚拟机之间的动态流动。我们基于ballooning技术分析系统性能瓶颈，旨在优化内存回收过程，提升整体系统性能。&lt;/p>
&lt;h2 id="安全容器">安全容器&lt;/h2>
&lt;p>&lt;img src="%E5%AE%89%E5%85%A8%E5%AE%B9%E5%99%A8.png" alt="">
在传统的容器实现中，不同的容器之间共享使用与主机相同的内核，只在操作系统层面上进行隔离，这就带来了潜在的安全威胁。特别是在多租户环境下，恶意程序可能通过内核漏洞从而对其他用户的程序乃至主机进行攻击。
安全容器则利用虚拟机良好的隔离性，使用轻量化的虚拟机对不同的容器进行隔离，使其能够达到容器的性能表现的同时也能够拥有虚拟机的安全性。我们分析安全容器启动时的时间瓶颈和安全容器的调度，来进一步提升安全容器的性能。&lt;/p></description></item></channel></rss>