
У меня есть веб-сервер CentOS 6, работающий в виртуальной машине на ESXi 5. Примерно через 133 дня безотказной работы я перезагрузил его. Теперь он не загружается. Он зависает здесь на некоторое время:
И наконец:
Если бы это был настоящий жесткий диск, я бы предположил, что он умирает, и заменил бы его. Но это виртуальный диск, и мои другие виртуальные машины работают просто отлично. Есть идеи, как это исправить?
решение1
Вы не говорите, почему вам нужно было перезагрузить эту VM.
Произошла ли какая-то серьезная проблема с хостом, например, незапланированное отключение питания?
Я бы сначала проверил наличие реальной проблемы с аппаратным диском. Попробуйте проверить, можете ли вы скопировать виртуальную машину без ошибок чтения, или теперь копия загружается нормально.
Во-вторых, проверьте, не изменилось ли определение жесткого диска в виртуальной машине. Найдите какой-либо неправильный параметр в конфигурации виртуальной машины или в ее BIOS, или, возможно, виртуальный диск был заполнен и его нужно увеличить, или это может быть даже поврежденный драйвер диска в виртуальной машине.
Если вы обновили ESXi в течение последних 133 дней, попробуйте эту виртуальную машину на более ранней версии.
Наконец, вполне возможно, что за последние 133 дня какой-то глюк повредил диск виртуальной машины и сделал ее незагружаемой, о чем вы узнали только сейчас. Если это так, вам может потребоваться переустановить CentOS или даже пересобрать виртуальную машину.
решение2
Чтобы исправить это, я по сути клонировал всю виртуальную машину вручную, используя ESXi CLI:
- Создайте новый каталог для новой виртуальной машины, назовите его
recover
- Клонируйте диски с помощью
vmkfstools --clonevirtualdisk source.vmdk dest.vmdk
Это позволит выполнить толстую подготовку дисков. - Скопируйте
.vmx
файл и отредактируйте его так, чтобы он указывал на новые диски (если вы их переименовали).
Видимо, что-то было не так с тонкими дисками, и их клонирование решило проблему. Надеюсь, это кому-то поможет.