Жахлива ситуація - файлові системи, змонтовані одночасно кількома незалежними екземплярами ОС


14

Як мені безпечно вийти з цієї ситуації?

Деталі такі:

Сервер xen має блокові пристрої, призначені для VM. Але ці пристрої також були встановлені всередині Xen.

Насправді 44 з цих блокових пристроїв встановлені так. Що ще гірше, кожен фізичний пристрій бачиться на 4 контурах, і кожен з них встановлюється на окремій точці кріплення. Іншими словами, пристрої фактично змонтовані 5 разів кожен.

Гостьова ОС VM бачить шлях через псевдопристрій PowerPath (виділяється як phy: блокувати пристрій до domU)

Деякі пристрої відформатовані як ext2 та reiserfs.

Не потрібно мені пояснювати ризики корупції файлової системи.

Я боюся, що навіть просто відключення файлових систем може призвести до корупції, і я вважаю, що в цей момент витягнення живлення з хоста є найбезпечнішим варіантом .

Зауважте, що додатки, бази даних Oracle здебільшого, у всіх VM все ще працюють і використовуються.

Я виявив це, коли досліджував високе використання процесора на dom0. Існує нерозбірливий процес "знайти", з cwd -> / media / disk-12, який монтується з / dev / sdf1, що належить / dev / emcpowerr

Перш ніж хтось запитує, я, коли я бачив, як процеси не можуть бути вбиті і продовжують використовувати процесор і оперативну пам’ять (на відміну від неіснуючого / зомбі-процесу), це коли є видатний зафіксований ввід / вивід, наприклад синхронізація повернута, але фізично ще не на диску . Частіше це трапляється на стрічкових введеннях / виводах.

Пропозиції !?

PS Я б очікував, що пристрої будуть "зарезервовані" після встановлення, щоб не допустити подібних речей? Або це неможливо в Linux?

EDIT: По-перше, я переконаний, що винуватець KDE в гіпервізорі). Схоже, KDE монтує пристрої, які він може вести в журнал, щоб створювати піктограми на робочому столі. Те ж саме не відбувається і на інших серверах Xen, але всі інші сервери мають набагато більш стару версію SLES та KDE ... Здається, що V4 ображає, а 3.4 веде себе краще).

Крім того, вивісили два некритичні ВМ. Після їх вимкнення вони не завантажуватимуться знову через пошкодження файлової системи. Основний / виробничий VM все ще працює, і база даних на ньому все ще працює, але очевидно, що це бомба часу. Замовник намагається відновити середовище на іншому VM на іншому сервері, але він застряг у питаннях налаштування деяких компонентів, тому ми чекаємо ...

У будь-якому випадку я відчуваю, що жодна з відповідей досі не була більше, ніж "найкраща практика завжди граціозно закривається". І я сподіваюся отримати щось більш конкретне ... У будь-якому випадку, я відчуваю, що ця ситуація може бути підставою для більш обережних мислення. Чи призведе до вимкнення синхронізованих вводу-виводу, зокрема оновлення метаданих файлової системи від гіпервізора, і спричинить потенційно серйозне пошкодження файлової системи?


1
І зараз будь-які резервні копії, зроблені перед «вимкненням», можливо, можуть просто створити резервну копію пошкоджених даних, хоча в цій ситуації швидше за все пошкоджені метадані файлової системи, а не вміст файлів.
Йохан

Я боюся, що ви втратите хоча б частину даних у будь-якому випадку. Фізичне вимкнення хоста або примусове припинення VM може призвести до небажаного наслідку зіпсування всього (тобто навіть тих файлових систем, які встановлені лише один раз). Я б, напевно, намагався припинити все максимально чисто, щоб мінімізувати втрати. І звичайно переконавшись, що це не повториться.
петерф

Щодо запобігання цьому, IIUC ви можете спробувати встановити дозволи на пристрої в dom0, як тільки він відкриється гостем, але оскільки дозволу fs (на файли пристроїв) можна перетнути корінь (якщо у вас немає виправленого ядра), він може не потрібно допомагати.
петерф

1
Щодо вашого сценарію публікації: якщо пристрої видно через декілька шляхів, ядро, ймовірно, навіть не знає, що вони все той же пристрій, тож як це можна "резервувати"? Що стосується експорту пристрою з dom0 до декількох domU, він дозволяє це робити, тому що ви, можливо, хочете це зробити спеціально (наприклад, з файловою системою, яка його підтримує, або встановленою лише для читання скрізь).
Селада

