LINUX.ORG.RU

Восстановление данных на ZFS

 , ,


3

4

Вечер добрый, господа. Вопрос для знающих ZFS. Роллбекнул снимок и, твою мать, не обратил внимание что он 3 месячной давности. У меня на ноуте был проект, который дохера+ важен. Есть идеи как отменить снапшот?

Из бэкапа.

anonymous
()

Я не знаю, можно ли восстановить - удаляет ли zfs новые данные после роллбека или только ссылку на них. Но если не перестанешь пользоваться диском как можно скорее то точно нельзя будет.

Штатных средств точно нет. Если и можно - то пиши свой парсер zfs.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)

зайти в лайв и сделать send/receive корневой системы рекурсивно из того снапшота, который нужен, не?

Clockwork ★★★★★
()
Последнее исправление: Clockwork (всего исправлений: 1)

Для начала — не используйте пул + сделайте посекторные снимки накопителей (с livecd) и работайте дальше с копиями этих снимков.

Дальше — подумайте и посмотрите внимательней, может у Вас где-то бэкап проекта хранится :) Может, что-то куда-то пушили, посылали по почте, копировали. Может, есть другой снимок с нужными данными.

Дальше — рассуждаем логически. Если данные не перезаписаны, то их можно вытащить (правда, они могут быть размазаными по накопителям в неочевидном порядке). Если перезаписаны — то сложность и стоимость восстановления сильно увеличивается, а шансы успешного восстановления снижаются. Для простоты давайте считать, что они ещё не успели перезаписаться.

Итак, что у нас есть?

Софт:

  • Есть zdb (спасибо, @iZEN). По запросу «zdb restore data» гуглятся разные материалы. Один человек даже видео снял.
  • Есть спец. софт для восстановления
  • может быть, что-то удастся найти при поиске по сырым данным
  • может, есть ещё утилиты.

