服务器简介

2022-10-25 19:29:20 浏览数 (2)

一、什么是服务器?

什么是服务器呢。根据名字,服务器是用来提供服务的机器,你可以简单理解为一台计算性能更强的电脑,但其实二者还是有很多不同的。根据百度百度词条中的定义:服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机(如 PC 机、智能手机、ATM 等终端甚至是火车系统等大型设备)提供计算或者应用服务。服务器具有高速的 CPU 运算能力、长时间的可靠运行、强大的 I/O 外部数据吞吐能力以及更好的扩展性。

根据服务器所提供的服务,一般来说服务器都具备承担响应服务请求、承担服务、保障服务的能力。服务器作为电子设备,其内部的结构十分的复杂,但与普通的计算机内部结构相差不大,如:cpu、硬盘、内存,系统、系统总线等。

服务器的应用

现代社会的运行需要大量的计算资源,例如商业系统,医疗卫生,交通运输,电信网络,证券交易,互联网等都需要大量服务器作为后台支撑。一旦服务器宕机,将会造成大量的影响。例如 2021 年 10 月 Facebook、Instagram、WhatsApp 的网站和 App 曾集体出现宕机,持续时间超 6 个小时,市值一夜蒸发超 640 亿美元。

二、做生物信息,为什么要使用服务器?

在基因测序领域,每天将产生大量的测序数据,这些测序数据需要大量的计算机存储设备进行存储,传输,计算分析等,这些都需要大量的计算资源,也就是服务器。因此做生物信息需要充足的计算资源。

所以,如果想做生物信息,最好还是使用服务器。

第一:计算资源大,因为生物数据很大,需要非常大的计算量,而个人电脑一般情况下是完成不了的。比如一般人笔记本 也就是 8G 内存或者 16G 内存。而一些分析, 比如拼接一个真菌的基因组,有可能需要 100G 内存,个人电脑是根本完成不了的,你说我不着急,让笔记本慢慢处理,这不是能用时间换空间的问题,如果内存不够,就是完成不了的。

第二:在做生物数据计算的时候,需要频繁的去读写磁盘,这对笔记本的磁盘是不太好的,那服务器的磁盘就没问题吗,当然不能这么绝对说服务器的磁盘就永远不坏。只不过服务器的磁盘一般做成 RAID 阵列,不仅能够提高磁盘读写效率,更重要的是可以进行容错,比如一块磁盘坏了,数据还可以恢复,个人电脑就不太容易了。

第三:服务器一般可以连续运行,不用关机,如果突然宕机或者关机那就是重大事故了,比如微信或者支付宝后台服务器突然死机了,那将损失惨重。在做生物信息分析的时候,有一些分析非常耗时,比如拼接一个大的基因组,可能需要十几天,你不能十几天让笔记本电脑一直不关机运行吧,下班了还开着盖子捧着走。那可以设置盒盖之后继续运行吗,但是万一不小心断掉了,那么就功亏一篑了。

综上原因,我们还是非常强烈推荐大家做分析的时候使用服务器来做。当然,如果只提取几条序列,瞬间就完成了,需要的计算资源很小,当然也是可以在自己电脑上完成了。

三、做生物信息,需要多少计算资源?

做生物信息,需要多少计算资源?这个问题很难计算,因为生物数据分析的计算资源需求是动态变化的,影响因素较多,很难计算。主要与数据量大小,软件算法,磁盘读写速度,CPU 运行速度以及计算量大小有关。例如同样的数据拼接基因组要比序列比对消耗更多的计算资源。构建系统发育树,虽然数据量很小,但计算量较大,因此,很难估算具体需要多少计算资源,例如多少 CPU,多少内存,多少磁盘这些具体指标。只能根据经验值预估。计算资源没有上限,越大的计算资源计算速度越快,就可以更快地拿到结果。但是计算资源有下限。例如拼接一个基因组需要 100G 内存,如果只有 90G 内存,则无法完成。

下面我们拿一个具体案例来看一下做生物信息对计算资源的消耗。

假设人基因组大小约等于 3G 数据,这个碱基数目就和计算机里面的字节数目近似。当前的测序技术,例如 illumina 测序,如果要对一个人全基因组进行测序,至少要 30X 数据,也就是测序 3 基因组大小的 30 倍,共 90G。而每个文件中除了碱基序列信息,还包括 ID 信息,质量值信息等,那么总字节数目至少要基因组大小的 70 倍,也就是 210G,而每次测序都要比30X数据再多一些。空间不够可以对文件进行压缩。最终所占存储要低很多,下面是一个人全基因组分析的案例,原始测序数据两个文件,共 86G 存储。

