杉岩PACS影像系统分布式存储架构

article/2025/10/5 14:14:54

该医院创建于1999年,是深圳市政府投资建成的集医疗、教学、科研和预防为一体的现代化三级综合性医院。2017年通过三级甲等医院复审。2018年,医院年门急诊总量约292万人次,年出院病人近7.4万人次,年手术量4.9万台次。 该院在深圳有较高的知名度和认可度。
行业挑战
随着该医院门诊量的爆发式增长,放射科等科室新增了大量影像采集设备,PACS存储了大量的非结构化数据,原有的存储系统面临如下挑战:
 访问性能不足
大批影像采集设备产生的海量影像图片需要经过PACS的并发处理与存储,会导致现有存储面临较大的性能压力,并影响临床科医生调阅影像速度。
 数据增长快,数据量大
影像文件每月新增数量接近1千万,每年增长量达到上亿,存储空间高达PB级,且文件保存时间要求不低于15年,传统存储无法满足需求。
 数据无分级和归档
此前PACS系统设置的归档存储设备品牌种类多,无统一的数据生命周期管理,需要存储系统根据性能和容量的不同进行合理分级和归档,满足法规遵从要求。
 影像文件无法实时调阅
此前影像存储系统支持6个月内的影像数据调阅,如超出6个月,临床科医生无法及时甚至不能调阅历史影像文件,进而影响看诊效率,急需高效、智能的存储系统满足业务需求。
 信息需集中管理和共享
此前PACS只能把处理好的影像手工复制到影像发布系统,并提供给临床科医生进行调阅诊断,其他科室的数据存储在各科室工作站,信息无法集中管理和共享。

解决方案
基于此,医疗单位必须通过升级传统存储架构及数据调用模式,才能应对当下对于快速扩张的存储的需求。经过多次的行业调研及产品对比测试,该院最终采用杉岩数据分布式对象存储解决方案,架构如下图所示:
在这里插入图片描述

底层存储改造成云存储池架构,并异构原有的传统存储,进行统一管理。影像发布系统直接读取热存储池近一年的影像数据,并且无需生产PACS进行影像复制,节省存储资源,并加快了PACS系统和发布系统的运行效率。其他科室(皮肤科等)的文档统一采用seafile文档管理系统进行集中管理和共享,数据集中存储在温存储池。云存储池可以直接设置归档策略,无需上层系统进行数据分级归档。
相关容量方案设计:
此前该三甲医院PACS系统一天产生30万张影像,每张CT图像大小为500K,每张DR、胸片大小为12M。一天增长近200G的数据量,一年增长高达72T。

在这里插入图片描述

生产PACS系统历史归档数据总量为150T,其他科室(皮肤科、妇产科、神经内外科等)需要30T存储空间进行集中存储和管理。云存储裸空间需求为500T (热存储池裸容量200T, 温存储池250T,光存储池50T),底层数据采用副本或纠删的保护机制保障数据的安全。

最新设计的分布式存储方案中,热池和温池分别按照存放1年和2年的数据进行容量设计,即19年数据直接写入热池, 17年到18年两年的数据直接迁移至温池,17年以前的数据直接归档迁移到光存储。数据在磁盘存储停留3年之后,离线归档到冷存储(光存)。按照目前的统计,该院每年新增约80TB影像数据,按照存放时间,热池和温池分别设计100TB和200TB的可用空间,后续业务增长,只需扩容光存储即可。如果因业务增长,每年数据增速提高,则按需求和比例对热、温、冷进行扩容。

存储设备的最终裸容量P的计算应该综合考虑业务可用容量需求p,硬盘折损率r,以及副本或纠删码(4+1)的可用空间率s,其中,硬盘折损率r的计算公式为:r=(1000/1024)4 = 0.91
两副本的可用空间率s1:s1=1/2=0.5;纠删码的可用空间率s1:s2=4/5=0.8
裸容量P和可用容量p,以及硬盘折损率r,纠删码可用空间率s之间的关系是:p=Prs
因此裸容量(按硬盘厂商的规格计算)可用通过如下公式进行计算:P=p/(r*s)

按一年的数据增长量为72T-80T,并且考虑到未来影像数据的增加和影像清晰度的要求,影像需调阅原图。 PACS系统规划的热存储池可用容量100T(保存一年的数据),由于读写性能要求比较高,建议采用两副本存储方案。而且主要是小文件频繁读写,为了综合考虑成本,存储主要采用SATA机械盘,利用两块SATA SSD做一些关键元数据存储加速。
热存储池的可用容量计算公式如下:200T0.910.5=91T
温存储池由于读写性能要求没有热存储池高,采用EC纠删码存储方案,另外其他科室(皮肤科等)的数据统一存储在温存储池,存储服务器可以考虑多盘位的服务器,降低存储硬件成本。
可用空间计算公式:250T0.910.8=182T(保存两年数据),冷存储池(光存储)的可用空间为50T。

在这里插入图片描述

方案价值
通过此次方案改造,借助杉岩数据的海量对象存储(SandStone MOS)解决方案,充分利用原有存储设备,将PACS影像系统的文件存储替换成SandStone MOS,生产系统将文件存储在一个易扩展、容量大的存储池,简化架构,便于统一管理和运维监控。将1年的数据转移到更低成本的硬件上;2年以上的数据归档到蓝光存储上永久保存,满足法规15年以上保留要求。通过纳管原有存储系统,实现数据集中管理和无缝迁移。系统采用哈希计算替代索引查找访问文件,在数据存储方面采用创新性的文件合并方式,优化了小文件的访问性能。SandStone MOS内置检索引擎,打破数据孤岛,实现数据共享,大大提升了PACS的运行效率。


http://chatgpt.dhexx.cn/article/ePgh2TQd.shtml

