6. BLOG¶
6.1. New Features¶
This blog is used to track new features added to EOS.
October 2024
- The eos CLI provides now a similar command to the du shell command: eos du -s /eos/mydir eos du -s -h /eos/mydir eos du -s -h –si /eos/mydir eos du -a /eos/mydir
September 2023¶
FSTs now publish regulary S.M.A.R.T information and the MGM can provide statistics by storage device or model categories including age, capacity etc. The information is available using the new devices interface:
eos devices ls [-l]
All the information is also available as JSON output using eos –json devices ls! The feature will be available with EOS 5.2!
eos df supports now JSON output e.g. eos –json df and prints the performance capacity ratio in GB/s per TB
August 2023¶
- The EOS group balancer had been rewritten during 2023 and now supports a ‘free space engine’ Instead of balancing groups to the same usage level (percentage), groups are balanced to have the same amount of free space. This allows to avoid significant performance degradation when an EOS instance is close to be full.
June 2023¶
- The EOS MGM provides now a meta-data benchmark command to measure MGM performance
Example:
eos ns benchmark 100 10 10 # see the help in the CLI
The tool got added when validating the shared mutex implementation of the Abseil library as a new namespace mutex implementation, which performs much better than the standard C++ implementation. The new mutex will be available with EOS 5.2!
May 2023¶
- Support external FST hostname (port) aliases by defining
- sysconfig: EOS_FST_ALIAS=externalhostname.domain
- sysconfig: EOS_FST_PORT_ALIAS=externalport (normally the same)
- The aliases are shown when using
- eos fs ls -l
- eos fs ls -m
Note
When an alias is removed on an FST, the MGM and FST have to be shutdown and restarted to get rid of the aliases
March 2023¶
HTTPS gateways can use now a shared key to act as gateway for an EOS instance. This simplifies deployment and removes the need to specify the IPV6 addresses of each gateway node using the vid interface.
Example: * vid set map -https key:e9d2011d-942a-4ec1-9f78-3643316ed336 vuid:100 * vid set map -https key:e9d2011d-942a-4ec1-9f78-3643316ed336 vgid:100 * If a client sends the header “x-gateway-authorization: e9d2011d-942a-4ec1-9f78-3643316ed336” he will be authenticated as user 100 in this example. * If user 100 is a sudoer, the client can select the effective user ID specifying a “remote-user: …” header.
newfind has now improved performance and new usability features.
Examples: * eos newfind –format uid,gid,checksum,fxid,atime,btime /eos/ #select output format * eos newfind –count -d /eos/dev/ #better performance * eos newfind –treecount /eos/dev/ #aggregate number of dirs and files * eos newfind –cache … #store items in in-memory MD cache, by default we don’t cache meta-data to avoid trashing
January 2023¶
- Token identity mapping can now be controlled using eos vid tokensudo always|strong|encrypted|never
- always - identity in the token is always taken into account
- strong - identity in the token is not taken into account for unix authenticated clients
- encrypted - identity in the token is only taken into account for encrypted connections
- never - identity in the token is never taken into account
- It is now possible to black-/whitelist EOS tokens using the _access__ interface. This allows e.g. to prevent arbitrary token generation by users and implement an approval process. When using the white list mode, all user created tokens appear in the logfile /var/log/eos/mgm/TokenCmd.log e.g.
230113 11:17:19 WARN TokenCmd:218 creating voucher=7630eb7e-932b-11ed-8d40-0071c2181e97 path=/eos/foo/ owner=123 group=123 perm=rx expires=1673605339 token:'{ "token": { "permission": "rx", "expires": "1673605339", "owner": "bar", "group": "bar", "generation": "1", "path": "/eos/foo/", "allowtree": true, "vtoken": "", "origins": [] },}'
An admin can now whitelist this token by issuing: .. code-block:: bash
eos access allow token 7630eb7e-932b-11ed-8d40-0071c2181e97
In blacklist mode it is possible to disable token usage if required using:
eos access ban 7630eb7e-932b-11ed-8d40-0071c2181e97
December 2022¶
- The file inspector daemon now reports access time and birth time distributions:
inspector -l
...
======================================================================================
Access time distribution of files
0s : 1613 (1.59%)
24h : 6 (0.01%)
7d : 1 (0.00%)
30d : 1 (0.00%)
2y : 5 (0.00%)
5y : 100.02 k (98.40%)
======================================================================================
Access time volume distribution of files
0s : 81.31 MB (98.73%)
24h : 15.09 kB (0.02%)
7d : 0 B (0.00%)
30d : 1.00 MB (1.21%)
2y : 10.49 kB (0.01%)
5y : 24.27 kB (0.03%)
======================================================================================
Birth time distribution of files
0s : 1619 (1.59%)
24h : 6 (0.01%)
7d : 100.00 k (98.39%)
90d : 1 (0.00%)
5y : 13 (0.01%)
======================================================================================
Birth time volume distribution of files
0s : 81.32 MB (98.74%)
24h : 1.01 MB (1.23%)
7d : 25 B (0.00%)
90d : 2769 B (0.00%)
5y : 21.48 kB (0.03%)
--------------------------------------------------------------------------------------
inspector -m
key=last layout=00000000 type=plain nominal_stripes=1 checksum=none blockchecksum=none blocksize=4k locations=0 nolocation=12 repdelta:-1=12 unlinkedlocations=0 volume=20480 zerosize=7
key=last layout=00100002 type=plain nominal_stripes=1 checksum=adler32 blockchecksum=none blocksize=4k locations=101628 nolocation=1 repdelta:-1=1 repdelta:0=101628 unlinkedlocations=0 volume=82338570 zerosize=100003
kay=last tag=accesstime::files 0=1613 86400=6 604800=1 2592000=1 63072000=5 157680000=100015
key=last tag=accesstime::volume 0=81309191 86400=15090 604800=0 2592000=1000000 63072000=10495 157680000=24274
kay=last tag=birthtime::files 0=1619 86400=6 604800=100002 7776000=1 157680000=13
- It is now possible to enable access time tracking e.g. with 1h precision:
eos space config default atime=3600
- Supporting now secondary group permission evaluation with sysconfig setting EOS_SECONDARY_GROUPS=1
- eos register is a new command which can be used to _inject_ meta-data into EOS
Usage: register [-u] <path> {tag1,tag2,tag3...}
: when called without the -u flag the parent has to exist while the basename should not exist
-u : if the file exists this will update all the provided meta-data of a file
tagN is optional, but can be one or many of:
size=100
uid=101 | username=foo
gid=102 | username=bar
checksum=abcdabcd
layoutid=00100112
location=1 location=2 ...
mode=777
btime=1670334863.101232
atime=1670334863.101232
ctime=1670334863.110123
mtime=1670334863.11234d
attr="sys.acl=u:100:rwx"
attr="user.md=private"
path="/eos/newfile" # can be used instead of the regular path argument of the path
- eos ns reports now a read and write contention value
eos ns stat:
ALL Contention : write:42.11% read:0.00%
eos ns stat -m | grep contention
uid=all gid=all ns.contention.read=42.11
uid=all gid=all ns.contention.write=0
November 2022¶
- Added a sharded cache for the ID mapping interface to get better parallelism
- Shipping now eosxd based on libfuse2 and eosxd3 on libfuse3
- eosxd3 can be started using -o clone_fd to have one FUSE connection per thread
- Support for the POSIX VTX bit has been added (e.g. as it is used in /tmp/)