代码语言:javascript复制
(base) root 16:41:05 /xhs/wgs_data/rawdata
$ ll
total 86G
-rw-r--r--. 1 root root 39G Nov 24 2019 KPGP-00216_L1_R1.fq.gz
-rw-r--r--. 1 root root 56 Nov 24 2019 KPGP-00216_L1_R1.fq.gz.md5
-rw-r--r--. 1 root root 48G Nov 24 2019 KPGP-00216_L1_R2.fq.gz
-rw-r--r--. 1 root root 56 Nov 24 2019 KPGP-00216_L1_R2.fq.gz.md5

在拿到原始数据之后,就可以开始进行数据分析了,首先对数据进行质控过滤,得到所谓的“cleandata”,这个 cleandata 会过滤掉原始数据中杂质部分。一般 1%左右的内容。这样cleandata 又要占一部分存储。因为原始数据远超过 30X,我们只选择 30X 数据来分析,这样存储是 48G。其实这个时候已经不需要原始数据了,但一般情况下为了数据安全,还是会保留,这样目前一共消耗了 134G 存储。

代码语言:javascript复制
(base) root 16:44:30 /xhs/wgs_data/cleandata
$ ll
total 48G
-rw-r--r--. 1 root root 24G Nov 24 2019 wgs_clean.1.fq.gz
-rw-r--r--. 1 root root 24G Nov 24 2019 wgs_clean.2.fq.gz

开始进行分析,例如最简单的进行与参考序列的比对,参考序列就是人全基因组以及一些索引。这个所占存储不多,5G 左右,其实序列本身可以不需要。

代码语言:javascript复制
(base) root 16:44:31 /xhs/wgs_data/cleandata
$ ll /xhs/Database/GATK/hg38/Homo_sapiens_assembly38.*
-rwxr-xr-x. 1 root root 20K Oct 25 2019 /xhs/Database/GATK/hg38/Homo_sapien
s_assembly38.amb
-rwxr-xr-x. 1 root root 445K Oct 25 2019 /xhs/Database/GATK/hg38/Homo_sapien
s_assembly38.ann
-rwxr-xr-x. 1 root root 3.0G Oct 25 2019 /xhs/Database/GATK/hg38/Homo_sapien
s_assembly38.bwt
-rwxr-xr-x. 1 root root 569K Oct 25 2019 /xhs/Database/GATK/hg38/Homo_sapien
s_assembly38.dict
-rwxr-xr-x. 1 root root 3.1G Oct 25 2019 /xhs/Database/GATK/hg38/Homo_sapien
s_assembly38.fasta
-rwxr-xr-x. 1 root root 477K Oct 25 2019 /xhs/Database/GATK/hg38/Homo_sapien
s_assembly38.fasta.64.alt
-rwxr-xr-x. 1 root root 158K Oct 25 2019 /xhs/Database/GATK/hg38/Homo_sapien
s_assembly38.fasta.fai
-rwxr-xr-x. 1 root root 768M Oct 25 2019 /xhs/Database/GATK/hg38/Homo_sapien
s_assembly38.pac
-rwxr-xr-x. 1 root root 1.5G Oct 25 2019 /xhs/Database/GATK/hg38/Homo_sapien
s_assembly38.sa

接下来就是将测序数据与参考序列进行比对,本质上是将这两部分数据进行合并,并且记录位置信息,这样可以计算所占存储空间就是测序数据 48G 参考序列 3G,然后还要加比对位置信息等,所以最终比对结果占的空间很大。这个案例中,原始出来的 sam 格式,需要251G 存储,然后对这个原始结果进行一系列处理,包括排序,转换 bam,标记 Duplication,BQSR 等操作。如果每一步骤都保留,最终需要 372G。当然,如果想节约存储,可以只保留最终的 BQSR,只需要 51G。峰值需要 372G。

代码语言:javascript复制
(base) root 16:51:05 /xhs/wgs_data/bam
$ ll
total 372G
-rw-r--r--. 1 root root 2.9K Nov 24 2019 Sample1.markdup_metrics.txt
-rw-r--r--. 1 root root 251G Nov 24 2019 Sample1.sam
-rw-r--r--. 1 root root 9.0M Nov 24 2019 Sample1.sorted.bai
-rw-r--r--. 1 root root 35G Nov 24 2019 Sample1.sorted.bam
-rw-r--r--. 1 root root 0 Nov 24 2019 Sample1.sorted.bam.bc
-rw-r--r--. 1 root root 36G Nov 24 2019 Sample1.sorted.markdup.bam
-rw-r--r--. 1 root root 9.0M Nov 24 2019 Sample1.sorted.markdup.bam.bai
-rw-r--r--. 1 root root 9.0M Nov 24 2019 Sample1.sorted.markdup.BQSR.bai
-rw-r--r--. 1 root root 51G Nov 24 2019 Sample1.sorted.markdup.BQSR.bam
-rw-r--r--. 1 root root 213K Nov 24 2019 Sample1.sorted.markdup.recal_data.ta
ble

