LINUX.ORG.RU

FreeBSD/zfs: исчезновение данных на 600+ GB

 ,


0

2

Как создавал xfs и устанавливал на нее систему:
делал все по этому мануалу.
Ставил все на один диск. затем, скопировал все свои документы (фотки 10летней давности, ролики, доки по работе) с временного диска на FreeBSD по самбе. Когда скопировал, диск обнулил дискдайпом и обратно вернул своему другу.
Достал второй диск и решил сделать зеркало. Для надежности.
ada1 - второй диск.
zpool labelclear /dev/ada1 (на всякий случай)
gpart create -s gpt ada1
gpart add -b 34 -s 94 -t freebsd-boot ada1
gpart add -t freebsd-zfs -l wd_old ada1
zpool attach zroot /dev/gpt/wd_7tys_ryb /dev/gpt/wd_old
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
ресильверинг прошел успешно.

Понадобилось выключить компьютер. вынуть видеокарту и оставить встроенную.
Когда включил, то не понял. по самбе никуда не могу попасть. полез в шелл - а в корневом каталоге документов полная пустота. документы лежали в /home/iron/1
сам домашний раздел похудел на ~620GB - это все, что было накоплено еще под Slackware с 2002 года. Filesystem Size Used Avail Capacity Mounted on
zroot 2.7T 380M 2.7T 0% /
devfs 1.0k 1.0k 0B 100% /dev
zroot/tmp 2.7T 176k 2.7T 0% /tmp
zroot/usr 2.7T 2.6G 2.7T 0% /usr
zroot/usr/home 2.7T 280M 2.7T 0% /usr/home
zroot/usr/ports 2.7T 1.4G 2.7T 0% /usr/ports
zroot/usr/ports/distfiles 2.7T 787M 2.7T 0% /usr/ports/distfiles
zroot/usr/ports/packages 2.7T 144k 2.7T 0% /usr/ports/packages
zroot/usr/src 2.7T 509M 2.7T 0% /usr/src
zroot/var 2.7T 1M 2.7T 0% /var
zroot/var/crash 2.7T 148k 2.7T 0% /var/crash
zroot/var/db 2.7T 157M 2.7T 0% /var/db
zroot/var/db/pkg 2.7T 14M 2.7T 0% /var/db/pkg
zroot/var/empty 2.7T 144k 2.7T 0% /var/empty
zroot/var/log 2.7T 296k 2.7T 0% /var/log
zroot/var/mail 2.7T 148k 2.7T 0% /var/mail
zroot/var/run 2.7T 380k 2.7T 0% /var/run
zroot/var/tmp 2.7T 152k 2.7T 0% /var/tmp

iron:[~]$zpool status -v
pool: zroot
state: ONLINE
scan: resilvered 665G in 1h47m with 0 errors on Sat Aug 31
10:31:13 2013
config:

NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
gpt/wd_7tys_ryb ONLINE 0 0 0
gpt/wd_old ONLINE 0 0 0

errors: No known data errors

Люди. Это же неубиваемая файловая система. лет 15 жил под другими фс, но что я сделал не так?
Есть ли возможность как-то все вернуть?



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

Ответ на: комментарий от iZEN

Исходный диск куплен позавчера. wd 3000pyyz.
диск, который присоединялся, две недели назад гонялся викторией, на предмет, менять не менять (есть ли медленные сектора). там все ок.
zpool status ошибок не выдает.

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

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

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

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

в этом нет смысла, потому что эта фс считается надежной и убить ее можно, если только очень постараться.
только как я ее убил два раза подряд - хз.
В первый раз, с год назад, всю половину года вообще не делал каких либо телодвижений с фс. И перезагружал ось и два диска тогда были в зеркале и снимки были, ан нет.

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

Пусть я уг полное, но, лично для себя, этой фс жесткое нет - это уж точно.
Уж лучше убиваемые ext4, да ext3 и другие. Свои глаза вернее, чем миллионы чужих.

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

все смонтировано

Этот вывод ничего не говорит про то, смонтировано или нет.

Покажи вывод zfs get -r mounted zroot

