伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

数据可靠性之磁盘

来源:本站原创 浏览:116次 时间:2022-08-18
序言

    可靠性,你有多可靠?


    在进行数据存储的时候,最担心的莫过于数据丢失了,而数据丢失可以从很多层面来进行保障,但是最终数据都是存储在磁盘当中。


    SATA,便宜,容量大,7200转,写入速度慢;SAS,相对便宜,容量大,用的少,10000转,写入速度一般;SSD,贵,容量小,主要负责热点数据,随机读速度很快,15000转。。。这种东西无意义,除非你要采购。。。so boring。。。

如何保障数据可靠性

    有的时候使用文件来保存数据,有的时候使用内存来保存数据,有的时候使用磁盘来保存数据,持久化,也就是将数据转换成字节流,然后把01010010写入到磁盘的扇区当中。


    在存储数据的时候,是否需要做RAID?


    在分布式存储中,基本上是不做RAID的,因为需要保存大量的数据,使用什么类型的磁盘来存储数据?是SATA?还是SAS?还是SSD呢?


    分布式存储,追求的是容量,从而基本上是使用SATA存储,一个盘多大?8T。。。一个服务器总共12块硬盘,那就是存储容量为96T,在做一个分布式系统的集群的时候,一般服务器本身的操作系统盘也是占据部分空间,再加上分区的时候,保留的空间,大量的元数据占用的空间,其实真正的空间也就80多个T。


    分布式存储,不需要太多的核心的数,56core就够了,那么内存多大,一般使用的也就是128G内存,那么网卡都是万兆网卡。


    在分布式存储中,由于没有从底层的硬件做RAID,那么在各种硬盘损坏之后,基本上就是数据丢失,那么需要重新将副本数据迁移到好的机器当中,从而在分布式存储中,分片是保证数据可靠性的唯一手段,这也就是为什么在使用分布式存储的时候,一般都设置分片数为3,为什么是奇数?因为可能这个分布式存储需要选主对外提供服务,奇数只是为了保证不脑裂而已。


    那么如果在写入数据的时候,需要缓存怎么办?可以使用PCI-E扩展接口,然后外接两个SSD磁盘,专门用来做缓存,毕竟SSD是适合于随机读写的。。。


    当不是使用分布式存储的时候,那么如何来保证数据的可靠性,靠的就是RAID,其实使用RAID更加简单,在服务器级别,一般使用RAID10来进行存储,使用四快盘,从而可以冗余一块盘,硬盘坏了一块怎么办,直接替换就好了,在硬件级别会自动进行数据同步,当你替换硬盘后,会发现磁盘灯哗啦哗啦的转个半小时,然后就好了。


    服务器掉电怎么办?分布式存储是在应用层进行冗余,而其他的则是在硬件层冗余,当使用RAID的时候,都会有掉电机制,也就是即使服务器掉电了,数据也会可靠的写入到磁盘当中。


IO链路

    有了RAID的机制,是不是就高枕无忧?有了分布式存储,是不是就是普天大吉?


    数据存储,有些人写入数据的时候调用一个方法,write就写入了,返回成功就是成功了,返回失败就认为失败了。。。。真的是这样吗?


    调用写入的方法,分为两种,一种是同步写入,一种是异步写入,同步写入的时候,是将数据写入到磁盘,然后应用到内存,返回客户端成功;而大部分的操作系统自带缓存,也就是在使用命令free的时候看到的buffer,这个里面存储的就是你要写入的数据,也就是传言中的脏数据。。。why call it dirty?异步,就是将数据写入到buffer中,就返回客户端成功,其实这个时候,并没有真正将数据持久化到磁盘上,服务器后端有进程叫啥flush会定时的将脏数据写入到磁盘中,为了最大化的性能,一般都是批量写入,例如大小512K的时候,写入磁盘,或者指定时间,10ms写入一次。。。这个时候掉电。。。哼哼。。。你认为成功了的操作,其实并没有写入成功。。


    掉电可能会丢失数据,看你运气的好坏咯。。。


    数据强一致性,你可以禁用缓存,使用同步写入,但是如果一旦有故障,那么会阻塞写操作,最终超时报错,可用性和一致性之间一直是一种权衡的关系。。。毕竟有CAP理论撑腰。。。


    写入数据?当写入数据的时候,其实又分为两个部分,一个部分是元数据,一个部分才是真正的数据,如果block数据写入了,而metadata没有写入,从客户端看起来还是丢失数据,虽然磁盘上存了真正的内容,但是元数据没有,客户端是读取不到的,相当于你删除了你电脑上的小电影,其实内容依旧在电脑上,只不过将元数据进行删除,就找不到了,但是依旧是可以恢复的。。。


    

    在很多时候,都只是一种权衡,无论是可靠性还是一致性还是可用性,重点在于看你追求什么。。。


    硬件?应该是零信任,这样才会有冗余,才会有各种各样的机制来保证可用性。。。无论是计算资源,存储资源,网络资源。。。其实都应该零信任。。。这样构建的程序才会更可靠,线上更稳定,可运维性更高。。。


    你可以浅尝辄止,但是不能一点点点点都不了解。。。。


    你不要急,耐心点,风。。。总会来。。。


  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net