Ответы пользователя по тегу Хабр
  • FreeBSD и ZFS

    @Dyr
    На домашнем сервере (Cel3300, 2Gb, 4xWD EARS 2Tb; FreeBSD 8.1 amd64) использую ZFS в конфигурации 4xRAID1 и RAID10:

    root@server:/usr/local/etc (1768) zpool status
      pool: storage
     state: ONLINE
     scrub: none requested
    config:
    
            NAME                 STATE     READ WRITE CKSUM
            storage              ONLINE       0     0     0
              mirror             ONLINE       0     0     0
                gpt/storage0     ONLINE       0     0     0
                gpt/storage3     ONLINE       0     0     0
              mirror             ONLINE       0     0     0
                gpt/storage1     ONLINE       0     0     0
                gpt/storage2     ONLINE       0     0     0
    
    errors: No known data errors
    
      pool: zroot
     state: ONLINE
     scrub: none requested
    config:
    
            NAME             STATE     READ WRITE CKSUM
            zroot            ONLINE       0     0     0
              mirror         ONLINE       0     0     0
                gpt/system0  ONLINE       0     0     0
                gpt/system2  ONLINE       0     0     0
                gpt/system3  ONLINE       0     0     0
                gpt/system1  ONLINE       0     0     0
    
    errors: No known data errors
    


    Диски разбиты вот так (сделан отступ в 2 Мбайта в начале диска для исправления проблем AdvancedFormat у WD EARS винтов):

    root@server:/usr/local/etc (1771) gpart show
    =>        34  3907029101  ada0  GPT  (1.8T)
              34        2014        - free -  (1.0M)
            2048         128     1  freebsd-boot  (64K)
            2176     8388608     2  freebsd-swap  (4.0G)
         8390784    41943040     3  freebsd-zfs  (20G)
        50333824  3856695311     4  freebsd-zfs  (1.8T)
    
    =>        34  3907029101  ada1  GPT  (1.8T)
              34        2014        - free -  (1.0M)
            2048         128     1  freebsd-boot  (64K)
            2176     8388608     2  freebsd-swap  (4.0G)
         8390784    41943040     3  freebsd-zfs  (20G)
        50333824  3856695311     4  freebsd-zfs  (1.8T)
    
    =>        34  3907029101  ada2  GPT  (1.8T)
              34        2014        - free -  (1.0M)
            2048         128     1  freebsd-boot  (64K)
            2176     8388608     2  freebsd-swap  (4.0G)
         8390784    41943040     3  freebsd-zfs  (20G)
        50333824  3856695311     4  freebsd-zfs  (1.8T)
    
    =>        34  3907029101  ada3  GPT  (1.8T)
              34        2014        - free -  (1.0M)
            2048         128     1  freebsd-boot  (64K)
            2176     8388608     2  freebsd-swap  (4.0G)
         8390784    41943040     3  freebsd-zfs  (20G)
        50333824  3856695311     4  freebsd-zfs  (1.8T)
    


    Проблема: низкая скорость чтения и записи у ZFS RAID10:
    Например, запись:

    dd if=/dev/zero of=/storage/test.file bs=1000M count
    1+0 records in
    1+0 records out
    1048576000 bytes transferred in 33.316996 secs (31472705 bytes/sec)
    


    Или чтение:

     dd if=/storage/test.file of=/dev/nulbs=1000M count=1
    1+0 records in
    1+0 records out
    1048576000 bytes transferred in 13.424865 secs (78107005 bytes/sec)
    


    systat при этом выглядит примерно так:

        2 users    Load  0,29  0,12  0,04                  19 окт 14:27
    
    Mem:KB    REAL            VIRTUAL                       VN PAGER   SWAP PAGER
            Tot   Share      Tot    Share    Free           in   out     in   out
    Act 1048432    7548  2771456    11732   87616  count
    All 1232436   10608 1076589k    29964          pages
    Proc:                                                            Interrupts
      r   p   d   s   w   Csw  Trp  Sys  Int  Sof  Flt        cow    4770 total
                 69      8556  20k  517  776  798  20k  20581 zfod    104 em0 uhci0
                                                            2 ozfod     5 uhci3 ehci
     9,7%Sys   0,0%Intr  0,0%User  0,0%Nice 90,3%Idle        %ozfod  1997 cpu0: time
    |    |    |    |    |    |    |    |    |    |    |       daefr       hdac0 257
    =====                                                     prcfr   667 ahci0 259
                                               dtbuf     3762 totfr  1997 cpu1: time
    Namei     Name-cache   Dir-cache    100000 desvn          react
       Calls    hits   %    hits   %     26371 numvn          pdwak
           2       2 100                 24996 frevn          pdpgs
                                                              intrn
    Disks  ada0  ada1  ada2  ada3   da0 pass0 pass1    429056 wire
    KB/t    128   128   128   127  0,00  0,00  0,00   1103516 act
    tps     156   173   188   145     0     0     0    368484 inact
    MB/s  19,51 21,62 23,48 18,03  0,00  0,00  0,00           cache
    %busy    18    35    35    16     0     0     0     87616 free
                                                              buf
    


    А с самих дисков читает вполне приемлимо:

    1073741824 bytes transferred in 9.673196 secs (111001764 bytes/sec)
    root@server:/usr/home/dyr (1769) dd if=/dev/gpt/storage1 of=/dev/null bs=1024M count=1
    1+0 records in
    1+0 records out
    1073741824 bytes transferred in 9.887180 secs (108599400 bytes/sec)
    root@server:/usr/home/dyr (1770) dd if=/dev/gpt/storage2 of=/dev/null bs=1024M count=1
    1+0 records in
    1+0 records out
    1073741824 bytes transferred in 9.736273 secs (110282635 bytes/sec)
    root@server:/usr/home/dyr (1772) dd if=/dev/gpt/storage3 of=/dev/null bs=1024M count=1
    1+0 records in
    1+0 records out
    1073741824 bytes transferred in 11.112231 secs (96627025 bytes/sec)
    


    В чём причина, не понимаю.

    vfs.zfs.l2c_only_size: 3535428608
    vfs.zfs.mfu_ghost_data_lsize: 23331328
    vfs.zfs.mfu_ghost_metadata_lsize: 20963840
    vfs.zfs.mfu_ghost_size: 44295168
    vfs.zfs.mfu_data_lsize: 0
    vfs.zfs.mfu_metadata_lsize: 0
    vfs.zfs.mfu_size: 11698176
    vfs.zfs.mru_ghost_data_lsize: 22306304
    vfs.zfs.mru_ghost_metadata_lsize: 8190464
    vfs.zfs.mru_ghost_size: 30496768
    vfs.zfs.mru_data_lsize: 512
    vfs.zfs.mru_metadata_lsize: 0
    vfs.zfs.mru_size: 20443648
    vfs.zfs.anon_data_lsize: 0
    vfs.zfs.anon_metadata_lsize: 0
    vfs.zfs.anon_size: 1048576
    vfs.zfs.l2arc_norw: 1
    vfs.zfs.l2arc_feed_again: 1
    vfs.zfs.l2arc_noprefetch: 0
    vfs.zfs.l2arc_feed_min_ms: 200
    vfs.zfs.l2arc_feed_secs: 1
    vfs.zfs.l2arc_headroom: 2
    vfs.zfs.l2arc_write_boost: 8388608
    vfs.zfs.l2arc_write_max: 8388608
    vfs.zfs.arc_meta_limit: 106137600
    vfs.zfs.arc_meta_used: 104179208
    vfs.zfs.mdcomp_disable: 0
    vfs.zfs.arc_min: 53068800
    vfs.zfs.arc_max: 424550400
    vfs.zfs.zfetch.array_rd_sz: 1048576
    vfs.zfs.zfetch.block_cap: 256
    vfs.zfs.zfetch.min_sec_reap: 2
    vfs.zfs.zfetch.max_streams: 8
    vfs.zfs.prefetch_disable: 1
    vfs.zfs.check_hostid: 1
    vfs.zfs.recover: 0
    vfs.zfs.txg.write_limit_override: 0
    vfs.zfs.txg.synctime: 5
    vfs.zfs.txg.timeout: 10
    vfs.zfs.scrub_limit: 10
    vfs.zfs.vdev.cache.bshift: 16
    vfs.zfs.vdev.cache.size: 10485760
    vfs.zfs.vdev.cache.max: 16384
    vfs.zfs.vdev.aggregation_limit: 131072
    vfs.zfs.vdev.ramp_rate: 2
    vfs.zfs.vdev.time_shift: 6
    vfs.zfs.vdev.min_pending: 4
    vfs.zfs.vdev.max_pending: 10
    vfs.zfs.cache_flush_disable: 0
    vfs.zfs.zil_disable: 0
    vfs.zfs.zio.use_uma: 0
    vfs.zfs.version.zpl: 4
    vfs.zfs.version.spa: 15
    vfs.zfs.version.dmu_backup_stream: 1
    vfs.zfs.version.dmu_backup_header: 2
    vfs.zfs.version.acl: 1
    vfs.zfs.debug: 0
    vfs.zfs.super_owner: 0
    


    Ещё немного раздражает наличие опций файловой системы sharesmb и sharenfs — понятно, что они в Solaris делают, но во FreeBSD, насколько я понимаю, они просто не работают.
    Ответ написан
    5 комментариев