FastDFS与Raid思考
2015-11-06 16:39
211 查看
1.磁盘阵列RAID(Redundant Arrays of independent Disks)
![](http://support.huawei.com/gsbbs/showimage-24832-73166-7e09ba6e8329fd6ff88b36b42b09a0f6.jpg)
raid0
RAID0:存储性能高的磁盘阵列,又称striping,它的原理是,将连续的数据分散到不同的磁盘上存储,这些不同的磁盘能同时并行存取数据
![](http://support.huawei.com/gsbbs/showimage-24833-73166-710479cd5594b82738f831c6edc9e3b6.jpg)
raid1
RAID1:安全性高的磁盘阵列,又称mirror,它的原理是,将数据完全复制到另一个磁盘上,磁盘空间利用率只有50%
RAID0+1:RAID0和RAID1的综合方案,速度快,安全性又高,但是很贵,这也是国企用的比较多的存储方案
![](http://support.huawei.com/gsbbs/showimage-24835-73166-15c6aa46533971adb8dbbfd4ac7d0cd5.jpg)
raid5
RAID5:RAID0和RAID1的折衷方案,读取速度比较快(不如RAID0,因为多存储了校验位),安全性也很高(可以利用校验位恢复数据),空间利用率也不错(不完全复制,只冗余校验位),这也是互联网公司用的比较多的存储方案
2.分布式文件系统FastDFS
详细原理参见:分布式文件系统FastDFS设计原理
![](http://img.my.csdn.net/uploads/201511/06/1446801095_1364.png)
问题讨论
从FastDFS的整个设计看,基本上都已简单为原则。比如以机器为单位备份数据,简化了tracker的管理工作;storage直接借助本地文件系统原样存储文件,简化了storage的管理工作;文件写单份到storage即为成功、然后后台同步,简化了写文件流程。但简单的方案能解决的问题通常也有限,FastDFS目前尚存在如下问题(欢迎探讨)。
数据安全性
写一份即成功:从源storage写完文件至同步到组内其他storage的时间窗口内,一旦源storage出现故障,就可能导致用户数据丢失,而数据的丢失对存储系统来说通常是不可接受的。
缺乏自动化恢复机制:当storage的某块磁盘故障时,只能换存磁盘,然后手动恢复数据;由于按机器备份,似乎也不可能有自动化恢复机制,除非有预先准备好的热备磁盘,缺乏自动化恢复机制会增加系统运维工作。
数据恢复效率低:恢复数据时,只能从group内其他的storage读取,同时由于小文件的访问效率本身较低,按文件恢复的效率也会很低,低的恢复效率也就意味着数据处于不安全状态的时间更长。
缺乏多机房容灾支持:目前要做多机房容灾,只能额外做工具来将数据同步到备份的集群,无自动化机制。
存储空间利用率
单机存储的文件数受限于inode数量
每个文件对应一个storage本地文件系统的文件,平均每个文件会存在block_size/2的存储空间浪费。
文件合并存储能有效解决上述两个问题,但由于合并存储没有空间回收机制,删除文件的空间不保证一定能复用,也存在空间浪费的问题
负载均衡
group机制本身可用来做负载均衡,但这只是一种静态的负载均衡机制,需要预先知道应用的访问特性;同时group机制也导致不可能在group之间迁移数据来做动态负载均衡。
思考
将卷中的各节点服务器存储采用raid 0方式,是不是可以加快文件的存取速度?
节点之间是互为拷贝的,拷贝是在写一份即成功后线程同步到卷中的其它节点的,使用raid 5加热备盘是不是可以在一定程度上解决故障问题?
![](http://support.huawei.com/gsbbs/showimage-24832-73166-7e09ba6e8329fd6ff88b36b42b09a0f6.jpg)
raid0
RAID0:存储性能高的磁盘阵列,又称striping,它的原理是,将连续的数据分散到不同的磁盘上存储,这些不同的磁盘能同时并行存取数据
![](http://support.huawei.com/gsbbs/showimage-24833-73166-710479cd5594b82738f831c6edc9e3b6.jpg)
raid1
RAID1:安全性高的磁盘阵列,又称mirror,它的原理是,将数据完全复制到另一个磁盘上,磁盘空间利用率只有50%
RAID0+1:RAID0和RAID1的综合方案,速度快,安全性又高,但是很贵,这也是国企用的比较多的存储方案
![](http://support.huawei.com/gsbbs/showimage-24835-73166-15c6aa46533971adb8dbbfd4ac7d0cd5.jpg)
raid5
RAID5:RAID0和RAID1的折衷方案,读取速度比较快(不如RAID0,因为多存储了校验位),安全性也很高(可以利用校验位恢复数据),空间利用率也不错(不完全复制,只冗余校验位),这也是互联网公司用的比较多的存储方案
2.分布式文件系统FastDFS
详细原理参见:分布式文件系统FastDFS设计原理
![](http://img.my.csdn.net/uploads/201511/06/1446801095_1364.png)
问题讨论
从FastDFS的整个设计看,基本上都已简单为原则。比如以机器为单位备份数据,简化了tracker的管理工作;storage直接借助本地文件系统原样存储文件,简化了storage的管理工作;文件写单份到storage即为成功、然后后台同步,简化了写文件流程。但简单的方案能解决的问题通常也有限,FastDFS目前尚存在如下问题(欢迎探讨)。
数据安全性
写一份即成功:从源storage写完文件至同步到组内其他storage的时间窗口内,一旦源storage出现故障,就可能导致用户数据丢失,而数据的丢失对存储系统来说通常是不可接受的。
缺乏自动化恢复机制:当storage的某块磁盘故障时,只能换存磁盘,然后手动恢复数据;由于按机器备份,似乎也不可能有自动化恢复机制,除非有预先准备好的热备磁盘,缺乏自动化恢复机制会增加系统运维工作。
数据恢复效率低:恢复数据时,只能从group内其他的storage读取,同时由于小文件的访问效率本身较低,按文件恢复的效率也会很低,低的恢复效率也就意味着数据处于不安全状态的时间更长。
缺乏多机房容灾支持:目前要做多机房容灾,只能额外做工具来将数据同步到备份的集群,无自动化机制。
存储空间利用率
单机存储的文件数受限于inode数量
每个文件对应一个storage本地文件系统的文件,平均每个文件会存在block_size/2的存储空间浪费。
文件合并存储能有效解决上述两个问题,但由于合并存储没有空间回收机制,删除文件的空间不保证一定能复用,也存在空间浪费的问题
负载均衡
group机制本身可用来做负载均衡,但这只是一种静态的负载均衡机制,需要预先知道应用的访问特性;同时group机制也导致不可能在group之间迁移数据来做动态负载均衡。
思考
将卷中的各节点服务器存储采用raid 0方式,是不是可以加快文件的存取速度?
节点之间是互为拷贝的,拷贝是在写一份即成功后线程同步到卷中的其它节点的,使用raid 5加热备盘是不是可以在一定程度上解决故障问题?
相关文章推荐
- DataInputStream FileInputStream 区别
- 8.3.14 Paint几个枚举-常量值以及ShadowLayer阴影效果
- 训练集(train set)、 验证集(validation set) 、测试集(test set)
- 解决U盘在mac air下格式化后在windows上无法显示
- 小议:SharePoint 2010 Upgrade时,Restore Content Database 失败的解决方案?
- SOJ 3711 Mountain Road
- hdu 3264 Open-air shopping malls(求圆相交的面积,二分)
- 解决no cpu/abi system image available for this target的问题
- 谷歌发布自动回复邮件人工智能技术
- tail命令
- 把OnDraw和OnPaint弄清楚(转贴)
- soj 2505: The County Fair(离散化 + 记忆化搜索)
- Handler.obtainMessage()
- 无法真机调试Installation failed with the following output:pkg: /data/local/tmp/Package.apk
- 机器学习
- 函数waitpid和WTERMSIG说明
- 百度大数据+零售发挥引擎优势 ------BDL ,大数据+亚当科茨领导的人工智能实验室和由张潼领导的大数据实验室
- 记一次Time-Wait导致的问题
- Flashback还原failover的备库实验
- 非互质中国剩余定理求线形模方程组(形如 X%mi=ai)