If you reply to this, please remove xfs/nathan/eric from cc - it's not
xfs at all, it was (if anything) an lvm bug.
Eric Sandeen wrote:
> David Greaves wrote:
>
>> haze:~# mount /scratch
>> mount: /dev/video_vg/video_lv: can't read superblock
>>
>> haze:~# xfs_repair -n /dev/video_vg/video_lv
>> Phase 1 - find and verify superblock...
>> superblock read failed, offset 0, size 524288, ag 0, rval 0
>
>
> First, why can't it be read? any kernel messages as a result? can
> you do a simple dd -from- this block device?
Eric, thanks. A good place to look. The dd just produced 0 bytes.
.....OK - thanks, it's fixed now.
It turns out that the md device stopped before the lvm started. So when
lvm did start it must have seen md1 as 0 bytes.
Then when I re-assembled and ran md1, lvm didn't notice.
Confusingly, the lvm userspace tools *did* notice and gave me 'healthy'
reports (I checked that before mailing - I just didn't actually dd the
lvm device - sorry).
The only clue was ages back in the log:
Adding 1004020k swap on /dev/sdc4. Priority:-1 extents:1 across:1004020k
md: md1 stopped.
md: bind<sdb1>
md: bind<sda1>
md: bind<sdd1>
device-mapper: 4.4.0-ioctl (2005-01-12) initialised: [email protected]
cdrom: open failed.
device-mapper: dm-linear: Device lookup failed
device-mapper: error adding target to table
So at this point lvm is sick - but why do the userspace tools report as
below?
haze:/usr/src/linux-2.6.15# lvm version
LVM version: 2.01.04 (2005-02-09)
Library version: 1.01.04 (2005-08-02)
Driver version: 4.4.0
These commands were issued cronologically and represent my basic diagnosis.
haze:~# mdadm --assemble --run /dev/md1 /dev/sda1 /dev/sdb1
mdadm: /dev/md1 has been started with 2 drives (out of 3).
haze:~# /etc/init.d/lvm start
Setting up LVM Volume Groups...
Reading all physical volumes. This may take a while...
/dev/hda: open failed: No medium found
Found volume group "video_vg" using metadata type lvm2
1 logical volume(s) in volume group "video_vg" now active
(/dev/hda is my CDROM which I know I should exclude from the scan!)
(In retrospect I guess I should have stopped and started lvm, not just
started it)
Mount now fails so I start to check things out...
haze:~# cat /proc/mdstat
Personalities : [raid1] [raid5]
md1 : active raid5 sdb1[1] sda1[2]
390716672 blocks level 5, 64k chunk, algorithm 2 [3/2] [_UU]
haze:~# lvdisplay /dev/video_vg
--- Logical volume ---
LV Name /dev/video_vg/video_lv
VG Name video_vg
LV UUID cg2yc1-dO6V-3GlY-JnhY-4nXi-V85s-WTIFml
LV Write Access read/write
LV Status available
# open 0
LV Size 372.61 GB
Current LE 95389
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:0
haze:~# pvdisplay /dev/md1
--- Physical volume ---
PV Name /dev/md1
VG Name video_vg
PV Size 372.61 GB / not usable 0
Allocatable yes (but full)
PE Size (KByte) 4096
Total PE 95389
Free PE 0
Allocated PE 95389
PV UUID IUig5k-460l-sMZc-23Iz-MMFl-Cfh9-XuBMiq
haze:~# vgdisplay video_vg
--- Volume group ---
VG Name video_vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 19
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 372.61 GB
PE Size 4.00 MB
Total PE 95389
Alloc PE / Size 95389 / 372.61 GB
Free PE / Size 0 / 0
VG UUID I2gW2x-aHcC-kqzs-Efpd-Q7TE-dkWf-KpHSO7
haze:~# vgck -v video_vg
Using volume group(s) on command line
Finding volume group "video_vg"
haze:~# lvscan
ACTIVE '/dev/video_vg/video_lv' [372.61 GB] inherit
haze:~# dd if=/dev/md1 of=/dev/null count=5
5+0 records in
5+0 records out
2560 bytes transferred in 0.000260 seconds (9849982 bytes/sec)
haze:~# dd if=/dev/video_vg/video_lv of=/dev/null count=500
0+0 records in
0+0 records out
0 bytes transferred in 0.000211 seconds (0 bytes/sec)
eek!
haze:~# /etc/init.d/lvm stop
Shutting down LVM Volume Groups...
0 logical volume(s) in volume group "video_vg" now active
haze:~# lvdisplay
--- Logical volume ---
LV Name /dev/video_vg/video_lv
VG Name video_vg
LV UUID cg2yc1-dO6V-3GlY-JnhY-4nXi-V85s-WTIFml
LV Write Access read/write
LV Status NOT available
LV Size 372.61 GB
Current LE 95389
Segments 1
Allocation inherit
Read ahead sectors 0
haze:~# /etc/init.d/lvm start
Setting up LVM Volume Groups...
Reading all physical volumes. This may take a while...
/dev/hda: open failed: No medium found
Found volume group "video_vg" using metadata type lvm2
/dev/video_vg: opendir failed: No such file or directory
1 logical volume(s) in volume group "video_vg" now active
(note: this *successful* start contains more error messages than the
failed start at the beginning)
haze:~# dd if=/dev/video_vg/video_lv of=/dev/null count=500
500+0 records in
500+0 records out
256000 bytes transferred in 0.007378 seconds (34697467 bytes/sec)
haze:~# mount /scratch
haze:~#
Success.
David
--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]