FastDFS与Raid思考
来源:互联网 发布:沈阳原画网络培训机构 编辑:程序博客网 时间:2024/05/18 21:42
1.磁盘阵列RAID(Redundant Arrays of independent Disks)
raid0
RAID0:存储性能高的磁盘阵列,又称striping,它的原理是,将连续的数据分散到不同的磁盘上存储,这些不同的磁盘能同时并行存取数据
raid1
RAID1:安全性高的磁盘阵列,又称mirror,它的原理是,将数据完全复制到另一个磁盘上,磁盘空间利用率只有50%
RAID0+1:RAID0和RAID1的综合方案,速度快,安全性又高,但是很贵,这也是国企用的比较多的存储方案
raid5
RAID5:RAID0和RAID1的折衷方案,读取速度比较快(不如RAID0,因为多存储了校验位),安全性也很高(可以利用校验位恢复数据),空间利用率也不错(不完全复制,只冗余校验位),这也是互联网公司用的比较多的存储方案
2.分布式文件系统FastDFS
详细原理参见:分布式文件系统FastDFS设计原理
问题讨论
从FastDFS的整个设计看,基本上都已简单为原则。比如以机器为单位备份数据,简化了tracker的管理工作;storage直接借助本地文件系统原样存储文件,简化了storage的管理工作;文件写单份到storage即为成功、然后后台同步,简化了写文件流程。但简单的方案能解决的问题通常也有限,FastDFS目前尚存在如下问题(欢迎探讨)。
数据安全性
- 写一份即成功:从源storage写完文件至同步到组内其他storage的时间窗口内,一旦源storage出现故障,就可能导致用户数据丢失,而数据的丢失对存储系统来说通常是不可接受的。
- 缺乏自动化恢复机制:当storage的某块磁盘故障时,只能换存磁盘,然后手动恢复数据;由于按机器备份,似乎也不可能有自动化恢复机制,除非有预先准备好的热备磁盘,缺乏自动化恢复机制会增加系统运维工作。
- 数据恢复效率低:恢复数据时,只能从group内其他的storage读取,同时由于小文件的访问效率本身较低,按文件恢复的效率也会很低,低的恢复效率也就意味着数据处于不安全状态的时间更长。
- 缺乏多机房容灾支持:目前要做多机房容灾,只能额外做工具来将数据同步到备份的集群,无自动化机制。
存储空间利用率
- 单机存储的文件数受限于inode数量
- 每个文件对应一个storage本地文件系统的文件,平均每个文件会存在block_size/2的存储空间浪费。
- 文件合并存储能有效解决上述两个问题,但由于合并存储没有空间回收机制,删除文件的空间不保证一定能复用,也存在空间浪费的问题
负载均衡
- group机制本身可用来做负载均衡,但这只是一种静态的负载均衡机制,需要预先知道应用的访问特性;同时group机制也导致不可能在group之间迁移数据来做动态负载均衡。
思考
将卷中的各节点服务器存储采用raid 0方式,是不是可以加快文件的存取速度?
节点之间是互为拷贝的,拷贝是在写一份即成功后线程同步到卷中的其它节点的,使用raid 5加热备盘是不是可以在一定程度上解决故障问题?
- FastDFS与Raid思考
- FastDFS特性及问题思考
- FastDFS特性及问题思考
- 板载RAID、RAID卡与RAID控制器
- 软RAID与硬RAID
- 软RAID与硬RAID
- FastDFS安装与配置
- FastDFS安装与使用
- FastDFS安装与使用
- FastDFS安装与部署
- FASTDFS安装与配置
- fastdfs安装与配置
- FastDFS与Springboot集成
- FastDFS安装与配置
- fastdfs 原理与过程
- FastDFS与Springboot集成
- FastDFS与Springboot集成
- FastDFS与Springboot集成
- 放弃WebView,使用Crosswalk做富文本编辑器
- HTTP中Get与Post的区别
- jquery下的ajax跨域问题
- C++ explicit关键字
- 分享一个 四级联动 数据库
- FastDFS与Raid思考
- linux 快捷键ctrl+r
- Android Studio 获取数字签名信息
- vector iterators incompatible
- jquery事件对Html网页动态生成的元素失效
- 摘抄笔记--《编写高质量代码:改善Java程序的151个建议》
- java环境变量 6,7同 8会自己配置
- LeetCode 110:Balanced Binary Tree(Java)
- Linux通过iptables实现转发