Linux ZFS不会缓冲写入缓冲区(SLOG / ZIL)的写入?

遇到写入I / O时,zpool iostat -v中的日志列不会显示任何ZIL活动.这会导致将数据写入磁盘时的等待时间高于预期(在争用期间有时超过80毫秒).
capacity     operations    bandwidth
    pool              alloc   free   read  write   read  write
----------------  -----  -----  -----  -----  -----  -----  
storage           1.88T  2.09T      3  3.01K   512K  39.3M
  mirror           961G  1.05T      0  1.97K   128K  20.8M
    mpathf            -      -      0    393      0  20.8M
    mpathg            -      -      0    391   128K  20.6M
  mirror           961G  1.05T      2  1.04K   384K  18.5M
    mpathi            -      -      1    379   256K  21.1M
    mpathj            -      -      0    281   128K  18.3M
logs                  -      -      -      -      -      -
  /zlog/zilcache      0  15.9G      0      0      0      0
cache                 -      -      -      -      -      -
  mpathk           232G     8M      1      0   130K      0
  mpathl           232G     8M      1      0   130K      0
----------------  -----  -----  -----  -----  -----  -----

我的/ zlog / zilcache设备从来没有任何IO.它是一个快速闪存的文件.当我从ZFS商店中删除它时,我可以编写和读取它,但ZFS似乎忽略它.

该设备看起来可用:

pool: storage
 state: ONLINE
  scan: scrub repaired 0 in 19h31m with 0 errors on Wed Nov 19 07:39:03 2014
config:

    NAME              STATE     READ WRITE CKSUM
    storage           ONLINE       0     0     0
      mirror-0        ONLINE       0     0     0
        mpathf        ONLINE       0     0     0
        mpathg        ONLINE       0     0     0
      mirror-1        ONLINE       0     0     0
        mpathi        ONLINE       0     0     0
        mpathj        ONLINE       0     0     0
    logs
      /zlog/zilcache  ONLINE       0     0     0
    cache
      mpathk          ONLINE       0     0     0
      mpathl          ONLINE       0     0     0

errors: No kNown data errors

有什么方法可以配置ZFS来缓存对日志设备的写入以获得更快的确认?

谢谢

解决方法

我相信你误解了ZIL的目的.您将其描述为写缓存,而不是. ZIL上的任何活动都可能只是正常行为,具体取决于您的计算机上运行的内容.

从ZIL没有读取任何东西,这是一个只写设备.崩溃后池导入期间可能发生唯一的例外.

如果应用程序正在执行同步写入,则只会写入它.像移动文件这样的常规I / O不使用ZIL.

您可以在数据集上设置sync = always以强制所有写入的行为就像它们是同步的一样.

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...