云存储服务中的资源滥用问题
Download
Report
Transcript 云存储服务中的资源滥用问题
云存储服务中的
资源滥用问题
报告人:李振华
清华大学 软件学院、信息学国家实验室
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
欢迎大家在这个课题上继续钻研,
掀起云存储的研究热潮!