Назад
Настройки контроллера диска и кэша
Контроллер диска и кэш в 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 во время установки.
О кэше диска
Настройки кэша диска представляют собой компромисс между целостностью данных и производительностью.
Функция | writethrough | directsync | none | writeback | unsafe |
---|---|---|---|---|---|
Использование кэша | Использует страничный кэш (полезно для операций чтения) | Не использует кэш | Не использует кэш | Использует страничный кэш | Использует страничный кэш |
Выпуск fsync | Выдается при каждой записи | Выдается при каждой записи | Не выдается | Выдается с задержкой | Не выдается |
Процесс записи | Записывает в кэш, затем немедленно сбрасывает на диск | Записывает непосредственно на диск и немедленно сбрасывает | Записывает непосредственно на диск без сброса | Записывает в кэш и сбрасывает с задержкой | Записывает в кэш без сброса |
Производительность чтения | Высокая (использование кэша) | Низкая (зависит от диска) | Низкая (зависит от диска) | Высокая (использование кэша) | Высокая (использование кэша) |
Производительность записи | Средняя (с помощью кэша) | Низкая (без кэша) | Средняя (без кэша) | Высокая (отложенный сброс кэша) | Очень высокая (отложенный сброс кэша) |
Целостность данных | Высокая | Очень высокая | Средняя (зависит от диска) | Низкая (отложенные записи) | Очень низкая (высокий риск потери данных) |
Сценарий использования | Системы, приоритет которых — производительность чтения и целостность | Системы, требующие максимальной целостности данных | Системы, ориентированные на производительность с умеренными потребностями в целостности | Системы с интенсивной записью, балансирующие производительность и целостность | Системы, ориентированные на производительность, где потеря данных допустима |
TRIM (Discard)
Команда Discard уведомляет систему хранения о том, что определенные блоки больше не нужны.
Изначально введенная для выравнивания износа SSD, некоторые ОС могут требовать эмуляции SSD для поддержки TRIM. Помимо SSD, TRIM также может способствовать безопасному удалению данных, удаляя ключи шифрования вместо перезаписи данных.
В средах частного облака TRIM позволяет тонко выделенному хранилищу освобождать пространство. Обычно, после использования хранилища виртуальной машиной, даже удаленные данные остаются выделенными на уровне хранилища.
fstrim -v /mountpoint
Для операций TRIM в реальном времени монтируйте с опцией discard:
mount -o discard,remount /
Поток ввода-вывода
Включение потоков ввода-вывода в VirtIO SCSI передает операции записи на диск в отдельный поток, отличный от основного потока ОС.
Такая настройка требует дополнительных ресурсов процессора, но снижает задержки, особенно в виртуальных машинах с несколькими виртуальными дисками, выполняющими одновременные операции чтения/записи.