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. 领英Linkedin信息搜集工具InSpy

    领英Linkedin信息搜集工具InSpy   领英Linkedin是一个知名职业社交媒体网站.通过该网站,渗透测试人员可以获取公司内部组成和员工信息.Kali Linux提供一款专用的信息收集工具I ...

  2. bzoj1205: [HNOI2005]星际贸易

    题目链接 bzoj1205: [HNOI2005]星际贸易 题解 辣鸡题面,毁我青春 辣鸡题面,毁我青 辣鸡题面,毁我 辣鸡题面,毁 第一问,背包dp 第二问 问题转化为在一个序列上经过好多点走到终点 ...

  3. poj 2599 单调栈 ***

    和poj2082差不多,加了一个宽度的条件 #include<cstdio> #include<cmath> #include<algorithm> #includ ...

  4. BZOJ3459 : Bomb

    二分答案,转化成判定所有科学家能否在lim时间内走到安全的地方 考虑网络流,对于每个非叶子节点,S向它连边,容量为该点科学家的人数 对于每个叶子节点,向T连边,容量为该点的容量 对于每个非叶子节点x, ...

  5. springmvc.xml 上传文件的配置

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.Comm ...

  6. 使用 IntraWeb (20) - 基本控件之 TIWGrid

    TIWGrid 最终通过 Html Table 呈现; 其每个 Cell 都是一个 TIWGridCell 对象, Cell 对象的 Control 属性非常好, 可以非常方便地嵌入其他控件. TIW ...

  7. spring cloud 学习(11) - 用fastson替换jackson及用gb2312码输出

    前几天遇到一个需求,因为要兼容旧项目的编码格式,需要spring-cloud的rest接口,输出gb2312编码,本以为是一个很容易的事情,比如下面这样: @RequestMapping(method ...

  8. LPC43xx Asymmetric Dual Core : Cortex-M0 and Cortex-M4

  9. IAR EWARM __iar_program_start, __iar_data_init3, __iar_copy_init3, __iar_zero_init3

    #include <stdint.h> // The type of a pointer into the init table. typedef void const * table_p ...

  10. svn : Can not Parse lock / entries hashfile错误解决办法

    svn服务器死机重启之后,锁定文件的时候出下面的提示: Malformed file svn: Can't parse lock/entries hashfile '/data/svn/svnroot ...