Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 

2.1 KiB

NFS install

本文件說明如何在 Ubuntu 環境下部署 NFS以及如何做 HA

1. NFS Server 安裝

安裝 nfs-kernel-server

sudo apt update
sudo apt install -y nfs-kernel-server

systemctl status nfs-server

建立共享目錄並給權限

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

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)

套用設定

sudo exportfs -ra

防火牆設定(如果有)

  • 2049/tcp(一定要)
  • bind(111)
sudo ufw allow from 10.10.0.0/16 to any port 2049
sudo ufw allow 111

2. NFS Client 安裝

安裝 nfs-common (以便在 Worker 節點上進行除錯或掛載測試)

sudo apt install -y nfs-common

注意: DAGs 與 Logs 的 PV/PVC 設定已整合至 Airflow 部署指南 中,此處不再重複。

3. HA 建置

NFS 本身不提供資料層 HA, 最簡單方式是透過「VIP 作為存取入口」與「資料同步機制」實現可維運的高可用。

  • 切換server ip為先前設置的VIP

  • dags 添加同步機制

    • Git
      • 所有 NFS 都 git pull
      • 切換前補一次 pull 即可
    • 部署時 rsync
      • 你發佈 DAG 時,順手同步另一台
      • 沒有背景機制、最好理解
    • 定期 rsync(10~60 秒)
      • 半自動
      • RPO = 同步週期
  • 以部署時rsync為範例:

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)。