This version of TIER comes with a significant number of changes. The meta data has changed to support resizing of the TIER device. Therefore this version of TIER is not compatible with previous releases.
This version of TIER introduces support for resizing the underlying devices. When the underlying devices grow TIER can be instructed to grow as well.
LVM will now work with TIER without modifications to the configuration of the system. The device name that TIER registers has changed from /dev/tierN to /dev/sdtierN. The LVM device filters would otherwise have to be changed to use a tier device with LVM. Although this is possible it would have been inconvenient for most users. In this case pvcreate /dev/sdtiera will work with most distributions.
How resizing TIER works
#First create a tier device insmod ./tier.ko dd if=/dev/zero of=/data/ssd.img bs=1M count=100 dd if=/dev/zero of=/data/sas.img bs=1M count=150 ./tier_setup -f /data/ssd.img:/data/sas.img -c mkfs.xfs /dev/sdtiera mount /dev/sdtiera /mnt df /mnt Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdtiera 243008 12548 230460 6% /mnt truncate --size=10000M /data/sas.img echo 1 >/sys/block/sdtiera/tier/resize xfs_growfs /mnt meta-data=/dev/sdtiera isize=256 agcount=4, agsize=15488 blks = sectsz=512 attr=2 data = bsize=4096 blocks=61952, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal bsize=4096 blocks=1200, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 61952 to 2585600 df /mnt Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdtiera 10337600 17764 10319836 1% /mnt
The example above uses files instead of LVM devices. However this also works when tier is created with LVM devices.
./tier_setup -f /dev/mapper/meta-ssdlv:/dev/mapper/datavg-datalv -c And afterwards : lvextend -L+10G /dev/mapper/meta-ssdlv
The next feature that will be added to TIER is the ability to add and even remove devices from TIER.
Performance will be enhanced by loading the meta data into memory whenever sufficient memory is available.
Redundant (meta) data and data checksumming.