之前GEN8上是直接使用CentOS的方式进行运行的,LVM做逻辑卷管理,各种软件基本用docker来运行,基本上可以做到连续运行一年没问题。

不过,在这里我打算使用 OpenMediaValut 来作为操作系统。首先,这个基于FreeNAS的系统其实来也是Linux系统,方便我以后继续折腾一些东西。硬盘数据以后也可以再其他Linux上读取。第二,对安装盘的要求很小,所以我计划把4个SATA全部都用来装硬盘,操作系统安装在一个U盘上。全部安装完毕后,把这个U盘拷贝下,以后就算是把这个U盘写坏了,也就是在买一个U盘的事情了。在OpenMediaVault 上有专用 FlashMemory插件 来减少对根目录的读写来保护U盘。

数据存储如果资金充裕,还是建议使用NAS专用的硬盘,比如西数的紫盘,或者希捷的狼盘。这些硬盘能够保证在长时间运转(7x24h)运行中保持良好的稳定性。我在自己的系统中采用了希捷的酷鹰——监控盘,主要的原因是价格便宜,也能够长期运行,转速只有5900RPM——可以有效的减少磁盘读写噪声。

针对硬盘文件系统,我也放弃了RAID和LVM的方式,而是采用了 MergerFS + SnapRAID 方案。自我感觉这是目前市面上最合适家庭NAS系统的磁盘和文件管理系统。

MergerFS

首先出场的mergerFS是union file system中的一种(这里有 一个比较不错的关于Aufs的介绍 ),类似LVM所追求的结果,通过megerFS可以将多个硬盘上的数据以一个目录的方式来使用。但不同的是,这种文件系统是一个用户空间的文件系统,它并不会对硬盘进行条带化的处理,每个硬盘上都保存着原来文件系统中的目录和文件。如果拿出一个硬盘接到其他的机器上,无需逻辑卷的配置数据,就可以读取这个硬盘上的数据。类似的文件系统还有AuFS和 Mhddfs ,不过很多测试表示目前MergerFS的效率更好,也提供了更多的配置选项。

如果A硬盘上设置了“movie”目录,B盘上有“download”目录。将两个盘通过MergerFS合并到一个目录下,你会看到“movie”和“download”两个文件夹。在默认的策略(epmfs-目录存在的前提下用空间大的盘)下,在movie目录存放的数据会先存在A盘,下载的文件先存放在B盘。这样,有些不太经常使用的盘就可以减少运行,甚至可以进行休眠。这样的策略很适合BT下载后,把文件拷贝到电源目录下,保护存放电影的盘。关于不同的策略,可以参考MergerFS的GitHub上面的说明,可以根据自己的需要进行设计。

MegerFS 的缺点主要也是由于没有条带化磁盘,而是通过将实际文件存放在不同的磁盘来实现,造成无法彻底利用磁盘空间。比如说一个蓝光盘有30GB大,虽然A,B盘都有20GB的空间,却没法存放这个文件了。因为MergerFS中文件是完整存放的,无法分割为两个15GB的文件。不过相对于试下几个T为单位的磁盘,这种情况也是很少能遇到的。我的建议就是在磁盘利用率达到80%左右的时候,开始考虑加入新的磁盘。

我在MergerFS中将第一个硬盘为基础建立了一个安装点为 /pool 的逻辑卷。所有的共享文件都在此目录中进行。后加的硬盘也会出现在这个目录中。当程序访问这个目录进行读写后,MergerFS会自动的实时处理,将数据放置在正确的磁盘文件目录中。测试结果看来最高CPU占用率在15%左右就可以实现近100MB/s的读写了。

SnapRAID

和ZFS 不同的是,MergerFS 没有冗余功能来保障数据安全。这时候我们可以采用SnapRAID来实现一个软件的RAID支持。此功能类似RAID5,需要额外的一个硬盘来存放校验数据。此盘的容量必须大于等于其他数据盘。其他数据盘里面也要保存一些称之为“content”的数据信息。也就是说SnapRAID需要占用一些额外空间来做数据冗余。

为什么SnapRAID比其他硬件RAID,ZFS更让我觉得推荐呢?首先,SnapRAID 不需要所有盘的大小是完全一致的,也不关心每个硬盘的格式。

SnapRAID 功能如其名,是采用快照的方式来做数据冗余的。具体说就是定时执行一次同步操作后,会生成冗余数据。相比硬件RAID方式,这种设计及避免了所有硬盘在没有数据操作情况下也要运转以满足实时数据同步带来不必要的耗费。如果修复失败,也不会让整个硬盘上的数据丢失,只会有个别文件无法恢复。

SnapRAID 的缺点也是明显的,它不太适合大量小文件,频繁更改的系统。更适合像是存放照片和电影的家庭NAS,有很多尺寸比较大,很少变更的存储系统。

设置SnapRAID 需要将数据盘——也就是映射在MergerFS下的磁盘全部都加入到数据盘列表中,而另外一块专用的校验数据盘不要加入到MergerFS中,在这里只保存校验数据和冗余信息。

