Chubaofs Versions Save

cloud-native file store

v3.3.1

4 months ago

UPGRAGDE NOTICE

UPGRAGDE NOTICE If your CubeFS version is v2.3.x or before, please refer to the UPGRADE NOTICE in v2.4.0 for upgrading steps. if you CubeFS version is v3.2.1 or before, and need to upgrade to v3.3.*,you must follow these upgrade steps:

  1. When upgrading the metanode node, you need to add "raftSyncSnapFormatVersion": 0 to the configuration file.
  2. After all metanodes are upgraded, remove this configuration item so that raftSyncSnapFormatVersion defaults to 1.
  3. Restart all metanodes.
  4. Please upgrade the client at the end, the master has enhanced the check of the client, otherwise it will cause the client to mount abnormally

If your Blobstore version is v1.1.0 or before which built with cubefs-blobstore (https://github.com/cubefs/cubefs-blobstore) , please refer to UPGRADE to v3.2.0 following these steps #1556.

Main Feature

  • client: Add a trash feature to client (#2291, @bboyCH4)

Enhance

  • datanode: Support cleaning up garbage data on the datanode (#2880, @Victor1319)
  • metanode: Audit log in metanode (#2899, @NaturalSelect)
  • datanode: limit datanode's disk flow and concurrent iops (#2900, @sejust)
  • client: Too many waring errors log when use trash (#2915, @bboyCH4)

Bugfix

  • client: Audit's writer maybe nil leadto error (#2901, @longerfly)
  • gapi: fix read body entirely into memory (#2691, @tangdeyi)
  • objectnode: Timing attack can leak user passwords and CubeFS leaks users key in logs from cncf security audit (#2781, @leonrayang)
  • client: Optimize insecure random number generation in function util/string.go:RandomString (#2698, @true1064)
  • docs: Add Security Best practice (#2853, @leonrayang)
  • gapi: Timing attack can leak user passwords and CubeFS leaks users key in logs from cncf security audit (#2781, @leonrayang)
  • objectnode: fix limiter lib deadlock (#2794, @tangdeyi)
  • master\objectnode: some commits related with security audit (#2824, @leonrayang)
  • master: qos.Lock of assignClientsNewQos forget release and trigger deadlock(#2861, @leonrayang)
  • bcache: fix possible deadlock of bacahe(#2819, @longerfly)
  • ClusterMgr: fix volume manager deadlock(#2793, @tangdeyi)
  • blobnode: fix put shard deadlock (#2790, @mawei029)
  • client: inode leak when use trash(#2911, @bboyCH4)
  • client: trash encounters IO error when dealing with log file names(#2912, @bboyCH4)
  • client: trash delete interval do not work(#2914, @bboyCH4)
  • client: Failed to delete a large directory with trash enable(#2917, @bboyCH4)

v3.3.0

8 months ago

Release v3.3.0 - 2023/08/16

UPGRAGDE NOTICE

UPGRAGDE NOTICE If your CubeFS version is v2.3.x or before, please refer to the UPGRADE NOTICE in v2.4.0 for upgrading steps. if you CubeFS version is v3.2.1 or before, and need to upgrade to v3.3.*,you must follow these upgrade steps:

  1. When upgrading the metanode node, you need to add "raftSyncSnapFormatVersion": 0 to the configuration file.
  2. After all metanodes are upgraded, remove this configuration item so that raftSyncSnapFormatVersion defaults to 1.
  3. Restart all metanodes.
  4. Please upgrade the client at the end, the master has enhanced the check of the client, otherwise it will cause the client to mount abnormally

If your Blobstore version is v1.1.0 or before which built with cubefs-blobstore (https://github.com/cubefs/cubefs-blobstore) , please refer to UPGRADE to v3.2.0 following these steps #1556.

Main Feature

  • objectnode: ObjectNode Bucket Policy (#1761, @tangdeyi),CORS(#1988, @tangdeyi),S3 ACl (#1990, @yhjiango)
  • master\metanode: quota added union directory feature (#2087, @baijiaruo)
  • master: add mp step size configuration and dynamic adjustment (#2486, @baijiaruo)
  • master\metanode: meta operations guarantee atomicity (#2487, @wuchunhuan @Victor1319)
  • master\metanode\datanode:enhance system stability(#1981, @leonrayang @true1064 @Victor1319 @baijiaruo @bboyCH4 @sjp00556 @JasonHu520 )
  • master\metanode: support uid space limitation (#1980, @leonrayang)
  • cfsauto: cubefs surpport autofs mount (#1977, @lleiielll,@leonrayang)

Enhance

  • master: broken disk check is wrong in some case (#1547, @Victor1319)
  • master: Don't use global variable when implementing maxDpCntLimit func (#1897, @NaturalSelect)
  • master\cli: The cli tool supports creating 1, 2 copies, and changing the number of copies (#1978, @leonrayang)
  • master\cli: Support 2replicas volume down to 1 replica and recycling resources (#1979, @leonrayang)
  • client: Optimize client/partitions interface implementation to improve system stability (#1981, @leonrayang)
  • master: follower support metrics report (#1982, @leonrayang)
  • master: balance leader meta partitions on metanodes (#1985, @xiaocai1215)
  • objectnode: ObjectNode supports large file copy (#1989, @tangdeyi)
  • datanode: need a quick way to handle client retries too long when reading fault datapartitions which can't be repaired, such as mark these datapartitons as discarded and trigger client fast fail (#1993, @true1064)
  • master: needs a settable swich to allow or forbid metaPartition decommission in cluster (#2139, @true1064)
  • objectnode: Objnode cold volume read and write buffer optimization (#2309, @tangdeyi)
  • master\metanode: add file statistics function(#2489, @liubingxing)
  • master: manage access iplist to support client-side IP validity check (#2490, @leonrayang)
  • datanode: Strengthen the availability of datanode, and it can still start successfully when a certain dp is abnormal (#2492, @baijiaruo)

Bugfix

  • objectnode: overwrite the existing mulitpart (#1700, @tangdeyi)
  • unittest: Unit Test Supplement(#1903, @NaturalSelect @jjyaoao)
  • metanode: Fix the problem which snapshot was interrupted but saved the metadata (#1986, @xiaocai1215)
  • master: master's metrics missing dataparition and missing metaparition not deleted after the fault replica is decommissioned (#2008, @true1064)
  • objectnode: ObjectNode UploadPart Interface doesn't compare the Content-Md5 with the body checksum (#2077, @tangdeyi)
  • master: A response was sent but not returned (#2084, @NaturalSelect)
  • objectnode: Bucket metadata synchronization (#2106, @tangdeyi)
  • metanode: not use stream conn pool when delete extents in metanode (#2134, @Victor1319)
  • metanode: meta partition raft follower may apply wrong cursor when apply snapshot from leader (#2149, @true1064)
  • metanode: metanode create metapartition raft panic (#2230, @Victor1319)
  • objectnode: fix bucket policy and location processing (#2239, @yhjiango)

v3.2.1

1 year ago

Release v3.2.1 - 2023/03/16

UPGRAGDE NOTICE

UPGRAGDE NOTICE If your CubeFS version is v2.3.x or before, please refer to the UPGRADE NOTICE in v2.4.0 for upgrading steps. And also please make sure that your fuse client or objectnode version is equal to or older than the servers, i.e. master, metanode and datanode. In another word, newer versioned client can not be used in a cluster with older versioned servers.

If your Blobstore version is v1.1.0 or before which built with cubefs-blobstore (https://github.com/cubefs/cubefs-blobstore) , please refer to UPGRADE to v3.2.0 following these steps #1556.

Main Feature

  • meta\client: add quota of children dentries for directory (#1763, @wuchunhuan )
  • master: add qps limiter for individual API on master (#1766, @wuchunhuan )
  • client: add audit log for fuse client (#1764, @wuchunhuan )
  • objectnode\sdk: objectnode supports docking erasure-code subsytem(blobstore) (#1765, @wuchunhuan)
  • master\datanode: Add speed control of dp decommission for disk or datanode (#1778, @bboyCH4)

Enhance

  • master: master support leader switching by external trigger (#1772, @leonrayang )
  • metanode\master: metanode support follower read (#1775, @leonrayang)
  • master: Add metrics for meta-partition consistency detection (#1776, @leonrayang)
  • master: add API statistics log for master (#1767, @wuchunhuan)
  • datanode: Datanode startup should not be influnced by missing data partitions (#1773, @leonrayang)
  • master: volume's capacity must be bigger than 120% used size (#1723, @Victor1319)
  • metanode: metanode support config memRatio of the machine. (#1725, @Victor1319)
  • datanode: datanode support config diskPathPrefix to manage disk path list. (#1727, @Victor1319)
  • metanode: reduce extent alloc memory when metanode snapshot (#1728, @Victor1319)
  • metanode: random write may cause metanode memory grow (#1729, @Victor1319)
  • datanode: bad disk space is calculated in datanode's total space (#1601, @Victor1319)
  • datanode: no premission disk can't be detected (#1602, @Victor1319)
  • master\cli: add display of unavailable replica for cfs-cli datapartition check (#1771 ,@true1064)
  • datanode: datanode should compute datapartition used size right after loading extents from disk (#1782 ,@true1064)
  • client:enhance support nfs access operation (#1798, @leonrayang )
  • master: add some metircs (#1785, @liubingxing @litao)
  • master\datanode\client\cli: fix the typos and format code (#1787, @liubingxing @litao)
  • datanode: add lack datapartitions monitor (#1789, @guojunhao)
  • master: create data partition exclude decommissioned disk (#1790 , @guojunhao)
  • datanode: Optimize the qos for random write (#1791, @litao)
  • metanode: speed up metanode startup (#1792, @liubingxing)
  • cli: add more info to cli/fsck cmd (#1793, @liubingxing @litao)

Bugfix

  • master: master snapshot recover not reset local rocksdb info (#1522, @wuchunhuan )
  • master:Memory cost too fast during restart in case of data partition‘s count is magnity (#1774 , @leonrayang)
  • client: Readonly dp can still accept write request from client (#1779, @bboyCH4)
  • metanode: Metanode should not establish connection to blobstore for cold volume (#1781, @bboyCH4)
  • client: blockcache service may be oom when the client caches many large files concurrently (#1783, @zhangtianjiong)
  • datanode: too may delete requests may cause a lot of tcp connections. (#1724, @Victor1319)
  • master: when master creating data partition, should use vol.dataPartitionSize as datapartition.total (#1777 ,@true1064)
  • master: In addition to all replica status is readwrtie, still need to consider volume used space before check set datapartition status as readwrite (#1780 ,@true1064)
  • master: master auto creates dataparitions when volume goes from full to not full (#1784 ,@true1064)
  • unit test: Fix the pipeline cubefs-ci error problem (#1795, @baijiaruo)
  • metanode\client:do rename on the file which is soft link not worked well (#1797 , @leonrayang)
  • meta\master: fix some bug to improve cluster stability (#1786, @liubingxing @litao)

v3.2.0

1 year ago

Release v3.2.0 - 2022/10/14

UPGRAGDE NOTICE

If your CubeFS version is v2.3.x or before, please refer to the UPGRADE NOTICE in v2.4.0 for upgrading steps. And also please make sure that your fuse client or objectnode version is equal to or older than the servers, i.e. master, metanode and datanode. In another word, newer versioned client can not be used in a cluster with older versioned servers.

If your Blobstore version is v1.1.0 or before which built with cubefs-blobstore (https://github.com/cubefs/cubefs-blobstore) , please refer to UPGRADE to v3.2.0 following these steps #1556.

Main Feature

  • Merge data subsystem blobstore(ec) to main branch.
  • blobstore: Merge some service modules #1563

Enhance

  • blobstore: ClusterMgr support simple key-value persistent storage #1566
  • blobstore: Remove blobstore's dependency on monogdb #1493
  • blobstore: Remove blobstore's dependency on consul #1507
  • blobstore: Support audit log filtering #1506

Bugfix

  • blobstore: Blobnode use the same erasure encoder and buff-pool libraries as Access #1498
  • blobstore: Separate flow control for repair and migration traffic #1508
  • blobstore: Retry http body under rpc request #1567

v3.1.2

1 year ago

UPGRAGDE NOTICE

If your CubeFS version is v2.3.x or before, please refer to the UPGRADE NOTICE in v2.4.0 for upgrading steps. And also please make sure that your fuse client or objectnode version is equal to or older than the servers, i.e. master, metanode and datanode. In another word, newer versioned client can not be used in a cluster with older versioned servers.

Bugfix

  • master: add leaderSize param in create partition req #1456

Enhance

  • master: support decommission broken replica for 2-replica no leader dp #1456
  • datanode: in case disk full, repair size is also thought as used size #1456
  • raft: raftstore.monitor can be optimized #1543

v3.1.1

1 year ago

UPGRAGDE NOTICE

If your CubeFS version is v2.3.x or before, please refer to the UPGRADE NOTICE in v2.4.0 for upgrading steps. And also please make sure that your fuse client or objectnode version is equal to or older than the servers, i.e. master, metanode and datanode. In another word, newer versioned client can not be used in a cluster with older versioned servers.

Bugfix

  • metanode: Show metapartition id correctly #1554
  • metanode: remove redundant memcopy when reading raft snapshot #1552

Enhance

  • master: update metanode or datanode id need drop old one before #1555
  • metanode: add metric mpDentryCount #1553
  • datanode: fallocate return interrupt err try again #1551

v3.1.0

1 year ago

UPGRAGDE NOTICE

If your CubeFS version is v2.3.x or before, please refer to the UPGRADE NOTICE in v2.4.0 for upgrading steps. And also please make sure that your fuse client or objectnode version is equal to or older than the servers, i.e. master, metanode and datanode. In another word, newer versioned client can not be used in a cluster with older versioned servers.

Main Feature

  • master\client\datanode: :Provide QoS services to enhance multi-tenant isolation #1447
  • client: Caching acceleration #1446
  • master\datanode: Support two replicas data storage #1389
  • master: Add vol label in cfs_metanode_mpInodeCount #1482
  • client: Support config posixAcl for volmue #1485
  • master: Add datapartition count limit for datanode. #1481

Bugfix

  • datanode: TinyDeleteRecord file will be very big when one replica is down #1433
  • client: EnablePosixACL is not vaild in centos system #1393
  • blockcache:Blockcache memory overflow and be killed #1422
  • yum source: Yum install script fails due to missing packages #1410
  • unit test: S3test random path busy to produce data and timeout #1515
  • master: Zone name check not strict enough while crossZone enabled #1479
  • datanode\master: Avoid writing operation failed because of disk full #1519

Enhance

  • master: Enable volume update from 3 to 2 replics #1516

v2.5.2

1 year ago

UPGRAGDE NOTICE If your CubeFS version is v2.3.x or before, please refer to the UPGRADE NOTICE in v2.4.0 for upgrading steps. And also please make sure that your fuse client or objectnode version is equal to or older than the servers, i.e. master, metanode and datanode. In another word, newer versioned client can not be used in a cluster with older versioned servers.

Main Feature

  • master: support to delete data replica with force #1258

Bugfix

  • master: revert the deletion process in the tiny extent to avoid deletion failure caused by different logical and physical sizes #1439
  • master: add metapartition replica check to fix replicas status still writeable while metanode unavalible #1440

v3.0.0

2 years ago

UPGRAGDE NOTICE

If your CubeFS version is v2.3.x or before, please refer to the UPGRADE NOTICE in v2.4.0 for upgrading steps. And also please make sure that your fuse client or objectnode version is equal to or older than the servers, i.e. master, metanode and datanode. In another word, newer versioned client can not be used in a cluster with older versioned servers.

Notice

This is a significant release based on master branch with a lot of code mainly to support multi layer data layer including blobstore (Erasure-Code) storage, blobstore supports erasure coding storage method(https://github.com/cubeFS/cubefs-blobstore) to support low frequency volume and reduce cost .

Before this we released v3.0.0-beta based on release v2.4.0 (https://github.com/cubeFS/cubefs/releases/tag/v3.0.0-beta) , which make volume can be create as standard(3 replica) or low frequency access type(Erasure-Code), but not support multi data layer.

Release formal version release-v3.0.0 which based on the newest master commit, below is a list of the main features.

  1. BlobStore subsystem which supports erasure coding storage. #212
  2. multicache layer, 1st level:client local read cache; 2nd level:hot pool replica; 3nd level:code pool based on erasure code. #1291
  3. single data replica supported. releated project: https://github.com/oppo-bigdata/shuttle used for remote shuffle. #1227
  4. client hot online restart(experimental).
  5. optimization reduce extents fragmentation. #1318
  6. manage third part library with go mod.

Please refer to the documentation for details,the content already updated. English version : https://cubefs.readthedocs.io/en/latest/overview.html Chinese version: https://cubefs.readthedocs.io/zh_CN/latest/

Main Feature

  • log: support write ebs log to file and update ebs log level #212
  • client\datanode\master: support one replica of data storage #1227
  • master: support get master's raft status info #1227
  • master: support preload data from blobstore to cubefs #212
  • client: client local read cache #212
  • client: Time-consuming statistics of client sdk interface
  • client: client support blobstore #212
  • client: support ebs index #212
  • master: support different type dataparitition(normal dp,cache dp,preload dp) #212
  • master: support mulit volume type(replcias volume,ec volume) #212
  • project: enable go mod and update vendor #1343
  • datanode: intruduce metrics degrade level to datanode #1438
  • master: not do ttl & updateSize for hot vol #212
  • compile: change go mod version from 1.14 to 1.16 and consistent with compile #1343
  • compile: enable go mod and update vendor #1343
  • project: change from chubaofs to cubefs #1343

Bugfix

  • master: single replica create volume should set followeread with true #1227
  • raft: raft snapshot still running while peer remove happened which lead to the snapshot gorutine cann't end. #1227
  • master: Refactor finding partitins to be offlined #1189
  • master: Avoid race syncing node's info when setting rdonly #1189
  • client: follow recover handlers when closing open handler #1316
  • master: remove 5 GB left limit for disk to create datapartition #1189
  • server: if server recive kill-signal before being running-state, server will can't be killed graceful #1261

Enhance

  • master: not do ttl & updateSize for hot vol #212
  • master: support disk, datanode, metanode decommission
  • client: add cli-command for cold volume #212
  • master: ec-volume can't be deleted if size not equal 0 #212
  • client: add cfs-cli request parameters #212
  • client: add scan cli #212
  • master: add volume type to newVolCreateCmd #212
  • master: not support force delete cold volume #212
  • datanode: add cfg diskRdonlySpace for datanode #1353
  • datanode: use os.ReadDir instead of ioutil.ReadDir #1438
  • datanode: improve performance of write. data allocated didn't put back to buffer pool #1438
  • datanode: reduce datanode cpu usage #1438
  • datanode: remove unnecessary json unmarshal when getting local extents #1438
  • datanode: reduce datanode cpu usage by eliminate file seeks #1438
  • client: mitigate the pain of extents fragmentation #1318

v2.4.3

2 years ago

Enhance

  • Improved the stability and performance of data partition migration significantly.

What's Changed

Full Changelog: https://github.com/cubeFS/cubefs/compare/v2.4.1...v2.4.3