使用阿里云存储承载生命科学数据

王太平
  • 收获赞:68
  • 擅长领域:阿里云存储架构师,专注存储领域,十几年云计算/存储从业经验,涉及IDC传统磁盘阵列、分布式存储、云存储等。

本文主要介绍如何使用阿里云存储承载生命科学行业的数据,结合当前《数据安全法》以及《生物安全法》对于数据存储的合规要求,打造生命科学行业的高效、安全、数据流。

概述

随着社会经济、科技的高速发展以及人民生活水平的不断提高,人们越来越重视生命科学的探索和健康生活的追求,基因测序及基因分析等相关技术在健康、医疗、政法等领域得到了的大力推广和广泛应用。然而,传统的IT架构由于性能和横向扩展能力有限,已不能适应快速发展的基因测序的需求,使用公共云存储来承载已经成为业界最主流的方案。在实施从线下IDC将业务切换到公共云上,数据存储以及数据的流转成为客户使用的重点关注问题。

方案介绍

通过学习《使用阿里云存储承载生命科学数据》最佳实践,可以了解如何将云下IDC数据迁移到阿里云上,并且了解如何在阿里云上进行数据的业务流转。

目标读者

本文主要面向拓展生命科学行业的业务人员,包含CBM及架构师。通过此文档,可以快速了解生命科学行业的数据存储需求,以及面临的主要痛点,以及阿里云提供的相应解决方案,节省对行业的探索时间,提高效率。

相关概念

基因测序技术

基因测序技术到当前已经发展了三代,其中一代(sanger)测序技术一次可以读取600-1000bp的碱基,准确性十分之高,至今仍是正确性的金标准。该技术在当下依然被使用,比如构建载体做克隆,基因敲除等实验都可以用到。但其通量太低,导致在很多情况下成本太高,难以广泛应用。

二代测序NGS技术,极大的提高了测序的通量,大大降低了测序成本和周期。其中Illumina公司凭借超低的测序成本和可以接受的读长,成为了目前最主流的二代测序公司,其测序成本近五年来从几千元1G(1G即10亿碱基)降到了到今天的40多块钱1G数据量,这个过程中基因组De novo测序,转录组、小RNA、LncRNA、circRNA测序,DNA甲基化测序,高密度遗传图谱,大规模GWAS关联分析等等实验手段得到了广泛的推广应用。二代测序技术虽然通量很高,成本低廉,但是读长实在太短,主流的Illumina测序仪,常规模式只能测PE150的长度,靠着软件算法上的进步才得以可用。

目前二代测序是主流技术,与云计算技术(存储、计算)关联度高,存储需求量大,中等规模的基因公司累积的数据普遍在PB级别。二代因为对算法依赖性高,有明确的计算资源需求。

目前三代测序在科研场景应用越来越多,并逐步成为主流技术,与云计算技术(存储、计算)关联度高,存储需求量和二代测序级别相当。三代测序数据的组装,对计算资源及存储资源需求量大。

文件存储 NAS

阿里云文件存储NAS(Apsara File Storage NAS)是一个可大规模共享访问,弹性扩展的高性能云原生分布式文件系统。支持智能冷热数据分层,有效降低数据存储成本。广泛应用于企业级应用数据共享、容器、AI机器学习、Web 服务和内容管理、应用程序开发和测试、媒体和娱乐工作流、数据库备份等场景。

对象存储 OSS

阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%(12个9)的数据持久性,99.95%的数据可用性。多种存储类型供选择,全面优化存储成本。

生命科学客户数据需求

生命科学行业的上、中、下游链条较长,基本上没有一个厂家可以覆盖整个上下游,厂商之间需要合作,从原始样本、测序仪数据产生、数据分析、终端应用等需要在多个机构或组织中流转迁移,且经常需要GB/TB级大文件数据;其次,生命科学行业部分原始样本数据、部分结构数据、数据集需要长期保存。主要面临着以下几个痛点:

  • 数据存储:数据增长快,存储费用高,管理困难;长期保存可靠性难保障;元数据管理混乱,数据清理困难。

  • 数据共享:海量数据需要快速、安全的分发到国内多地及海外;传统硬盘寄送方式周期长,可靠性低;多地中心数据需要共享访问。

  • 计算分析:批量样本处理时间长,资源需求峰谷明显,难以规划;大样本数据挖掘要海量计算资源,本地集群难满足。

方案架构

生命科学行业客户的关键数据流如下图所示:

image.png

方案优势

  • 易扩展、低成本:云上OSS提供无限弹性存储空间,同时通过冷数据归档存储,降低存储成本。

  • 简化数据交付:通过OSS客户端工具,OSS提供高可靠、高带宽的上传、下载服务,可以保证10000+用户同时上传、下载数据,提高数据交付效率。

  • 快速数据分析:NAS 存储集成EHPC/BCS/ACK计算平台,根据业务需求,按需弹性提供计算资源,解决业务高峰期排队问题的同时,提高资源利用率。

方案实践

生命科学客户关键数据路径规划

