在 JuiceFS 開源一週年之際,我們迎來了首個里程碑版本 JuiceFS v1.0.0 Beta1,並將開源許可從 AGPL v3 修改為 Apache License 2.0。
JuiceFS v1.0.0 Beta1 是一個在生產環境中充分驗證迭代的產物,在延續 JuiceFS 一貫開放、安全、穩定、可靠的品質之上,進一步提供一系列緊貼使用者需求的全新功能。
亮點一:回收站
資料誤刪這樣的情況總是在你我身邊一次又一次上演,週期性備份尚且無法根治,我們需要的是讓刪除操作可以有迴旋的餘地。
今天,JuiceFS 正式解鎖這項對於資料保護來說非常重要的功能——回收站。
從 JuiceFS v1.0.0 Beta1 開始,檔案系統預設開啟回收站,任何對檔案的刪除都會先被移動到回收站,可以隨時找回誤刪的檔案。
如果你的 JuiceFS 檔案系統經常產生刪除操作,回收站可能會佔據很多的空間(預設保留最近 1 天的刪除資料),你可以調整設定讓 JuiceFS 定期清理回收站中的檔案。
對於新建立的檔案系統,可以在 format
命令中指定 --trash-days
選項,比如 --trash-days 3
代表回收站自動清理存放超過 3 天的檔案。
對於已經在用的檔案系統,可以通過新增的 config
命令調整回收站清理規則,例如:
$ juicefs config "postgres://user:$PG_PASSWD@127.0.0.1:5432/jfs1" --trash-days 3
關於回收站的詳細介紹,請檢視 JuiceFS 官方文件。
亮點二:後設資料自動備份
對於資料和後設資料分離儲存的分散式檔案系統,後設資料的安全和完整直接決定了整個儲存系統的安全和完整。
於我們而言,資料安全絕不是目標,而是始終盡心捍衛的底線。
早在 JuiceFS v0.15.2 我們就增加了備份和恢復後設資料的 dump
和 load
命令,讓使用者可以根據實際需要定期備份後設資料,從而在基礎的資料庫備份層面之上又增加了一重對後設資料的安全保障。
今天,我們又增加了一重保障——後設資料自動備份。
從 JuiceFS v1.0.0 Beta1 開始,不論檔案系統通過 mount
命令掛載,還是通過 JuiceFS S3 閘道器及 Hadoop Java SDK 訪問,每小時都會自動備份後設資料並拷貝到物件儲存。
備份檔案儲存在物件儲存的 meta
目錄中,它是一個獨立於資料儲存的目錄,在掛載點中不可見,也不會與資料儲存之間產生影響,用物件儲存的檔案瀏覽器即可檢視和管理。
預設情況下,JuiceFS 客戶端每小時備份一次後設資料,自動備份的頻率可以在掛載檔案系統時通過 mount
命令的 --backup-meta
選項進行調整,比如 --backup-meta 8h
設定每八個小時執行一次自動備份。
雖然自動備份後設資料成為了預設動作,但在多主機共享掛載同一個檔案系統時也不會發生備份衝突,因為 JuiceFS 維護了一個全域性的時間戳,確保同一時刻只有一個客戶端執行備份操作。當客戶端之間設定了不同的備份週期,那麼就會以週期最短的設定為準進行備份。
另外,JuiceFS 會按照以下規則定期清理備份:
- 保留 2 天以內全部的備份;
- 超過 2 天不足 2 周的,保留每天中的 1 個備份;
- 超過 2 周不足 2 月的,保留每週中的 1 個備份;
- 超過 2 個月的,保留每個月中的 1 個備份。
亮點三:新增 config 命令調整檔案系統配置
由於元資訊全部儲存在資料庫中,在過去,JuiceFS 檔案系統一旦建立,若需要調整檔案系統的配置要使用 format
命令進行修改,還需要帶上之前格式化檔案系統時的那些引數。再就是直接運算元據庫,在相應的資料表中小心翼翼的修改,操作不當還有可能損壞資料庫。毫無疑問,過去的幾種修改方式既麻煩,又存在一定風險。
為了解決這個問題,JuiceFS v1.0.0 Beta1 新增加了 config
命令,讓你可以通過客戶端就能修改檔案系統的基本資訊。
本次更新的 config
命令支援修改檔案系統的容量配額、inodes 配額、物件儲存及金鑰、回收站清理規則。
亮點四:新增 destroy 命令銷燬檔案系統
在之前,如果決定停用一個 JuiceFS 檔案系統,需要分別操作物件儲存和資料庫清理資料,如果資料量特別大時會十分耗費精力。
為此,JuiceFS v1.0.0 Beta1 特別新增了 destroy
命令,只需一條命令即可完成檔案系統的銷燬。
如上圖,銷燬操作除了要指定後設資料儲存的 URL 之外,還需要指定檔案系統的 UUID,這可以在一定程度上避免誤操作。
注意:銷燬檔案系統是一項高風險操作,請務必謹慎使用!
更多功能
除了上述幾項功能之外,JuiceFS v1.0.0 Beta1 還增加了以下新功能:
- 新增
--max-deletes
選項,控制並行刪除檔案的執行緒數; - 新增
--consul
選項,將監控指標 API 註冊到 Consul 中; - 新增
--keep-etag
選項,保留上傳到 S3 閘道器的物件的 ETag; - 新增
--check-all
和--check-new
選項,允許通過sync
命令同步資料時校驗資料的完整性; - sync 命令支援同步匿名訪問的物件儲存的資料
有關 JuiceFS 新版的更多內容,歡迎瞭解詳情。