相关文章

Ceph分布式存储 原理+架构图详解

分布式存储Ceph ceph介绍 ceph是一个统一的、分布式的存储系统,设计初衷式提供较好的性能(io)、可靠性(没有单点故障)和可扩展性(未来可以理论上无限扩展集群规模),这三点也是集群架构所追求的。 统一性 : 意味着我们可以仅凭ceph这一套存储系统&…

几种分布式存储组网架构参考

作 者: NGDCN 原文链接:几种分布式存储组网架构参考 - NGDCN 版 权: 本文由 NGDCN 于2022-11-12原创发布在 NGDCN,未经许可,禁止转载。 1、名词解释 ◼ VBS:云硬盘备份(Volume …

谈谈Java内存模型

谈谈Java内存模型 什么是JMM为什么需要这种规范呢?三大特性在Java中是怎么满足的呢? 什么是JMM Java Memory Model ,Java内存模型,是一种共享内存系统中多线程程序读写操作行为的规范,它是一种屏蔽了各种硬件和操作系…

Java内存模型及管理

1. 概述 多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请…

什么是Java内存模型

概述:本文向您介绍Java内存模型的概念,在C或C中, 利用不同操作平台下的内存模型来编写并发程序;Java利用了自身虚拟机的优势, 使内存模型不束缚于具体的处理器架构,真正实现了跨平台。 内存模型 (memory model) 内存模型描述的是程…

详说Java内存模型(JMM)

文章目录 什么是Java内存模型为什么提出内存模型Java主内存与工作内存JMM三大特性可见性有序性原子性 并发总结 什么是Java内存模型 Java内存模型就是(Java Memory Model),它规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机就是一…

详解Java内存模型

文章目录 一、简介二、处理器、高速缓冲、主内存间的交互关系三、Java线程、工作内存和主内存的交互关系四、8大原子操作五、8大Happens-Before原则 一、简介 Java内存模型(JMM)是线程间通信的控制机制,JMM定义了主内存和线程工作内存之间的抽…

Java内存模型的一点理解

关于Java内存模型的问题 文章目录 前言一、Java内存模型二、其中一些指向问题1.内存指向问题为什么? 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要…

【Java】Java内存模型

1.什么是Java内存模型 Java内存模型(Java Memory Model,JMM)是一种抽象的,不存在的概念。是一种屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范。 Java内…

2.什么是JAVA内存模型?

为什么要设计JAVA内存模型? 小陈:老王,看了上一篇的《CPU多级缓存模型》,有个疑问为什么还要有JAVA内存模型啊? 老王:这么来说吧,CPU多级缓存模型,只是一个规范,但是底层…

Java内存模型是什么

网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文,就来整体的介绍一下Java内存模型&#…

Java内存模型是什么,为什么要有Java内存模型,Java内存模型解决了什么问题等。。。

本文中,有很多定义和说法,都是笔者自己理解后定义出来的。希望能够让读者可以对Java内存模型有更加清晰的认识。当然,如有偏颇,欢迎指正。 为什么要有内存模型 在介绍Java内存模型之前,先来看一下到底什么是计算机内存…

Java内存模型相关面试题

一、谈谈你对Java内存模型的理解可以吗? 对于Java内存模型大家千万不能和JVM内存模型弄混了,不一样的; JVM内存模型是指JVM的内存分区,就是JVM分了几个区域;而Java内存模型是一种虚拟机规范。 首先来看下面一段代码&…

什么是Java内存模型?

点击上方“程序员小灰”,选择“置顶公众号” 有趣有内涵的文章第一时间送达! 本文转载自公众号 占小狼的博客 说”JVM内存模型“,有人会说是关于JVM内存分布(堆栈,方法区等)这些介绍,也有地方说…

Java面试--Java内存模型

面试题:你了解Java内存模型吗?(顺丰面试题) 面试题:程序内存的分布,五个部分(360面试题) 一、Java程序的执行过程: Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中…

JAVA内存模型与JVM内存模型

JAVA内存模型(JMM)与JVM内存模型 1、JAVA内存模型保证了在多线程环境下,对共享变量读写的原子性、可见性和有序性的一系列规范。 2、JVM内存模型规定了JAVA虚拟机在运行时使用的内存的各个分区及其作用。JAVA内存模型 原子性: 通过 synchronized、lock实现&#x…

Java内存模型(JMM)详解

目录 一、为什么要有内存模型二、CPU和缓存一致性2.1 为什么需要CPU cache2.2 三级缓存(L1、L2、L3)2.3 乱序执行优化 三、java内存模型3.1 JVM对Java内存模型的实现3.2 Java内存模型和硬件架构之间的桥接3.3 Java内存模型 - 同步八种操作3.4 Java内存模…

jvm内存模型和java内存模型

初识java虚拟机,就碰到一系列不懂的问题。我们以前常说java把局部变量放在栈里,new出来的变量放在堆里,然后堆里的数据不定时就给回收了。然后,如果是多线程的话,每个线程自己都有会一个私有的虚拟机栈,运行…

JAVA内存模型与JVM内存模型的区别

** JAVA内存模型与JVM内存模型的区别 ** 直接进入正题 **JAVA内存模型: Java内存模型规定所有的变量都是存在主存中,每个线程都有自己的工作内存。线程堆变量的操作都必须在工作内存进行,不能直接堆主存进行操作,并且每个线程…

【3】Java内存模型

目录 知识点1:Java内存模型 知识点2:Volatile 1、什么是Volatile 2、Volatile特性 3、Volatile与Synchronized区别 知识点3:重排序 1、数据依赖性 2、as-if-serial语义 3、程序顺序规则 4、重排序对多线程的影响 知识点1&#xff1a…