Як відновити дані з BtrFS диска або RAID масиву: поради
Читайте, як відновити дані з програмного btrfs-RAID ОС Linux. Як його створити, замінити неробочий диск та відновити втрачену інформацію з пошкодженого масиву.
- Файлова система btrfs
- Створення точки монтування
- Як створити RAID5
- Як змонтувати RAID-диск
- Як замінити або додати накопичувач
- Як відновити пошкоджений том
- Відновлюємо дані з btrfs RAID5
- Особливості файлової системи btrfs
- Висновок
- Питання та відповіді
- Коментарі
Зазвичай, для створення RAID-масиву в ОС Linux використовують mdadm та lvm, докладніше про ці системи можна подивитися в одному з наших відео.
Крім цих інструментів, ще вбудована підтримка RAID є в файловій системі Btrfs. Вона використовує власні засоби для побудови та роботи з дисковими масивами. Давайте більш детально розглянемо всі її можливості.
Файлова система btrfs
Btrfs – це нова файлова система з підтримкою функції копіювання при записі (Copy on Write), з вбудованою підтримкою RAID. Суть цієї функції полягає у відсутності перезапису старих даних при копіюванні. Це величезний плюс, вона значно спрощує відновлення видалених файлів після збоїв.
Характеристика | Опис |
---|---|
Тип файлової системи | Копіювання при записі (COW) |
Підтримка знімків | Можливість створювати моментальні знімки даних (snapshots) для швидкого відновлення |
Підтримка RAID | Вбудована підтримка конфігурацій RAID (RAID 0, 1, 5, 6, 10) |
Стиснення даних | Підтримує прозоре стиснення даних для економії місця |
Цілісність даних | Перевірка цілісності даних за допомогою хешування та автоматичне відновлення |
Дефрагментація | Автоматична і ручна дефрагментація даних |
Розширюваність | Можливість динамічного розширення розмірів файлової системи без відключення |
Клонування файлів | Можливість швидкого клонування файлів без дублювання даних |
Система зберігає метадані окремо від даних файлової системи, і ви можете одночасно використовувати різні рівні RAID для цієї інформації, це головна її перевага. Також, метою цієї журнальованої системи є забезпечення більш ефективного управління сховищем та збільшеною безпекою цілісності даних в ОС Linux.
Перед початком використання btrfs, нам знадобитися довстановити необхідні інструменти управління файловою системою, виконавши наступну команду:
sudo apt install btrfs-tools
Створення точки монтування
І перш ніж зібрати RAID, необхідно створити каталог точки монтування.
Створюємо каталог:
Sudo mkdir –v /data
Де «data» – це його назва.
Тепер приступаємо до створення масиву.
Як створити RAID5
Створюючи масив, не потрібно в обов'язковому порядку розмічати носії на розділи, файлова система не вимагає цього. Об'єднувати накопичувачі в масив можна як цілі, так і окремі розділи, навіть об'єднувати носії з наявними розділами. Для прикладу я покажу як створити RAID 5 з п'яти накопичувачів.
Щоб постійно не вводити пароль root, виконайте команду sudo -i, після чого всі команди будуть виконуватися від імені адміністратора.
Для побудови масиву введіть в терміналі таку команду:
sudo mkfs.btrfs -L data -m raid5 -d raid5 -f /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
де:
- L - мітка або ім'я файлової системи.
Параметр:
d - встановлюємо тип RAID5 для даних.
m - встановлюємо тип RAID5 для метаданих.
f - служить для примусового створення btrfs, навіть якщо який-небудь з накопичувачів відформатований в інший файлові системі.
Тепер, можна монтувати використовуючи будь-який з накопичувачів який входить до складу.
Як змонтувати RAID-диск
Я використовував 5 накопичувачів для створення RAID: sdb, sdc, sdd, sde і sdf. Тому я можу змонтувати дані файлової системи в каталозі data за допомогою диска sdb. Відкриваємо Керування дисками та монтуємо наш носій, після чого він стане доступним.
Або ж можна змонтувати диск в терміналі.
sudo mount /dev/sdb1 /data
Щоб перевірити, введіть sudo df -h
sudo df -h
Як бачите, наш масив змонтований в каталог /data
А щоб подивитися інформацію про зайнятий та вільний простір масиву, вводимо:
sudo btrfs filesystem usage /data
А для розмонтування масиву достатньо ввести:
sudo umount /data
Як замінити або додати накопичувач
Для заміни накопичувача потрібно в терміналі ввести btrfs replace. Вона запускається асинхронно, тобто виконується поступово:
- start - для запуску;
- cancel - для зупинки;
- status - для перегляду стану.
Спочатку, потрібно визначити номер пошкодженого накопичувача:
sudo btrfs filesystem show
Потім, замінити його на новий:
btrfs replace start <пристрій, що видаляється або його ID> <додаємо пристрій> <шлях, куди змонтовано btrfs>
У моєму випадку вводимо:
btrfs replace start 3 /dev/sdg
де: 3 – це номер відсутнього диска, а sdg – код нового накопичувача.
Як відновити пошкоджений том
Для відновлення Btrfs-масиву, потрібно використовувати вбудовану опцію монтування - recovery:
sudo mount -o recovery /dev/sdb /mnt
Почнеться процес відновлення.
Відновлюємо дані з btrfs RAID5
Навіть найнадійніша і відмовостійка система маже вийти з ладу. Збій системи, вихід з ладу накопичувача, апаратної частини, пошкодження метаданих, випадкове видалення, неправильне налаштування - все це може спричинити вихід з ладу RAID та втрату важливих даних. Якщо ви зіткнулися з цим, то скористайтеся програмою Hetman RAID Recovery. Вона здатна відновити будь-яку інформацію з неробочих масивів або носіїв, які входили в масив. Утиліта відтворить зруйнований RAID, покроково вичитуючи всю відому інформацію, і ви зможете скопіювати всі знайдені дані.
Підключіть носії до ПК зі встановленою Windows. Скористайтеся віртуальною машиною, або встановіть її другою системою.
Програма автоматично просканує дисковий простір, та відобразить всю можливу інформацію про масив.
Як бачите, у нашому випадку з btrfs RAID програма не збирає носії в масив, це пов'язано зі специфікою його побудови. При цьому вся інформація зберігається відповідно до типу RAID.
Для початку процесу відновлення відкрийте менеджер дисків, клікніть правою кнопкою миші по будь-якому з дисків з яких складався масив та запустіть «Швидке сканування».
При скануванні кожного з дисків результат буде ідентичним, так як вони всі є частиною одного масиву.
Після завершення аналізу програма відобразить знайдені файли. Тут доступний їх попередній перегляд, за допомогою якого легше знайти потрібні зображення або відео.
Позначте файли, які потрібно повернути та натисніть «Відновити». Вкажіть шлях куди їх зберегти і ще раз «Відновити». В результаті, всі файли будуть лежати в зазначеній папці.
Якщо в результаті швидкого сканування програмі не вдалося знайти потрібних файлів, то виконайте «Повний аналіз». Даний тип аналізу займе більше часу, але при цьому знайде всю інформацію, яка залишилася на диску. Навіть ту, яка була давно видалена.
Так як це п'ятий RAID, то вся інформація залишається цілою при відсутності одного накопичувача. Але, якщо вийшли з ладу 2 диска, то частина інформації буде пошкоджена.
Особливості файлової системи btrfs
Btrfs підтримує стиснення даних. Тобто, вся наявна інформація на носіях буде автоматично стискатися. А при зверненні до даних, кожен конкретний файл буде автоматично розпакований.
Ця функція дозволяє значно економити простір на накопичувачах, а також час на пошуку стороннього ПО для стиснення даних. Файлова система підтримує 3 основні методи стиснення файлів - це zlib, lzo та zstd. Їх основна відмінність полягає в ступені, а також швидкості стиснення.
Наша програма підтримує відновлення стиснених файлів будь-яким з цих трьох методів. В інтерфейсі програми стислі томи та файли відображаються наступним чином (вони підсвічені іншим кольором).
Ще однією перевагою є створення підтомів (subvolum). Простими словами, на одному накопичувачі можна створити 3 різних диска (subvolum). Ці подтоми здатні саморозширюватися за рахунок вільного простору іншого тому. При необхідності, така можливість дозволяє розширити один диск за рахунок іншого, без стиснення та перенесення даних. Ці подтоми відображаються в програмі як диски всередині основного накопичувача.
Таким же чином в програмі відображені й папки з snap-shot.
Для створення підтомів використовуйте команду:
btrfs subvolume create /mnt/btrfs/my-subvolume
А для перегляду списку підтомів на цьому накопичувачі, виконайте:
btrfs subvolume list /mnt/btrfs
Для монтування підтому:
mount -o subvol=my-subvolume /dev/sdd2 /mnt/btrfs2
де sdb1 - це код диска.
Висновок
Існує невелика кількість інструментів для відновлення даних, які вміють читати btrfs-RAID. При виборі варто враховувати, що в процесі роботи інформація може затертися - тому зверніть увагу на наявність функції створення образу масиву та сканування з образу. І все ж, найкращим рішенням уберегти себе від втрати важливих даних буде їх регулярне резервне копіювання.
Перевірити, чи це так, можна за допомогою команди: # btrfs subvolume list -a /mountpoint
Щоб видалити підтом, вам потрібно буде виконати команду: # btrfs subvolume delete emptydir
По-перше, оновіть ядро до останньої доступної версії та повторіть спробу монтування. Якщо у вас є ядро у файловій системі btrfs, то вам доведеться знайти диск відновлення з останнім ядром.
По-друге, спробуйте монтувати з параметрами -o recovery або -o ro, або -o recovery,ro (використовуючи нове ядро). Один із них може успішно працювати.
Нарешті, коли в логах ядра є щось на кшталт цього,
? replay_one_dir_item+0xb5/0xb5 [btrfs]
? walk_log_tree+0x9c/0x19d [btrfs]
? btrfs_read_fs_root_no_radix+0x169/0x1a1 [btrfs]
? btrfs_recover_log_trees+0x195/0x29c [btrfs]
? replay_one_dir_item+0xb5/0xb5 [btrfs]
? btree_read_extent_buffer_pages+0x76/0xbc [btrfs]
? open_ctree+0xff6/0x132c [btrfs]
тоді вам слід спробувати використати btrfs rescure zero-log
Інструмент відновлення btrfs — це неруйнівний спосіб скидання даних на резервний диск, і він може відновити деякі або всі ваші дані, навіть якщо ми не можемо зберегти існуючу файлову систему.
У іншому випадку, скористайтеся Hetman Partition Recovery - програма підтримує відновлення даних з btrfs.