云存储服务中的资源滥用问题

Report
云存储服务中的
资源滥用问题
报告人:李振华
清华大学 软件学院、信息学国家实验室
http://www.greenorbs.org/people/lzh/
2013年9月30日
1
报告提纲
背景和动机
测量发现
深度分析
解决方法
扩展研究
GreenOrbs和清云网盘
2
背景(1)存储是什么
信息存储技术的进化史





可靠的数据备份
灵活的数据分享
普适的访问方式
便捷的版本控制
……
3
背景(2)美国市场
近年来云存储服务取得巨大成功!
SkyDrive号
称拥有2亿用
户,存储超过
14 PB数据
作为个人云存储的
始祖和典范,12
年底Dropbox宣
布用户数突破1亿,
日均存储或更新
10亿个文件
GoogleDrive
12年4月才发
布,但前3个
月就吸引到
1000万用户
作为苹果公司的
核心云服务,
iCloud在13年4
月宣布用户数突
破3亿
Box侧重高端付费
用户:12年底有
14万商业用户
(来自92%的世
界500强公司),
1400万普通用户
4
背景(3)中国市场
115网盘上线最
早,曾被称为“中
国版
Dropbox”,达
到3000万注册用
户后被政府强制关
闭公开分享功能
酷盘11年初上线,
号称1500万用户,
界面简洁漂亮,
酷似Dropbox
金山快盘10年4月
推出,投入最大,
平台支持最全面,
功能最丰富,开放
API,13年4月宣布
用户突破4500万
百度网盘12年9
月发布,两个月
吸引1000万用
户,成为“百度
云”战略的干将
360云盘11年光
棍节发布,13
年9月宣称用户
数1.2亿
5
背景(4)云存储时代
在人类世界不断信息化、网络化
的历史进程中,“云存储时代”
的到来已经势不可挡了!
6
动机(1)成功背后
But,来自云存储的负面声音……
提供商
用户
酷盘濒临倒闭
(网络流量!)
为什么我修改了几个
字却同步了半个小时?
ZumoDrive半死不活
(网络流量!)
自打手机装上云存储
3G流量月月超! 
Dropbox一天的网络
流量就超过26万美元!
为什么一个云存储软
件也能占满我的CPU?
 整个云存储行业严重亏
损,似乎都在给ISP送钱
 来自用户的抱怨十分普遍
且又十分费解
7
动机(2)互联网王者的情况
GoogleDrive的几个简单例子
上传一个10MB的填满字母a
的文档需要多少流量?
> 11 MB
数据压缩?
在上面这个文档最后再添加
一个字符a需要多少流量?
> 11 MB
差分同
步?
把上面这个文档换个名字重
新上传一下需要多少流量?
> 11 MB
数据消重?
 这些操作所需要的流量不应该是忽略不计
的吗?我们认为顶多几十KB才对啊!
8
动机(3)最牛的Dropbox又如何
 最成熟先进的云存储服务是怎么样的?
上传一个10MB的填满字母a
的文档需要多少流量?
40 KB
40 KB
11 MB
在上面这个文档最后再添加
一个字符a需要多少流量?
40 KB
11 MB
11 MB
把上面这个文档换个名字重
新上传一下需要多少流量?
40 KB
40 KB
11 MB
 手机App和浏览器端或许只是开发进度问题
 Dropbox的PC客户端足够好!
只研究Dropbox
的PC客户端!
9
动机(4)Dropbox的主要特色
 对任何一个互联网服务来说,
前端只是表象,后台才是本质!
文件差分同步
+ 数据压缩 =
非常节流!
Dropbox的系统架构
10
动机(5)更丰富的应用场景
But,好景不长……
当我开始完全信赖Dropbox的时候——
周期性数据收集
数据库存取
文件下载
协同编辑 or 团队编程
频繁短促数据更新
11
测量发现(1)
“频繁短促数据更新”“流量滥用问题”
周期性数据收集
日志添加
文件下载
数据库存取
12
测量发现(2)
频繁短促数据更新普遍存在吗?
 2012年欧洲学者对2个校园网、2个居民小区网中1万多个
