16.04.2012 18:30, Vadim S. Goncharov пишет:
Hi,

Имеется машинка версии
FreeBSD 8.2-STABLE #3 r223566: Mon Jun 27 17:37:04 MSD 2011      amd64
и LSI MegagovnoRAID о 12 дисках на борту, с которыми ничего не делаается, просто отдаются системе, а на них уже собран raidz2 (на оном живет всё, окромя / на флешке).

Жила она себе не очень хорошо почти два года, пока ейный своп в файле на zfs в ночь на 1 апреля не пошутил в лог про indefinite wait buffer, после чего у машинки отсох весь юзерленд (стала отвечать только на пинги да открытые сокеты, и только). После резета оказалось, что один из дисков приказал долго жить, был заказан новый, он пришел, был заменен (машине висеть понравилось, и она до тех пор делала это еще несколько раз), пока не выяснилась новая беда.

Оказалось, нумерация дисков сбилась, и случилось два одинаковых устройства mfid5:
backup:~# zpool status
  pool: backup0
 state: DEGRADED
status: One or more devices could not be opened. Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-2Q
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        backup0     DEGRADED     0     0     0
          raidz2    DEGRADED     0     0     0
            mfid0   ONLINE       0     0     0
            mfid1   ONLINE       0     0     0
            mfid10  ONLINE       0     0     0
            mfid7   ONLINE       0     0     0
            mfid9   ONLINE       0     0     0
            mfid2   ONLINE       0     0     0
            mfid3   ONLINE       0     0     0
            mfid4   ONLINE       0     0     0
            mfid5   UNAVAIL      0     0     0  cannot open
            mfid5   ONLINE       0     0     0
            mfid8   ONLINE       0     0     0
            mfid6   ONLINE       0     0     0

errors: No known data errors

Причем ребуты, которые с 1 апреля случались несколько раз, это не лечили. С железной стороны свежий диск выглядел как mfid11, но что с этим дублированием имен делать, было непонятно - не утащит ли оно еще один диск. Просто zpool attach backup0 mfid11 работать отказался, радостно заявив, что это не зеркало.

Рискнули, и попробовали имя сказать. Оно прожевало, но картина получилась странноватая:

backup# zpool replace backup0 mfid5 mfid11
backup# zpool status
  pool: backup0
 state: DEGRADED
status: The pool is formatted using an older on-disk format. The pool can
        still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
        pool will no longer be accessible on older software versions.
 scrub: none requested
config:

        NAME           STATE     READ WRITE CKSUM
        backup0        DEGRADED     0     0     0
          raidz2       DEGRADED     0     0     0
            mfid0      ONLINE       0     0     0
            mfid1      ONLINE       0     0     0
            mfid10     ONLINE       0     0     0
            mfid7      ONLINE       0     0     0
            mfid9      ONLINE       0     0     0
            mfid2      ONLINE       0     0     0
            mfid3      ONLINE       0     0     0
            mfid4      ONLINE       0     0     0
            replacing  UNAVAIL      0     0     0
              mfid5    UNAVAIL      0     0     0  cannot open
              mfid11   ONLINE       0     0     0
            mfid5      ONLINE       0     0     0
            mfid8      ONLINE       0     0     0
            mfid6      ONLINE       0     0     0

errors: No known data errors

Ничего про resilvering оно не пишет. Судя по gstat, запись на mfid11 идёт, и сравнительно активно, однако не на 100%, а вовсе даже 31% максимум. Видим такую картину:

backup# zpool iostat
                  capacity     operations    bandwidth
pool            used  avail   read  write   read  write
-------------  -----  -----  -----  -----  -----  -----
backup0        3.40T  7.47T     83    238  1.87M  2.25M
  raidz2       3.40T  7.47T     83    238  1.87M  2.25M
    mfid0          -      -     31     50   863K   231K
    mfid1          -      -     32     50   887K   231K
    mfid10         -      -     30     51   895K   233K
    mfid7          -      -     32     51   887K   231K
    mfid9          -      -     33     50   906K   230K
    mfid2          -      -     33     51   904K   232K
    mfid3          -      -     33     50   900K   231K
    mfid4          -      -     32     50   875K   231K
    replacing      -      -      0    294      0   456K
      mfid5        -      -      0      0      0      0
      mfid11       -      -      0    223    359   456K
    mfid5          -      -     30     51   844K   231K
    mfid8          -      -     31     50   877K   231K
    mfid6          -      -     31     51   871K   232K
-------------  -----  -----  -----  -----  -----  -----

На resilvering это как-то было совсем не похоже, по темпам записи. Возникло предположение, что оно постоянно пытается читать с мертвого mfid5 и обламывается, а имеющая запись идет от новых данных (на пул постоянно пишет flow-capture), а не от восстановления старых. Так что через некоторое время была попытка этот марлезонский балет прекратить,
на что пул отреагировал возвратом как бы в исходное состояние:

backup:~# zpool detach backup0 mfid11
backup:~# zpool status
  pool: backup0
 state: DEGRADED
status: One or more devices could not be opened. Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-2Q
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        backup0     DEGRADED     0     0     0
          raidz2    DEGRADED     0     0     0
            mfid0   ONLINE       0     0     0
            mfid1   ONLINE       0     0     0
            mfid10  ONLINE       0     0     0
            mfid7   ONLINE       0     0     0
            mfid9   ONLINE       0     0     0
            mfid2   ONLINE       0     0     0
            mfid3   ONLINE       0     0     0
            mfid4   ONLINE       0     0     0
            mfid5   UNAVAIL      0     0     0  cannot open
            mfid5   ONLINE       0     0     0
            mfid8   ONLINE       0     0     0
            mfid6   ONLINE       0     0     0

errors: No known data errors


Когда-то был похожий случай с одинаковыми устройствами.

я сделал (если использовать Ваш случай):
    zpool replace zpoolname mfid5 mfid5
и все пошло пучком.

Попробуйте удалить всю разметку на новом диске (dd), чтоб он стал mfid5,
и проделайте замену, zpool replace zpoolname mfid5 mfid5

Ответить