OneFS的文件系统的block size是8KB。这是OneFS上最小的数据存储单位了,比8KB小的文件都要占掉8KB大小的空间。连续的8KB的block会被用来存储文件的数据,但最多不会超过16个。为啥呢?因为,16个连续的block会组成一个大小为128KB的stripe unit。一个文件在存储在Isilon上的时候,如果其大小超过128KB,那么这个文件会被切分为多个128KB的stripe unit。然后这些stripe unit会散布在Isilon集群的多个节点的多块盘上。

这些stripe unit是怎么放在Isilon cluster的节点中的呢?这取决于四个因素:

  • Isilon集群的节点数 - 集群的节点数直接决定了data stripe的宽度。数据是尽可能的跨多个节点的多块盘来存放的。
  • 文件的保护等级 - 越高,那么同一个stripe里所包含的protection data block (FEC)就要越多。在data stripe宽度(node数)固定的情况下,单条data stripe里包含的数据块就要更少了。
  • 文件的大小 - 小于128KB的文件都不会跨多个盘,对于这么小的文件的保护只有使用Mirror的方式。同时,被存储文件的protection level,直接决定了这个文件需要多少份mirror。
  • 文件所在的文件夹的磁盘访问模式(access pattern)- 下面有两个举例,concurrent模式,为了支持并发读写,一个读写尽量不去影响另一个读写,所以同样的文件,尽可能放在少的盘上。Stream模式,为了让同一个文件能用到更多的磁盘,所以存储的时候会放在尽可能多的盘上。

首先,一个大文件的许许多多的stripe unit会被以一个叫做data stripe的逻辑单位来存放,一个data stripe会包含多少个stripe unit呢?这个data stripe是如何跨越多个节点的呢?这取决于两个因素,protection level和cluster node number。

集群的节点数直接决定stripe的宽度.

假设一个1024KB的文件,存储在Isilon上,它会被切分为8个128KB的stripe unit。假设这个cluster有3个节点,每个节点上有12块盘。那么这8个stripe units会怎么在这36块盘上分布呢?

这里需要涉及到一个protection level的问题,因为protection level不同,那么data stripe的大小就不同。

为了简化,假设我们的文件的protection level是N+1,即允许down掉一个节点或一块盘。

因为我们的集群只有3个节点,那么每两个data的stripe unit就应该带一个Protection stripe unit。这样,坏一个节点,所丢失的数据就可以通过另外两块数据计算出来。

来看两个例子:

Concurrent access pattern的1兆文件的存储方式举例:

Streaming access pattern的1兆文件的存储方式举例:

一些问题

============

问题1:假设我们有个大于128KB,小于256KB的文件,那么这个文件在2d:1n的protection level下,集群有4个节点,如何存储?

答:这个文件会被切成两部分,一部分是128KB的data stripe unit,与另外两个节点提供的两个protection stripe unit组成一个data stripe。另一部分小于128KB,OneFS会为这块数据添加两份mirror,从而达到坏两块盘数据依然可用的保护级别。

问题2:假设我们有一个Isilon的集群,其中有80个节点,那么对于一个足够大的文件来讲,data stripe的长度可以达到80么?

答:单个文件在Isilon上存储最多跨20个节点。

问题3:Isilon Gen5的S210有两块SSD,22块HDD,请问这个节点的disk pool是怎样的?

答:SSD由于有不同的使用方式,先不予考虑。22块HDD会被分为四个disk pool,两个pool里分别有5块HDD,另两个pool里有6块HDD.

问题4: MTTDL跟节点数量,文件的protection level有什么关系?

答:MTTDL的定义是大概多长时间之后会发生这样的情况:坏盘同时出现从而导致数据丢失,这个时间是多久。数据在节点的盘中的打散程度越高,节点越多,文件保护等级越低,那么MTTDL就会越低。

参考资料

==============

OneFS File System Data Layout

https://community.emc.com/docs/DOC-42741

Dell EMC Isilon OneFS: A Technical Overview

https://www.emc.com/collateral/hardware/white-papers/h10719-isilon-onefs-technical-overview-wp.pdf

HIGH AVAILABILITY AND DATA PROTECTION WITH DELL EMC ISILON SCALE-OUT NAS

https://www.emc.com/collateral/hardware/white-papers/h10588-isilon-data-availability-protection-wp.pdf

