ydb-platform / nbs

Network Block & File Store
Apache License 2.0
55 stars 22 forks source link

[NBS] Allow broken devices to unstuck from the broken state #2125

Open komarevtsev-d opened 3 weeks ago

komarevtsev-d commented 3 weeks ago

There is a problem now, that once a device becomes broken (from the perspective of a nonreplicated partition), NBS will never retry requests, therefore a remount or a restart is needed to fix it.

Another oddity is that there is a time interval when the disk is already broken, but we are not giving the error to the user yet. We can probably either remove it completely or allow to send requests to agents in this state.

drbasic commented 3 weeks ago

делаем так:

  1. пока не вышел таймаут MaxTimedOutDeviceStateDuration на все запросы отвечаем E_TIMEOUT
  2. дальше продолжаем делать запросы в дискагента, но отвечаем E_IO_SILENT
  3. еще чрез 5 минут начинаем отвечать E_IO, но продолжаем делать запросы в дискагента
  4. если дискагент очнулся - отвечаем на запросы клиента.

т.е. если ФС поломалась и ей сделали fsck то оно все починится без вмешательства дежурного. Для mirror дисков тоже все начнет чиниться само

drbasic commented 3 weeks ago

связанный тикет https://github.com/ydb-platform/nbs/issues/720