1

Тема: Задержки при доступе к общим папкам VirtualBox

Обнаружилась проблема, которая проявляется в значительных задержках при чтении/записи в общие папки VirtualBox.

Если хостовая и гостевая машина одновременно работают на запись в один и тот же файл в общей папке - это может вызвать искажение данных в нем. Например:

1. Имеется файл data.json в общей папке, в который раз в секунду заносится текущее время (добавляется новая строка в конец файла) скриптом, работающим на HOST-машине

// этот элемент добавляется в конец файла...
    {
        "dateD": "17:17"
    }

2. В какой-то момент, например в 20:30, файл модифицируется на Гостевой машине: в конец файла добавляется следующая строка:

    {
        "dateD": "guest"
    }

Добавляется путем чтения файла, затем его модификации и последующего сохранения

3. Мы ожидаем, что файл должен выглядеть так:

    {
        "dateD": "20:29"
    },
    {
        "dateD": "20:30"
    },
    {
        "dateD": "guest"
    },    
    {
        "dateD": "20:31"
    },
    {
        "dateD": "20:32"
    }

но в реальности получаем следующее:

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

Поделиться

2

Re: Задержки при доступе к общим папкам VirtualBox

В такой ситуации разработчики советуют сделать следующие правки:

12.3.9. Long Delays When Accessing Shared Folders

The performance for accesses to shared folders from a Windows guest might be decreased due to delays during the resolution of the Oracle VM VirtualBox shared folders name service. To fix these delays, add the following entries to the file \windows\system32\drivers\etc\lmhosts of the Windows guest:

255.255.255.255        VBOXSVR #PRE
255.255.255.255        VBOXSRV #PRE

After doing this change, a reboot of the guest is required.

Производительность доступа к общим папкам из гостевой системы Windows может снизиться из-за задержек при разрешении службы имен общих папок Oracle VM VirtualBox.
https://www.virtualbox.org/manual/ch12.html#idp12788816

То есть, рекомендовано в файл \windows\system32\drivers\etc\lmhosts Гостевой машины добавить следующее:

255.255.255.255        VBOXSVR #PRE
255.255.255.255        VBOXSRV #PRE

а затем перезагрузить Гостевую машину

Поделиться