DRBD - Почему доступ только для чтения к вторичному ресурсу может вызвать проблемы с согласованностью кеша

Согласно документации DRBD9 ( https://www.drbd.org/en/doc/users-guide-90/s-resource-roles ), чтение с устройства может вызвать проблемы с когерентностью кеша, но я не уверен, почему. ( Я знаю, что могу » t получить доступ к ресурсу во вторичной роли, но я хочу понять причины )

Моя гипотеза (при условии, что у нас есть первичный DRBD-1 и вторичный DRBD-2, файловая система ext4 и "file_a" является файлом на устройстве drbd ):

  1. DRBD-2 обращается к file_a и помещает смещение file_a (или что-то подобное) в свой кэш. (DRBD-2 имеет права только на чтение, поэтому система считает, что файл нельзя изменить.)
  2. DRBD-1 записывает содержимое file_b со старым смещением file_a.
  3. DRBD-2 снова хочет получить доступ к file_a, поэтому система использует смещение, которое он сохранил в своем кэше, ожидая найти данные file_a при доступе к данным file_b.
  4. У нас есть проблема с согласованностью кеша.

Заранее благодарим за пролили свет на меня по этому поводу.

1
задан 13 April 2016 в 15:53
1 ответ

Да, именно то, что вы описали, это точный сценарий, который может привести к проблемам с согласованностью кеша.

Чтобы решить эту проблему, вам пришлось использовать файловую систему, предназначенную для повторной проверки любых кэшированных записей. доступны другие хосты. Они называются кластерной файловой системой , с основными примерами GFS2 и OCFS.

Но обратите внимание, что по той же самой причине кластерные файловые системы обычно медленнее традиционных.

2
ответ дан 3 December 2019 в 20:39

Теги

Похожие вопросы