Lustre filesystem supports storing different files parts (stripes) in different pools or with different sizes. It can be controlled by the lfs command. But this ability is more powerful – you can specify multiple set of stripes, their sizes, and placement. Quick example, let’s say we have two ost pools – on nvme drives (nvme) and on hdd drives (hdd), and we want to store the first megabyte of each file on nvme pool, next 5 stripes by one megabyte on hdd, and the rest – on the hdd pool using stripe size 16 megabytes. Use this command:
lfs setstripe \
-E 1M -S 1M -p nvme \
-E 6M -S 1M -p hdd \
-E -1 -S 16M -p hdd /lustre

Here -E is the end of stripe group (extent), -S is stripe size, and -p is pool name. Pool name is optional, e. g. if you have only one pool, you can drop it. Instead of stripe size you can use stripe count (-c). -1 as the ‘end of extent’ or stripe count means ’till the end of file’.

This example is just for syntax illustration, please use stripe sizes, recommend by your storage expert (raid parameters, disk block size, cache, etc).