生信数据类型划分

  • 历史项目归档冷数据:历史项目归档冷数据、参考基因组数据等。

  • 周期性项目归档数据:当前或近期项目归档数据。

  • 第三方提供数据: 第三方上传的输入数据。

  • 对外交付数据:项目执行输出的结果数据,可对外呈现。

HPC集群关键目录划分

  • 用户目录:/home,E-HPC创建用户时自动生成,各用户访问权限隔离,存放各自脚本及临时文件。

  • 软件目录:/opt/softwares , 安装存放项目依赖的生信软件及配置脚本。

  • 数据目录:/opt/workdata ,存放参考数据、输入数据、输出数据等。

  • 项目目录:/opt/workdata/projects/opt/projects/, 基于项目维度存放项目相关数据,包括输入数据、中间数据、输出数据等。

存储规划

  • 对象存储规划:OSS bucket 3个,一个用于接收第三方数据,一个用于长期数据归档级周期性归档数据,一个用于向第三方交付数据。

  • 文件存储规划:阿里云容量型NAS存储一个,用于配合EHPC执行计算分析任务(主要存储计算分析类任务需要的热数据,以及通用的一些常用共享数据)。

  • 数据调度资源:计算集群提供管理机一个,用于运行各种数据调度软件及脚本,执行业务处理热数据从OSS到NAS,以及处理归档数据从NAS到OSS。

  • 网络互联规划:阿里云NAS通过专线和线下集群进行打通(同一个VPC),并且挂载NAS到线下集群服务器(需要网络专线交付时执行,本地选定一台服务器用于执行数据上传的脚本)。

IDC数据迁移上云

image.png

部署方式

说明

小于30TB使用专线迁移,大于30TB使用闪电立方。

  • 部署闪电立方-存储节点,电源,网络配置好。

  • 闪电agent部署在本地某台服务器上。

  • 通过闪电立方Agent把本地NAS中的数据复制到闪电立方II中。

  • 闪电立方接入阿里云,数据导入OSS。

  • 使用在线迁移服务完成OSS>阿里云NAS。

重要

如果使用闪电立方Mini,不需要单独在应用服务器上部署Agent,闪电立方Mini自带Agent(Agent主要实现文件切片以及任务并发等机制)。

本地设备下机数据定期迁移上云

image.png
说明

针对生命科学场景,推荐使用专线NAS挂载方案来实现数据自动云同步。

  • 需要通过专线将线下IDC服务器管理节点加入云上VPC网络(参考,该部分工作由专线团队进行负责)。

  • 线下集群选择一台服务器挂载阿里云NAS到本地服务器,推荐Linux服务器。

  • 在线下服务器通过Linux CP命令实现数据从本地上传到公共云cp -r /sourcedir /targetDir

  • 对于需要在NAS长期留存的数据,云上NAS可以开启自动生命周期管理进行数据冷热的保存,按照阿里云实践建议设置“距最近访问14天以上”。

第三方交付数据到云上

说明

部分生命科学客户的基因组测序等借助第三方测试力量,因此涉及原始数据从第三方交付的场景。

  • 创建专用RAM账户用于给第三方进行数据交付,有关创建RAM用户的详情,请参见创建RAM用户

  • 针对目标bucket在bucket权限管控中,针对该子账号设置基于指定资源路径(子目录)的读写权限

  • 针对小规模数据上传(1TB以下),建议提供OSSBrower工具给第三方进行简单上传。ossbrowser是阿里云官方提供的OSS图形化管理工具,提供类似Windows资源管理器的功能。使用ossbrowser,您可以快速完成存储空间(Bucket)和文件(Object)的相关操作。

  • 针对大容量的数据上传(1~30TB),建议使用ossutil的cp命令将您的本地文件或文件夹上传至OSS。举例:./ossutil64 cp -r localfolder/ oss://examplebucket/desfolder/localfolder/,该过程需要获取对应RAM的AK、SK等信息

  • 针对源数据在OSS交付到OSS的跨账号数据交付,推荐使用在线迁移服务,详细参考OSS迁移至OSS教程, 当前迁移为免费服务。

第三方机构交付数据同步到计算分析集群

image.png
  • 在计算集群的管控节点上,部署阿里云OSS 的ossutil工具,操作参考工具的安装部署,同时NAS文件系统需要挂载到计算管控节点的ECS本地目录(假设挂载在/nasdir)。

  • 假设需要将OSS 中examplebucket的afolder下所有文件(包含子目录文件)拉取到文件系统的/nasdir/bfolder,则需要在计算节点运行如下命令:./ossutil64 cp -r oss://examplebucket/ afolder / /nasdir/bfolder/

  • 如果容量较大,建议使用在线迁移服务,详细参考OSS迁移至NAS教程

第三方交付数据同步到归档存储

image.png
说明

同区域复制(Same-Region Replication)是指将源存储空间(Bucket)中的文件(Object)的创建、更新和删除等操作自动、异步地复制到相同地域下的目标Bucket。

针对第三方数据需要持久化保存到归档对象存储空间,需要在OSS控制台配置选择三方数据bucket,选择冗余与容错>同区域复制,选择数据增改同步并同步历史数据;生效后数据会自动的在两个OSS bucket间进行同步(同步周期通常几分钟到几小时不等)。

