web-dev-qa-db-ja.com

データを元に戻すmdadmのext4

ホームサーバーのセットアップに問題があります。問題は、(より適切な用語がないために)すべてのデータが以前の状態(数か月から数週間前のどこか)に戻ることがありますが、実際にはまれです。

セットアップは、Ubuntu 12.04(Linux 3.2)で実行されている3つのディスクを備えたソフトウェアRAID5上の4TBext4です。 Sambaはそのパーティションのファイルを提供します。

/proc/mdstatは、アレイが正常であることを示していますsmartclt -H /dev/sdXは、すべてのデバイスでPASSEDを示しています。ログで何かを見つけようとしましたが、疑わしいものは見つかりませんでした。

前回エラーが発生したとき、シャーでファイルを使用しているときにサーバーを再起動しましたが、fsckはエラーを検出しませんでした。

エラーの性質は私を困惑させます。 extは書き込みファイルシステム上のコピーではないので、このようなことは不可能だと思いました。私が実行できる診断について考えていただければ、遠慮なくどうぞ。

問題は、データに何が起こったのか、そしてどうすればそれが再び起こらないようにするのかということだと思います。

-編集-

OK私はエラーを見つけました:問題はext4とは何の関係もありませんでした。問題は、デバイスの取り付け方法でした。

データ用のRAID5とバックアップ付きのRAID0があります。しかし、起動時にこれをマウントする方法は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/Backup:

    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/Main:

    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
5

最良の方法は、fstabでUUIDを使用してマウントすることです。

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
3
Stefan Seidel

OPへのコメントで述べたように、必要なのは/etc/mdadm.confファイルで宣言されたパスを使用することだけです。 [〜#〜] uuid [〜#〜]または[〜#〜] label [を使用できます〜#〜]@ 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
1
slm