ZFS для Linux по напряжению VirtualBox?

УМНЫЙ не повторно отображает секторы, это просто обнаруживает и регистрирует ошибки. Поврежденные секторы повторно отображаются автоматически при записи в. Можно сделать это с dd или hdparm --write-sector.

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

Переотображение их в файловой системе не имеет большого смысла.

Если hdparm -t /dev/sdb дает Вам разумные результаты затем, можно работать badblocks самостоятельно (с -s) чтобы проверить, выполняют ли быстрее, если выполнено непосредственно и его через strace, если это не быстрее в порядке для получения впечатления, где проблема производительности следует.

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

5
07.04.2015, 20:23
1 ответ

Похоже на общие ошибки тайм-аута жесткого диска в гостевой системе. Они могут быть вызваны ZFS, но с тем же успехом они могут быть вызваны другими операциями ввода-вывода с большим объемом операций ввода-вывода. В качестве гостевой системы Linux весьма чувствителен в этом отношении, поскольку по умолчанию у нее низкий тайм-аут (обычно 30 секунд). В виртуальной машине этого может быть недостаточно, особенно если образ диска является обычным файлом и хост-система находится под нагрузкой; некоторые записи могут занять больше времени, чем ожидалось, если кэш хоста заполнен.

Или, если цитировать руководство VirtualBox :

Однако у некоторых гостей (например, в некоторых версиях Linux) возникают серьезные проблемы , если запись в файл образа занимает больше времени, чем примерно 15 секунд. Однако некоторым файловым системам требуется более минуты для выполнения одной записи , если кеш хоста содержит большой объем данных, которые необходимо записать .

Обратите внимание, что это не ограничивается VirtualBox. Другие решения виртуализации могут демонстрировать такое же поведение при запуске гостевой ОС Linux.

Что касается самого тайм-аута: Таймаут жесткого диска Linux (приводящий к исключениям ata и, возможно, повреждению при высокой нагрузке) может быть увеличен в гостевой системе.

Например, в Debian 7 все, что вам нужно сделать, это добавить несколько строк в ваш /etc/rc.local :

$ cat /etc/rc.local 
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

TIMEOUT=86400
for f in /sys/block/sd?/device/timeout; do
    echo $TIMEOUT >"$f"
done

exit 0

Затем grep для исключений ata, чтобы увидеть, исчезли ли они :

# grep -Rn --col 'ata.*exception' /var/log/

Однако было бы предпочтительнее увеличить производительность диска виртуальной машины, чем изменять тайм-аут гостевой системы. В случае VirtualBox можно отключить « Host I / O Cache » контроллера виртуальной памяти виртуальной машины. Если этот параметр включен, кеш хоста может быть узким местом и замедлять работу диска, если на хосте много операций ввода-вывода. С другой стороны, его отключение может увеличить нагрузку на сам виртуальную машину, поэтому таймауты все равно могут возникать, если гость перегружен, поэтому включение кеша хоста может быть даже лучше в некоторых случаях, в зависимости от вашей рабочей нагрузки.


Если это не помогает, руководство VirtualBox также рекомендует поэкспериментировать с интервалом очистки:

Для дисков IDE используйте следующую команду:

VBoxManage setextradata "VM name"
  "VBoxInternal/Devices/piix3ide/0/LUN#[x]/Config/FlushInterval" [b]

Для дисков SATA используйте следующую команду:

VBoxManage setextradata "VM name"
  "VBoxInternal/Devices/ahci/0/LUN#[x]/Config/FlushInterval" [b]

Значения от 1000000 до 10000000 (От 1 до 10 мегабайт) - хорошая отправная точка. Уменьшение интервала снижает вероятность проблемы и производительность записи гостя.


В некоторых тестах гостевые системы VirtualBox испытывали такие тайм-ауты жесткого диска (сбой виртуальной машины и / или вызывающие повреждение) независимо от того, было ли включено кэширование ввода-вывода хоста или нет.Файловая система хоста не работала медленно, за исключением полминуты каждый раз, когда запускалось запланированное задание cron, что приводило к тайм-аутам в виртуальной машине. Проблема исчезла только после установки тайм-аута жесткого диска, как описано выше, и больше не было тайм-аутов.

1
27.01.2020, 20:43

Теги

Похожие вопросы