v0.44.0 - Oedo
Added
- More effective FSTree writer for HDDs, new configuration options for it (#2814)
- New health status
INITIALIZING_NETWORK
in inner ring (#2934) - IR health status to Prometheus metrics (#2934)
neofs-cli control object list
command (#2853)node
config optionstorage.ignore_uninited_shards
(#2953)--global-name
flag forneofs-cli container create
to save container name into__NEOFS__NAME
and subsequently register it in NNS contract (#2954)- The last metabase resynchronization epoch into metabase (#2966)
neofs-lens meta last-resync-epoch
command (#2966)neofs-lens fstree cleanup-tmp
command (#2967)neofs-cli control object revive
command (#2968)--disable-auto-gen-tag
flag for gendoc command (#2983)- CLI commands documentation to the
docs/cli-commands
folder (#2983) logger.encoding
config option (#2999)- Reloading morph endpoints with SIGHUP (#2998)
- New
peapod-to-fstree
tool providing peapod-to-fstree data migration (#3013) - Reloading node attributes with SIGHUP (#3005)
- Reloading pool sizes with SIGHUP (#3018)
- Reloading pprof/metrics services with SIGHUP (#3016)
- Metrics for shard capacity (#3021)
Fixed
- Searching (network-wide) for tombstones when handling their expiration, local indexes are used now instead (#2929)
- Unathorized container ops accepted by the IR (#2947)
- Structure table in the SN-configuration document (#2974)
- False negative connection to NeoFS chain in multi-endpoint setup with at least one live node (#2986)
- Overriding the default container and object attributes only with the appropriate flags (#2985)
- RPC client reconnection failures leading to complete SN failure (#2797)
meta.DB.Open(readOnly)
moves metabase in RO mode (#3000)- Panic in event listener related to inability to switch RPC node (#2970)
- Non-container nodes never check placement policy on PUT, SEARCH requests (#3014)
- If shards are overloaded with PUT requests, operation is not skipped but waits for 30 seconds (#2871)
- Data corruption if PUT is done too concurrently (#2978)
Changed
ObjectService
'sPut
RPC handler caches up to 10K lists of per-object sorted container nodes (#2901)- Metabase graveyard scheme (#2929)
- When an error is returned, no additional help output is displayed in cobra-based programs (#2942)
- Timestamps are no longer produced in logs if not running with TTY (#2964)
- In inner ring config, default ports for TCP addresses are used if they are missing (#2969)
- Metabase is refilled if an object exists in write-cache but is missing in metabase (#2977)
- Pprof and metrics services stop at the end of SN's application lifecycle (#2976)
- Reject configuration with unknown fields (#2981)
- Log sampling is disabled by default now (#3011)
- EACL is no longer considered for system role (#2972)
- Deprecate peapod substorage (#3013)
- Node does not stop trying to PUT an object if there are more PUT tasks than configured (#3027)
morph
configuration section renamed tofschain
both in IR and SN (#3028)- FSTree is limited to depth 8 max now (#3031)
Removed
Updated
Updating from v0.43.0
Metabase version has been increased, auto migration will be performed once v0.44.0 Storage Node is started with a v0.43.0 metabase. This action can not be undone. No additional work should be done.
The new storage.put_retry_timeout
config value added. If an object cannot be PUT to storage, node tries to PUT it to the best shard for it (according to placement sorting) and only to it for this long before operation error is returned.
Binary keys are no longer supported by storage node, NEP-6 wallet support was introduced in version 0.22.3 and support for binary keys was removed from other components in 0.33.0 and 0.37.0. Please migrate to wallets (see 0.37.0 notes) if you've not done it previously.
The section morph
in the config has been renamed to fschain
. This version still supports the old section name, but this compatibility code will be removed in the next release. Please rename morph
to fschain
in your configuration files.
To migrate data from Peapods to FSTree:
$ peapod-to-fstree -config </path/to/storage/node/config>
For any shard, the data from the configured Peapod is copied into an FSTree that must be already configured. Notice that peapod DB is not deleted during migration. An updated (peapod-free) configuration file is also created with ".migrated" suffix (for example, /etc/neofs/config.yaml
-> /etc/neofs/config.yaml.migrated
). WARN: carefully review the updated config before using it in the application!
FSTree storage provided with this version is more efficient for small files than the Peapod in most cases. We support both fstree
and peapod
sub-storages, but peapod
can be removed in future versions. We recommend using fstree
. If you want to use only fstree
and storage node already stores some data, don't forget to perform data migration described above.