This release of tier makes it possible to disable or enable data migration via sysfs.
To disable migration:
echo 1>/sys/block/tiera/tier/disable_migration
To enable migration:
echo 0>/sys/block/tiera/tier/disable_migration
When migration is re-enabled the migration process will immediately wake up and start. This feature allows to schedule block migration to take place at a convenient time. In future releases the sysfs interface will be expanded so that all migration related parameters can be managed via sysfs.
Enjoy,
Mark Ruijter
Excellent
people have more problems thinking in terms of negation of something. Why don’t you call it enable_migration and default it to 1?
Keep up the great work
Which kernel should tier compile against ?
I have tried it against linux mint 2.6.38 and “make” gives errors like:
tier-0.3.1/tier.c:883:11: error: too many arguments to function ‘vfs_fsync’
Hi Erik,
I did not try 2.6.38.
However 2.6.32 works. And > 3.0 works as well.
Please check the lines :
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0)
change them to
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
I am interested to hear if this solves your problem.
Sorry for posting the first reply out of thread. I just want to tell you that after also changing every occurence of
#if LINUX_VERSION_CODE <= KERNEL_VERSION(3,0,0,)
in tier.c to
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,37)
the module compiled and inserted without errors.
I did that, and the compilation went a bit further.
Now it stops on:
tier-0.3.1/tier.c: In function ‘tier_do_bio’:
tier-0.3.1/tier.c:1137:2: error: implicit declaration of function ‘bio_rw_flagged’
tier-0.3.1/tier.c:1137:32: error: ‘BIO_RW_BARRIER’ undeclared (first use in this function)
Hi Erik,
It looks like you have to keep these lines unmodified then.
Did you try this? Most likely the 2.6.38 kernel has some changes implemented but not all.
#if LINUX_VERSION_CODE <= KERNEL_VERSION(3,0,0)
barrier = bio_rw_flagged(bio, BIO_RW_BARRIER);
#endif
if (bio_rw(bio) == WRITE) {
#if LINUX_VERSION_CODE bi_rw & REQ_FLUSH) {
#endif
Hi!
I have experimented with kernels 2.6.32-2.6.39, and make fails on quite a few of them. I don’t know if this patch to tier.c is programatically correct, but at least it makes the module compile without errors on all of these kernels.
877c877
= KERNEL_VERSION(3,0,0)
—
> #if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,32) || LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)
1014c1014
= KERNEL_VERSION(3,0,0)
—
> #if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,32) || LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)
1123c1123
< #if LINUX_VERSION_CODE #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,37)
1136c1136
< #if LINUX_VERSION_CODE #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,35)
1140c1140
< #if LINUX_VERSION_CODE #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,37)
1175c1175
< #if LINUX_VERSION_CODE #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,37)
1774c1774
= KERNEL_VERSION(3,0,0)
—
> #if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,32) || LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)
Sorry, the patch got misconfigured when I pasted it, but it’s just replacements of lines, so I guess the picture is clear.
Hi mark,
I have done make and it was compiled successfully. When I tried setting up tier with the following command :
./tier_setup -f /dev/mapper/datavg-datalv:/mnt/NAS
It failed with the following error:
Failed to open /dev/tiercontrol, is tier.ko loaded?
Did I miss out any step? Is make the only step i have to carry out? After I set up with tier_setup, how do I check if it’s running? What else do I need to do? Sorry for the long list of questions, i can’t find any documentation on this.
Make sure that you have loaded the kernel module : insmod tier.ko
The first time, and first time only, you have to initialize the device with -c:
./tier_setup -c -f /dev/mapper/datavg-datalv:/mnt/NAS
Hi Mark, when you said initialize the device, does it mean something similar to formatting the device hence clearing all the data? I have issued insmod tier.ko without any error.
Hello,
I have the same issue with version 0.3.1, but lsmod clearly shows, that tier is loaded.
Do I have to do something before creating the first device?
Best regards,
Marius
Hey Maru!
It is safe to use Tier+EPRD in a production environment? I’m planning to build a tiered iSCSI storage (Tier with EPRD on SSD, SAS, SATA) on a Dell PowerEdge R710 with dual power supply (Each one connected to a different UPS), 32 GB ECC Memory with daily backup?
I have to substitute my Equallogic for a couple weeks due to a requalification procedure.
Thx!