Dropbox用户的长期跟踪测量
11%的Dropbox用户涉及到
不可忽视比例(>10%)的频
繁短促数据更新
随着云计算模式的不断深化,越来越多的本地
功能会迁移到云端,流量滥用问题只增不减!
13
测量发现(3)
Dropbox的核心工作原理
 使用strace启动Linux下的Dropbox client
 跟踪分析出Dropbox client的工作原理
14
深度分析(1)
inotify
- Linux提供的内核调用,以实时监控磁盘(文件系统)变
化,一旦发现变化则调用rsync工具进行差分同步
- Dropbox客户端使用了inotify
- 我们也用inotify跟踪磁盘变化
为什么并非每次
- 进一步分析rsync通信数据包的时序
数据更新都触发
一次同步操作?
频繁短促数据更新
时间
会话维护流
量远超过实
际数据流量!
客户端向云端同步数据
15
深度分析(2)
Dropbox CLI (Command Line Interface)
- 命令行工具,用来实时监控Dropbox客户端状态
为什么并非每次
- 我们利用Dropbox CLI 回答上页的问题
数据更新都触发
- 并且还有了更多的发现
一次同步操作?
差分同步要求
Dropbox客户端首先
重新计算本地索引
每次同步操作必须
获得云端的确认
数据更新速度超出
本地计算索引速度
16
解决方法(1)批量同步
 UDS:高效批同步算法
 Update-batched Delayed
Synchronization
 在文件系统和Dropbox客户端之间放置
中间件,监控并改变数据更新模式
 设置一个计数器,实时计算数据更新大小
 合并频繁短促数据更新,计数器满进行批量同步
 计数器应该设置多大呢?
基于原型系统测量设置合理的计数器:
UDS的同步流量仅为
Dropbox的数十分之一:
拐点
17
解决方法(2)问题还没结束?
 遗留问题:CPU开销
内核系
统调用
 处理频繁短促数据更新时,Dropbox和UDS
的CPU开销都过高
 因为对于每次数据更新,Dropbox或UDS都
要重新计算文件更新的大小(差分同步)
 可以不重新计算吗?
 通过兼容性地修改Linux内核,让云存储应用
直接从内核读取文件更新的大小,避免重新计
算的开销 UDS+
差分同
步计算
云存储
应用
Dropbox
18
解决方法(3)修改Linux内核可取吗?
进入360公司实地交流
 360云盘团队也发现差分同步(rsync)计
算开销太大,云端服务器忙不过来
 放弃“计算”,自行设计了一个轻量级的
“估算”方法,大概猜测文件改变大小
 缺点:猜不准,需要多耗网络流量来同步
UDS+:轻量级 & 准确 & 减少网络流量
 “你们(修改Linux内核)的方法非常特别,
为我们提供了一条解决问题的全新思路!”
(同意向我们首次开放360云盘后台API)
 Google、百度、腾讯、360都有过修改
Linux内核优化系统关键性能的先例
19
扩展研究
Web浏览器为何不压缩?
上传一个10MB的填满字母a
的文档需要多少流量?
40 KB
40 KB
11 MB
从系统权衡的角度看流量问题?
Google、微软、Box真的那么傻吗?
 构建一个云存储系统还要考虑计
算量、存储量、设计复杂性
20
GreenOrbs团队简介
GreenOrbs分成6个研究组……
系统与测量
网络管理与诊断
理论与硬件
无线定位与移动计算
欢迎加盟、
合作和访问
高性能网
站的云计
算支撑
云存储
无源感知与安全隐私
云计算与未来网络
成立仅2个月
成员仅6个人
21
清云网盘(1)是什么?
用户配置的批量同步、个人主页、权限分享等
可扩展开源
云计算框架
Amazon
云计算
的开源版
22
清云网盘(2)为什么?
 科研:从系统设计者(而非测量、分析者)的角度看问题
 团队:为GreenOrbs物联网前端搭建可靠高效的云存储后台
 科研产业化:“想得到、做得出、用得好、卖得掉、千家万
套”(by 孙家广 院士)
23
欢迎大家在这个课题上继续钻研,
掀起云存储的研究热潮!

similar documents