VMware ESXi не бачить диск після встановлення
Після встановлення ESXi диск іноді не з'являється під час створення datastore, або ESXi знаходить на ньому старий datastore, але не підключає його. Від причини залежить рішення: одні способи зберігають дані на диску, інші їх видаляють. У цій інструкції описано, як спочатку знайти причину, а потім вибрати відповідний сценарій.
Команди наведено для ESXi 8.0, вони працюють також в ESXi 7.0. Виконуйте їх в ESXi Shell або по SSH під root.
Загальна підтримка ESXi 7.0 закінчилася 2 жовтня 2025 року, виправлення безпеки для нього більше не випускаються. Якщо на сервері ще працює ESXi 7.0, заплануйте оновлення до підтримуваної версії.
Знайдіть причину
Відкрийте ESXi Host Client у браузері та перейдіть до Storage → Devices. Знайдіть диск і подивіться, що видно.
- Диск є у Storage → Devices, але недоступний у майстрі New datastore. Перш ніж щось змінювати, перевірте, чи немає на ньому наявного datastore, системних або інших розділів. Дивіться сценарії 1 і 2.
- ESXi повідомляє про старий datastore VMFS на диску, але datastore не підключений. Найімовірніше, диск використовувався іншою інсталяцією ESXi або був клонований. Переходьте до сценарію 1.
- Диска немає у списку взагалі. ESXi не бачить сам пристрій. Переходьте до сценарію 3.
Та сама перевірка з командного рядка. Виведіть диски, які бачить ESXi:
esxcli storage core device list | grep -E "^[a-z]|Display Name|Size"
Виведіть томи VMFS, які ESXi знайшов, але не підключив:
esxcli storage vmfs snapshot list
Якщо друга команда не показує томів, на диску все одно може бути звичайний datastore VMFS, який відключили вручну. ESXi не підключає такий datastore автоматично, але снапшотом він теж не є. Перевірте список файлових систем:
esxcli storage filesystem list
Якщо datastore є у списку зі значенням false у стовпці Mounted, підключіть його за іменем:
esxcli storage filesystem mount -l DATASTORE_NAME
Або за UUID:
esxcli storage filesystem mount -u DATASTORE_UUID
Якщо друга команда показує том, використовуйте сценарій 1. Якщо жодна з команд не показує datastore, це ще не означає, що на диску лише старі розділи: диск може бути завантажувальним (дивіться сценарій 4) або містити потрібні дані. Перевірте розділи, як описано в сценарії 2, перш ніж щось видаляти.
Сценарій 1. Підключіть наявний datastore VMFS і збережіть дані
Використовуйте цей сценарій, якщо на диску є datastore з потрібними віртуальними машинами. Так буває після перевстановлення ESXi на тому самому сервері, під час перенесення диска з іншого хоста або якщо диск є копією іншого диска.
Кожен том VMFS має сигнатуру, пов'язану з ідентифікатором пристрою, на якому том було створено. Якщо ідентифікатор пристрою змінюється, наприклад після клонування диска, перенесення на інший контролер або зміни LUN ID, ESXi визначає том як нерозв'язаний снапшот і не підключає його автоматично. Це захищає від підключення двох копій одного datastore. Не кожен непідключений datastore є снапшотом: якщо команда нижче нічого не показує, причина інша.
Перевірте том:
esxcli storage vmfs snapshot list
Приклад виводу:
5f5b217c-2b53d2b8-d1a4-ac1f6be04cea Volume Name: datastore1 VMFS UUID: 5f5b217c-2b53d2b8-d1a4-ac1f6be04cea Can mount: true Reason for un-mountability: Can resignature: true Reason for non-resignaturability: Unresolved Extent Count: 1
Можна зберегти поточну сигнатуру (mount) або записати нову (resignature).
Підключіть том із поточною сигнатурою
Використовуйте цей спосіб, якщо початковий datastore більше не підключений до цього хоста, наприклад після перевстановлення ESXi:
esxcli storage vmfs snapshot mount -l datastore1
Замініть datastore1 значенням Volume Name з виводу. Якщо кілька томів мають однакове ім'я, вкажіть UUID: -u 5f5b217c-2b53d2b8-d1a4-ac1f6be04cea. Те саме стосується resignature. Підключення зберігається після перезавантаження. Щоб підключити том лише до наступного перезавантаження, додайте -n.
Вибирайте залежно від того, чи підключений початковий том. Якщо початковий datastore з тим самим UUID підключений до хоста, копію не можна підключити з поточною сигнатурою. У такому разі використовуйте resignature.
Запишіть нову сигнатуру
Використовуйте цей спосіб, якщо початковий datastore і його копія мають працювати на одному хості одночасно:
esxcli storage vmfs snapshot resignature -l datastore1
ESXi запише новий UUID, і datastore з'явиться з іменем на кшталт snap-1a2b3c4d-datastore1. Його можна перейменувати в Host Client.
Після resignature віртуальні машини на цьому datastore не зареєстровані на хості. Відкрийте datastore у Storage → Datastore browser, знайдіть файл .vmx кожної віртуальної машини та зареєструйте її. З командного рядка віртуальну машину можна зареєструвати так:
vim-cmd solo/registervm /vmfs/volumes/DATASTORE/VM/VM.vmx
Замініть DATASTORE і VM на ім'я datastore і папку віртуальної машини. Resignature не можна скасувати.
Перевірте результат
esxcli storage filesystem list
Datastore має бути у списку зі значенням true у стовпці Mounted. Він також з'явиться у Storage → Datastores в Host Client.
Старі команди esxcfg-volume -l (список) і esxcfg-volume -M <UUID> (постійне підключення) роблять те саме і досі працюють в ESXi 7.0 і 8.0. Команда vicfg-volume належить до vSphere CLI, який більше не підтримується.
Сценарій 2. Очистіть старі розділи та використовуйте диск як новий
Використовуйте цей сценарій, лише якщо на диску немає потрібних даних. Типові випадки: диск використовувався іншою операційною системою, апаратним RAID або старою інсталяцією ESXi, яка більше не потрібна. Поки на диску залишаються старі розділи, ESXi не пропонує його для нового datastore.
Очищення таблиці розділів видаляє всі дані на диску. Двічі перевірте ідентифікатор диска і переконайтеся, що це не диск, з якого завантажується ESXi, і не диск з потрібним datastore.
У Host Client
Перейдіть до Storage → Devices і натисніть на диск. Натисніть Actions і виберіть Clear partition table. Підтвердьте дію.
Після цього перейдіть до Storage → Datastores, натисніть New datastore і створіть на диску datastore VMFS.
Якщо потрібно видалити лише один розділ, натомість виберіть Edit partitions, видаліть розділ і збережіть зміни.
З командного рядка
Знайдіть ім'я пристрою диска:
ls /vmfs/devices/disks/ | grep -v ":"
Переконайтеся, що це не завантажувальний диск і на ньому немає datastore. Замініть DEVICE іменем з попередньої команди:
esxcli storage core device list -d DEVICE | grep -E "Display Name|Is Boot Device" esxcli storage vmfs extent list
Значення Is Boot Device має бути false, а пристрою не має бути у виводі esxcli storage vmfs extent list. Також переконайтеся, що диск не використовується для дампу пам'яті та системних журналів:
esxcli system coredump partition list esxcli system syslog config get
Пристрою не має бути у виводі coredump, а каталог syslog не має бути на datastore цього диска. Якщо ви не впевнені, для чого використовується диск, не виконуйте руйнівну команду. Потім виведіть його розділи:
partedUtil getptbl /vmfs/devices/disks/DEVICE
Запишіть нову порожню таблицю розділів GPT:
partedUtil mklabel /vmfs/devices/disks/DEVICE gpt
Повторно проскануйте контролери, щоб Host Client побачив порожній диск:
esxcli storage core adapter rescan --all
Потім створіть datastore в Host Client, як описано вище.
Сценарій 3. Диск не видно взагалі
Якщо диска немає у Storage → Devices, ESXi не бачить сам пристрій. Розділи та datastore тут ні до чого: проблема в обладнанні, режимі контролера або драйвері.
Перевірте контролери сховища та їхні драйвери:
esxcli storage core adapter list
Потім повторно проскануйте контролери:
esxcli storage core adapter rescan --all
Знову перевірте список пристроїв:
esxcli storage core device list
Якщо диска досі немає, перевірте причини нижче.
Часті причини:
- диск підключений до RAID-контролера і не доданий до жодного віртуального диска (логічного диска) в налаштуваннях контролера;
- контролер працює в режимі, який ESXi не підтримує, наприклад програмний RAID материнської плати;
- для контролера або NVMe-диска немає драйвера ESXi. ESXi 7.0 і новіші більше не підтримують старі драйвери vmklinux, тому обладнання, яке працювало з ESXi 6.x, може перестати працювати;
- диск вимкнений у налаштуваннях BIOS/UEFI, несправний або не підключений.
Перевірте контролер і модель диска в Broadcom Compatibility Guide. Для RAID-контролера відкрийте його утиліту налаштування під час завантаження та переконайтеся, що диск входить до віртуального диска, або перемкніть контролер у режим HBA (pass-through), якщо він це підтримує.
Клієнти INTROSERV з виділеними серверами можуть звернутися до підтримки, якщо ESXi не бачить диск. Підтримка перевірить налаштування контролера та обладнання сервера.
Сценарій 4. На системному диску мало місця для datastore або його немає
Починаючи з ESXi 7.0, інсталятор створює на завантажувальному диску завантажувальні розділи та розділ ESX-OSData. За замовчуванням ці системні розділи займають до 138 ГБ. Якщо завантажувальний диск 142 ГБ або менший, інсталятор взагалі не створює на ньому локальний datastore. На більшому диску datastore отримує лише місце, що залишилося. Диск видно, але вільного місця на ньому мало або немає зовсім.
Це не помилка. Точна розмітка залежить від розміру диска та параметрів встановлення. Якщо місце на системному диску потрібне, перевстановіть ESXi з меншими системними розділами. Коли з'явиться екран завантаження інсталятора ESXi, натисніть Shift+O, щоб змінити параметри завантаження, і додайте в кінець рядка такий параметр. Це параметр завантаження інсталятора, а не команда для ESXi Shell:
systemMediaSize=min
З min системні розділи займають 33 ГБ. Це значення розраховане на сервери з одним диском і невеликим набором функцій. Інші значення: small (69 ГБ, для серверів з обсягом пам'яті від 512 ГБ), default (138 ГБ) і max (усе доступне місце). Параметр доступний починаючи з ESXi 7.0 Update 1c.
Перевстановлення ESXi з новою розміткою видаляє наявний локальний datastore на системному диску. Спочатку перенесіть віртуальні машини або зробіть їхні резервні копії.
Інший варіант: залишити ESXi на системному диску та створювати datastore лише на інших дисках.
Висновок
Спочатку перевірте, чи бачить ESXi диск і чи знайшов він на ньому старий том VMFS. Якщо на диску є потрібний datastore, підключіть його або запишіть нову сигнатуру. Якщо на диску старі непотрібні дані, очистіть таблицю розділів і створіть новий datastore. Якщо диск не видно взагалі, перевірте режим контролера та підтримку драйверів.