-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
issue-2074: disable IO of broken devices #2417
base: main
Are you sure you want to change the base?
issue-2074: disable IO of broken devices #2417
Conversation
669f536
to
1f988e3
Compare
32dc4c8
to
d023386
Compare
379cdf6
to
de2c24a
Compare
de2c24a
to
18b0571
Compare
4d051e3
to
0b33f9a
Compare
0b33f9a
to
078b1ff
Compare
078b1ff
to
9c7b960
Compare
9c7b960
to
2b6bf5b
Compare
1e1a3b6
to
43e40ce
Compare
43e40ce
to
21feaa1
Compare
У нас же есть какие-то гарантии что RegisterAgentResponse от DR дойдет до агента? Не получится так, что агент как бы зарегался, а IO встало колом? |
Агент с DR общаются по пайпу - он гарантирует доставку, либо порвется соединение. К тому же, если девайсы засуспендились, то они были либо сломаны (DR прислал в ответе), либо поменяли серийники, и их в любом случае надо суспендить. Рабочие девайсы просто так не засуспендятся. |
#2074
At startup, Disk Agent collects a list of devices with changed serial numbers and suspends such devices.
After Disk Agent registers in Disk Registry, broken devices are disabled and the rest of the devices resumed.
Disk Registry sends a list of broken devices with
TEvRegisterAgentResponse
(DevicesToDisableIO
field).Suspending devices means that read/write/zero requests will receive an
E_REJECTED
error.Disabling devices means that read/write/zero requests will receive an
E_IO
error.The list of suspended devices is stored in the
DevicesWithSuspendedIO
field in the configuration cache.