相比于MergerFS近乎实时的工作方式,SnapRAID 则是需要定时维护的。而且要避免在生成校验信息的时候进行数据操作。可以选择在OMV 网页管理界面里面,人工选择同步,然后校验和冗余数据就会同步好。另外,也可以创建一个定时任务,每天深夜没有数据写入的时候来执行来实现生成同步信息。

作者:佚名
来源:51CTO

自建家庭私有云NAS——磁盘管理系统相关推荐

  1. linux+nas+私有云软件,自建家庭私有云NAS——磁盘管理系统

    磁盘管理系统 之前GEN8上是直接使用CentOS的方式进行运行的,LVM做逻辑卷管理,各种软件基本用docker来运行,基本上可以做到连续运行一年没问题. 不过,在这里我打算使用 OpenMedia ...

  2. 私有云行业破局者 极空间家庭私有云Z4/Z2正式发布

    12月15日,主题为"破局"的极空间私有云新品发布会在京举办,作为行业新贵,极空间本次发布了包括旗舰机型Z4,以及面向个人和家庭用户的小精灵Z2.Z4采用最新一代Intel J41 ...

  3. 袁斌:极空间家庭私有云,您的数字资产大管家

    乐视网前高管袁斌的创业项目"极空间"家庭私有云近期浮出水面.近期,腾讯新闻了解到,被定义为"家庭数字资产大管家"的首款产品"极空间" 家庭私 ...

  4. 极空间家庭私有云,您的数字资产大管家

    随着智能手机和智能家居设备的快速发展与5G的成熟,用户生产照片.视频.文件数据等数字资产的速度呈爆炸性增长,而这些数字资产逐渐和实体资产一样成为人们重要的资产财富,它们安全可靠的存储成为每个人的刚性需 ...

  5. 万字长文手把手教你搭建家庭私有云

    万字长文手把手教你搭建家庭私有云 随着互联网的普及,现在的云产品越来越多,像生活中常用的网盘.视频软件.音乐软件.电子书.云笔记等等越来越离不开我们的生活,但是想必大家也受够了"非会员&qu ...

  6. 黑群晖私有云NAS:同步百度云盘数据

    一.目的 因为百度网盘的不确定性,考虑将重要文件都备份一份,是必备选择.毕竟资料价值无限,所以,自己准备将百度云文件与本地服务器同步,过程做记录,并且总结! 二.步骤 1.创建百度云文件夹 (1)点击 ...

  7. 企业云存储:为什么中大型企业偏爱自建私有云?

    "上云?我们通常自建企业私有云." 9102年了,在云存储服务的选择上,中大型企业基本步调一致,统筹规划自建企业私有云. 为什么中大型企业都偏爱自建企业私有云? 一.长久的成本考量 ...

  8. x5内核有什么优点_接上U盘就是NAS私有云,蒲公英X5入手测评

    接上U盘就是NAS私有云,蒲公英X5入手测评! 现在很多人喜欢在家里配置一台NAS,这样远程访问家里的数据不仅方便,而且可以即时备份PC以及手机等设备的数据.一旦手机丢失或电脑数据损坏,还可以通过NA ...

  9. 搭建私有云的5大主流方案

    随着云计算和移动办公大潮的到来,iPad.智能手机等家庭联网设备不断增多,以及搭载小容量SSD笔记本电脑的流行,能够跨平台分享的个人云服务需求不断增长;而今天的个人云服务也已经极大丰富,从2TB的百度 ...

最新文章

  1. 学习一个 Linux 命令:shutdown 命令
  2. android悬浮按钮弹出与隐藏,Android悬浮窗按钮实现点击并显示/隐藏多功能列表
  3. 批量处理文件,除了 Python,不妨试试 VIM!
  4. P1101 单词方阵
  5. 创建 linuxrc 文件
  6. ios 获取视频截图
  7. 【NetApp】可以使用查设备备件型号的链接
  8. 【Asp.Net】div和span元素的区别
  9. oracle 存储过程详细介绍(创建,删除存储过程,参数传递等)1
  10. Java实现下载图片
  11. 未来10年,软件开发技术的8个发展趋势
  12. react中请求网络图片加载不出来的问题 解决
  13. 股票的内外盘(转贴收藏)
  14. 爬虫必备,案例对比 Requests、Selenium、Scrapy 爬虫库!
  15. 4ye含泪用python爬取了自己的公众号粉丝数据
  16. 【ros】初学ROS的学习笔记——创建Publisher
  17. Leetcode每日一题(914. 卡牌分组)
  18. 《紫川》之帝都风云 第四卷
  19. 多益网络的四个笔试题(数学)
  20. 通过主题词词典构建进行文本多标签分类

热门文章

  1. 站内搜索(ELK)之数据表字典类型字段的索引思路
  2. iScroll API
  3. CentOS下安装实时检测网络带宽的小工具bmon
  4. ERROR: “System.Web.Mvc.Controller.File(string, string, string)”是一个“方法”
  5. 启用IIS的Gzip压缩功能
  6. 迭代近邻算法Iterative Closest Point, ICP
  7. python强制释放内存_强制Python释放对象以释放内存
  8. bartlett方差齐性检验_数据总体分布检验
  9. 2台电脑一根网线传文件_黑龙江工程专用网线报价,黑电源线配件厂家
  10. apt-get update出现404 Not Found