微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux软件RAID 1 – 根文件系统在一个磁盘发生故障后变为只读

Linux软件RAID 1锁定为只读模式

设置:
RAID 1中的Centos 5.2,2 x 320 GB SATA驱动器.

> / dev / md0(/ dev / sda1 / dev / sdb1)是
/启动
> / dev / md1(/ dev / sda1
/ dev / sdb1)是一个LVM分区
包含/,/ data和swap分区

除swap之外的所有文件系统都是ext3

我们在几个系统上遇到问题,其中一个驱动器上的故障将根文件系统锁定为只读,这显然会导致问题.

[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

我可以看到数组中的一个分区出现故障:

[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

除非使用了–ignorelockingfailure(因为它们无法写入/ var),否则LVM工具会出错,但会将卷组显示为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阵列.

所以,我有两个问题:

1)发生这种情况时,如何在没有系统重启的情况下将根文件系统恢复为读/写?

2)需要更改什么来阻止此文件系统锁定?由于单个磁盘上的RAID 1故障,我们不希望文件系统锁定,我们希望系统继续运行,直到我们可以更换坏磁盘.

编辑:我可以在teh dmesg输出中看到这个 – doe sthis表示/ 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,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,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

解决方法

你的dmesg输出应该给你一个指示,告诉它为什么它会发出PV信号故障;那应该不会发生.至于再次使系统可写,将VG和LV踢为只读然后再回读读写工作从内存开始,但真正的解决方案是让md不必要地停止担心LVM.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