生信结果数据&原始数据转存

image.png
  • 在计算集群的管控节点上,部署阿里云OSS 的ossutil工具,具体参考工具的安装部署,同时NAS文件系统需要挂载到计算管控节点的ECS本地目录(假设挂载在/nasdir)。

  • 假设需要将文件系统的/nasdir/bfolder下的文件拷贝到OSS中examplebucket的afolder下,则需要在计算节点运行如下命令:./ossutil64 cp -r /nasdir/bfolder/ oss://examplebucket/ afolder /

  • 假如需要将文件系统数据转存到OSS并长期归档,则运行如下命令: ./ossutil64 cp -r /nasdir/bfolder/ oss://examplebucket/ afolder / --meta X-oss-Storage-Class:ColdArchive

  • 如果容量较大,建议使用在线迁移服务,详细参考NAS迁移至 OSS 教程,当前迁移为免费服务;由于该操作为不定期的频繁操作,可以单独输出配置指导,指导生信人员自己执行。

基因数据生命周期设置&保留周期策略

image.png
  • 针对归档数据Bucket,我们需要设定生命周期策略来让数据自动化的进行后台迁移到冷归档,节省成本。

  • 可以通过控制台设置OSS生命周期

  • 建议按照前缀(也就是目录)设定不同的策略。

    • 对于可能会频繁再次访问的不设置生命周期。

    • 对于长期不访问的数据可以设置文件最后修改时间 (1~7天)后,其存储类型将由标准型自动转换为冷归档型。

    • 对于近期可能还有访问的文件建议设定为文件最后修改时间 (7~30天)后,其存储类型将由标准型自动转换为冷归档型。

  • 针对归档数据Bucket,我们建议设置合规保留策略,防止数据被不法篡改或删除。合规保留策略(一次写入,多次读取)用于指定Bucket内文件的保护周期。在保护周期内,任何人都不能对文件进行修改和删除操作。

冷归档数据的批量读取

image.png
说明

您在访问归档存储或冷归档存储类型的文件(Object)之前,需要先解冻文件才可以在线访问。由于在生命科学场景下,很多数据已经进行归档和冷归档存储,如果再次需要访问就需要执行取回操作。

  • 针对冷归档的数据,如果需要再次访问,需要进行解冻文件的操作,推荐使用ossutil工具进行批量解冻文件的操作(该操作中计算集群管控节点的操作主要是发执行命令,不实际处理数据对于性能要求不高。所有的操作均为OSS后台执行)。

  • 创建本地XML格式文件config.xml,并在文件中配置如下解冻参数(批量解冻保存7天)。

<RestoreRequest>
    <Days>7</Days>
    <JobParameters>
       <Tier>Bulk</Tier>
    </JobParameters>
</RestoreRequest>
  • 然后执行命令:./ossutil64 restore oss://examplebucket/dest config.xml -r,具体参考解冻文件

数据对外交付

针对基因结果数据对外的交付和共享:

前置条件

  • 创建专用RAM账户用于对外数据交付,有关创建RAM用户的详情,请参见创建RAM用户。该用户需要具备AliyunRAMFullAccess&AliyunSTSAssumeRoleAccess权限。

  • 针对目标bucket在bucket权限管控中,选择bucket授权策略针对该子账号设置基于指定资源路径(子目录)的只读权限。

GB级数据交付(<100GB ),建议使用图形化工具ossbrowser进行操作

  • 创建角色,角色名自定义即可,创建可信实体为阿里云账号的RAM角色,给该角色赋予AliyunOSSReadOnlyAccess权限。

  • 使用该账号登录OSSBrower,选择指定目录,右键生成授权码,指定我们之前创建的角色,设置有效时间周期。生成相关授权码,复制对应的授权码发送给客户。

  • 客户打开OSSBrower,选择授权码登录,粘贴授权码,即可下载对应的文件。

TB级数据交付(<1TB),建议使用命令行工具ossutil进行操作,在客户本地服务器部署ossutil工具

  • 提供用户AK\SK以及对于bucket的endpoint信息给到第三方,第三方下载ossutil并进行本地配置(该用户非sts用户,需要单独创建子账户)。

  • 假设需要将OSS 中examplebucket的afolder下所有文件(包含子目录文件)拉取到本地的/bfolder下,则需要在计算节点运行如下命令:./ossutil64 cp -r oss://examplebucket/ afolder / / bfolder/

大量数据交付(>1TB),建议使用闪电立方进行数据交付

  • 如果需要使用闪电立方交付数据到线下机房提前知会阿里同学,进行case by case数据迁移。

阿里云关于基因的方案

阿里云不仅仅提供针对生命科学的存储方案,还提供端到端的整体解决方案,包含EHPC、批量计算、容器、数据湖分析等。

总体方案

基因测序技术日新月异,围绕着基因组学的基础科学研究和临床医学应用,也正在取得突破性的进展。阿里云为海量基因组学数据的计算分析存储提供高效安全的完整解决方案,帮助生物科技公司、科研人员和医疗健康机构构建广泛可靠、敏捷智能的基础平台和业务系统。