SNFS: Fragmentation on the DXi (DRAFT) |
Fragmentation of the file system occurs over time naturally, as older files are removed and newer files are ingested. In an effort to keep real memory usage lower, the StorNext file system manager (FSM) process only holds a certain number of fragmented free system blocks in memory when it is started. The number of blocks that will not be used by the system (the physical block addresses are ignored by the FSM) are reported in the cvlog, by stripe group during the system boot up. Note that these numbers will change every reboot, as the fragmenting of the file system continues. Conceivably, a system could be close to low space conditions, reboot, and come up already in low space conditions if there has been a significant amount of time (and fragmentation) since the last reboot. The important thing to remember, though, is that these ignored blocks are counted as available free space both in StorNext and the DXi. This means that in critical low space conditions, it might actually be worse than it is reporting in the GUI.
File system fragmentation is not really an issue, though, until the system gets into low space conditions.
The easiest way to determine how much space is "lost" to fragmentation is to grep the word "ignored" from the /usr/cvfs/data/vol0/log/cvlog (or the cvlog in the collect):
The last lines will be the latest reboot, use the timestamp to limit your results to only the latest reboot.
[0619 15:55:15] 0x43656940 (Warning) FSM Alloc: Stripe Group "A3_Data" 6184533 free blocks in 464465 fragments ignored.
[0619 15:55:15] 0x43615940 (Warning) FSM Alloc: Stripe Group "A6_Data" 3621968 free blocks in 314437 fragments ignored.
[0619 15:55:15] 0x43697940 (Warning) FSM Alloc: Stripe Group "A7_Data" 3161313 free blocks in 273682 fragments ignored.
[0619 15:55:15] 0x41bcd940 (Warning) FSM Alloc: Stripe Group "A10_Data" 2969766 free blocks in 257345 fragments ignored.
[0619 15:55:15] 0x41ca4940 (Warning) FSM Alloc: Stripe Group "A11_Data" 2816957 free blocks in 240957 fragments ignored.
[0619 15:55:15] 0x414df940 (Warning) FSM Alloc: Stripe Group "A13_Data" 2759485 free blocks in 240494 fragments ignored.
[0619 15:55:16] 0x43697940 (Warning) FSM Alloc: Stripe Group "A17_Data" 2532668 free blocks in 210919 fragments ignored.
Add the number of "free blocks" (not the number of fragments) together. On this system, it totals 24,046,690 blocks. The DXi uses a 64k blocksize for the file system, so multiply 64 by the total number of ignored blocks to get the number of kilobytes ignored. The example above gives us a total of 64 x 24,046,690 = 1538988160 KB. Divide this number by 1024 twice to get the amount of space in GBs. In this example, it is 1467.69 GB or about 1.4 TB.
There is a process to temporarily recover this space, but it should only be implemented with SES or SUS assistance. Reporting the amount of StorNext ignored space when escalating a system in critical low space will help SES to determine options for recovery.
This page was generated by the BrainKeeper Enterprise Wiki, © 2018 |