Назад

Настройки контроллера диска и кэша

Контроллер диска и кэш в Proxmox

На этой странице представлена информация о настройках, связанных с дисками, при конфигурации виртуальных машин, включая ключевые аспекты и меры предосторожности.

О контроллерах SCSI

При создании новой виртуальной машины и выборе контроллера SCSI по умолчанию используется опция “VirtIO Single”. Это означает, что если создано несколько виртуальных дисков (как описано в следующем разделе), все они будут выглядеть как подключенные к одному контроллеру. Такая настройка оптимизирует использование памяти и устройств внутри виртуальной машины.

Выбор “VirtIO SCSI” позволяет назначить каждый виртуальный диск на отдельную шину SCSI, что требует дополнительного пространства для драйверов и памяти. Однако распределение операций ввода-вывода может улучшить производительность при определенных рабочих нагрузках.

Эмуляция других физических SCSI-карт, как правило, не рекомендуется.

О контроллерах дисков

IDE (также известный как ATA) был создан в 1988 году, что обеспечивает совместимость практически со всеми операционными системами. Для версий ОС, выпущенных до 2003 года, использование IDE может быть лучшим выбором. Хотя физический IDE имел максимальную скорость 133 МБ/с, виртуализированный IDE не имеет этого ограничения, если только ОС не накладывает его. Однако IDE не поддерживает горячую замену, то есть устройства нельзя удалять во время работы виртуальной машины.

SATA подходит для версий ОС, выпущенных после 2003 года, и является наиболее совместимым вариантом для современных операционных систем. Физически это эволюция IDE с последовательной передачей данных, обеспечивающая скорость до 6 Гбит/с (около 600 МБ/с). Однако в виртуализированной среде нет встроенных ограничений скорости, если только они не установлены гостевой ОС.

VirtIO SCSI и VirtIO SCSI Single обеспечивают самый быстрый доступ к диску. Однако они требуют наличия паравиртуализированных драйверов в гостевой ОС. Если в системе нет дисков IDE/SATA, процесс установки ОС завершится неудачно, если не установлен драйвер VirtIO SCSI. Дистрибутивы Linux включают этот драйвер примерно с 2012 года, FreeBSD — с 2014 года, а для Windows ОС необходимо предоставить дополнительный ISO-файл с драйверами VirtIO во время установки.

О кэше диска

Настройки кэша диска представляют собой компромисс между целостностью данных и производительностью.

Функцияwritethroughdirectsyncnonewritebackunsafe
Использование кэшаИспользует страничный кэш (полезно для операций чтения)Не использует кэшНе использует кэшИспользует страничный кэшИспользует страничный кэш
Выпуск fsyncВыдается при каждой записиВыдается при каждой записиНе выдаетсяВыдается с задержкойНе выдается
Процесс записиЗаписывает в кэш, затем немедленно сбрасывает на дискЗаписывает непосредственно на диск и немедленно сбрасываетЗаписывает непосредственно на диск без сбросаЗаписывает в кэш и сбрасывает с задержкойЗаписывает в кэш без сброса
Производительность чтенияВысокая (использование кэша)Низкая (зависит от диска)Низкая (зависит от диска)Высокая (использование кэша)Высокая (использование кэша)
Производительность записиСредняя (с помощью кэша)Низкая (без кэша)Средняя (без кэша)Высокая (отложенный сброс кэша)Очень высокая (отложенный сброс кэша)
Целостность данныхВысокаяОчень высокаяСредняя (зависит от диска)Низкая (отложенные записи)Очень низкая (высокий риск потери данных)
Сценарий использованияСистемы, приоритет которых — производительность чтения и целостностьСистемы, требующие максимальной целостности данныхСистемы, ориентированные на производительность с умеренными потребностями в целостностиСистемы с интенсивной записью, балансирующие производительность и целостностьСистемы, ориентированные на производительность, где потеря данных допустима

TRIM (Discard)

Команда Discard уведомляет систему хранения о том, что определенные блоки больше не нужны.

Изначально введенная для выравнивания износа SSD, некоторые ОС могут требовать эмуляции SSD для поддержки TRIM. Помимо SSD, TRIM также может способствовать безопасному удалению данных, удаляя ключи шифрования вместо перезаписи данных.

В средах частного облака TRIM позволяет тонко выделенному хранилищу освобождать пространство. Обычно, после использования хранилища виртуальной машиной, даже удаленные данные остаются выделенными на уровне хранилища.

fstrim -v /mountpoint

Для операций TRIM в реальном времени монтируйте с опцией discard:

mount -o discard,remount /

Поток ввода-вывода

Включение потоков ввода-вывода в VirtIO SCSI передает операции записи на диск в отдельный поток, отличный от основного потока ОС.

Такая настройка требует дополнительных ресурсов процессора, но снижает задержки, особенно в виртуальных машинах с несколькими виртуальными дисками, выполняющими одновременные операции чтения/записи.