Я пытался создать необработанное изображение с помощью этой команды:
qemu-img create -f raw -o size=200G,preallocation=metadata file.img
но кажется, что необработанные изображения не поддерживают предварительное выделение. если да, то почему там raw + preallocation в этот график?
# qemu-img create -f raw -o size=200G,preallocation=full file.img
Unknown option 'preallocation'
Invalid options for file format 'raw'.
необработанные изображения не поддерживают предварительное выделение, qcow2 и qed-images поддерживают:
preallocation=full
вместо того preallocation=metadata
не только выделяет метаданные для необработанного изображения, но и записывает в него нули, создавая таким образом не разреженный файл изображения.
Если ваша файловая система поддерживает разреженные файлы (например, ext, xfs, btrfs), блоки, заполненные только нулями, физически не сохраняются, что экономит место в начале использования этого образа.
Если вы хотите выделить все пространство на необработанном изображении, вы можете использовать dd
команда: dd if=/dev/zero of=file.img bs=1M count=204800
Если вы стремитесь к скорости, также используйте cache=writethrough
например, с libvirt - это повышенная скорость без потери данных в случае сбоя вашей физической машины.
В соответствии с это руководство, Я не вижу никаких вариантов предварительного выделения для необработанных изображений.
А также было бы неплохо взглянуть на эти тесты, Кажется, что любые необработанные изображения имеют лучшую производительность, чем qcow2.
а также я видел много предложений по избежанию сквозного кэширования из-за проблем с производительностью, но сам не тестировал.