Closed nosledi closed 7 months ago
Спасибо! Тут тоже потестил. В целом работает, но похоже, что кривовато работает второй таймаут в самом ядре линукса. Конкретно:
Вышеописанное, скорее всего, не переводит для юзеров NBD в разряд "реально стабильных" штук, поэтому пока ещё думаю, что с этим делать... Возможно, если ещё допилить возможно оживлять сдохший девайс, стало бы лучше. Ну и из мелочей - со стилем там что-то не то совсем, типа отступы по 2 пробела, но это фигня, я сам поправлю после вливания. И libnl обязательный, наверное его лучше сделать необязательным. Но это мелочи, повторюсь
Короче, немного покорёжил всё, добавил режим "оживления мёртвого девайса", написал доку и тоже влил. Но netlink увы не панацея, у NBD всё равно остаются проблемы - при оживлении мёртвого девайса старые запросы I/O всё равно либо остаются висеть, либо обрубаются по таймауту. Смешно, но при этом похоже в Linux 5.19 исправили поведение обычного nbd через ioctl - теперь если приложение дохнет, девайсы не зависают насмерть и не требуют перезагрузки сервера. Поэтому и таймаут дефолтный поменял и сделал опять 0. Ну да фиг с ним, в CSI уже VDUSE вместо NBD используется. В любом случае спасибо за фичу =)
nbd-proxy: add configuration via netlink to support kinds of timeouts.
By MIND Software LLC. By submitting this pull request, I accept Vitastor CLA