在实际的存储文件过程中,如果文件太大,对整个文件进行存储,不是很安全,效率也不高,百度的做法是切成小单位,然后在保存在Mola系统里面去(可能存在不同的服务器上),读取的时候再按照拆分的顺序组合成原文件。
多副本存储与副本快速恢复
为了保证云存储的高可用性,数据采用3份冗余存储,读取数据时会按负载均衡选择一个ChunkServer上的副本,因此只要有一台ChunkServer存活,服务就可用。此外,如果某个ChunkServer出现问题,也可以进行副本快速恢复,因为数据的分片是打散在所有的Chunk Server上,单台Chunk Server在进行数据恢复时候,可以多机给一台机器传输数据。
在云存储中用户存储的数据中大部分是非结构化的可以通过Mola来存储;此外用户还是有一些结构化的数据,比如联系人、短信、收藏的音乐、电影以及游戏进度、装备、设置等;这些结构化数据则通过增加结构化存储来解决。
云端管多层次安全机制
在安全方面,百度也从云端管三个方面设置了多项安全的保障,确保用户安全放心地使用云存储服务。
云:数据中心灾备;多副本冗余;数据隔离;安全监测用户分享内容
端:OAuth2.0安全认证;统一访问控制系统
管:HTTPS加密数据传输
比如在云端,百度搭建了ACL(AccessControlList)服务器,让开发者定义语法,界定存储对象是公开还是私有,或者允许某些特定用户访问。对个人用户而言,也可以指定哪些数据或者哪些子目录下的数据可以公开给某些应用使用,灵活控制数据的使用、同时提供安全保障。
实现数据唯一性
从国内主流的网盘来看,大都实现了数据在不同终端之间的同步,有些可以针对不同终端进行媒体的适配,提高用户体验。但并没有解决不同应用之间的数据共享问题。比如在微博上朋友分享的照片,如果要想同时在微信上分享给别的好友,那用户只能是先从微博上把照片单独拷贝到网盘,然后再到微博上去分享。理想的状态是只要有更新的照片,无论是来自哪个应用,只要用户许可,其他应用都可以看到这些数据,并且触发某些操作(当然用户也可以设置不这样做),百度云做到了这一点。