CSI (CONTAINER STORAGE INTERFACE) ĐỊNH NGHĨA BA DỊCH VỤ RPC (REMOTE PROCEDURE CALL) CHÍNH MÀ MỘT DRIVER CSI PHẢI TRIỂN KHAI ĐỂ GIAO TIẾP VỚI CÁC HỆ THỐNG ĐIỀU PHỐI CONTAINER (NHƯ KUBERNETES) VÀ HỆ THỐNG LƯU TRỮ BÊN DƯỚI. BA DỊCH VỤ RPC NÀY LÀ:
IDENTITY SERVICE RPCS (DỊCH VỤ RPC NHẬN DẠNG):
MỤC ĐÍCH: CUNG CẤP THÔNG TIN CƠ BẢN VỀ DRIVER CSI. CẢ CONTROLLER PLUGIN VÀ NODE PLUGIN ĐỀU PHẢI TRIỂN KHAI DỊCH VỤ NÀY.
CÁC RPC CHÍNH:
GETPLUGININFO: TRẢ VỀ THÔNG TIN META VỀ PLUGIN, BAO GỒM TÊN DRIVER VÀ PHIÊN BẢN.
GETPLUGINCAPABILITIES: CHO PHÉP HỆ THỐNG ĐIỀU PHỐI TRUY VẤN CÁC KHẢ NĂNG CỦA PLUGIN (VÍ DỤ: CÓ HỖ TRỢ SNAPSHOT, CLONE, MỞ RỘNG VOLUME HAY KHÔNG).
PROBE: KIỂM TRA TRẠNG THÁI HOẠT ĐỘNG VÀ SỨC KHỎE CỦA PLUGIN.
CONTROLLER SERVICE RPCS (DỊCH VỤ RPC ĐIỀU KHIỂN):
MỤC ĐÍCH: CHỊU TRÁCH NHIỆM QUẢN LÝ LIFECYCLE CỦA VOLUME Ở CẤP ĐỘ CLUSTER, TƯƠNG TÁC VỚI HỆ THỐNG LƯU TRỮ BACK-END ĐỂ CẤP PHÁT, XÓA, GẮN VÀ TÁCH VOLUME. DỊCH VỤ NÀY THƯỜNG CHẠY TRÊN MỘT HOẶC MỘT VÀI NODE ĐẶC BIỆT (CONTROLLER PODS) VÀ CHỈ CẦN KẾT NỐI VỚI API CỦA HỆ THỐNG LƯU TRỮ.
CÁC RPC CHÍNH:
CREATEVOLUME: TẠO MỘT VOLUME MỚI TRÊN HỆ THỐNG LƯU TRỮ.
DELETEVOLUME: XÓA MỘT VOLUME.
CONTROLLERPUBLISHVOLUME: GẮN (ATTACH) VOLUME VÀO MỘT NODE (LÀM CHO VOLUME SẴN SÀNG CHO NODE SỬ DỤNG).
CONTROLLERUNPUBLISHVOLUME: TÁCH (DETACH) VOLUME KHỎI MỘT NODE.
VALIDATEVOLUMECAPABILITIES: KIỂM TRA XEM VOLUME CÓ ĐÁP ỨNG CÁC YÊU CẦU KHẢ NĂNG NHẤT ĐỊNH HAY KHÔNG.
LISTVOLUMES: LIỆT KÊ CÁC VOLUME HIỆN CÓ.
CONTROLLEREXPANDVOLUME: MỞ RỘNG KÍCH THƯỚC CỦA VOLUME.
CREATESNAPSHOT: TẠO ẢNH CHỤP NHANH (SNAPSHOT) CỦA VOLUME.
DELETESNAPSHOT: XÓA ẢNH CHỤP NHANH.
NODE SERVICE RPCS (DỊCH VỤ RPC NODE):
MỤC ĐÍCH: CHỊU TRÁCH NHIỆM QUẢN LÝ VOLUME TẠI CẤP ĐỘ NODE, CỤ THỂ LÀ GẮN (MOUNT) VOLUME VÀO ĐƯỜNG DẪN CỤC BỘ TRÊN NODE VÀ SAU ĐÓ VÀO CONTAINER. DỊCH VỤ NÀY PHẢI CHẠY TRÊN MỖI NODE MÀ CÁC POD CẦN SỬ DỤNG LƯU TRỮ CỦA DRIVER ĐÓ.
CÁC RPC CHÍNH:
NODEGETINFO: CUNG CẤP THÔNG TIN VỀ NODE, CHẲNG HẠN NHƯ ID NODE VÀ CÁC KHẢ NĂNG LƯU TRỮ.
NODEPUBLISHVOLUME: MOUNT VOLUME ĐÃ ĐƯỢC GẮN VÀO NODE (BẰNG CONTROLLERPUBLISHVOLUME) VÀO MỘT ĐƯỜNG DẪN CỤ THỂ TRÊN HỆ THỐNG FILE CỦA NODE, NƠI POD CÓ THỂ TRUY CẬP.
NODEUNPUBLISHVOLUME: UNMOUNT VOLUME KHỎI ĐƯỜNG DẪN TRÊN NODE.
NODESTAGEVOLUME: (TÙY CHỌN) GIAI ĐOẠN CHUẨN BỊ VOLUME TRÊN NODE TRƯỚC KHI NÓ ĐƯỢC MOUNT VÀO ĐƯỜNG DẪN CUỐI CÙNG CHO POD.
NODEUNSTAGEVOLUME: (TÙY CHỌN) HỦY BỎ GIAI ĐOẠN CHUẨN BỊ VOLUME.
NODEGETVOLUMESTATS: LẤY THỐNG KÊ SỬ DỤNG VOLUME (VÍ DỤ: DUNG LƯỢNG ĐÃ SỬ DỤNG).
NODEEXPANDVOLUME: MỞ RỘNG HỆ THỐNG FILE TRÊN VOLUME ĐÃ ĐƯỢC MOUNT VÀO NODE (NẾU VOLUME ĐÃ ĐƯỢC MỞ RỘNG Ở CẤP ĐỘ CONTROLLER).
NHỮNG DỊCH VỤ RPC NÀY ĐẢM BẢO RẰNG CÁC HỆ THỐNG ĐIỀU PHỐI CONTAINER CÓ THỂ TƯƠNG TÁC MỘT CÁCH TIÊU CHUẨN VÀ THỐNG NHẤT VỚI CÁC HỆ THỐNG LƯU TRỮ KHÁC NHAU, CHO PHÉP QUẢN LÝ VÒNG ĐỜI ĐẦY ĐỦ CỦA PERSISTENTVOLUME.