#!/bin/sh -ex MB=1048576 twoMB=$((2*MB)) rm -r layout_test || true rm new_layout || true rm file2_layout || true rm temp || true echo "layout.data_pool: 0 layout.object_size: 1048576 layout.stripe_unit: 1048576 layout.stripe_count: 1" > new_layout echo "layout.data_pool: 0 layout.object_size: 2097152 layout.stripe_unit: 1048576 layout.stripe_count: 2" > file2_layout echo "layout.data_pool: 3 layout.object_size: 1048576 layout.stripe_unit: 1048576 layout.stripe_count: 1" > file3_layout echo "layout.data_pool: 0 layout.object_size: 1048576 layout.stripe_unit: 262144 layout.stripe_count: 1" > file4_layout mkdir layout_test cephfs layout_test show_layout cephfs layout_test set_layout -u $MB -c 1 -s $MB touch layout_test/file1 cephfs layout_test/file1 show_layout > temp diff new_layout temp || return 1 echo "hello, I'm a file" > layout_test/file1 cephfs layout_test/file1 show_layout > temp diff new_layout temp || return 1 touch layout_test/file2 cephfs layout_test/file2 show_layout > temp diff new_layout temp || return 1 cephfs layout_test/file2 set_layout -u $MB -c 2 -s $twoMB cephfs layout_test/file2 show_layout > temp diff file2_layout temp || return 1 echo "hello, I'm a file with a custom layout" > layout_test/file2 touch layout_test/file3 cephfs layout_test/file3 show_layout > temp diff new_layout temp || return 1 sudo ls /sys/kernel/debug/ceph sudo ls /sys/kernel/debug/ceph/\* || true sudo bash -c 'ls /sys/kernel/debug/ceph/*' || true sudo bash -c 'cat /sys/kernel/debug/ceph/*/mdsmap' > temp ceph osd pool create newpool 2 || true ceph mds add_data_pool 3 || true sudo bash -c 'cat /sys/kernel/debug/ceph/*/mdsmap' > temp2 while diff -q temp2 temp do echo "waiting for mdsmap to update" sleep 1 sudo bash -c 'cat /sys/kernel/debug/ceph/*/mdsmap' > temp2 done sudo rm temp temp2 cephfs layout_test/file3 set_layout -p 3 cephfs layout_test/file3 show_layout > temp diff file3_layout temp || return 1 echo "hello, I'm a file in pool3" > layout_test/file3 touch layout_test/file4 cephfs layout_test/file4 show_layout > temp diff new_layout temp || return 1 cephfs layout_test/file4 set_layout -u 262144 cephfs layout_test/file4 show_layout > temp diff file4_layout temp || return 1 echo "hello, I'm a file with a small stripe unit!" > layout_test/file3 sync echo "OK"