@Celada Я подумав про це, але є способи "заблокувати" пристрої: PowerPath повинен (у випадку з Solaris) резервувати всі батьківські контури пристрою (на час, коли він ініціалізується). Крім того, командами SCSI "резерв" керує цільовий пристрій, тому, як тільки ціль зарезервована, вона повинна відмовитись у дозволі резерву на будь-який шлях для цього пристрою. Принаймні, це моє обмежене розуміння.
Йохан

Відповіді:


2

Якщо диски записуються з однієї точки кріплення, шкоди не завдається. Зробіть чисте відключення (виправте його з призупиненого стану, якщо будете) виправити кріплення. Не запускайте нічого, крім голих потрібних додатків на Dom0. Якщо, OTOH, розділи записуються з декількох контурів, це BAD і погіршується на другий. Витягніть вилку.


0

Я не маю конкретних причин, але почуття кишечника говорить мені, що наступним може бути найкращий підхід:

  1. Вимкніть програми.
  2. Скопіюйте всі дані з VM через мережу в резервне місце.
  3. Від’єднайте файлові системи зсередини VM.
  4. Вимкніть ВМ. (На цьому хості зараз працює лише одна VM).
  5. Переконайтесь, що не встановлено автоматичний запуск domUs.
  6. Вийміть живлення на хості, щоб запобігти виконанню гіпервізора будь-яких "закриваючих" дій, синхронізації видатних вводу-виводу тощо.
  7. Завантажте ВМ, сподіваючись, що гіпервізор сам пережив потужність.
  8. Якщо це не вдається, відновіть навколишнє середовище. (Завантажувальні диски VM засновані на файлах, але точки монтажу даних знаходяться на зовнішньому диску, виділеному як блокові пристрої)
  9. Перевірте, чи встановлює гіпервізор будь-які файлові системи, що належать до domUs. Скасуйте їх перед тим, як розпочати будь-який домен)
  10. Вимкніть автоматичне встановлення KDE.
  11. Запустіть VM і примусьте повністю перевірити FS.

Альтернатива 11: Запустіть VM та монтуйте файлові системи без повного fsck.

Аргументація полягає в тому, що я не хочу, щоб гіпервізор Xen мав більше шансів, які абсолютно необхідні, щоб викликати корупцію у файлових системах domU.


0

Я не експерт Xen і ще не мав досвіду з цим. Але мій підхід, якби я був на вашому місці, був би такий: спершу я знаю, що можу втратити дані (можливо, навіть усі); по-друге, я б спробував створити знімки, а потім призупинив VM, відновивши їх у безпечному іншому середовищі.
Я не хочу покладати на тебе помилкових надій, але, думаю, вам пощастить, якщо ви зможете щось відновити.

Попередження : дотримання цих порад може втратити всі дані. Це вирішувати, чи варто ризикувати чи ні.

З великою долею ваші програми все ще працюють, тому що дані, якими вони користуються, знаходяться у нестабільній пам'яті. Вам слід спробувати скористатися цією ситуацією (спробуйте оцінити, чи може це бути так, на основі програм для кожного додатка) та експортувати живі дані в загальну мережу, якщо програми пропонують таку функцію. Якщо будь-які дані є на диску, ця функція експорту може бути "заблокована" так, як ваша findзаява, або збій (і збій програми або ОС) через змінені / пошкоджені дані диска.

Тоді ви можете спробувати зробити знімок у прямому ефірі, інструкції з наступної статті: Створення знімків у Xen . Я б пішов на байт-байт-знімок, хоча він може застрягнути так само, як і ваша findкоманда ... Однак я не дав би такої надії.

Перш ніж виконувати попередню команду, вам слід прочитати цей документ від Citrix, який допомагає зрозуміти знімки в Xen (PDF) .

Я бажаю вам удачі.


Дякую. Клієнт має експорт бази даних. Я думаю, що вони просто використовували FTP, щоб вимкнути його з VM, але можливо встановити мережеву частку та експортувати її безпосередньо.
Йохан

Я грав з ідеєю призупинити VM, а потім перенести повну копію на інший хост, а потім спробувати: a) Відновити його з режиму сну або b) завантажити його з подальшим перезавантаженням і fsck. Ідея полягає в тому, що оскільки у мене все ще є призупинена VM на вихідному хості, я можу відновити цю, якщо копія не працює на іншому хості.
Йохан

Також проблемою FWIW при поверненні до резервної копії є те, що побоюються, що всі резервні копії, зроблені за останні пару місяців, є корумпованими.
Йохан

@Johan це більш ніж напевно, правда, більшість, якщо не всі резервні копії (оскільки сталася проблема), ймовірно, пошкоджені. Те саме може бути і для експорту бази даних. Вдало вам знову, вам це знадобиться!
Гюйгенс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.