# NFS install 本文件說明如何在 Ubuntu 環境下部署 NFS以及如何做 HA ## 1. NFS Server 安裝 安裝 nfs-kernel-server ```shell sudo apt update sudo apt install -y nfs-kernel-server systemctl status nfs-server ``` 建立共享目錄並給權限 ```shell sudo mkdir -p /srv/nfs/dags sudo mkdir -p /srv/nfs/logs sudo chown -R nobody:nogroup /srv/nfs sudo chmod -R 0775 /srv/nfs sudo mkdir -p /srv/nfs/airflow sudo chown nobody:nogroup /srv/nfs/airflow sudo chmod 777 /srv/nfs/airflow ``` 設定 exports ```shell sudo vi /etc/exports ``` /etc/exports: ``` /srv/nfs/dags 10.10.0.0/16(rw,sync,no_subtree_check,no_root_squash) /srv/nfs/logs 10.10.0.0/16(rw,sync,no_subtree_check,no_root_squash) /srv/nfs/airflow 10.10.0.0/16(rw,sync,no_subtree_check,no_root_squash) ``` 套用設定 ```shell sudo exportfs -ra ``` 防火牆設定(如果有) - 2049/tcp(一定要) - bind(111) ```shell sudo ufw allow from 10.10.0.0/16 to any port 2049 sudo ufw allow 111 ``` --- ## 2. NFS Client 安裝 安裝 nfs-common (以便在 Worker 節點上進行除錯或掛載測試) ```shell sudo apt install -y nfs-common ``` > **注意**: DAGs 與 Logs 的 PV/PVC 設定已整合至 **[Airflow 部署指南](../10-airflow-install-guide.md)** 中,此處不再重複。 ## 3. HA 建置 NFS 本身不提供資料層 HA, 最簡單方式是透過「VIP 作為存取入口」與「資料同步機制」實現可維運的高可用。 - 切換server ip為先前設置的VIP - dags 添加同步機制 - Git - 所有 NFS 都 git pull - 切換前補一次 pull 即可 - 部署時 rsync - 你發佈 DAG 時,順手同步另一台 - 沒有背景機制、最好理解 - 定期 rsync(10~60 秒) - 半自動 - RPO = 同步週期 - 以部署時rsync為範例: ```shell for host in 10.10.0.85 10.10.0.87 10.10.0.89; do rsync -az --delete /srv/nfs/dags/ ${host}:/srv/nfs/dags/ done ``` - Airflow logs 屬於過程性資料, 在 NFS 切換後重新產生即可,不強制做資料同步。 若有長期保存需求,應導入集中式日誌系統(ELK / Loki)。