20
20
# is always on $dev3. ($dev4 behaves as a spare)
22
22
vgreduce --removemissing $vg
23
for d in "$@"; do aux enable_dev $d; done
24
for d in "$@"; do vgextend $vg $d; done
23
for d in "$@"; do aux enable_dev "$d"; done
24
for d in "$@"; do vgextend $vg "$d"; done
25
25
lvremove -ff $vg/mirror
26
lvcreate -m 1 --ig -l 2 -n mirror $vg $dev1 $dev2 $dev3:0
26
lvcreate -m 1 --ig -l 2 -n mirror $vg "$dev1" "$dev2" "$dev3":0
34
34
lvchange -a n $vg/mirror
36
36
# Fail a leg of a mirror.
37
aux disable_dev "$dev1"
38
38
lvchange --partial -a y $vg/mirror
39
39
repair 'activation { mirror_image_fault_policy = "remove" }'
40
40
check linear $vg mirror
43
43
# Fail a leg of a mirror.
44
44
# Expected result: Mirror (leg replaced, should retain log)
45
aux disable_dev "$dev1"
46
46
repair 'activation { mirror_image_fault_policy = "replace" mirror_log_fault_policy = "remove" }'
47
47
check mirror $vg mirror
48
48
check active $vg mirror_mlog
51
51
# Fail a leg of a mirror.
52
52
# Expected result: Mirror (leg replaced)
53
aux disable_dev "$dev1"
54
54
repair 'activation { mirror_image_fault_policy = "replace" }'
55
55
check mirror $vg mirror
56
56
check active $vg mirror_mlog
59
59
# Fail a leg of a mirror (use old name for policy specification)
60
60
# Expected result: Mirror (leg replaced)
61
aux disable_dev "$dev1"
62
62
repair 'activation { mirror_image_fault_policy = "replace" }'
63
63
check mirror $vg mirror
64
64
check active $vg mirror_mlog
67
67
# Fail a leg of a mirror w/ no available spare
68
68
# Expected result: linear
69
69
# (or 2-way with leg/log overlap if alloc anywhere)
70
aux disable_dev $dev2 $dev4
70
aux disable_dev "$dev2" "$dev4"
71
71
repair 'activation { mirror_image_fault_policy = "replace" }'
72
72
check mirror $vg mirror
73
73
not check lv_exists $vg mirror_mlog
74
cleanup "$dev2" "$dev4"
76
76
# Fail the log device of a mirror w/ no available spare
77
77
# Expected result: mirror w/ corelog
78
aux disable_dev $dev3 $dev4
78
aux disable_dev "$dev3" "$dev4"
79
79
repair 'activation { mirror_image_fault_policy = "replace" }' $vg/mirror
80
80
check mirror $vg mirror
81
81
not check lv_exists $vg mirror_mlog
82
cleanup "$dev3" "$dev4"
84
84
# Fail the log device with a remove policy
85
85
# Expected result: mirror w/ corelog
86
86
lvchange -a y $vg/mirror
87
aux disable_dev $dev3 $dev4
87
aux disable_dev "$dev3" "$dev4"
88
88
repair 'activation { mirror_log_fault_policy = "remove" }'
89
89
check mirror $vg mirror core
90
90
not check lv_exists $vg mirror_mlog
91
cleanup "$dev3" "$dev4"