Дисковый кэш в Proxmox

Гипервизор Proxmox
Ответить
ustim
Администратор
Сообщения: 130
Зарегистрирован: 03 июн 2021, 09:01
Откуда: Краснодар
Контактная информация:

Дисковый кэш в Proxmox

Сообщение ustim »

Изображение
cache=none
Параметр cache=none показал наилучшие результаты в производительности и используется по умолчанию в Proxmox
cache=write through
  • Родительский сервер использует кеш при чтении
  • Диск виртуальной машины работает в режиме writethrough.
Writethrough выполняет fsync (синхронизация находящихся данных в памяти с диском) для каждой записи. Это более безопасный режим кеширования, так как возможность потери данных стремится к нулю. Но это сказывается на скорости работы в худшую сторону.

Этот режим при использовании с qemu-kvm использует метод O_DSYNC при работе с образом виртуального диска или блочным устройством. При этом методе кеширования информация об окончании записи поступает только тогда, когда данные были действительно помещены на устройство хранения.

Виртуальная машина принимает во внимание то, что кеширование writeback не используется, поэтому дисковый кеш не сбрасывается.
cache=direct sync
  • Родительский сервер не использует кеширование.
  • Диск виртуальной машины работает в режиме writethrough.
Данный режим похож на writethrough, fsync производится для каждой записи.

Этот режим при использовании с qemu-kvm использует и O_DSYNC, и O_DIRECT методы при работе с образом виртуального диска или блочным устройством. В этом случае запись помечается завершенной только после того, как данные действительно помещены на устройство хранения и подходят для прозрачного кеширования на родительском сервере.

Как и при cache=writethrough это полезно для виртуальных машин тем, что они не сбрасывают дисковый кеш.
cache=write back
  • Родительский сервер использует кеш при чтении и записи
  • Диск виртуальной машины работает в режиме writeback
  • Внимание: В случае внезапного отключения питания существует большой риск потери данных. При использовании ядра < 2.6.37 на виртуальных серверах, следует использовать параметр barrier в настройках подключения дисковых разделов для предотвращения повреждения файловой системы.
Этот режим при использовании с qemu-kvm не использует ни O_DSYNC, ни O_DIRECT методы, поэтому виртуальная машина получает уведомление об удачной записи при помещении данных в кеш родительского сервера.

Виртуальная машина уведомлена о том, что используется writeback-кеш, поэтому будет ожидать отправки команды на сброс кеша. Аналогом может служить рейд-контролер с кешем в ОЗУ.
Ответить