anonymous
()
Ответ на: комментарий от anonymous
zfs get -r mounted zroot
NAME                       PROPERTY  VALUE    SOURCE
zroot                      mounted   yes      -
zroot/swap                 mounted   -        -
zroot/tmp                  mounted   yes      -
zroot/usr                  mounted   yes      -
zroot/usr/home             mounted   yes      -
zroot/usr/ports            mounted   yes      -
zroot/usr/ports/distfiles  mounted   yes      -
zroot/usr/ports/packages   mounted   yes      -
zroot/usr/src              mounted   yes      -
zroot/var                  mounted   yes      -
zroot/var/crash            mounted   yes      -
zroot/var/db               mounted   yes      -
zroot/var/db/pkg           mounted   yes      -
zroot/var/empty            mounted   yes      -
zroot/var/log              mounted   yes      -
zroot/var/mail             mounted   yes      -
zroot/var/run              mounted   yes      -
zroot/var/tmp              mounted   yes      -
Karharot
() автор топика

Говоришь, документы лежали в /home/iron/1 ? У тебя ни одной файловой системы ZFS с такой точкой монтирования нет. Ты уверен, что свои данные в файлов уж систему на этом пуле копировал?

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

Да, все смонтировано, однако. Вывод zpool status подтверждает, что на момент окончания синхронизации в пуле было 655 GB данных, сейчас же явно столько нет. Чего говорит 'zpool history -il'?

