這是 JuiceFS v1.0 正式發布前的第二個 beta 版本,共有 16 位社區伙伴貢獻了 150+ 次提交 ??,本次更新以 Bug 修復和穩定性提升為主,輔以大量的檔案更新和測驗用例優化,并帶來了以下新功能:
一、新增:BadgerDB 作為元資料引擎
由社區開發者秦牧羊(@diluga)發起貢獻,在 JuiceFS 插件式元資料引擎架構上新增對 BadgerDB 資料庫的支持,為 JuiceFS 元資料存盤引擎家族再添新成員!
BadgerDB 是一個 Go 語言開發的嵌入式、持久化的單機 Key-Value 資料庫,它類似 SQLite 無需安裝即可直接使用:
# 創建檔案系統
$ juicefs format badger://$HOME/badger-data test-volume
# 掛載檔案系統
$ juicefs mount -d badger://$HOME/badger-data /mnt/jfs
與 SQLite 不同之處在于,BadgerDB 的資料庫不是單檔案,而是一個目錄,在上例中,BadgerDB 在home目錄創建 badger-data 資料庫目錄,掛載檔案系統時自然也要使用這個目錄的路徑,
二、一鍵啟動 WebDAV 服務器
經過開源社區的共同努力,我們在穩定支持 FUSE-POSIX、S3-Gateway、HDFS、CSI Driver 等存盤訪問協議的基礎上,新增了 WebDAV 訪問協議,與 S3 網關的啟用方式類似,使用新增的 webdav 子命令可以一鍵啟動 WebDAV 服務器:
$ juicefs webdav redis://127.0.0.1:6379/1 localhost:9007
使用任何支持 WebDAV 協議的客戶端訪問 localhost:9007 即可讀寫 JuiceFS 檔案系統,
三、支持只讀模式連接 Redis Replicas
對于 Redis 引擎讀寫壓力較大的場景,現在支持讓部分客戶端以只讀模式連接 Sentinel 管理的 replicas,從而降低 master 節點的負載:
$ juicefs mount redis://mymaster,sentinel.local:26379?route-read=replica /mnt/jfs/ --read-only
即在 URL 中添加引數 route-read=replica 指定該客戶端自動從 Redis replicas 讀取元資料,
需要注意的是,由于 Redis replica 使用異步更新機制,設定了只讀的客戶端有時可能會讀到較舊版本的元資料,
四、更清晰的客戶端幫助資訊
隨著用戶規模的不斷擴大,我們發現想讓各種經驗背景的用戶都能更好地使用 JuiceFS,一方面需要友好的檔案,另一方面要增強 JuiceFS 客戶端本身的命令幫助資訊,特別是后者,如果問題可以在命令列里得到解決就能大大提升用戶的使用體驗,
有鑒于此,在本次更新的版本中我們針對客戶端的幫助資訊做了以下改進:
- 清晰的分類
- ADMIN:用來管理 JuiceFS volumes,如 format、destroy、gc 等
- INSPECTOR:用來檢視 JuiceFS 的內部狀態,如 stats、profile 等
- SERVICE:用來啟動特定的服務,如 mount、gateway 等
- TOOL:用做特定需求的獨立工具,如 bench、warmup 等
- 詳盡的說明:大部分命令增加了具體說明和使用示例
五、防止誤操作
社區群組的討論向我們證明了一件事:即便是經驗豐富的老手,也不免會“做傻事”!特別是在創建和修改檔案系統時,一些不經意的誤操作可能會覆寫舊資料或導致錯誤的設定,
針對這些可能涉及資料安全的操作,我們一直在完善相應的安全檢查機制,本次新增的安全機制有:
- 唯一性檢查:檢查并禁止在同一個 Bucket 上創建同名檔案系統,
- 防止非法引數:修改檔案系統引數時,
config命令會盡量提前判斷新引數是否合理,避免不合法的引數配置, - 隱藏敏感資訊:當連接元資料引擎需要密碼時,隱藏掉
ps顯示的行程密碼引數,
修復的 Bug
- cmd: fix buffer-size in gc and fsck (#1316)
- cmd/bench: convert PATH to absolute path (#1305)
- meta: return EROFS as soon as possible (#1477)
- meta/redis: fix leaked inodes in Redis (#1353)
- meta/tkv: fix divide by zero error when dumping meta (#1369)
- meta/tikv: fix scan of tikv, limiting the upperbound (#1455)
- meta/memkv: fix scanKeys, returning a sorted list (#1381)
- meta/sql: delete warning message for empty directory (#1442)
- meta/sql: fix return value of mustInsert (#1429)
- vfs: fixed deadlock when truncate a released file handle. (#1383)
- vfs/trash: fix access to trash dir (#1356)
- vfs/backup: skip dir objects when scanning meta backups (#1370)
- vfs/backup: fix incorrect inode number when using subdir (#1385)
- utils: fix the contention between progress bar and logger (#1436)
- Windows: fix rename fails because the chunk file is still open (#1315)
- Windows: fix mkdir on windows platform (#1327)
- SDK: hadoop: fix umask apply (#1338, #1394)
- SDK: hadoop: fix libjfs.so load bug (#1458)
- other: fix legend of "Operations" panel in Grafana template (#1321)
如有幫助的話歡迎關注我們專案 Juicedata/JuiceFS 喲! (0?0?)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/440471.html
標籤:其他
上一篇:SQL優化
