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