V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
msg7086
V2EX  ›  分享创造

[分享] 低成本打造小型创业公司用大容量 NAS

  •  1
     
  •   msg7086 ·
    msg7086 · 2016-05-21 03:52:39 +08:00 · 9458 次点击
    这是一个创建于 2868 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

    公司投资钱烧完了,拿不出多少钱来花。

    开发部门想要用 NAS 和 SAN 来测试项目中用到的 NFS 和 iSCSI 挂载功能,大约 10 个开发&测试人员,每个人要 1T-2T 左右的 LUN 各 1-3 个,于是来问怎么搞最省钱。

    现有原材料

    办公楼一幢,服务器机房一间,内有空调、机架、服务器和电池若干。

    闲置 DDR3 ECC 内存若干,客户返品的二手 4TB 企业级硬盘若干,各种电脑配件若干。

    清理灰尘用的空气罐 2 个,螺丝刀等工具各类。

    目标

    组建 30-50TB 可用空间的 NAS 一台,可导出 NFS 和 iSCSI ,比较稳定,比较容易维护。

    当然最重要的,性价比尽可能高,开支尽可能小。能耗也不能太高,因为电费很昂贵。

    选型

    做企业级 NAS ,首选使用 ZFS 文件系统,非常可靠维护也不麻烦。

    Ubuntu 16.04 正式由官方提供 ZFS 支持,因此操作系统就直接用大家都熟悉的 Ubuntu 了。

    考虑到现有 4TB 硬盘若干,直接上 12 盘热插拔箱子比较划算,总容量也正好合适。

    ZFS RAID Z3 阵列, 12 盘里 9 盘数据 3 盘校验,总共 36TB 可用空间。

    另配一块 SSD 用来做系统盘、 ZIL 和读缓冲。

    硬件方面,在市场上搜寻合适的 12 盘服务器,结果找到了 DELL C2100 系列。

    DELL C2100

    2U 机架, 12x 3.5 inch 热插拔 & SAS Expander 背板, 750W 电源。

    2x1366 平台, 18x DDR3 ECC 内存槽, 2x PCI-E x8 扩展槽。

    基本能够满足要求,而且最重要的是,价格便宜。

    采购

    联系了一家销量比较高的卖家,带 2 块 L5630 CPU , 12 个硬盘笼,双电源,加上运费,报价总共 $180 。

    接背板所用的 HBA 卡则是随便买了块 Dell H310 ,然后回来自己刷了 IT 固件。报价 $70 左右。

    SSD 随便去隔壁电脑城买了个 Sandisk 的 240G ,$65 。

    安装

    由于服务器是二手退役货,灰比较多,所以拿到手以后先整个用空气罐吹了一遍。

    然后硬盘笼全部拆下来扔进水槽里冲洗一遍,用手甩干擦干后再放在一边慢慢风干。

    散热器全部拆下以后,把干枯分叉(?)的硅脂都刮干净,然后重新上了硅脂后再装好。

    (散热器上有些鳍片略有碰撞变形,最后自己拿尖嘴钳慢慢掰正。)

    内存插了些 8G 的库存货。

    (由于开机后发现中间槽的内存无法识别,所以最后插了 8x8G = 64G 。)

    PCI-E 上插了一片 10GbE 和一片 HBA ,然后把 HBA 接到 SAS Expander 上。

    最后装上 13 块硬盘,盖上盖子就大功告成了。

    配置

    装上 Ubuntu ,然后直接就认出了 12 片 4TB 。

    一口气全部加入 zpool ,然后再加上两个 SSD 分区作 logs 和 cache ,即可。

    NFS 太简单就不说了。

    iSCSI 是用的 Linux-IO Target , targetcli 稍微配置一下就行了,很方便。

    现在已经连续运行两周了,并没出什么问题,应该就可以扔在那不用管了。

    费用

    采购费用除去闲置配件外总共花费 $315 ,算是目标达成了,老大表示很爽。

    耗电的话大约是 2-3Amps ,约 300W ,一年电费开销大约在 $400 左右。

    (其中硬盘大约用了 140W ,剩下的主要是 CPU 和冗余电源的开销。)

    闲置配件成本

    4TB 企业级全新售价大约 $175/片, 12 片总共 $2100 。

    10GbE 二手售价大约 $150/片。

    内存 64G 二手售价大约 $130 。

    21 条回复    2018-08-20 18:21:16 +08:00
    kslr
        1
    kslr  
       2016-05-21 04:11:29 +08:00 via Android
    很棒,电费确实是个麻烦,这旧机器太费电了,我在家里扔的这台,每年电费也差不多 2000 左右,也不知道选这种是对是错
    msg7086
        2
    msg7086  
    OP
       2016-05-21 04:17:32 +08:00
    @kslr 硬盘本身开销不少。剩下的 200W 的功耗其实也很难省下多少。
    家用的话不需要冗余电源和双路 CPU ,可以再省下一些电。
    kslr
        3
    kslr  
       2016-05-21 04:26:39 +08:00 via Android
    kslr
        4
    kslr  
       2016-05-21 04:28:50 +08:00 via Android
    @msg7086 恩,我没有挂那么多硬盘,电源可以拆掉一部分但是其他的太折腾了,尽量还是走创造价值这条路
    lhbc
        5
    lhbc  
       2016-05-21 09:18:54 +08:00 via Android
    FreeNAS 的 zlog 和 cache 必须独立硬盘……
    xiamx
        6
    xiamx  
       2016-05-21 09:58:39 +08:00
    从 frontend 到 backend 到 devops 到 IT 都行的 @msg7086
    soulteary
        7
    soulteary  
       2016-05-21 10:00:34 +08:00 via Android
    @kslr 我觉得这个方案已经很省了,之前心痒过同款 u , ibm m2/3 老机器,实在是只有家用需求,不想听硬盘和风扇集体狂欢,忍住了……


    @msg7086 赞实践, cache log 可以试试二手大容量 intel ssd ,读写少的性价比蛮不错。另外,上双路是有其他需求吧,感觉即使 12 盘位,应该也不需要双路 u 支撑吧……
    carmark
        8
    carmark  
       2016-05-21 10:51:35 +08:00
    为什么不直接 opensolaris ?
    kslr
        9
    kslr  
       2016-05-21 11:57:10 +08:00 via Android
    @soulteary 看情况,我这台拔掉调试时的显卡后声音很小,和台式机差不多,导致我的静音风扇也没有用上。
    msg7086
        10
    msg7086  
    OP
       2016-05-21 12:19:10 +08:00
    @soulteary 成本所限。
    等以后公司有钱了再买独立 SSD 也不是不行。
    另外我们写入也只做开发和测试用,其实 SSD 写入量很少的。
    与其买 SLC 还不如直接拿便宜的 SSD 用到报废了再花小钱换。 SSD 是一路暴跌的,没必要提前投资。

    双路没太大的需求,然而一块 CPU 大概也就$5 的样子,就算你少要一块最后总价也不会有多少差。
    但是插内存的时候就自由很多,有 18 槽可以用,单路的话就只有 9 槽了。
    (实际到手坏了一个 channel ,那样的话就只有 6 槽可用了。)
    小容量的内存比大容量的便宜太多。

    噪音感觉基本能接受。放在机房里很明显被其他服务器声音盖下去的。
    2U 的风扇,大概跑在 4000rpm 上,不算太过分。(但是风量偏小倒是真的。)

    @carmark 没人会。
    这台服务器就我(开发)和一个客服小哥在管,不想多花时间适应了。
    Deb 系的 Ubuntu 公司里的开发都熟,谁都有能力去搞,自然是首选 Ubuntu 了。

    @xiamx 我基本都是在打酱油……
    soulteary
        11
    soulteary  
       2016-05-21 15:37:05 +08:00
    @msg7086 一颗 5$...location 哪里啊,也是, 18 槽就是插基本白送的 2G 都好爽啊, 2U 应该不上显卡还好,但是还是吵,不适合家里吧……
    qceytzn
        12
    qceytzn  
       2016-05-21 18:18:40 +08:00   ❤️ 1
    楼主坐标何方?价格都是$?
    wbsdty331
        13
    wbsdty331  
       2016-05-21 18:38:35 +08:00 via Android
    可以试试用 ssd 做缓存回写
    testisitok
        14
    testisitok  
       2016-05-21 18:38:38 +08:00 via Android
    你对你们老大是真爱
    phoenixlzx
        15
    phoenixlzx  
       2016-05-21 18:56:19 +08:00
    有纪菊苣真是辛苦了_(:з」∠)_
    fcicq
        16
    fcicq  
       2016-05-21 20:00:04 +08:00
    用 ZFS on Linux 的话想调度 IO 的话短时间就不可能了, 幸亏只是用来做个存储问题不大. 跑容器虚拟机数据库就一概不适合.
    fcicq
        18
    fcicq  
       2016-05-21 21:51:21 +08:00
    @schezukNewTos 随便一个列存存储都不需要文件系统再压缩一次. 靠 ZFS 的压缩算什么本事? 能跑起 ZFS 的机器, 数据库 instance 通常不止一个, 这些进程的 IO 公平性用 cgroups 管理不了, ZFS 调度器看不到 pid, 反过来 linux 的 IO 调度器只能看到 ZFS worker 所以调度都废了.
    lutla
        19
    lutla  
       2016-05-21 22:39:31 +08:00
    md 当年用了 intel320 ,现在想坑点 ssd 回去都不行!
    msg7086
        20
    msg7086  
    OP
       2016-05-22 05:09:56 +08:00
    @soulteary http://www.ebay.com/itm/311516192731 这种感觉。
    插内存要考虑低成本的话还是以 4G 为主,但是 8G 也不贵,$100 = 6x8G 左右。
    16G 价格还是很高,如果要插 288G 内存,还是要花不少钱。

    @qceytzn 美国。

    @wbsdty331 ZIL 就是缓存回写吧。同步写入的数据先进 SSD 然后再刷进盘阵里。

    @fcicq 是啊不考虑高 I/O 项目。高 I/O 就上全固态盘阵了,而且也不会做单阵,而会考虑做双 Z2 。

    @phoenixlzx 卷菊 prpr ……
    sjmcefc2
        21
    sjmcefc2  
       2018-08-20 18:21:16 +08:00
    @msg7086 美国物价好便宜啊。不过更倾向 bsd 做一个 nas
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3146 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:40 · PVG 20:40 · LAX 05:40 · JFK 08:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.