Специалисты:

  • Например, на странице https://www.klennet.com/zfs-recovery/ есть какая-то почта (см. «Remote assistance with recoveries»).
  • есть народ на профильных форумах (например, https://www.truenas.com/community)
  • может быть, среди специалистов/компаний по восстановлению данных есть те, которые умеют восстанавливать ZFS
  • в конце концов, есть ребята, которые делают NASы (https://www.truenas.com, https://www.ixsystems.com/), которые пилят ZFS on Linux, есть мейнтейнеры FreeBSD и т.д. Не уверен, что до них так просто достучаться и что они не захотят за работу очень много денег, но они по крайней мере существуют :)
Harliff ★★★★★
()
Последнее исправление: Harliff (всего исправлений: 1)

с помощью zdb найти список txg и всё тем же zdb откатывать взад транзакции до достижения желаемого эффекта.

anonymous
()

Никак. Это ZFS, детка. Да, я тоже проходил через это.

sparkie ★★★★
()
Ответ на: комментарий от sparkie

CoW ФС не пишут в то место, которое недавно было стёрто. Только если места не хватает, оно начинает отъедать куски стёртого.

iZEN ★★★★★
()
Ответ на: комментарий от anonymous

и как в транзакциях фиксируется откат до снапшота?

Minona ★★☆
()

проект, который дохера+ важен

Но бекапов нет, ага…

picard_facepalm.jpg

ololoid ★★★★
()
Ответ на: комментарий от Minona

наверное, где-то там?

# zdb -he u00

History:
2021-09-21.15:10:25 zpool create u00 c1d2
2021-09-21.15:10:25 [internal pool create txg:6] pool spa 47; zfs spa 47; zpl 6; uts test-kz 5.11 11.4.37.101.1 sun4v
2021-09-21.15:10:25 [internal property set txg:6] $share2=3 dataset = 17
2021-09-21.15:10:25 [internal create txg:7] dataset = 32
2021-09-21.15:10:26 [internal property set txg:8] compression=15 dataset = 32
2021-09-21.15:10:26 [internal property set txg:8] mountpoint=/u00/app dataset = 32
2021-09-21.15:10:26 zfs create -o compression=lz4 -o mountpoint=/u00/app u00/app
2021-09-21.15:10:26 [internal property set txg:9] $share2=3 dataset = 32
2021-09-21.15:10:26 [internal create txg:10] dataset = 37
2021-09-21.15:10:27 [internal property set txg:11] compression=15 dataset = 37
2021-09-21.15:10:27 [internal property set txg:11] mountpoint=/u00/oasm dataset = 37
2021-09-21.15:10:27 zfs create -o compression=lz4 -o mountpoint=/u00/oasm u00/oasm
2021-09-21.15:10:27 [internal property set txg:12] $share2=3 dataset = 37
2021-09-29.14:38:29 [internal pool load txg:32975] pool load u00; active ub txg=32974 ts=1632391011 hostid=Ox640fc21b
2021-10-03.20:07:37 [internal pool scrub done txg:106045] complete=0 logs=0 metas=0
2021-10-03.20:07:37 [internal pool scrub txg:106045] func=1 mintxg=0 maxtxg=106045 logs=0 metas=0
2021-10-03.20:07:37 [internal pool property set txg:106046] lastscrub 1633280857 u00
2021-10-03.20:07:37 [internal pool scrub done txg:106046] complete=1 logs=0 metas=0
... skip ...
2021-11-16.17:28:25 [internal pool load txg:479835] pool load u00; active ub txg=479834 ts=1636445523 hostid=Ox640fc21b
2021-11-22.11:41:11 [internal pool load txg:579335] pool load u00; active ub txg=579334 ts=1637573979 hostid=Ox640fc21b
2021-12-08.10:10:57 [internal pool load txg:579338] pool load u00; active ub txg=579337 ts=1637574073 hostid=Ox640fc21b
2021-12-08.10:12:49 [internal pool scrub done txg:579363] complete=0 logs=0 metas=0
2021-12-08.10:12:49 [internal pool scrub txg:579363] func=1 mintxg=0 maxtxg=579363 logs=0 metas=0
2021-12-08.10:12:49 [internal pool property set txg:579364] lastscrub 1638951169 u00
2021-12-08.10:12:49 [internal pool scrub done txg:579364] complete=1 logs=0 metas=0
2022-01-13.21:06:44 [internal pool load txg:579365] pool load u00; active ub txg=579364 ts=1638951169 hostid=Ox640fc21b
2022-01-13.21:08:31 [internal pool scrub done txg:579389] complete=0 logs=0 metas=0
2022-01-13.21:08:31 [internal pool scrub txg:579389] func=1 mintxg=0 maxtxg=579389 logs=0 metas=0
2022-01-13.21:08:31 [internal pool property set txg:579390] lastscrub 1642100911 u00
2022-01-13.21:08:31 [internal pool scrub done txg:579390] complete=1 logs=0 metas=0
2022-01-14.09:36:01 [internal snapshot txg:588360] dataset = 44
2022-01-14.09:36:06 zfs snap u00/oasm@rollback
2022-01-14.09:37:44 [internal create txg:588381] dataset = 50
2022-01-14.09:37:44 [internal destroy_begin_sync txg:588383] dataset = 50 u00/oasm/%rollback
2022-01-14.09:37:45 [internal destroy txg:588385] dataset = 50
2022-01-14.09:37:50 zfs rollback u00/oasm@rollback
2022-01-14.09:39:48 zpool export u00
anonymous
()
Ответ на: комментарий от anonymous

Ок.
И какой номер указать в команде zpool import, чтобы пул оказался в состоянии перед zfs rollback?
А то по твоему логу непонятно какая транзакция сделала rollback.

Minona ★★☆
()
Ответ на: комментарий от Minona

а по твоим комментам не понятно какого вообще хера ты лезешь с умным видом в темы про зфс и сторадж

anonymous
()
Ответ на: комментарий от anonymous

Я знаю достаточно чтобы её юзать.
Выковыривать данные мне ещё не приходилось.

А ты вместо наездов с умным видом. Ответил бы на вопрос.
Не можешь обьяснить подробно что, где и как - сам в теме плаваешь.

Minona ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.