PowerStore: Filesystem inode accounting in SDNAS
Summary: The purpose of this document is to give a summary on how inode accounting works for an SDNAS file system.
Instructions
1. How is the default inode limit determined for the PowerStore NAS file system?
The available inode count is determined upon file system creation based on the file system's size. The following are examples for a 10 GB, 100 GB, and 1000 GB file system as of PowerStore 4.1:
1744036351: ADMIN: 6: Filesystem inodes used avail capacity Mounted on
1744036083: ADMIN: 6: 692 2075836144 25 2075836119 0% /fs-1000GB
1744036083: ADMIN: 6: 691 204066544 25 204066519 0% /fs-100GB
1744036083: ADMIN: 6: 690 16889584 25 16889559 0% /fs-10GB
If the file system size is increased, the limit changes accordingly. Given this scenario, each file system has been increased tenfold:
1744036389: ADMIN: 6: Filesystem inodes used avail capacity Mounted on
1744036389: ADMIN: 6: 695 20793532144 25 20793532119 0% /fs-1000GB
1744036389: ADMIN: 6: 694 2075836144 25 2075836119 0% /fs-100GB
1744036389: ADMIN: 6: 693 204066544 25 204066519 0% /fs-10GB
2. How does inode accounting function within the system?
Internally, a file system is divided into 256 MB slices. These slices can be one of three types - user data, metadata, and inodes. When a file system is first created, it consumes a few slices for each of the three types based on system-defined minimums. The remaining slices for a file system are dynamically allocated as more space is required for each of the three datatypes.
The total number of inodes available for a file system is a sum of the following components:
- The free inodes that are in existing provisioned inode slices.
- The number of potential inodes that would be made available if all non-provisioned slices in the file system were to be allocated as inode slices.
When a user data is written to the file system, slices are allocated for user and metadata purposes. As this occurs, the number of free inodes on a file system may be reduced as the overall number of total free slices decreases. Note: In extreme cases, this could mean that the percentage of used inodes reach a low warning threshold. That is even though no new files are written to the system.
An individual inode slice can contain 519,936 inode entries. There is also an internal inode slice that holds 251,632 slots.
Example: For the original 'fs-10GB' file system in the output above, there are 16,889,584 available inodes shown.
- 16,889,584 – 251,632 = 16,637,952 - inodes available for user purposes
- 16,637,952 / 519,936 = 32 - inode slices being the maximum available for this file system if all free slices were used for that purpose
3. Can space be reallocated between the different types (user data, metadata, inode)?
While manual control is not possible, the system is dynamically reallocated slices between datatype assuming internal thresholds to do so have been reached. This slice repurpose operation can move an unused slice from one type to another. That is assuming there is a slice of that type that is free from use. Note: For user data slices, the system can consolidate and reorganize data which may result in a slice that can be repurposed. For the case of inodes, no reorganization takes place and it is only in the case that all inodes (files, directories, so on) within a given slice have been deleted that the system can repurpose it.
4. What are the thresholds for repurposing slices for inodes?
For a file system smaller than 100 GB, a slice repurpose is triggered once the free inode count in existing allocated inode slices drops below approximately 550 thousand inodes. For file system above 100 GB, this threshold is approximately 1.5 million free inodes.
5. Is it possible to set the default inode number to a different value on PowerStore?
No, PowerStore determines the default inode number. There is no mechanism to change it manually.
6. What is the impact when PowerStore is increasing the inode capacity of a file system?
This is a background accounting task which causes no impact to end users.
7. What is the maximum value of the inode number that a PowerStore file system can reach?
A global system parameter controls the defaults to a limit of 68,719,476,736 inodes.
[SVC:service@9NTPJM3-A user]$ svc_nas_global_tools --args="-param -facility ufs64 -info inodelimit"
>>>> Node1 :
name = inodelimit
facility_name = ufs64
default_value = 68719476736
current_value = 68719476736
configured_value =
param_type = global
user_action = none
change_effective = immediate
range = (257949696,68719476736)
description = Limit the number of inodes on new fs or fs extend