最终得到的变异检测结果是一个列表,有几百万行,这个因为不包括序列信息,文件大小就会小很多。这个案例中,最终结果不到 200M,中间过程也就 8G 左右。

代码语言:javascript复制
(base) root 16:53:42 /xhs/wgs_data/vcf
$ ll
total 8.0G
-rw-r--r--. 1 root root 43K Nov 24 2019 a.state
-rw-r--r--. 1 root root 7.0G Nov 24 2019 Sample1.HC.g.vcf.gz
-rw-r--r--. 1 root root 5.2M Nov 24 2019 Sample1.HC.g.vcf.gz.tbi
-rw-r--r--. 1 root root 2.8M Nov 24 2019 Sample1.HC.snps.indel.plots.R
-rw-r--r--. 1 root root 6.2M Nov 24 2019 Sample1.HC.snps.indel.plots.R.pdf
-rw-r--r--. 1 root root 64M Nov 24 2019 Sample1.HC.snps.indel.recal
-rw-r--r--. 1 root root 823K Nov 24 2019 Sample1.HC.snps.indel.recal.idx
-rw-r--r--. 1 root root 593 Nov 24 2019 Sample1.HC.snps.indel.tranches
-rw-r--r--. 1 root root 233M Nov 24 2019 Sample1.HC.snps.indel.VQSR.vcf.gz
-rw-r--r--. 1 root root 2.2M Nov 24 2019 Sample1.HC.snps.indel.VQSR.vcf.gz.tbi
-rw-r--r--. 1 root root 3.9M Nov 24 2019 Sample1.HC.snps.plots.R
-rw-r--r--. 1 root root 8.1M Nov 24 2019 Sample1.HC.snps.plots.R.pdf
-rw-r--r--. 1 root root 309M Nov 24 2019 Sample1.HC.snps.recal
-rw-r--r--. 1 root root 7.3M Nov 24 2019 Sample1.HC.snps.recal.idx
-rw-r--r--. 1 root root 589 Nov 24 2019 Sample1.HC.snps.tranches
-rw-r--r--. 1 root root 7.3K Nov 24 2019 Sample1.HC.snps.tranches.pdf
-rw-r--r--. 1 root root 228M Nov 24 2019 Sample1.HC.snps.VQSR.vcf.gz
-rw-r--r--. 1 root root 2.2M Nov 24 2019 Sample1.HC.snps.VQSR.vcf.gz.tbi
-rw-r--r--. 1 root root 195M Nov 24 2019 Sample1.HC.vcf.gz
-rw-r--r--. 1 root root 2.2M Nov 24 2019 Sample1.HC.vcf.gz.tbi

注释需要下载各种注释库,这个也需要一定的存储空间,这里下载 dbsnp 等,一共需要 14G左右空间。

代码语言:javascript复制
(base) root 16:55:50 /xhs/Database/GATK/hg38
$ ll
total 14G
-rwxr-xr-x. 1 root root 51M Oct 25 2019 1000G_omni2.5.hg38.vcf.gz
-rwxr-xr-x. 1 root root 1.5M Oct 25 2019 1000G_omni2.5.hg38.vcf.gz.tbi
-rwxr-xr-x. 1 root root 1.8G Oct 25 2019 1000G_phase1.snps.high_confidence.hg38.vcf.gz
-rwxr-xr-x. 1 root root 2.1M Oct 25 2019 1000G_phase1.snps.high_confidence.hg38.vcf.gz.tbi
-rwxr-xr-x. 1 root root 3.0M Oct 25 2019 Axiom_Exome_Plus.genotypes.all_populations.poly.hg38.vcf.gz
-rwxr-xr-x. 1 root root 412K Oct 25 2019 Axiom_Exome_Plus.genotypes.all_populations.poly.hg38.vcf.gz.tbi
-rwxr-xr-x. 1 root root 1.5G Oct 25 2019 dbsnp_138.hg38.vcf.gz
-rwxr-xr-x. 1 root root 2.3M Oct 25 2019 dbsnp_138.hg38.vcf.gz.tbi
-rwxr-xr-x. 1 root root 3.0G Oct 25 2019 dbsnp_144.hg38.vcf.gz
-rwxr-xr-x. 1 root root 2.4M Oct 25 2019 dbsnp_144.hg38.vcf.gz.tbi
-rwxr-xr-x. 1 root root 3.2G Oct 25 2019 dbsnp_146.hg38.vcf.gz
-rwxr-xr-x. 1 root root 2.4M Oct 25 2019 dbsnp_146.hg38.vcf.gz.tbi
-rwxr-xr-x. 1 root root 172M Oct 25 2019 hapmap_3.3_grch38_pop_stratified_af.vcf.gz
-rwxr-xr-x. 1 root root 1.5M Oct 25 2019 hapmap_3.3_grch38_pop_stratified_af.vcf.gz.tbi
-rwxr-xr-x. 1 root root 60M Oct 25 2019 hapmap_3.3.hg38.vcf.gz

