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