anonymous
()
Ответ на: комментарий от anonymous
2013-08-31.01:03:37 zpool create -o altroot=/mnt -o cachefile=/var/tmp/zpool.cache zroot /dev/gpt/wd_7tys_ryb.nop [user root on :global]
2013-08-31.01:03:37 [internal pool create txg:5] pool spa 28; zfs spa 28; zpl 5; uts  9.1-RELEASE 901000 amd64 [user root on ]
2013-08-31.01:03:37 [internal property set txg:5] mountpoint=/ dataset = 21 [user root on ]
2013-08-31.01:03:48 zpool export zroot [user root on :global]
2013-08-31.01:04:24 [internal pool import txg:15] pool spa 28; zfs spa 28; zpl 5; uts  9.1-RELEASE 901000 amd64 [user root on ]
2013-08-31.01:04:24 zpool import -o altroot=/mnt -o cachefile=/var/tmp/zpool.cache zroot [user root on :global]
2013-08-31.01:04:38 [internal pool property set txg:18] bootfs 21 zroot [user root on ]
2013-08-31.01:04:40 zpool set bootfs=zroot zroot [user root on :global]
2013-08-31.01:04:40 [internal property set txg:19] checksum=7 dataset = 21 [user root on ]
2013-08-31.01:04:45 zfs set checksum=fletcher4 zroot [user root on :global]
2013-08-31.01:04:55 [internal create txg:23] dataset = 38 [user root on ]
2013-08-31.01:04:55 zfs create zroot/usr [user root on :global]
2013-08-31.01:04:55 [internal create txg:24] dataset = 45 [user root on ]
2013-08-31.01:04:55 zfs create zroot/usr/home [user root on :global]
2013-08-31.01:04:55 [internal create txg:25] dataset = 52 [user root on ]
2013-08-31.01:04:55 zfs create zroot/var [user root on :global]
2013-08-31.01:04:55 [internal create txg:26] dataset = 59 [user root on ]
2013-08-31.01:04:55 [internal property set txg:27] compression=1 dataset = 59 [user root on ]
2013-08-31.01:04:55 [internal property set txg:27] exec=1 dataset = 59 [user root on ]
2013-08-31.01:04:55 [internal property set txg:27] setuid=0 dataset = 59 [user root on ]
2013-08-31.01:04:55 zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp [user root on :global]
2013-08-31.01:04:55 [internal create txg:28] dataset = 66 [user root on ]
2013-08-31.01:04:55 [internal property set txg:29] compression=3 dataset = 66 [user root on ]
2013-08-31.01:04:55 [internal property set txg:29] setuid=0 dataset = 66 [user root on ]
2013-08-31.01:04:56 zfs create -o compression=lzjb -o setuid=off zroot/usr/ports [user root on :global]
2013-08-31.01:04:56 [internal create txg:30] dataset = 73 [user root on ]
2013-08-31.01:04:56 [internal property set txg:31] compression=2 dataset = 73 [user root on ]
2013-08-31.01:04:56 [internal property set txg:31] exec=0 dataset = 73 [user root on ]
2013-08-31.01:04:56 [internal property set txg:31] setuid=0 dataset = 73 [user root on ]
2013-08-31.01:04:56 zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/distfiles [user root on :global]
2013-08-31.01:04:56 [internal create txg:32] dataset = 80 [user root on ]
2013-08-31.01:04:56 [internal property set txg:33] compression=2 dataset = 80 [user root on ]
2013-08-31.01:04:56 [internal property set txg:33] exec=0 dataset = 80 [user root on ]
2013-08-31.01:04:56 [internal property set txg:33] setuid=0 dataset = 80 [user root on ]
2013-08-31.01:04:56 zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/packages [user root on :global]
2013-08-31.01:04:56 [internal create txg:34] dataset = 87 [user root on ]
2013-08-31.01:04:56 [internal property set txg:35] compression=3 dataset = 87 [user root on ]
2013-08-31.01:04:56 [internal property set txg:35] exec=0 dataset = 87 [user root on ]
2013-08-31.01:04:56 [internal property set txg:35] setuid=0 dataset = 87 [user root on ]
2013-08-31.01:04:56 zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/usr/src [user root on :global]
2013-08-31.01:04:56 [internal create txg:36] dataset = 94 [user root on ]
2013-08-31.01:04:56 [internal property set txg:37] compression=3 dataset = 94 [user root on ]
2013-08-31.01:04:56 [internal property set txg:37] exec=0 dataset = 94 [user root on ]
2013-08-31.01:04:56 [internal property set txg:37] setuid=0 dataset = 94 [user root on ]
Karharot
() автор топика
Ответ на: комментарий от Karharot
2013-08-31.01:04:56 zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/crash [user root on :global]
2013-08-31.01:04:56 [internal create txg:38] dataset = 101 [user root on ]
2013-08-31.01:04:56 [internal property set txg:39] exec=0 dataset = 101 [user root on ]
2013-08-31.01:04:56 [internal property set txg:39] setuid=0 dataset = 101 [user root on ]
2013-08-31.01:04:57 zfs create -o exec=off -o setuid=off zroot/var/db [user root on :global]
2013-08-31.01:04:57 [internal create txg:40] dataset = 108 [user root on ]
2013-08-31.01:04:57 [internal property set txg:41] compression=3 dataset = 108 [user root on ]
2013-08-31.01:04:57 [internal property set txg:41] exec=1 dataset = 108 [user root on ]
2013-08-31.01:04:57 [internal property set txg:41] setuid=0 dataset = 108 [user root on ]
2013-08-31.01:04:57 zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/var/db/pkg [user root on :global]
2013-08-31.01:04:57 [internal create txg:42] dataset = 115 [user root on ]
2013-08-31.01:04:57 [internal property set txg:43] exec=0 dataset = 115 [user root on ]
2013-08-31.01:04:57 [internal property set txg:43] setuid=0 dataset = 115 [user root on ]
2013-08-31.01:04:57 zfs create -o exec=off -o setuid=off zroot/var/empty [user root on :global]
2013-08-31.01:04:57 [internal create txg:44] dataset = 122 [user root on ]
2013-08-31.01:04:57 [internal property set txg:45] compression=3 dataset = 122 [user root on ]
2013-08-31.01:04:57 [internal property set txg:45] exec=0 dataset = 122 [user root on ]
2013-08-31.01:04:57 [internal property set txg:45] setuid=0 dataset = 122 [user root on ]
2013-08-31.01:04:57 zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/log [user root on :global]
2013-08-31.01:04:57 [internal create txg:46] dataset = 129 [user root on ]
2013-08-31.01:04:57 [internal property set txg:47] compression=10 dataset = 129 [user root on ]
2013-08-31.01:04:57 [internal property set txg:47] exec=0 dataset = 129 [user root on ]
2013-08-31.01:04:57 [internal property set txg:47] setuid=0 dataset = 129 [user root on ]
2013-08-31.01:04:57 zfs create -o compression=gzip -o exec=off -o setuid=off zroot/var/mail [user root on :global]
2013-08-31.01:04:57 [internal create txg:48] dataset = 136 [user root on ]
2013-08-31.01:04:57 [internal property set txg:49] exec=0 dataset = 136 [user root on ]
2013-08-31.01:04:57 [internal property set txg:49] setuid=0 dataset = 136 [user root on ]
2013-08-31.01:04:58 zfs create -o exec=off -o setuid=off zroot/var/run [user root on :global]
2013-08-31.01:04:58 [internal create txg:51] dataset = 143 [user root on ]
2013-08-31.01:04:58 [internal property set txg:52] compression=3 dataset = 143 [user root on ]
2013-08-31.01:04:58 [internal property set txg:52] exec=1 dataset = 143 [user root on ]
2013-08-31.01:04:58 [internal property set txg:52] setuid=0 dataset = 143 [user root on ]
2013-08-31.01:05:03 zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/var/tmp [user root on :global]
2013-08-31.01:05:16 [internal create txg:56] dataset = 150 [user root on ]
2013-08-31.01:05:16 [internal property set txg:57] refreservation=4430495744 dataset = 150 [user root on ]
2013-08-31.01:05:16 [internal refreservation set txg:57] 4430495744 dataset = 150 [user root on ]
2013-08-31.01:05:16 zfs create -V 4G zroot/swap [user root on :global]
2013-08-31.01:05:16 [internal property set txg:58] org.freebsd:swap=on dataset = 150 [user root on ]
2013-08-31.01:05:17 zfs set org.freebsd:swap=on zroot/swap [user root on :global]
2013-08-31.01:05:17 [internal property set txg:59] checksum=2 dataset = 150 [user root on ]
2013-08-31.01:05:22 zfs set checksum=off zroot/swap [user root on :global]
2013-08-31.08:43:45 [internal pool scrub txg:8962] func=2 mintxg=3 maxtxg=8962 [user root on nia.local]
2013-08-31.08:43:55 [internal vdev attach txg:8964] attach vdev=/dev/gpt/wd_old to vdev=/dev/gpt/wd_7tys_ryb [user root on nia.local]
2013-08-31.08:43:55 zpool attach zroot /dev/gpt/wd_7tys_ryb /dev/gpt/wd_old [user root on nia.local:global]
2013-08-31.10:31:13 [internal pool scrub done txg:9966] complete=1 [user root on nia.local]
2013-08-31.22:19:28 [internal pool import txg:15393] pool spa 28; zfs spa 28; zpl 5; uts  9.1-RELEASE 901000 amd64 [user root on ]
2013-08-31.22:19:28 zpool import -f -o altroot=/mnt zroot [user root on :global]
2013-08-31.18:45:45 [internal pool scrub txg:15606] func=1 mintxg=0 maxtxg=15606 [user root on nia.local]
2013-08-31.18:45:52 zpool scrub zroot [user root on nia.local:global]
2013-08-31.18:49:22 [internal pool scrub done txg:15641] complete=1 [user root on nia.local]
Karharot
() автор топика
Ответ на: комментарий от Karharot

