上海交通大学个人云存储这些年走过的那些“坑”
从 2003 年上线的第一代个人文件存储系统 Portal,到 2012 年的 jCube,再到最近上线的jBox,校园云存储在用户需求变化中不断进化……
金耀辉上海交通大学信息网络中心副主任
个人云存储是受师生欢迎的服务,然而,高校个人数据文件的管理存在许多痛点,例如,文件安全性低、误操作、硬件故障等引起文件丢失;文件共享麻烦,仍然依赖于传统的 FTP、Windows等方式;随着移动技术发展,教师及学生对移动办公、学习的需求越来越强烈,却无法基于文件展开讨论和任务安排;日常办公文件无法自动备份与同步;版本控制缺失导致教学文件版本的不可追溯;学校、教师、学生个人之间缺乏快速高效的交互平台;教学资源难以得到有效的利用,资源共享和查找资料起来十分费力。
学校、教师、学生之间如何建立一个高效的平台,使得教学资源能够得到更好的利用,查找起来更容易呢?看起来是一个很简单的个人云存储的需求。然而,仔细一分析,并不简单。
它需要考虑多方面的需求。首先,它具有互联网属性,所以体验是很重要的,例如访问速度快、有多客户端、多移动终端的支持,版本能快速迭代,一般一个学期可能发布一个版本。此外,还包括外链分享。
从用户要求来看,需求是文件预览、全文检索、版本管理、容量超大、应用集成。但是从管理角度来讲,安全性的要求可能更加值得关注。在部署云盘的时候,希望在内部做部署,统一身份绑定,然后进行权限管理,不同的人有不同的权限,传输过程中加密。当然最重要的还是内容监管。
从运维建设来讲,更希望不依赖开放性的要求。第一,不要依赖于底层存储技术。第二,有更多的开放 API接口。现在所谓的云和以前不太一样,更多是在营造一个生态。所以我把它定位成既不是一个企业应用,也不是一个互联网应用,它是一个总互联网的应用。
上海交大使用的个人云存储发展历程,如图1所示。下文将按照不同使用阶段的存储系统进行详细的介绍。
图1
Portal是 第 一 代个人文件存储系统,从 2003 年上线运行至今。当时的用户容量是教师 20G、学生 2G, 不过,20G 也是逐步扩展的。体验其实非常差,只支持FTP、FTPS 和 SFTP 等等,需要 FTP 客户端,用户使用体验不佳,权限设置和文件分享功能极弱。近三年来使用容量增长缓慢,然而,仍然还是有一些忠实的用户一直在用,为什么呢?因为老师们的课件,一直存这里十多年,即用户习惯的原因。
图2
Portal演进的三个阶段,如图2 所示。Portal现在的系统架构,通过 Proftpd 提供 FTP、FTPS 和 SFTP ,安装 GlusterFS Client 加载 GlusterFS 集群文件系统,基于用户名的 hash 将 Homedir均匀分配到1 万个子目录下。集群存储使用了 Gluster Server 3.7,4 个节点都符合,并支持多副本。可用容量 40Tb,可按需要动态扩容,实际只使用了 9.6Tb。虽然使用不多,但是确实还在不断地使用。
图3
图4
jCube 系 统 于 2011 年 10 月 部 署,2012 年 3 月正式上线。当时的用户容量为教师 20GB、学生 10GB。但是实际是可以有一些超出的容量。提供的 Web、Windows 、Android 客户端,后台有 8 台存 储 服 务 器, 裸 容 量 154 TB, 已 使 用43.6%,物理文件数 1259 万,现在上海交大 1/3 的师生在用这一服务。如图3。但是,活跃用户数的确也在下降,如图4。
关于 jCube 系统架构,它的前端是Web ,加上一个调度系统, 以及存储服务器。它的前后端紧密耦合,用户直接访问存储节点。用 Token 验证身份,能和统一身份打通。同时,它是 100% PHP 实现。
我们为什么要做新一代的个人云存储?因为 jCube存储存在两个问题。第一,副本检查效率低。循环扫描所有 Hash、检查副本完整性,每个循环耗时很长,造成新上传文件需很长时间才能复制满 3 个副本。怎么去优化呢?需要新增独立的任务,直接从数据库中找到副本数少于 3 个的 Hash, 生成拷贝命令,从副本循环检查中剥离。第二,存储空间使用不均衡。文件不分片以后,故障磁盘替换(清空)等因素造成长期的一些累积,造成几台服务器空间使用率严重不均衡。优化的过程中,我们上传、副本拷贝时优先选择空间使用率最低的节点,以此取代之前完全随机的策略。其中,会有人工介入的算法,从空间较满的服务器上强制删除一部分副本数为 3 的文件。
校园云的关键问题是存储,用分布式的存储,尤其是开源分布式存储。但是,企业级分布式存储的新需求,或者,校园的需求在哪里?目前存储的三个需求如下:
第一,存结构化数据,面临的是对大幅度容量增长的需求,包括对载体标准化的需求,对计算与存储融合的需求。
第二,存非结构化数据,面临的是对海量级容量增长的需求,包括对接口自适应的需求和对新业务的存储需求。
第三,对高性能的需求,即 IOPS 和Bandwidth 的需求。
存储的选择,需要考虑所谓分布式存储的基本思想。1.是大文件被切割成多个小数据块,分布在多台存储节点上,使得存储和服务的负载均衡和可扩展。2.使用多副本提高数据持久性,需要注意定期检查数据完整性。3.元数据管理方面,是选择集中管理,还是分布式管理,还是无服务器管理,例如 GlusterFS。
后来,我们从存储服务与访问接口、基本功能、高级功能、部署监控及扩展等多方面综合比较,选择 Ceph 作为后端存储。
对于应用层的选择主要考虑 7 类 、87 项技术指标。从系统指标来看,得考虑厂商实力、部署运维能力、数据的安全性;从管理功能来看,得考虑后台管理和监控、账户权限、用户操作审计;从 Web端来看,得考虑 Web 用户界面的功能、用户使用体验;从协作和分享来看,得考虑协作、外链及权限控制;从桌面客户端来看,得考虑 Windows / Mac 端的功能、同步技术和体验;从移动客户端来看,得考虑 Android / iOS 端的功能、文档分享和体验 ;从定制开发来看,得考虑厂商定制开发能力及承诺,包括界面、单点登录、Ceph 集成等等。
基于以上的考虑,上海交大云盘主要体现为安全、协作的特点。作为新一代校园云存储,jBox 正在测试中,欢迎兄弟院校测试使用。云盘能为教师提供 100GB、为学生提供 20GB 的免费空间,6 月初正式上线。
(责编:陶春)
(本文根据金耀辉在“2017 年高等教育信息化创新论坛”上的演讲内容整理,作者为黄保青、章思宇、罗萱、金耀辉)