Task #999
Cập nhật bởi Tùng Nguyễn cách đây 4 tháng
Mục tiêu: Test tính năng NFs multipath cho cephfs, test khả năng HA khi kết nối multipath xem client có read/write data bình thường khi 1 NFS GW bị lỗi.
Tài liệu tham khảo:
https://jtlayton.wordpress.com/2018/12/10/deploying-an-active-active-nfs-cluster-over-cephfs/
Mô hình:
https://app.diagrams.net/#G1X_YO4-27NhNHR6IFqTAFhIKc6HIDmilN#%7B%22pageId%22%3A%22QqLJz_UdY43cYynGRTPI%22%7D
====
Cấu hình NFS-GW
OS: Ubuntu 22.04
package: nfs-ganesha nfs-ganesha-ceph nfs-ganesha-rados-grace version 3.5
===
Kết quả:
Cấu hình tạo rados_kv với 3 server nfs-ganesha, recovery pool sử dụng chung pool cephfs_metadata_12t
![](clipboard-202407301730-6skzm.png)
Test thử stop service nfs-ganesha trên nfs-ganesha7 thì các GW khác chuyển về trạng thái IN GRACE và gắn flag Enforcing sẽ reject hết tất cả request của client làm treo client kết nối.
![](clipboard-202407301732-ezo8b.png)
Khi start lại service nfs-ganesha7 thì client kết nối lại bình thường.
===
Thực hiện test lại với version 4.3-1 nhưng vẫn chưa được
![](clipboard-202408010932-avlcb.png)
===
1/8 thử test trên OS Fedora 40 nfs-ganesha 5.9 nhưng chưa được
===
2/8
Với mô hình active-active cephfs thì có thể sử dụng RecoveryBackend = rados_cluster, khai báo 1 pool ceph lưu thông tin IO của client kết nối đến 1 NFS Ganesha GW. Hiện sử dụng mode active-active sẽ không tận dụng được tính năng HA. Khi 1 NFS-GW bị down thì các GW khác sẽ reject request của tất cả client nhưng sau 90s thì thoát khỏi Grace Period state nên khiến treo Client.
- Chuyển qua sử dụng mode Active-Standby (RecoveryBackend = rados_ng;), sau 90s NFs-GW down, sẽ có 1 GW khác reclaim lại connection trước đó với client để tiếp tục sử dụng.
![](clipboard-202408050849-gzna0.png)