Hi Jessica, Hi Shawn,
For performance reasons, Lustre Changelog does not report about each I/O.
So robinhood does not update entries block count each time a block is
written to a file.
This can explain that the space usage progressively differs.
Moreover, Lustre may have a lazy management of the block count
attribute, as it is not critical for application working, or POSIX
compliance.
So even if robinhood stat() the file, if may not get the right value...
The solutions proposed by Shawn give robinhood more chances to get an
up-to-date information about block count, but there is no guaranty that
this results in a 100% up-to-date block count.
Solution 1 is right. I recommend it for your issue.
Solution 2 must have a significant performance impact, so it is not
recommended if your system is loaded.
The solution i'm thinking about (possible with robinhood v3) is to
define an "update" policy, that will do nothing except updating entry
attributes.
For example, this policy could only apply to entries modified > 1h ago
and < 1d, so robinhood will have a chance to get a up-to-date block
count (by querying it 1h after last change), and it only has to do this
for recent entries (the <1d condition).
I'd define a policy like this:
define_policy update {
default_action = none; # simply update entries, run no action
scope { type == file}
status_manager = none;
default_lru_sort_attr = none;
}
update_rules {
ignore { last_mod < 1h }
ignore { last_mod > 1d }
rule default {
condition = true; # apply to all entries (except above exclusions)
}
}
# run every 12h
update_trigger {
trigger_on = scheduled;
check_interval = 12h;
}
# to run it, the command line should include:
--run=update
Regards,
Thomas
On 01/24/17 16:50, Hall, Shawn (NAG) wrote:
Jessica,
We see the same issue. I posted my question back in October but haven’t heard
anything back: https://sourceforge.net/p/robinhood/mailman/message/35435513/
We are in a better place than before, but I still see some amount of
discrepancy over time. We haven’t done a scan since late October and are
staying reasonably in sync (not perfect though). I’ve done a couple things
that are helping us to stay more in sync:
1) In the Robinhood configuration file, I set md_update = always. From looking
through the source code, it appears this setting will force a metadata update
every time every chance it gets, which is more frequently than the default. I
don’t believe this has made a big impact, but it helps
(https://github.com/cea-hpc/robinhood/blob/5274d237105e04f20fc81258a927d9c4311ebc77/src/common/update_params.c#L428).
2) I also enabled ATIME changelogs. This is not recommended for production by
Lustre or Robinhood developers, but our metadata load is low enough that this
doesn’t cause problems. There seems to be a hierarchy to when/if changelogs
are reported
(http://lists.lustre.org/pipermail/lustre-discuss-lustre.org/2016-March/013376.html),
and I believe this change is the one that has helped us keep in sync the most.
Both of these changes have performance ramifications and should be done at your
own risk, but in our situation they’ve seemed to help. I’d be very happy to
hear expert advice on keeping Robinhood in sync however.
Thanks,
Shawn
On 1/24/17, 9:24 AM, "Jessica Otey" <jo...@nrao.edu> wrote:
All,
I have been observing for a while now a difference between how full
robinhood believes our filesystem is and how full lfs df -h reports it is.
I am wondering if anyone has any insight into this.
A bit of history... I run frequent reports against the robinhood
database, which also include the output of the lfs df -h command.
Historically, the total based on rbh-du and lfs df were essentially
identical. Lately, they seem to keep growing apart--what seems to bring
them back together is doing a full scan of the file system. As time
passes after a scan (changelogs are on), the 'lfs df' command reports
that usage is more and more full than rbh-du says it is.
Indeed, I recently reinstalled (upgraded) my robinhood and noticed that
when the report ran precisely after the filescan and before the service
was activated (so no changelogs were being consumed) the difference was
precisely zero. I believe that is a clue... but I don't know why this is
happening (when there was a lengthy period where it wasn't happening) or
what to do to fix it.
Also, it might help to know that there is a non-negligible amount of
moving files from one OST to another taking place.
Thanks,
Jessica
--
Jessica Otey
System Administrator II
North American ALMA Science Center (NAASC)
National Radio Astronomy Observatory (NRAO)
Charlottesville, Virginia (USA)
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
robinhood-support mailing list
robinhood-support@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/robinhood-support
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
robinhood-support mailing list
robinhood-support@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/robinhood-support
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
robinhood-support mailing list
robinhood-support@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/robinhood-support