mdadm 上的 ext4 恢复数据

Jus*_*wer 5 ext4 mdadm

我的家庭服务器设置有问题。问题是,有时,但实际上很少,它会将我的所有数据(由于缺乏更好的术语)恢复到较早的状态(几个月到几周之间的某个时间)。

设置是软件 RAID 5 上的 4TB ext4,3 个磁盘在 Ubuntu 12.04 (linux 3.2) 上运行。Samba 提供该分区的文件。

/proc/mdstat告诉我阵列是健康的smartclt -H /dev/sdX,所有设备都说 PASSED。我试图在日志中找到一些东西,但我找不到任何可疑的东西。

上次发生错误时,我在使用剪切机上的文件时重新启动了服务器,但fsck没有发现任何错误。

错误的性质让我感到困惑。由于 ext 不是写文件系统上的副本,我会假设这样的事情是不可能的。如果您能想到我可以运行的任何诊断程序,请不要犹豫。

我想问题是我的数据发生了什么,我该如何阻止它再次发生?

- 编辑 -

好的,我发现了错误:问题与 ext4 无关。问题是我安装设备的方式。

我有用于我的数据的 raid 5 和带有备份的 raid 0。但是我在启动时安装它的方式并不是 100% 稳定的。有时备份被挂载为主。

来自/etc/fstab

# main RAID array
/dev/md126p1 /media/Main        ext4    defaults        0       0
Run Code Online (Sandbox Code Playgroud)

来自/etc/mdadm/mdadm.conf

# definitions of existing MD arrays
ARRAY /dev/md/Main metadata=1.2 UUID=c2ccbd00:ce414404:0ee05911:eebe2832
ARRAY /dev/md/Backup metadata=1.2 UUID=b4973c41:e735e1c0:29e8be4b:4fe7c007 name=:Backup
Run Code Online (Sandbox Code Playgroud)

谁能回答我这个小问题,谁就会得到赏金:以有保证的稳定方式安装备份和主要的最佳方法是什么。

- 编辑 -

/dev/md/备份:

    Version : 1.2
Creation Time : Sun Jun 19 15:45:35 2011
 Raid Level : raid0
 Array Size : 3907021824 (3726.03 GiB 4000.79 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Sun Jun 19 15:45:35 2011
      State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

 Chunk Size : 512K

       Name : :Backup
       UUID : b4973c41:e735e1c0:29e8be4b:4fe7c007
     Events : 0

 Number   Major   Minor   RaidDevice State
   0       8       33        0      active sync   /dev/sdc1
   1       8       81        1      active sync   /dev/sdf1
Run Code Online (Sandbox Code Playgroud)

/dev/md/主要:

    Version : 1.2
Creation Time : Sun Jun 12 02:13:25 2011
 Raid Level : raid5
 Array Size : 3907021568 (3726.03 GiB 4000.79 GB)
Used Dev Size : 1953510784 (1863.01 GiB 2000.40 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Mon Jan 28 19:00:45 2013
      State : active
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0

     Layout : left-symmetric
 Chunk Size : 128K

       Name : :Neue RAID-Anordnung
       UUID : c2ccbd00:ce414404:0ee05911:eebe2832
     Events : 17846

 Number   Major   Minor   RaidDevice State
   0       8       49        0      active sync   /dev/sdd1
   1       8        1        1      active sync   /dev/sda1
   3       8       65        2      active sync   /dev/sde1
Run Code Online (Sandbox Code Playgroud)

Ste*_*del 3

最好的方法是使用 UUID 进行安装,在您的fstab

UUID=c2ccbd00:ce414404:0ee05911:eebe2832 /media/Main ext4 defaults 0 0
UUID=b4973c41:e735e1c0:29e8be4b:4fe7c007 /media/Backup ext4 defaults 0 0
Run Code Online (Sandbox Code Playgroud)

正如@Floyd 所指出的,使用标签也很好,因为如果您需要更改内容,您可以创建具有相同数据和相同标签的新设备。所以你可以做

tune2fs -L RAIDMain /dev/disk/by-uuid/c2ccbd00:ce414404:0ee05911:eebe2832
tune2fs -L RAIDBackup /dev/disk/by-uuid/b4973c41:e735e1c0:29e8be4b:4fe7c007
Run Code Online (Sandbox Code Playgroud)

然后在你的fstab

LABEL=RAIDMain /media/Main ext4 defaults 0 0
LABEL=RAIDBackup /media/Backup ext4 defaults 0 0
Run Code Online (Sandbox Code Playgroud)