从以上这些过程可以看到,分析一个人全基因组至少需要 86 48 51 8G=193G,此外,人参考序列和注释库共 18G 左右。这是最低值,如果保留全部数据,那么至少需要 532G 的存储。这是一个人的内容。当然也有很多节省的方法,例如测序得到的就是 cleandata,及时删除中间结果,对所有结果进行深度压缩,这些都可以节约一些存储,以上数字只做参考。

上面案例我们介绍的是二代 illumina 测序,如果是纳米孔测序,则需要更多的磁盘,因为纳米孔测序需要保留最原始的数据,而且需要测序更多的倍数。例如想要利用纳米孔测序做人全基因组分析,至少要测序 45X 数据,就是 135G。而 fast5 存储内容大约是 fastq 文件的 10倍,实际还要包括中间存储等,一般计算 20 倍刚好,那么原始 fast5 存储大约是 2700G,这样一个人全基因组测序原始数据则需要差不多 3T 的磁盘。

四、服务器与个人电脑的差别?

现代社会,每个人都有很多计算资源,例如个人电脑,智能手机,智能手表,智能汽车以及各种智能设备都属于一个计算设备。但这些都属于个人消费的智能设备,与服务器有很大的区别。

我们自己使用的笔记本电脑叫做个人电脑 PC,peronal computer,个人电脑与服务器最大的区别就是个人电脑一般就你一个人用,而服务器对外提供服务,可以很多人一起使用。比如我们是如何访问一个网站的呢,个人客户端发送一个请求到服务器,服务器端收到这个请求就开始进行处理,可以很多人同时提供请求,服务器并行处理。但是这个请求也不是无限的,比如服务器一次只能处理 1 百万个请求,那么一次出现 1 千次请求,服务器就处理不了就会卡顿或者拒绝请求。这就是为什么经常某某明星结婚了,出轨了,离婚了上了微博热搜榜,服务器就卡顿了,这是因为同一时间给服务器发送请求获取信息,服务器处理不了就瘫痪了。包括春运火车票等都是同样的道理。

下面我们来系统介绍一下服务器与这些设备之间的差别。

1、使用场景不同

服务器是对外提供服务的,需要较多的计算资源,服务器一般不需要关机,需要持续工作,稳定性是最重要的。

2、计算能力不同

服务器大都是多颗 CPU,个人消费设备一般是单个 CPU。内存方面,服务器要处理大量的任务,往往需要更高的内存。磁盘方面,服务器为了数据安全和较大的 IO 操作,需要高速读写磁盘,而且还需要为磁盘创建 RAID。

3、扩展性方面

随着业务的开展,服务器计算资源不够的情况下要能够进行扩展。一般服务器都有较好的扩展性,可以在不关机的情况下对内存,磁盘进行扩展。例如当有一块磁盘坏掉的情况下,直接进行更换。

4、多用户多任务

个人电脑设备一般只有一个用户,而服务器可以满足多个用户多个任务同时运行。例如一台游戏服务器,可以多个账号同时登录进行操作。

5、安全性方面

由于服务器是网络中的核心设备,因此它必须具备高可靠性、安全性。服务器采用专用的ECC 内存、RAID 技术、热插拔技术、冗余电源、冗余风扇等方法使服务器具备容错能力、安全保护能力。

6、价格

服务器价格较贵,而个人电脑相对比较便宜。

五、可以自己组装计算资源吗?

是否可以自己按照组装计算机的方法自己组装一个计算资源。例如去电脑城购买主板,cpu,内存,磁盘等模块来组装一台设备进行生物信息分析。

其实具体采用哪种计算资源完全看具体情况和预算情况。如果自己组装的设备或者个人计算机设备能够满足分析要求,完全没有问题。自己组装计算资源可以在相同的预算条件下,得到配置更高的设备。但也要相应承担对应的风险。

