Isilon上数据是如何存放的?
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
Isilon上数据是如何存放的?的更多相关文章
- 遇到个奇怪的问题,同时开启本地和远程两个事务,远程事务是sql2000没问题,是sql2008的不报错,但是写不上数据
遇到个奇怪的问题,同时开启本地和远程两个事务,远程事务是sql2000没问题,是sql2008的不报错,但是写不上数据. 倒腾了4.5天,找到最终的解决办法:直接调用AdoConnection.exe ...
- python3 requests获取某网站折线图上数据
比如要抓取某网站折线图上数据,如下截图: 借助Chrome开发者工具Network.经过分析发现获取上面的热度数据,找到对应的事件url:https://pcw-api.iqiyi.com/video ...
- CAD把当前图上数据保存为一个二进流对象(com接口VB语言)
主要用到函数说明: MxDrawXCustomFunction::WriteBinStreamEx 把当前图上数据保存为一个二进流对象,详细说明如下: 参数 说明 LPCTSTR pszPasswor ...
- MySQL-线上数据迁移实战记录
1. 迁移背景和限制条件 随着功能的迭代或者数据表中数据量的增加,将现有数据进行迁移已是工作中经常遇到的事情.通常我们在平时迁移数据数据的时候,只需要用mysqldump.mysqlimport指令就 ...
- python上数据存储 .h5格式或者h5py
最近在做城市计算的项目,数据文件是以.h5的格式存储的,总结下其用法和特点 来自百度百科的简介: HDF(Hierarchical Data Format),可以存储不同类型的图像和数码数据的文件格式 ...
- Java 爬虫遇上数据异步加载,试试这两种办法!
这是 Java 爬虫系列博文的第三篇,在上一篇 Java 爬虫遇到需要登录的网站,该怎么办? 中,我们简单的讲解了爬虫时遇到登录问题的解决办法,在这篇文章中我们一起来聊一聊爬虫时遇到数据异步加载的问题 ...
- 利用线上数据验证系统 Gor
Web 应用性能和压力测试工具 Gor - 运维生存时间 http://hao.jobbole.com/gorhttp/ 要使用线上引流到测试环境的作用,需要做到以下几点: 1.新搭建一套测试环境,连 ...
- zoc 下载服务器上数据出现的问题
zoc上有一个download的按钮能够将服务器上的数据下载下来,但是在下载过程中出现了错误 但是点击会出现下面的问题: 这个配置默认是采用ZMODEM文件传输协议 但是可以看出来,这个传输协议有点问 ...
- asp.net 将repeater上数据导出到excel
1,首先得到一个DataTable public DataTable GetTable(string sql) { SqlConnnection con=new SqlConnection(Confi ...
随机推荐
- Top 10 Revit Architecture 2014 books
Revit Architecture, along with ArchiCAD, is most used BIM software in architectural design. Although ...
- HDU.5985.Lucky Coins(概率DP)
题目链接 \(Description\) 有n(n<=10)种硬币,已知每种硬币的数量和它抛一次正面朝上的概率pi.进行如下过程:每次抛一次所有硬币,将正面朝下的硬币去掉.重复该过程直到只剩一种 ...
- hdu 5726 GCD 暴力倍增rmq
GCD/center> 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5726 Description Give you a sequence ...
- 将Azure WebSite(应用)集成到虚拟网络
用过Azure的同学都知道如何将虚拟机加入虚拟网络,也非常简单,但是对于将应用(WebSite)集成到虚拟网络中却很少听到.今天我要讲的就是如何直接将我们部署在WebSite中的应用加入到虚拟网络. ...
- 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 ...
- Ubuntu 中启用 root 帐号
参考:http://linuxtoy.org/archives/howto_enable_ubuntu_root_account.html 如果你实在需要在 Ubuntu 中启用 root 帐号的话, ...
- SATA工作模式咋选?揭秘AHCI和IDE区别(全文)
第1页:AHCI模式与Win7.SSD的不解之缘 AHCI这个注定和SATA接口结下不解之缘的接口模式,它担负着淘汰IDE模式的重任,从诞生开始就充满争议,它经历了整整7年时间.它伴随着SSD ...
- ASP.NET MVC与Sql Server交互, 插入数据
在"ASP.NET MVC与Sql Server建立连接"中,与Sql Server建立了连接.本篇实践向Sql Server中插入数据. 在数据库帮助类中增加插入数据的方法. p ...
- 在ASP.NET MVC中实现本地化和全球化
在开发多语言网站时,我们可以为某种语言创建一个资源文件,根据浏览器所设置的不同语言偏好,让运行时选择具体使用哪个资源文件.资源文件在生成程序集的时候被嵌入到程序集. 本篇体验,在ASP.NET MVC ...
- 委托, 泛型委托,Func<T>和Action<T>
使用委托来做一些事情,大致思路是: 1.定义声明一个委托,规定输入参数和输出类型.2.写几个符合委托定义的方法.3.把方法列表赋值给委托4.执行委托 internal delegate int MyD ...