6 # This test needs to be run on the client
9 LUSTRE=${LUSTRE:-`dirname $0`/..}
10 . $LUSTRE/tests/test-framework.sh
14 . ${CONFIG:=$LUSTRE/tests/cfg/lmv.sh}
20 SETUP=${SETUP:-"setup"}
21 CLEANUP=${CLEANUP:-"cleanup"}
25 CRYPT_TYPE=${CRYPT_TYPE:-"gks"}
26 RUN_UID=${RUN_UID:-1000}
27 if [ `using_krb5_sec $SECURITY` == 'n' ] ; then
28 ALWAYS_EXCEPT="0c $ALWAYS_EXCEPT"
34 if [ "$MDSCOUNT" -gt 1 ]; then
36 for mds in `mds_list`; do
37 MDSDEV=$TMP/${mds}-`hostname`
38 add_mds $mds --dev $MDSDEV --size $MDSSIZE --lmv lmv1_svc
40 add_lov_to_lmv lov1 lmv1_svc --stripe_sz $STRIPE_BYTES \
41 --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
44 add_mds $SINGLEMDS --dev $MDSDEV --size $MDSSIZE
45 if [ ! -z "$$SINGLEMDSfailover_HOST" ]; then
46 add_mdsfailover $SINGLEMDS --dev $MDSDEV --size $MDSSIZE
48 add_lov lov1 $SINGLEMDS --stripe_sz $STRIPE_BYTES \
49 --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
52 add_ost ost --lov lov1 --dev $OSTDEV --size $OSTSIZE
53 add_ost ost2 --lov lov1 --dev ${OSTDEV}-2 --size $OSTSIZE
55 add_client client $MDS --lov lov1 --gks gks_svc --path $MOUNT
61 # make sure we are using the primary MDS, so the config log will
62 # be able to clean up properly.
63 activemds=`facet_active $SINGLEMDS`
64 if [ $activemds != "$SINGLEMDS" ]; then
68 umount $MOUNT2 || true
73 for mds in `mds_list`; do
74 stop $mds ${FORCE} $MDSLCONFARGS
76 stop ost2 ${FORCE} --dump cleanup.log
77 stop ost ${FORCE} --dump cleanup.log
82 if [ "$ONLY" == "cleanup" ]; then
83 sysctl -w portals.debug=0 || true
92 start_krb5_kdc || exit 1
93 start_lsvcgssd || exit 2
95 start ost --reformat $OSTLCONFARGS
96 start ost2 --reformat $OSTLCONFARGS
97 [ "$DAEMONFILE" ] && $LCTL debug_daemon start $DAEMONFILE $DAEMONSIZE
98 for mds in `mds_list`; do
99 start $mds --reformat $MDSLCONFARGS
102 start_gks gks || exit 4
104 grep " $MOUNT " /proc/mounts || zconf_mount `hostname` $MOUNT
105 grep " $MOUNT2 " /proc/mounts || zconf_mount `hostname` $MOUNT2
110 if [ "$ONLY" == "setup" ]; then
115 grep " $MOUNT " /proc/mounts && umount $MOUNT
116 zconf_mount `hostname` $NAME
120 grep " $MOUNT " /proc/mounts && umount $MOUNT
121 zconf_mount `hostname` $MOUNT
122 $LCTL set_crypt $MOUNT $CRYPT_TYPE
128 enable_encrypt $MOUNT
129 echo aaaaaaaaaaaaaaaaaaaa >> $DIR1/1a0
130 echo aaaaaaaaaaaaaaaaaaaa >> $DIR2/1a1
131 diff -u $DIR1/1a0 $DIR2/1a1 || error "files are different"
132 disable_encrypt $MOUNT
133 diff -u $DIR1/1a0 $DIR2/1a1 && error "write encryption failed"
134 enable_encrypt $MOUNT
135 diff -u $DIR1/1a0 $DIR2/1a1 || error "files are different"
137 run_test 1a "read/write encryption============="
140 enable_encrypt $MOUNT
142 setfacl -m u:bin:rw $DIR1/2a0
143 echo aaaaaaaaaaaaaaaaaaaa >> $DIR1/2a0
144 echo aaaaaaaaaaaaaaaaaaaa >> $DIR2/2a1
145 diff -u $DIR1/2a0 $DIR2/2a1 || error "files are different"
146 disable_encrypt $MOUNT
147 diff -u $DIR1/2a0 $DIR2/2a1 && error "write encryption failed"
148 enable_encrypt $MOUNT
149 diff -u $DIR1/2a0 $DIR2/2a1 || error "files are different"
151 run_test 2a "read/write encryption with acl============="
155 enable_encrypt $MOUNT
156 echo aaaaaaaaaaaaaaaaaaaa >> $DIR1/3a0
157 echo aaaaaaaaaaaaaaaaaaaa >> $DIR2/3a1
158 chown $RUN_UID $DIR1/3a0
159 echo aaaaaaaaaaaaaaaaaaaa >> $DIR1/3a0 || error "chown write error"
160 echo aaaaaaaaaaaaaaaaaaaa >> $DIR1/3a1
161 diff -u $DIR1/3a0 $DIR2/3a1 || error "files are different"
162 disable_encrypt $MOUNT
163 diff -u $DIR1/3a0 $DIR2/3a1 && error "write encryption failed"
164 enable_encrypt $MOUNT
165 diff -u $DIR1/3a0 $DIR2/3a1 || error "files are different"
167 run_test 3a "write chmod encryption============="
171 enable_encrypt $MOUNT
172 echo aaaaaaaaaaaaaaaaaaaa >> $DIR1/4a0
173 echo aaaaaaaaaaaaaaaaaaaa >> $DIR2/4a1
174 setfacl -m u:bin:rw $DIR1/4a0
175 echo aaaaaaaaaaaaaaaaaaaa >> $DIR1/4a0 || error "chown write error"
176 echo aaaaaaaaaaaaaaaaaaaa >> $DIR1/4a1
177 diff -u $DIR1/4a0 $DIR2/4a1 || error "files are different"
178 disable_encrypt $MOUNT
179 diff -u $DIR1/4a0 $DIR2/4a1 && error "write encryption failed"
180 enable_encrypt $MOUNT
181 diff -u $DIR1/4a0 $DIR2/4a1 || error "files are different"
183 run_test 4a "write chacl encryption============="
187 enable_encrypt $MOUNT
188 echo aaaaaaaaaaaaaaaaaaaa >> $DIR1/5a0
189 echo aaaaaaaaaaaaaaaaaaaa >> $DIR2/5a1
190 setfacl -m u:bin:rw $DIR1/5a0
191 chown $RUN_UID $DIR1/5a0
192 echo aaaaaaaaaaaaaaaaaaaa >> $DIR1/5a0 || error "chown write error"
193 echo aaaaaaaaaaaaaaaaaaaa >> $DIR1/5a1
194 diff -u $DIR1/5a0 $DIR2/5a1 || error "files are different"
195 echo "enable crypt read success"
196 disable_encrypt $MOUNT
197 diff -u $DIR1/5a0 $DIR2/5a1 && error "write encryption failed"
198 enable_encrypt $MOUNT
199 diff -u $DIR1/5a0 $DIR2/5a1 || error "files are different"
201 run_test 5a "write chacl encryption============="