Проблема согласованности кэша для решений высокой доступности виртуализации

#virtualization #high-availability

#виртуализация #высокая доступность

Вопрос:

Я взглянул на решение Redhat Enterprise Linux HA и VMware HA. Это легко понять. Несколько физических серверов могут создавать кластер. Система отслеживает состояние всех виртуальных машин. Если одна виртуальная машина не работает, ее можно перезапустить на другом физическом сервере. Приложения на этой виртуальной машине также можно перезапустить.

Однако у меня есть вопрос. В гостевой ОС, когда большинство приложений успешно записывают данные в файлы, фактически данные отправляются в кэш ОС (например, в кэш страниц в Linux), если прямой ввод-вывод не используется. При сбое гостевой ОС некоторые данные могут не быть сброшены на диски, но гостевая ОС сообщает, что они были успешно записаны. После перезагрузки виртуальной машины на другом сервере может оказаться, что данные на диске не согласованы, и могут возникнуть проблемы с целостностью данных. Я не нахожу никакой информации о введении этой проблемы для решений виртуальной машины HA. Разве нам не нужно рассмотреть эту проблему?

Ответ №1:

Я задавал аналогичный вопрос здесь:
https://serverfault.com/questions/297980/sql-server-on-vmware-is-transaction-log-corruption-possible

Нашел это на VMware, не уверен, насколько это применимо к вашей ситуации:

Продукты VMware, размещенные на хостах Linux, всегда используют буферизованный ввод-вывод … При использовании буферизованного ввода-вывода продукты VMware, размещенные на хостинге, не обходят буферный кэш хоста для обеспечения ввода-вывода виртуальной машины, согласованного со сбоями. Следовательно, если ввод-вывод буферизован в операционной системе хоста, приложение, запущенное в гостевой операционной системе в продуктах, размещенных VMware, может потерять согласованность при сбое.

http://kb.vmware.com/selfservice/microsites/search.do?language=en_USamp;cmd=displayKCamp;externalId=1008542