Снова заметка для себя. Есть виртуальный сервер, который установлен на VMware Server. В нем время от времени (при нагрузке дисковой системы гостевой машины) возникали следующие ошибки:
eventid 11:
The driver detected a controller error on \Device\Harddisk0.
eventid 15:
The device, \Device\Scsi\symmpi1, is not ready for access yet.
Заканчивалось это вылетом виртуальной машины в синий экран.
Как решалась проблема:
На хостовой машине были также установлены и другие виртуальные машины, на которых подобных проблем не наблюдалось. У проблемной виртуальной машины было одно отличие - тип виртуального диска:
- "Preallocated virtual disk contained in a single virtual disk file" - для такого диска сразу создается пустой файл с размером равным объему создаваемого виртуального диска.
у других виртуальных машин:
- "Growable virtual disk contained in a single virtual disk file" - создается маленький файл, который увеличивается по ходу наполнения виртуального диска данными.
Сначала я решил сделать дефрагментацию виртуального диска с помощью вот таких команд:
C:\Program Files (x86)\VMware\VMware Server\vmware-vdiskmanager.exe -d "D:\Virtual Machines\server1\server1.vmdk"
C:\Program Files (x86)\VMware\VMware Server\vmware-vdiskmanager.exe -d "D:\Virtual Machines\server1\server1-flat.vmdk"
После второй команды получил в ответ ошибку:
Failed to open the disk 'D:\Virtual Machines\server1\server1-flat.vmdk' : The file specified is not a virtual disk (0xf00003ebf).
Failed to defragment: The file specified is not a virtual disk (0xf00003ebf).
Следующий шаг - преобразование этого типа виртуального диска в тот тип виртуального диска, который используется на не проблемных гостевых машинах, команда:
C:\Program Files (x86)\VMware\VMware Server\vmware-vdiskmanager.exe -r "D:\Virtual Machines\server1\server1.vmdk" -t 0 "d:\Virtual Machines\server1\server1-growable.vmdk"
После этого файлы "server1.vmdk" и "server1-flat.vmdk" переименовал (на всякий случай если понадобятся), новый файл "server1-growable.vmdk" переименовывал в "server1.vmdk", теперь виртуальная машина будет загружаться из файла преобразованного диска.
Осталось сделать дефрагментацию:
C:\Program Files (x86)\VMware\VMware Server\vmware-vdiskmanager.exe -d "D:\Virtual Machines\server1\server1.vmdk"
Можно "обрезать" файл до объема занятого пространства в виртуальном диске (зачем файлу занимать 100 гб, если в нем полезных данных на 10 гб ?) :
C:\Program Files (x86)\VMware\VMware Server\vmware-vdiskmanager.exe -k "D:\Virtual Machines\server1\server1.vmdk"
Буду надеяться что эти действия решат мою проблему =)