web-dev-qa-db-ja.com

LinuxソフトウェアRAID 1-1つのディスクで障害が発生すると、ルートファイルシステムが読み取り専用になる

LinuxソフトウェアRAID 1が読み取り専用モードにロックされる

セットアップ:
Centos 5.2、RAID 1の2x 320 GB SATAドライブ.

  • / dev/md0(/ dev/sda1 +/dev/sdb1)は/ boot
  • / dev/md1(/ dev/sda1 +/dev/sdb1)は、/、/ dataおよびswapパーティションを含むLVMパーティションです

スワップ以外のすべてのファイルシステムはext3です

1つのドライブの障害によりルートファイルシステムが読み取り専用としてロックされ、明らかに問題が発生するいくつかのシステムで問題が発生しました。

[root@myserver /]# mount | grep Root
/dev/mapper/VolGroup00-LogVolRoot on / type ext3 (rw)
[root@myserver /]# touch /foo
touch: cannot touch `/foo': Read-only file system

アレイ内のパーティションの1つに障害が発生していることがわかります。

[root@myserver /]# mdadm --detail /dev/md1
/dev/md1:
[...]
          State : clean, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 1
  Spare Devices : 0
[...]
    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       18        1      active sync   /dev/sdb2
       2       8        2        -      faulty spare   /dev/sda2

Rwが失敗したときの再マウント:

[root@myserver /]# mount -n -o remount /
mount: block device /dev/VolGroup00/LogVolRoot is write-protected, mounting read-only

LVMツールは--ignorelockingfailureが使用されない限りエラーを出しますが(/ varに書き込めないため)、ボリュームグループをrwとして表示します。

[root@myserver /]# lvm vgdisplay
Locking type 1 initialisation failed.
[root@myserver /]# lvm pvdisplay --ignorelockingfailure
  --- Physical volume ---
  PV Name               /dev/md1
  VG Name               VolGroup00
  PV Size               279.36 GB / not usable 15.56 MB
  Allocatable           yes (but full)
  [...]

[root@myserver /]# lvm vgdisplay --ignorelockingfailure
  --- Volume group ---
  VG Name               VolGroup00
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  [...]

[root@myserver /]# lvm lvdisplay /dev/VolGroup00/LogVolRoot --ignorelockingfailure
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVolRoot
  VG Name                VolGroup00
  LV UUID                PGoY0f-rXqj-xH4v-WMbw-jy6I-nE04-yZD3Gx
  LV Write Access        read/write
  [...]

この場合、/ boot(別のRAIDメタデバイス)および/ data(同じボリュームグループ内の別の論理ボリューム)は引き続き書き込み可能です。以前の発生から、再起動すると、読み取り/書き込みルートファイルシステムと適切に劣化したRAIDアレイでシステムが再起動することがわかります。

だから、私は2つの質問があります:

1)これが発生した場合、システムを再起動せずにルートファイルシステムを読み取り/書き込みに戻すにはどうすればよいですか?

2)このファイルシステムのロックを停止するには何を変更する必要がありますか?単一のディスクでRAID 1障害が発生した場合、ファイルシステムをロックアップしたくないため、不良ディスクを交換できるまでシステムを稼働させておきます。


編集:dmesg出力でこれを見ることができます-これは/ dev/sdaの失敗を示しています、次にファイルシステムが読み取り専用に設定されている/ dev/sdbでの別の失敗ですか?

sda: Current [descriptor]: sense key: Aborted Command
    Add. Sense: Recorded entity not found

Descriptor sense data with sense descriptors (in hex):
        72 0b 14 00 00 00 00 0c 00 0a 80 00 00 00 00 00
        00 03 ce 85
end_request: I/O error, dev sda, sector 249477
raid1: Disk failure on sda2, disabling device.
        Operation continuing on 1 devices
ata1: EH complete
SCSI device sda: 586072368 512-byte hdwr sectors (300069 MB)
sda: Write Protect is off
sda: Mode Sense: 00 3a 00 00
SCSI device sda: drive cache: write back
RAID1 conf printout:
 --- wd:1 rd:2
 disk 0, wo:1, o:0, dev:sda2
 disk 1, wo:0, o:1, dev:sdb2
RAID1 conf printout:
 --- wd:1 rd:2
 disk 1, wo:0, o:1, dev:sdb2
ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata2.00: irq_stat 0x40000001
ata2.00: cmd ea/00:00:00:00:00/00:00:00:00:00/a0 tag 0
         res 51/04:00:34:cf:f3/00:00:00:f3:40/a3 Emask 0x1 (device error)
ata2.00: status: { DRDY ERR }
ata2.00: error: { ABRT }
ata2.00: configured for UDMA/133
ata2: EH complete



sdb: Current [descriptor]: sense key: Aborted Command
    Add. Sense: Recorded entity not found

Descriptor sense data with sense descriptors (in hex):
        72 0b 14 00 00 00 00 0c 00 0a 80 00 00 00 00 00
        01 e3 5e 2d
end_request: I/O error, dev sdb, sector 31677997
Buffer I/O error on device dm-0, logical block 3933596
lost page write due to I/O error on dm-0
ata2: EH complete
SCSI device sdb: 586072368 512-byte hdwr sectors (300069 MB)
sdb: Write Protect is off
sdb: Mode Sense: 00 3a 00 00
SCSI device sdb: drive cache: write back
ata2.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x0
ata2.00: irq_stat 0x40000008
ata2.00: cmd 61/38:00:f5:d6:03/00:00:00:00:00/40 tag 0 ncq 28672 out
         res 41/10:00:f5:d6:03/00:00:00:00:00/40 Emask 0x481 (invalid argument) <F>
ata2.00: status: { DRDY ERR }
ata2.00: error: { IDNF }
ata2.00: configured for UDMA/133
sd 1:0:0:0: SCSI error: return code = 0x08000002
sdb: Current [descriptor]: sense key: Aborted Command
    Add. Sense: Recorded entity not found

Descriptor sense data with sense descriptors (in hex):
        72 0b 14 00 00 00 00 0c 00 0a 80 00 00 00 00 00
        00 03 d6 f5
end_request: I/O error, dev sdb, sector 251637
ata2: EH complete
SCSI device sdb: 586072368 512-byte hdwr sectors (300069 MB)
sdb: Write Protect is off
sdb: Mode Sense: 00 3a 00 00
SCSI device sdb: drive cache: write back
Aborting journal on device dm-0.
journal commit I/O error
ext3_abort called.
EXT3-fs error (device dm-0): ext3_journal_start_sb: Detected aborted journal
Remounting filesystem read-only
5
DrStalker

dmesgの出力から、PVに失敗を通知している理由がわかります。それは起こらないはずです。システムを再び書き込み可能にする限り、VGとLVを読み取り専用にしてから読み取り/書き込みに戻しますが、実際の解決策は、mdがLVMの不必要な心配をやめるようにすることです。

3
womble