mdadm 上的 ext4 正在恢复数据

mdadm 上的 ext4 正在恢复数据

我的家庭服务器设置有问题。问题是,有时(但非常罕见)它会将我的所有数据恢复(找不到更好的词)到较早的状态(几个月或几周前)。

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

/proc/mdstat告诉我阵列运行正常,smartclt -H /dev/sdX表示所有设备均已通过。我尝试在日志中查找一些内容,但没有发现任何可疑之处。

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

错误的性质让我困惑。由于 ext 不是写时复制文件系统,我本以为这样的事情不可能发生。如果您能想到我可以运行的任何诊断程序,请不要犹豫。

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

- 编辑 -

好的,我找到了错误:问题与 ext4 无关。问题在于我安装设备的方式。

我有用于存储数据的 raid 5 和带有备份的 raid 0。但我在启动时安装它的方式并不是 100% 稳定;有时备份会作为主设备安装。

/etc/fstab

# main RAID array
/dev/md126p1 /media/Main        ext4    defaults        0       0

/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

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

- 编辑 -

/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

/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

答案1

最好的方法是使用 UUID 进行挂载,在您的fstab

UUID=c2ccbd00:ce414404:0ee05911:eebe2832 /media/Main ext4 defaults 0 0
UUID=b4973c41:e735e1c0:29e8be4b:4fe7c007 /media/Backup ext4 defaults 0 0

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

tune2fs -L RAIDMain /dev/disk/by-uuid/c2ccbd00:ce414404:0ee05911:eebe2832
tune2fs -L RAIDBackup /dev/disk/by-uuid/b4973c41:e735e1c0:29e8be4b:4fe7c007

然后在你的fstab

LABEL=RAIDMain /media/Main ext4 defaults 0 0
LABEL=RAIDBackup /media/Backup ext4 defaults 0 0

答案2

正如我在对 OP 的评论中所说,您需要做的就是使用文件中声明的路径/etc/mdadm.conf。您可以使用唯一唯一标识符或者标签, 作为@Stefan Seidel提到过,但实际上并不是必要的。

示例 /etc/mdadm.conf

ARRAY   /dev/md0  level=raid1  num-devices=2  UUID=37d3cabc:42393031:23c133e6:3b879f08
ARRAY   /dev/md1  level=raid5  num-devices=3  UUID=47d4cabd:42393031:23c133e6:3b879f99
MAILADDR root@krycek,root@byers,root@frohike

示例 /etc/fstab

/dev/md0      /export/raid1           ext3    defaults        1 2
/dev/md1      /export/raid2           ext4    defaults        1 2

相关内容