请问深度学习数据集存储有什么好的解决方案,外置硬盘或者 NAS?

2019-12-03 11:11:49 +08:00
 Olament
需求:本人是初级深度学习炼丹师,主要做计算机视觉方向的。现在已经有 1TB 左右的数据了而且在未来还会不断增加。数据主要是图片的形式,每个图片几百 KB 左右。因为现在用的电脑没有预留机械硬盘盘位置,所以不考虑加装硬盘。

我在网上大致浏览了一下,发现两个不错的解决方案。第一种是类似于 WD MyBook 的外置硬盘。第二种是 NAS 方案。我目前比较倾向于外置硬盘方案,因为 NAS 虽然管理比较方便,但是配置和噪声可能是潜在的问题。对于外置硬盘,比较担心数据丢失和读写性能的问题。训练模型的时候硬盘 IO 这块可能存在瓶颈吗?

如果有遇到过相关问题的朋友,希望能够分享你们的解决方案。
3547 次点击
所在节点    问与答
25 条回复
imn1
2019-12-03 11:41:05 +08:00
1.硬盘箱,不熟悉的情况下,不要用阵列,真出问题时个人完全难以拯救
2.USB3 + 7200rpm 的不会太差,注意不要多盘同时写就好
3.瓶颈肯定是 CPU 的,如果数据只有 1T,还不如用 SSD,HDD 只作为备份

粗略算你的数据量是几百万张,虽然不算巨大,但
建议花点时间分类 /分目录,挤在一起的话 HDD 寻址可能比读取字节更费硬盘,所以工作用 SSD 更好
Olament
2019-12-03 12:32:20 +08:00
@imn1 感谢回复,我现在用的就是 SSD 来存放数据集,但是最近开始做视频方面的工作了,所以未来数据的大小肯定辉成倍增长的。所以您觉得 WD MyBook 是一个不错的方案吗?
ZRS
2019-12-03 12:41:28 +08:00
机械硬盘性能肯定不够 建议分层存储 机械盘放冷数据 需要用的放 SSD

不推荐 WD MyBook 叠瓦盘性能可靠性都很差 建议买 HGST 的企业级 8T 空气价格也很厚道
imn1
2019-12-03 12:45:28 +08:00
首先,我是基本不买西数的,你可以认为这是个人偏见也没所谓
我一般选择是硬盘+盒子或箱子,盒子比盘需要更慎重购买,我个人 3 寸用优越者,2 寸用 SSK

PS:我觉得深度学习写盘并不频繁啊,还比不上要经常写 log 的程序,只是读取频繁而已,你是中间结果需要 dump 到盘上么?
ipwx
2019-12-03 12:52:01 +08:00
窃以为 ssd 存数据集毫无意义。你真训练起来,只要把读取图片放到后台线程就行了。基本上复杂的 cnn,单个 batch 的运行时间都是秒级的,一秒还不够你一个后台线程机械硬盘读完一个 batch 的嘛?
Olament
2019-12-03 12:52:22 +08:00
@imn1 新增长的数据不是深度学习产生的数据,是我们新采集的数据集。所以平常的确是主要以读取数据为主。
imn1
2019-12-03 13:00:02 +08:00
@ipwx
他可能不单止是识别,还有训练样本,训练样本视乎数量级,极可能是小时级的运算时长
Olament
2019-12-03 13:00:54 +08:00
@ipwx 对的我也是这么想的。只是想知道有没有人这么实践过
lsylsy2
2019-12-03 13:03:26 +08:00
看起来大部分数据是冷数据?
我个人是比较旁门左道的方案:大型台式机机箱+二手硬件
家用主板
+i3i5 级别配置
+SATA 扩展卡 /SAS 直通卡,只用来扩展接口,不用高级的 RAID 等功能
+snapraid+mergerfs,适合冷数据,可以达到类似 raid6 效果的冗余度

目前成果是 3000RMB 整套方案,20T 裸容量( 2T*10 ),14T 可用容量( 10 盘里任意坏 3,不会丢数据)。
加 500 可以配个好的 UPS,加几百可以上万兆或多个千兆口聚合
feather12315
2019-12-03 13:05:38 +08:00
@ZRS #3 my book 8T+是 hgst 降级的氦气盘
tomczhen
2019-12-03 13:15:29 +08:00
捡垃圾,组 ceph。
ipwx
2019-12-03 13:52:44 +08:00
@Olament 我们实验室的集群是我搭起来的。

文件系统和数据库:两台 Xeon E5 做 MooseFS/MongoDB Master,三台 48T (共 144T )做数据存储。MooseFS 是 goal=2 的双倍存储,MooseFS 是 Master/Slave*2 的三倍存储。当然,这些都是偏向于读写速度的配置。写入速度显然不如单机。

交换机:3 台 Cisco 24 口全千兆 + Ciso 专有的互联接口,这个互联接口好像是 48Gbps 的。

CPU 集群:10 台 E5。

GPU 集群:3 台,其中一台 10 卡,另两台各 4 卡。
- - - -

实验数据和结果都存在文件系统和数据库服务器上。Home 目录也是 MooseFS 的。计算节点不保存任何数据,开放 Docker。用户系统是 LDAP 服务器。运行良好。
ipwx
2019-12-03 13:55:44 +08:00
@Olament 哦对,文件系统和数据库服务器,四个千兆网口做了 LACP Bonding。其他计算节点做了双网口的 Bonding。
Olament
2019-12-03 14:15:25 +08:00
@ipwx 感谢分享!不过这个硬盘主要是我自己平时炼丹用的。我们实验室有另外的配置。
qping
2019-12-03 14:25:59 +08:00
@ZRS #3 京东上搜不到官方的 hgst 呢,在哪能买?
ZRS
2019-12-03 14:30:07 +08:00
@feather12315 谢谢指正 我再了解一下 不过我还是很推荐国行的 HGST 毕竟有五年的质保

@qping 淘宝几家大店应该都可以 前些日子看 HUS728T8TALE6L4 已经做到 1.1K 左右了
ryd994
2019-12-03 15:12:23 +08:00
@ZRS my book 就是氦气盘,西数收购的日立的产品。早期还是日立标。现在换成白标了。实际就是降速企业盘。
希捷才搞叠瓦技术

质保对数据安全没有任何用。坏了给你换一块,就这么简单。无非是自己出钱买还是保修出钱买。保修换来的还未必是新盘。搞不好是返修的。

@qping hgst 被西数收购了。西数的大容量企业盘目前都是 hgst 的生产线。

@lsylsy2 冷数据别用消费级主板。ECC 强烈推荐。否则数据坏了都不知道怎么坏了。
lsylsy2
2019-12-03 15:20:58 +08:00
@ryd994 我用的 snapraid 实质是定时对各个盘的内容进行同步(而不是实时读写) 也有 scrub
ryd994
2019-12-03 15:26:04 +08:00
@lsylsy2 问题是没有 ECC 的话 scrub 的结果都是错的。
无论是否 scrub,都应该用 ECC
反正是捡垃圾,洋垃圾服务器主板加 ECC 内存比消费级硬件便宜多了。
lsylsy2
2019-12-03 15:38:12 +08:00
@ryd994 这里指的是在哪里发生了数据损坏?
snapraid 本身读写的时候其实相当于 JBOD,并没有做数据切块之类的操作,不会像 ZFS 那样严重依赖内存内的索引,而且本身就从我自己(没 ECC )的台式机过一遍,NAS 多个 ECC 并没有明显降低风险的感觉

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/625415

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX