Відновлення томів RAID і LVM
Софтверні рішення по управлінню масивами RAID і томами LVM - це класно, до тих пір поки ви не втратили дані
Комбінація RAID (Redundant Array of Inexpensive Disks) і LVM2 (Logical Volume Manager, version 2), доступна в сучасних дистрибутивах Linux, надає можливість побудови як надійних так і продуктивних рішень, але ціною такого рішення цілком може стати неможливість відновлення даних з дисків, які розбиті під використання партіцій RAID і LVM2. Я виявив такий ефект недавно, спробувавши змонтувати системний диск, створений за допомогою поєднання RAID і LVM2, на іншому комп'ютері. Перші спроби читання файлової системи були страшним розчаруванням. Ситуація наступна: я запхав два жорсткі диски в системний блок small-form-factor, який реально призначений для монтажу тільки одного диска. Потім створив на двох дисках RAID 1 (просте дзеркало). Рішення не запрацювало: через кілька годин системник вирубався автоматом через критичне підвищення температури всередині. У мене вже був в запасі інший блок, де я і спробував ще раз встановіть систему, використовуючи тільки один диск.
Відновлення системи не викликає особливих проблем, якщо використовувався один диск без всяких Раїд-ЛВМ-ів. Всього і справ, що змонтувати диск на іншій системі і скопіювати файли. Чому ж це так важко з RAID і LVM2? Дві проблеми: дані сховані в логічному томі, який ще ховається десь всередині RAID, крім того, ім'я групи томів на пристрої RAID може мати те ж ім'я, що і на відновлюваної системі.
Багато популярних ОС (наприклад, Red Hat Enterprise Linux, CentOS або Fedora Core) можуть пропонувати створити логічні томи безпосередньо під час установки, розбиваючи диски на розділи, придатні для позначки їх як томи LVM. За замовчуванням ці інсталятори задають імена груп томів як VolGroup00, з двома логічними томами, LogVol00 and LogVol01, перший для кореневої ФС, другий для розділу swap, як показано в лістингу 1.
Listing 1. Typical LVM Disk Configuration
Початкова конфігурація для програмного RAID має три пристрої: md0, md1 і md2, для / boot, swap і / відповідно. Група томів LVM2 накладається на саме об'ємне пристрій, md2. Ім'я групи томів - VolGroup00. Виглядає як здорова ідея на поточний момент, тому що конфігурація партіцій буде в точності відповідати конфігурації, яка прийнята в дистрибутиві за замовчуванням. Лістинг 2 показує, як виглядала конфігурація RAID на той момент, поки вона ще працювала.
Listing 2. Software RAID Disk Configuration
Якщо ви коли-небудь назвете дві групи томів однаковими іменами, і щось піде не так, можете теж зіткнутися з проблемою неможливості доступу до даних на диску, вийнятому з неробочого системного блоку. Створення конфліктуючих імен - досить нескладна операція.
Відновлення доступу до пристроїв, що був частиною RAID
Для вирішення проблеми перше що потрібно зробити, це помістити диск в іншу машину. Простий спосіб виконати цю операцію полягає в приміщенні диска в коробочку, переносний рек, який має інтерфейс USB. Це зменшить ризик пошкодження даних на комп'ютері-рятувальника. Диск повинен визначитися як SCSI пристрій, наприклад, / dev / sda. Подальше дослідження полягає у визначенні конфігурації RAID і отриманні доступу до того LVM2 всередині нього. Можна скористатися командою sfdisk -l / dev / sda, це допоможе визначити розділи. Для отримання конфігурації RAID будемо використовувати mdadm в режимі сканування, щоб визначити UUID-и пристроїв як показано в лістингу 3.
Listing 3. Scanning a Disk for RAID Array Members
Цей формат подібний до формату конфігураційного файлу /etc/mdadm.conf, який використовується утилітою mdadm. Нам потрібно перенаправити висновок сканування в файл, приєднавши рядки ARRAY, і все це поставити у відповідність іншому (неіснуючому) пристрою для передачі параметрів RAID 1. Якщо утиліта побачить масив на одному диску в деградированном стані, стане доступний режим відновлення.
Відредагуйте /etc/mdadm.conf таким чином, щоб статус пристроїв знаходився в тих же рядках, що і визначення ARRAY, як показано в лістингу 4. Додайте "missing" пристрою для заповнення вакансій масиву (по два пристрої на масив для створення простого дзеркала) . Не забудьте перенумерувати пристрої, якщо на комп'ютері-відновники вже є якісь md-пристрою і визначення для ARRAY.
Listing 4. /etc/mdadm.conf
Далі, активуйте нові пристрої md за допомогою команди mdadm -A -s, і перевірте / proc / mdstat. щоб бути впевненим, що пристрої активовані. Лістинг 5 показує, як повинен виглядати робочий масив.
Listing 5. Reactivating the RAID Array
Якщо пристрої md з'явилися в / proc / mdstat, можна зайнятися доступом до томів LVM.
Відновлення та перейменування томів LVM2
Далі система повинна побачити два набори дисків LVM2, згрупованих в VolGroup00. Зазвичай команда vgchange -a -y дозволяє розпізнати нову групу томів. Це не працює, якщо пристрої вже містять ідентичні імена груп. Утиліта відрапортує, що група VolGroup00 знаходиться в неконсістентном стані і RAID-и будуть не видно. Для виправлення цієї ситуації необхідно перейменувати групу томів, в ручну редагуючи файл конфігурації lvm.
Якщо ви маєте резервну копію всіх файлів / etc з комп'ютера, на якому раніше працював масив, можна відредагувати копію файлу / etc / lvm / backup / VolGroup00.
Знайдіть серед бінарного виведення текстові поля. LVM зберігає метадані в кільцевому буфері, тому можна зустріти множинне повторення одного і того ж. На моєму диску перший запис зберігає тільки відомості про фізичних томах і групах томів, а такий запис вже стосується логічних томів. Знайдіть записи з самої пізньої тимчасової міткою і відредагуйте все, крім блоку тексту, що містить декларацію LVM. Ця декларація містить інформацію про групи і логічних томах. Поправте дані про фізичних пристроях, якщо це необхідно, підглядаючи в / etc / lvm / backup / VolGroup00. На самому диску текстові записи не так добре форматовані і розташовані не в такому порядку, як в конфіги, але працюють також. Збережіть поправлену конфігурацію. Файл повинен виглядати як в лістингу 6.
Listing 6. Modified Volume Group Configuration File
Маючи конфігурацію, можна відновити інформацію в системі за допомогою vgcfgrestore, як показано в лістингу 7.
Listing 7. Activating the Recovered LVM2 Volume
На цьому етапі вже можна змонтувати старий тому на новій системі і отримати доступ до файлів всередині нього як в лістингу 8.
Listing 8. Mounting the Recovered Volume
Заключне дію: створити резервну копію конфігурації за допомогою vcfgbackup, Лістинг 9.
Listing 9. Backing Up Recovered Volume Group Configuration
LVM2 і Linux software RAID уможливлюють побудову недорогих рішень для зберігання даних на основі не спеціалізованих комплектуючих. Однак, деякі дії по відновленню таких масивів можуть бути неочевидними. Якби була утиліта, яка читала б конфігурацію зі службових областей диска, справа йшла б простіше. На щастя, розробники мали достатньо мудрості, щоб зберігати конфігурацію в службових областях диска у вигляді простого тексту на самому диску. З деяким терпінням в запасі можна відновити доступ до логічних томів, які в іншому випадку могли бути втрачені разом з усіма файлами на них.