summaryrefslogtreecommitdiff
path: root/test/shell/lvmlockd-lv-types.sh
blob: 398c96420d02a53f6d7979239a8cd8b4060744be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
#!/usr/bin/env bash

# Copyright (C) 2008-2012 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions
# of the GNU General Public License v.2.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

test_description='Check lvmlockd lock_args for different LV types'

SKIP_WITH_LVMPOLLD=1

. lib/inittest

[ -z "$LVM_TEST_LVMLOCKD" ] && skip;

if test -n "$LVM_TEST_LOCK_TYPE_SANLOCK" ; then
LOCKARGS1="1.0.0:70254592"
LOCKARGS2="1.0.0:71303168"
LOCKARGS3="1.0.0:72351744"
fi

if test -n "$LVM_TEST_LOCK_TYPE_DLM" ; then
LOCKARGS1="dlm"
LOCKARGS2="dlm"
LOCKARGS3="dlm"
fi

if test -n "$LVM_TEST_LVMLOCKD_TEST" ; then
LOCKARGS1="dlm"
LOCKARGS2="dlm"
LOCKARGS3="dlm"
fi

if test -n "$LVM_TEST_LOCK_TYPE_IDM" ; then
LOCKARGS1="idm"
LOCKARGS2="idm"
LOCKARGS3="idm"
fi

aux prepare_devs 5

vgcreate --shared $vg "$dev1" "$dev2" "$dev3" "$dev4" "$dev5"

#
# pvscan autoactivation ignore shared PVs
#
RUNDIR="/run"
test -d "$RUNDIR" || RUNDIR="/var/run"

PVID1=$(pvs "$dev1" --noheading -o uuid | tr -d - | awk '{print $1}')
pvscan --cache -aay "$dev1"
not ls "$RUNDIR/lvm/pvs_online/$PVID1"
pvscan --cache -aay
not ls "$RUNDIR/lvm/pvs_online/$PVID1"
not ls "$RUNDIR/lvm/vgs_online/$vg"


#
# thin pool, thin lv, thin snap
#

lvcreate -L 8M -n pool1 $vg
check lva_field $vg/pool1 lockargs $LOCKARGS1

lvcreate -L 8M -n pool1_meta $vg
check lva_field $vg/pool1_meta lockargs $LOCKARGS2

lvconvert -y --type thin-pool --poolmetadata $vg/pool1_meta $vg/pool1
check lva_field $vg/pool1 lockargs $LOCKARGS3
check lva_field $vg/pool1_tdata lockargs ""
check lva_field $vg/pool1_tmeta lockargs ""

lvcreate -n thin1 -V 1G --thinpool $vg/pool1
check lva_field $vg/thin1 lockargs ""

lvcreate -s -n snap1 $vg/thin1
check lva_field $vg/snap1 lockargs ""

lvchange -ay -K $vg/snap1

lvchange -an $vg/snap1
lvchange -an $vg/thin1
lvchange -an $vg/pool1
lvremove $vg/snap1
lvremove $vg/thin1
lvremove $vg/pool1

# the first sanlock lock should be found and reused
lvcreate -L 8M -n lv1 $vg
check lva_field $vg/lv1 lockargs $LOCKARGS1

lvchange -an $vg/lv1
lvremove $vg/lv1


#
# with automatic metadata lv
#

lvcreate -L 8M -n pool2 $vg
check lva_field $vg/pool2 lockargs $LOCKARGS1

lvconvert -y --type thin-pool $vg/pool2
check lva_field $vg/pool2 lockargs $LOCKARGS2
check lva_field $vg/pool2_tdata lockargs ""
check lva_field $vg/pool2_tmeta lockargs ""

lvcreate -n thin2 -V 1G --thinpool $vg/pool2
check lva_field $vg/thin2 lockargs ""

lvchange -an $vg/thin2
lvchange -an $vg/pool2
lvremove $vg/thin2
lvremove $vg/pool2


#
# cache pool, cache lv
#

lvcreate -L 8M -n cache1 $vg
check lva_field $vg/cache1 lockargs $LOCKARGS1

lvcreate -L 8M -n cache1_meta $vg
check lva_field $vg/cache1_meta lockargs $LOCKARGS2

lvconvert -y --type cache-pool --poolmetadata $vg/cache1_meta $vg/cache1
check lva_field $vg/cache1 lockargs ""
check lva_field $vg/cache1_cdata lockargs ""
check lva_field $vg/cache1_cmeta lockargs ""

lvcreate -n lv1 -L 8M $vg
check lva_field $vg/lv1 lockargs $LOCKARGS1

lvconvert -y --type cache --cachepool $vg/cache1 $vg/lv1
check lva_field $vg/lv1 lockargs $LOCKARGS1
check lva_field $vg/cache1_cpool lockargs ""
check lva_field $vg/cache1_cpool_cdata lockargs ""
check lva_field $vg/cache1_cpool_cmeta lockargs ""

lvconvert --splitcache $vg/lv1
check lva_field $vg/lv1 lockargs $LOCKARGS1
check lva_field $vg/cache1 lockargs ""
check lva_field $vg/cache1_cdata lockargs ""
check lva_field $vg/cache1_cmeta lockargs ""

lvchange -an $vg/cache1
lvchange -an $vg/lv1
lvremove $vg/cache1
lvremove $vg/lv1

#
# cow snap
#

lvcreate -n lv2 -L 8M $vg
check lva_field $vg/lv2 lockargs $LOCKARGS1

lvcreate -s -n lv2snap -L 8M $vg/lv2
check lva_field $vg/lv2 lockargs $LOCKARGS1
check lva_field $vg/lv2snap lockargs ""

lvchange -y -an $vg/lv2
lvremove $vg/lv2snap
lvremove $vg/lv2

#
# mirror
#

lvcreate --type mirror -m 1 -n lv3 -L 8M $vg
check lva_field $vg/lv3 lockargs $LOCKARGS1

lvchange -an $vg/lv3
lvremove $vg/lv3

#
# raid1
#

lvcreate --type raid1 -m 1 -n lv4 -L 8M $vg
check lva_field $vg/lv4 lockargs $LOCKARGS1

lvchange -an $vg/lv4
lvremove $vg/lv4

vgremove $vg