В рамках міграції даних і віртуальних машин зі старого сховища HP MSA 200 на нову систему зберігання Dell EMC Unity (обидва підключені через SAN) зіткнувся з проблемою при видаленні порожнього VMFS сховища в VMWare vSphere. При спробі відключити VMFS сховище від ESXi хостів з'являється помилка про те, що сховище використовується:
Unmount VMFS volume esxi12.winitpro.ru. The resource 'Datastore Name: MSA2000_LUN1 VMFS uuid: xxxxx - xxxxx-x-xxxxx-xxxx' is in use. Can not unmount volume Datastore Name VMFS "file system is busy".
Судячи помилково ясно, що VMFS сховище не видаляється, тому що ESXi хости або vSphere все ще використовують сховище для запису якихось даних. Згідно з документацією VMWare, при видаленні LUN з vSphere потрібно перевірити наступні пункти:
- На VMFS сховище відсутні файли віртуальних машин, шаблонів; снапшотов і ISO образів (потрібно смігріровать ВМ на інше VMFS сховище, або вимкнути і видалити або разрегестріровать в vSphere);
- Для сховища відключений Storage I / O Control;
- Датастор не входить в Datastore Cluster;
- LUN не використовується як RDM пристрій;
- VMFS сховище не використовується для зберігання даних vSphere HA, Storage DRS, логів, дампов (/ vmkdump /), даних vSAN (/ vsantraced /), даних для техпідтримки (розділ Scratch), файлів підкачки віртуальних машин.
Самі віртуальні машини вже були переміщені на нове сховище за допомогою Storage vMotion. Подивимося, що ще залишилося на VMFS сховище:
Як ви бачите, на сховище залишилися каталог logdir (каталог з балками), sdd.sf (каталог з описом SCSI пристроїв), dbsData (каталог з даними розподіленого віртуального комутатора) і naa ... (метадані VMFS).
У моєму випадку на VMFS сховище все ще зберігаються логи ESXi хоста (Scratch Location). В налаштуваннях хостів ESXi, які використовують даний хранліще, перевірте чи не зазначено чи воно в якості місця зберігання логів. Перейдіть в розділ Manage -> Settings -> Advanced System Settings. Знайдіть параметр ScratchConfig.CurrentScratchLocation і якщо він вказує на ваш VMFS датастор, змініть шлях до каталогу з балками.
Перезавантажте ESXi хост або перезапустіть службу Syslog server на хості.
Спробуємо ще раз відключити сховище від ESXi. Перейдіть в розділ Manage -> Storage -> Storage Device. Знайдіть у списку ваш LUN, виберіть його і натисніть на кнопку Detaches the selected device from the host.
У моєму випадку знову з'явилася помилка:
Detach SCSI LUN The resource is in use.
Я ще досить довго намагався знайти, хто ж використовує це сховище і вирішив, що найпростіший спосіб в моєму випадку - просто видалити таблицю розділів на VMFS сховище (звичайно потрібно виконувати видалення вкрай уважно, переконавшись, що ви видаляєте саме те сховище, яке вам потрібно ).
- Підключіться по SSH до будь-якого хосту ESXi хосту, якому презентовано VMFS сховище з масиву;
- В інтерфейсі vSphere скопіюйте ідентифікатор вашого сховища і на ESXi хості перевірте якого пристрою і шляхи до VMFS сховища воно відповідає:
esxcfg-scsidevs -c | grep naa.6001438005df0dee0000700004be0000
naa.6001438005df0dee0000700004be0000 Direct-Access / vmfs / devices / disks / naa. 6001438005df0dee0000700004be0000 512000MB NMP HP Fibre Channel Disk (naa.6001438005df0dee0000700004be0000)esxcfg-scsidevs -m | grep naa.6001438005df0dee0000700004be0000
naa.6001438005df0dee0000700004be0000: 1 /vmfs/devices/disks/naa.6001438005df0dee0000700004be0000:1 570e5298-08f4c74e-ca3a-b4b52f5e2b38 0 MSA2000_LUN1
- Подивимося, скільки місце зайнято / доступно на вашому VMFS датасторе:
df -h | grep MSA2000_LUN1
VMFS-5 499.8G 1.4G 498.3G 0% / vmfs / volumes / MSA2000_LUN1 - Отже, ми переконалися, що ім'я сховища і його ідентифікатор відповідають LUN, який ми хочемо видалити;
- Тепер отримаємо інформацію про розділи на нашому сховищі:
partedUtil getptbl /vmfs/devices/disks/naa.6001438005df0dee0000700004be0000
gpt
65270 255 63 1048576000
1 2048 1048575966 AA31E02A400F11DB9590000C2911D1B8 vmfs 0 - У нашому випадку на LUN є розділ з файловою системою vmfs;
- Видалимо з даного диска (LUN) VMFS розділ з ідентифікатором 1 (будьте уважні !!!)
partedUtil delete /vmfs/devices/disks/naa.6001438005df0dee0000700004be0000 1
Після видалення розділу можна відключити LUN в vSphere - Unmount Datastore. Помилка "datastore is in use" не повинна з'явитися.
Виберіть ESXi хости, від яких потрібно відключити VMFS сховище:
Або можна зробити Detach зі списку підключених пристроїв зберігання на хості. В результаті статус підключення зміниться на Detached.
Після цього vmfs сховище можна видалити (Delete Datastore) і сховище пропаде з vSphere.