例如组装计算机主板的扩展性,最大支持内存大小,磁盘大小。磁盘是否支持 RAID,散热性能等。

六、IT 类的服务器与生物计算服务器有什么区别?

IT 计算与生物计算都需要较大的配置,需要的计算机硬件设备类似,但使用场景还是有所差别。

1、IT 类的更注重稳定性和并发性能,很多都是网络应用,需要较快的网络;而生物计算一般都是本地计算,多网络实时性要求不高;

2、IT 服务器一台设备只作为一个应用来使用,例如网络服务器,邮件服务器等。而生物计算往往一台设备上安装几百个生物软件,经常会有环境冲突;

3、IT 类的程序一般都是高频次运算,比如一个小程序同时运行上百万次,这样每次提高效率 0.1 秒都很明显。而生物计算是低频次大计算量,例如一个几百 G 内存消耗的任务,提升几秒钟效率影响不大。

七、需要搭建计算集群吗?

根据百度百科的定义,计算机集群简称集群,是一种计算机系统, 它通过一组松散集成的计算机软件或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。

集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。

集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。

集群的优势是将多台设备进行组合,提供更大的计算资源,实现并行计算和分布式计算。例如有 10 台内存 200G 的服务器,就可以组合成内存 2T 的计算设备,这样就可以提供更大的计算峰值。

但是集群管理起来比较复杂,需要专门的计算机集群管理软件来进行集群搭建及管理。有些科研单位提供计算集群,需要使用投递任务的方式来运行数据分析脚本。

八、数据中心是什么?

根据百度百科的定义,数据中心是全球协作的特定设备网络,用来在因特网络基础设施上传递、加速、展示、计算、存储数据信息。数据中心大部分电子元件都是由低直流电源驱动运行的。

数据中心的产生致使人们的认识从定量、结构的世界进入到不确定和非结构的世界中,它将和交通、网络通讯一样逐渐成为现代社会基础设施的一部分,进而对很多产业都产生了积极影响。不过数据中心的发展不能仅凭经验,还要真正的结合实践,促使数据中心发挥真正的价值作用,促使社会的快速变革。

目前全球很多大的机构都有专门的数据中心,例如 Google,苹果,微软,亚马逊,腾讯,阿里,华为,Facebook 等。这些数据中心里有数百万台服务器。为每家公司业务提供支撑,或者对外提供服务。

数据中心运行中最大的成本来自电力和网络消耗。由于每台设备持续运行,计算过程中会产生大量热量,数据中心需要空调制冷设备,因此需要消耗大量的电能。所以,很多数据中心都建在温度较低的地方,例如国内很多公司数据中心建在贵州,就是因为年平均气温较低,可以节省大量电能。

九、自己搭建服务器还是选择云计算?

数据中心可以提供云计算服务器。将自己的数据传到各家公司的数据中心,并在上面完成计算。无需购买昂贵的服务器,网络,电力等额外支出,且无需对服务器进行管理。云计算看似是最佳的解决方案。不过目前生物云计算的发展依然面对很多瓶颈。

第一、首先就是高昂的价格,由于数据中心运行需要高昂的成本,因此目前云计算价格较贵,而生物计算需要较大的计算资源。举例来说,如果需要 128 线程,512G 内存,1T 磁盘,5M网络,每个月需要约 25000 的费用。

第二、由于数据量较大,传输数据需要一定的时间,如果需要提高传输速度,则需要购买更大的带宽,提高费用;

第三、公有云计算依然需要自行配置生物计算环境;

第四、一些数据需要安全保密,无法使用公有云计算。

十、共享生物云计算服务

针对公有生物云计算的各种弊端,有一种解决方案,生物信息领域的基因学苑,它推出一种共享生物云计算服务。更好地满足用户的需要。

第一、提供一种私有云计算,多人同时使用一台服务器,极大降低费用,还是原来 128 线程,512G 内存,1T 磁盘的设备。多人共享价格每月 700 元左右;

第二、购买 100M 独立企业网络,传输速度更快;

第三、配置统一环境,安装常用生物软件以及数据库,无需单独配置,更加省心;

第四、私有云,每个账户单独管理数据,更加安全。

写在最后:有时间我们会努力更新的。大家互动交流可以前去论坛,地址在下面,复制去浏览器即可访问,弥补下公众号没有留言功能的缺憾。原地址暂未启用(bioinfoer.com)。

代码语言:javascript复制
sx.voiceclouds.cn

有些板块也可以预设为大家日常趣事的分享等,欢迎大家来提建议。

0 人点赞