Isilon上数据是如何存放的?的更多相关文章

  1. 遇到个奇怪的问题,同时开启本地和远程两个事务,远程事务是sql2000没问题,是sql2008的不报错,但是写不上数据

    遇到个奇怪的问题,同时开启本地和远程两个事务,远程事务是sql2000没问题,是sql2008的不报错,但是写不上数据. 倒腾了4.5天,找到最终的解决办法:直接调用AdoConnection.exe ...

  2. python3 requests获取某网站折线图上数据

    比如要抓取某网站折线图上数据,如下截图: 借助Chrome开发者工具Network.经过分析发现获取上面的热度数据,找到对应的事件url:https://pcw-api.iqiyi.com/video ...

  3. CAD把当前图上数据保存为一个二进流对象(com接口VB语言)

    主要用到函数说明: MxDrawXCustomFunction::WriteBinStreamEx 把当前图上数据保存为一个二进流对象,详细说明如下: 参数 说明 LPCTSTR pszPasswor ...

  4. MySQL-线上数据迁移实战记录

    1. 迁移背景和限制条件 随着功能的迭代或者数据表中数据量的增加,将现有数据进行迁移已是工作中经常遇到的事情.通常我们在平时迁移数据数据的时候,只需要用mysqldump.mysqlimport指令就 ...

  5. python上数据存储 .h5格式或者h5py

    最近在做城市计算的项目,数据文件是以.h5的格式存储的,总结下其用法和特点 来自百度百科的简介: HDF(Hierarchical Data Format),可以存储不同类型的图像和数码数据的文件格式 ...

  6. Java 爬虫遇上数据异步加载,试试这两种办法!

    这是 Java 爬虫系列博文的第三篇,在上一篇 Java 爬虫遇到需要登录的网站,该怎么办? 中,我们简单的讲解了爬虫时遇到登录问题的解决办法,在这篇文章中我们一起来聊一聊爬虫时遇到数据异步加载的问题 ...

  7. 利用线上数据验证系统 Gor

    Web 应用性能和压力测试工具 Gor - 运维生存时间 http://hao.jobbole.com/gorhttp/ 要使用线上引流到测试环境的作用,需要做到以下几点: 1.新搭建一套测试环境,连 ...

  8. zoc 下载服务器上数据出现的问题

    zoc上有一个download的按钮能够将服务器上的数据下载下来,但是在下载过程中出现了错误 但是点击会出现下面的问题: 这个配置默认是采用ZMODEM文件传输协议 但是可以看出来,这个传输协议有点问 ...

  9. asp.net 将repeater上数据导出到excel

    1,首先得到一个DataTable public DataTable GetTable(string sql) { SqlConnnection con=new SqlConnection(Confi ...

随机推荐

  1. Top 10 Revit Architecture 2014 books

    Revit Architecture, along with ArchiCAD, is most used BIM software in architectural design. Although ...

  2. HDU.5985.Lucky Coins(概率DP)

    题目链接 \(Description\) 有n(n<=10)种硬币,已知每种硬币的数量和它抛一次正面朝上的概率pi.进行如下过程:每次抛一次所有硬币,将正面朝下的硬币去掉.重复该过程直到只剩一种 ...

  3. hdu 5726 GCD 暴力倍增rmq

    GCD/center> 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5726 Description Give you a sequence ...

  4. 将Azure WebSite(应用)集成到虚拟网络

    用过Azure的同学都知道如何将虚拟机加入虚拟网络,也非常简单,但是对于将应用(WebSite)集成到虚拟网络中却很少听到.今天我要讲的就是如何直接将我们部署在WebSite中的应用加入到虚拟网络. ...

  5. STM32F4 Timer simplified block diagram

    Timers TIM1 and TIM8 use 16-bit counters and are the most complex timers of all timers included in t ...

  6. Ubuntu 中启用 root 帐号

    参考:http://linuxtoy.org/archives/howto_enable_ubuntu_root_account.html 如果你实在需要在 Ubuntu 中启用 root 帐号的话, ...

  7. SATA工作模式咋选?揭秘AHCI和IDE区别(全文)

    第1页:AHCI模式与Win7.SSD的不解之缘     AHCI这个注定和SATA接口结下不解之缘的接口模式,它担负着淘汰IDE模式的重任,从诞生开始就充满争议,它经历了整整7年时间.它伴随着SSD ...

  8. ASP.NET MVC与Sql Server交互, 插入数据

    在"ASP.NET MVC与Sql Server建立连接"中,与Sql Server建立了连接.本篇实践向Sql Server中插入数据. 在数据库帮助类中增加插入数据的方法. p ...

  9. 在ASP.NET MVC中实现本地化和全球化

    在开发多语言网站时,我们可以为某种语言创建一个资源文件,根据浏览器所设置的不同语言偏好,让运行时选择具体使用哪个资源文件.资源文件在生成程序集的时候被嵌入到程序集. 本篇体验,在ASP.NET MVC ...

  10. 委托, 泛型委托,Func<T>和Action<T>

    使用委托来做一些事情,大致思路是: 1.定义声明一个委托,规定输入参数和输出类型.2.写几个符合委托定义的方法.3.把方法列表赋值给委托4.执行委托 internal delegate int MyD ...