Problem: "hardware" (fake) raid broke. I'd like to rebuild the raid using software raid. I brought the system back up on one disk (sdb), and these are the commands I used to configure software raid1
# pvdisplay
Found duplicate PV nYSwBZCJXIfjgABkZBkBDNYL9fb8Obnq: using /dev/sdb2 not /dev/sda2
--- Physical volume ---
PV Name /dev/sdb2 <-- using sdb2
VG Name VolGroup00
PV Size 74.42 GiB / not usable 14.77 MiB <-- unused space! enough to fit software raid
Allocatable yes
PE Size 32.00 MiB
Total PE 2381
Free PE 1
Allocated PE 2380
PV UUID nYSwBZ-CJXI-fjgA-BkZB-kBDN-YL9f-b8Obnq
# dmsetup ls --tree
VolGroup00-LogVol01 (253:1)
└─ (8:18) <-- yup, /dev/sdb2
VolGroup00-LogVol00 (253:0)
└─ (8:18)
# fdisk /dev/sda
t
2
fd <-- Changed system type of partition 2 to fd (Linux raid autodetect)
w
# mdadm --create /dev/md1 --level=1 --raid-disks=2 --metadata=0.90 missing /dev/sda2
mdadm: array /dev/md1 started.
# mdadm --examine --scan >/etc/mdadm.conf
# mv /boot/initramfs-`uname -r`.img /boot/initramfs-`uname -r`.img.orig
# mkinitrd /boot/initramfs-`uname -r`.img `uname -r` <-- mdadm.conf is stored on the initramfs, rebuild it
# pvdisplay
--- Physical volume ---
PV Name /dev/md1 <--- got confused, must have a priority for software raid
# dmsetup ls --tree
VolGroup00-LogVol01 (253:1)
└─ (8:18) <- still using /dev/sdb2
VolGroup00-LogVol00 (253:0)
└─ (8:18) <- ditto
# pvdisplay /dev/sdb2
get_pv_from_vg_by_id: vg_read_internal failed to read VG localhost.localdomain
--- Physical volume ---
PV Name /dev/md1 <-- still very confused
VG Name VolGroup00
PV Size 74.42 GiB / not usable 14.77 MiB
Allocatable yes
PE Size 32.00 MiB
Total PE 2381
Free PE 1
Allocated PE 2380
PV UUID nYSwBZ-CJXI-fjgA-BkZB-kBDN-YL9f-b8Obnq
# pvcreate -ff /dev/md1
Really INITIALIZE physical volume "/dev/md1" of volume group "VolGroup00" [y/n]? y
WARNING: Forcing physical volume creation on /dev/md1 of volume group "VolGroup00"
Physical volume "/dev/md1" successfully created
# pvdisplay
--- Physical volume ---
PV Name /dev/sdb2
VG Name VolGroup00
PV Size 74.42 GiB / not usable 14.77 MiB
Allocatable yes
PE Size 32.00 MiB
Total PE 2381
Free PE 1
Allocated PE 2380
PV UUID nYSwBZ-CJXI-fjgA-BkZB-kBDN-YL9f-b8Obnq
"/dev/md1" is a new physical volume of "74.42 GiB"
--- NEW Physical volume ---
PV Name /dev/md1
VG Name
PV Size 74.42 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID qkTBV1-Sjuh-NMAa-7HWG-WxkT-Qte2-ChlfTU
# vgextend VolGroup00 /dev/md1
Volume group "VolGroup00" successfully extended
# pvmove /dev/sdb2 /dev/md1
/dev/sdb2: Moved: 0.0%
...
/dev/sdb2: Moved: 100.0%
[during the above]
# dmsetup ls --tree
VolGroup00-LogVol01 (253:1)
└─VolGroup00-pvmove0 (253:2)
├─ (9:1) <-- /dev/md1
└─ (8:18) <-- /dev/sdb2
VolGroup00-LogVol00 (253:0)
└─VolGroup00-pvmove0 (253:2)
├─ (9:1)
└─ (8:18)
# vgdisplay | grep PE
PE Size 32.00 MiB
Total PE 4762
Alloc PE / Size 4760 / 148.75 GiB <-- doubled the amount allocated during the move
Free PE / Size 2 / 64.00 MiB
[pvmove done]
# pvscan
PV /dev/sdb2 VG VolGroup00 lvm2 [74.41 GiB / 74.41 GiB free] <-- now unused
PV /dev/md1 VG VolGroup00 lvm2 [74.41 GiB / 32.00 MiB free]
Total: 2 [148.81 GiB] / in use: 2 [148.81 GiB] / in no VG: 0 [0 ]
# dmsetup ls --tree
VolGroup00-LogVol01 (253:1)
└─ (9:1) <-- only using /dev/md1
VolGroup00-LogVol00 (253:0)
└─ (9:1)
# vgreduce VolGroup00 /dev/sdb2
Removed "/dev/sdb2" from volume group "VolGroup00"
# fdisk /dev/sdb
t
2
fd <-- Changed system type of partition 2 to fd (Linux raid autodetect)
w
# mdadm -a /dev/md1 /dev/sdb2
mdadm: added /dev/sdb2
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb2[2] sda2[1]
78035648 blocks [2/1] [_U]
[>....................] recovery = 0.3% (266112/78035648) finish=34.0min speed=38016K/sec