V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
saharabear
V2EX  ›  程序员

zpool 在大量 rsync 下面出现故障

  •  2
     
  •   saharabear · 2014-05-16 20:56:03 +08:00 · 3995 次点击
    这是一个创建于 3838 天前的主题,其中的信息可能已经有所发展或是发生改变。
    近期用一台旧机器挂了几个硬盘,用FreeBSD10组了ZPOOL, raid-z,运行中一切正常。机器4G内存。

    这周需要把所有备份移植过来,于是起了20个rsync+ssh同时跑,跑了24小时也一切正常。

    今天下午开始,写入速度变得极慢, 再后来内容都写不进去,做其他事情都没有反应,只能尝试重启,重启后发现进入mountroot> 状态,zfs:zroot 无法启动, 只好livecd 进去后修复zpool,修复过程很普通,import的时候-F就可以了,修复了三次才成功修复。

    重启后再进系统,机器恢复。

    @likuku 请教,在load的时候发现FreeBSD10还是在load一个opensolaris.so,应该还是移植过来的那套代码。 这种情况是我硬件的问题还是系统搞得有问题的可能性更大?
    14 条回复    2014-05-21 16:58:04 +08:00
    abscon
        1
    abscon  
       2014-05-16 22:47:16 +08:00 via Android   ❤️ 1
    建议召唤delphij
    saharabear
        2
    saharabear  
    OP
       2014-05-16 22:59:06 +08:00
    @abscon 过去用opensolaris的时候,没有过类似经历,我是山寨SA,所以经验不足。
    pubby
        3
    pubby  
       2014-05-17 00:26:30 +08:00   ❤️ 1
    我虽然一直在用zfs,但感觉还是很外行

    从fb7上的zfs一路用过来,实事求是讲fb10的zfs已经好很多了,但还是在fb10上发生过一次疑似死锁
    当时是几个并发进程因为意外在同时创建并写入几个几百G的大文件,于是文件系统貌似死锁了,失去响应。
    那些进程也无法KILL掉。

    当时观察到磁盘IO处于99%以上,等上十几分钟依然没有缓过来,只能断电重启了。

    另外,建议更新到stable/10看看,看代码更新记录,有不少zfs相关的改动
    saharabear
        4
    saharabear  
    OP
       2014-05-17 00:29:03 +08:00
    @pubby 我现在不敢直接更新,我想等着这次的修复以后,再以原来的强度运行rsync看看结果。
    pubby
        5
    pubby  
       2014-05-17 00:37:34 +08:00   ❤️ 1
    @saharabear 又得24+hours ? :P

    另外4G内存的话,限制一下ARC的上限看看
    windyboy
        6
    windyboy  
       2014-05-17 15:38:04 +08:00   ❤️ 1
    freebsd 是装载了一个opensolaris的微内核
    linux 也是一样的
    都是openzfs的贡献
    saharabear
        7
    saharabear  
    OP
       2014-05-17 22:07:00 +08:00
    @pubby 跑了20小时,又挂了,依然livecd启动后修复zfs后问题解决。 我尝试一下ARC配置,目前刚刚找了一台机器,单硬盘,其他配置与生产机相同,也跑一次rsync做做测试,不过这台更新到最新版本。

    查阅了一些资料,目前没有进展。

    以上各位,感谢已送出。
    likuku
        8
    likuku  
       2014-05-18 00:52:01 +08:00
    @saharabear
    @pubby 君的建议很精准,小内存机器必须限制ARC,否则内存耗尽就非常慢...

    4G 内存设定,我得找下以前在这种机器跑 freebsd 时的设定笔记.
    likuku
        9
    likuku  
       2014-05-18 00:54:14 +08:00   ❤️ 1
    @saharabear 之前针对「小于32G内存机器跑 freebsd + zfs」时的笔记:

    * 开启 zfs 预读取,提高zfs读取性能:/boot/loader.conf 增加:vfs.zfs.prefetch_disable=0
    * 机器物理内存小于32G时(物理内存大于/等于32G时,无需调整),为避免zfs耗尽内存机器僵死,必须对 arc 和 kernel-mem 作限制 :
    *
    * /boot/loader.conf 增加:
    *
    * vm.kmem_size="7G" # 机器物理内存总量 -1G
    * vm.kmem_size_max="7G" # 同上
    * vfs.zfs.arc_max="6G" # vm.kmem_size -1G
    * vfs.zfs.vdev.cache.size="768M" # 最小64M ~ 最大 1G
    likuku
        10
    likuku  
       2014-05-18 00:55:20 +08:00
    @saharabear 其实上面 9 楼里我的设定,就是给系统本身至少预留1G内存,不要让ARC耗尽所有内存。
    likuku
        11
    likuku  
       2014-05-18 01:01:07 +08:00   ❤️ 1
    @windyboy openzfs 只是2014年发起的新项目以继承OpenSolaris时代放出的zfs代码,
    freebsd 自 opensolaris 时代就引入 zfs相关代码。

    from:
    https://wiki.freebsd.org/ZFS
    「SUN's ZFS file system became part of FreeBSD on 6th April 2007.」
    saharabear
        12
    saharabear  
    OP
       2014-05-18 09:30:06 +08:00
    @likuku 我做下测试,谢。
    tmqhliu
        13
    tmqhliu  
       2014-05-18 13:29:38 +08:00   ❤️ 1
    -STABLE 中有 ZFS 的 patch
    http://www.freebsd.org/cgi/query-pr.cgi?pr=187594

    另外水木社区 FreeBSD 版 http://www.newsmth.net/nForum/board/FreeBSD 也可以讨论技术问题~ 包括大神 delphij 经常出没 :-P
    saharabear
        14
    saharabear  
    OP
       2014-05-21 16:58:04 +08:00
    更改ARC以后,问题修复,感谢大家。


    @tmqhliu
    @likuku
    @windyboy
    @windyboy
    @abscon
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5843 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 01:50 · PVG 09:50 · LAX 17:50 · JFK 20:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.