Ничего подозрительного. Никаких тебе zfs destroy.

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

А как вёл себя SWAP? Рос во время копирования?

13 GB wired. активной около гига. всего 16 GB - 128 для видюхи.

Какие оптимизации ZFS были использованы?

Все как здесь: http://sysalex.com/2012/03/root-on-zfs-freebsd-9-4k-optimized/

Не до самодеятельности было.

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

Говоришь, документы лежали в /home/iron/1 ? У тебя ни одной файловой системы ZFS с такой точкой монтирования нет. Ты уверен, что свои данные в файлов уж систему на этом пуле копировал?

Для корня ценных данных нужно обязательно делать отдельный пул?

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

Размер использованного пространства примерно совпадает с данными zfs list, и никакого намека на 655 GB на момент окончания синхронизации.

А что за диски у тебя? Какие-нибудь с сектором по 4К?

zdb -luc /путь/к/диску что показывает?

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

Не обязательно. Просто у меня были сомнения, что данные вообще были когда-либо скопированы в этот пул, но потом я заметил размер синхронизированных данных и этот вопрос отпал.

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

А если использовать имена дисков как в выводе 'zpool status'?

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

История показывает, как создаётся новый пул и добавляется в него vdev для зеркала. Вывести из неё потерю данных нельзя.

А связи с чем была дана команда:

2013-08-31.22:19:28 zpool import -f -o altroot=/mnt zroot [user root on :global]
???

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

Хм, там в истории еще странность есть - отсеки времени идут так: 10:31, 22:19, 18:45.

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

И что? Ada0 это диск целиком, а на нем должен быть еще раздел.

У тебя последний Solaris 11u1 на этой тачке взлетит? Если взлетит (достаточно загрузиться с LiveCD) и сможешь дать доступ удаленный, можно будет посмотреть попристальнее. Только LiveCD качай на другой тачке, а эту просто принудительно выключи без шатдауна.

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

Ключ "-f" в zpool import — это безусловное монтирование пула. Х.з. что там с его консистенцией может быть.

Для обычного монтирования пула в другую точку монтирования нужно использовать команду:

zpool import -R /mnt zroot

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

Сходил за тем внешним usb, де раньше были данные. они сидели под ntfs. dmde, то же, ничего не нашел. фигли. когда отдавал, обнулил его макосексом. dd if=/dev/zero of=/dev/disk4. Собственно, без ничего))))) жизнь с начала)) мда.
хорошо, самые ценные доки сохранил. семейные фотки, планы всякие.
все записи по никсам, за 10 лет, все ушло на тот свет. их мегабайт 5, но очень жаль. а те 600 GB - фильмы, да кино с Iron Maiden. накачать всегда можно. ну и по макосексу всякие программки, которые уже нигде не обсуждаются. скриптики и просто мелкие утилитки. штук 50.
чего я рассказываю.. FreeBSD/zfs, видать, не сильно гостеприимна к таким, как я. сам винвоат. лень, да наглость спрашивать тупые вопросы и на халяву все делать, читая блоги. Читать, типа, слишком на гора.

Karharot
() автор топика

Еще вопрос: а ты перед тем, как подключать второй диск в зеркало, завернул его в gnop c размером блока в 4К?

ZZ
()
Ответ на: комментарий от ZZ
zdb -luc /usr/home/
--------------------------------------------
LABEL 0
--------------------------------------------
failed to read label 0
--------------------------------------------
LABEL 1
--------------------------------------------
failed to read label 1
--------------------------------------------
LABEL 2
--------------------------------------------
failed to read label 2
--------------------------------------------
LABEL 3
--------------------------------------------
failed to read label 3
Karharot
() автор топика
Ответ на: комментарий от Karharot

Ну выходит не так страшна потеря. Хотя неприятно, чего там говорить.

Как насчет попробовать воспроизвести эту ситуацию? Если воспроизведется, то точно нужно будет баг открыть. По хорошему, даже и без воспроизведения баг открыть нужно и все шаги подробно описать. По следам, так сказать, этого топика.

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

И ещё не забыть приложить историю оболочки командной строки. ;)

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

Не, опять не то. У тебя на диске, похоже, два раздела - freebsd-boot и freebsd-zfs. Вот нужно на тот, который freebsd-zfs и напустить zdb.

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

Остается ждать письма подтверждения от sun, что бы зарегиться и скачать их дистрибутив.

воспроизвести можно, но для этого прийдется делать все, как в прошлый раз. nfsv4 acl права выдавать всем каталогам в доках. позикс права были 1700. acl - юзер и транзмишн. последний имел доступ в несколько каталогов. вдруг что из-за него, или еще из-за чего.
Просто воспроизводить ситуацию6 что бы ее воспроизводить - не то. очень подробно все нужно делать.
За выходные не уложусь уж точно, тем более сейчас перед работой нужно будет танцевать в поисках некоторых утерянных файлов. некоторые вещи все же сохранены не были, а работаю я вендо-эникейщиком, хотя и не стыжусь этого. все довольны. На никсы, сами понимаете, тупо не тяну. в сторону патетику.
А сколько обычно идет письмо от sun? При регистрации.

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

Cудя по истории версия пула в данном случае 28. Так что все норм. Когда включаются feature flags - версия увеличиваются до 5000, насколько я помню

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

Да я не силен в фрибсд. Солярис/Иллюмос как-то привычнее.

Судя по полным меткам, смысла качать их уже нет, так как убер блоков всего 32 штуки (из-за сектора 4К), и совсем старых уже и не осталось.

Так что остается только попробовать воспроизвести.

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