最近老馮在構建 Pigsty 離線包的時候發現,在本地測試的時候安裝的 PostgreSQL 版本不太對,17.4 比最新的 17.5 落后了一個小版本。而且在 EL10 上測試的時候發現有幾個倉庫報錯了。奇怪的是,在香港使用全球默認倉庫沒問題,一旦在本地使用中國的鏡像站就報錯。
![]()
仔細一看,發現國內的鏡像站點都與 PostgreSQL 上游倉庫失去同步了:清華大學開源軟件鏡像站(TUNA)最后一次成功同步是5月16號,而阿里云阿里云鏡像站最后的同步時間戳是 2025 年 3-31。國外的鏡像站,比如 mirrors.xtom.de 也出現了這種問題,最后一次同步是 6月20日,但也明顯可以看出手動更新與脫離同步的痕跡。
![]()
我搜索了一下,發現了在 PostgreSQL 郵件列表里 5月20日已經有韓國鏡像站的維護者問了這個問題了,鏡像站的維護者問之前用 rsync 同步 PGDG 官方倉庫怎么突然斷了?
PostgreSQL 貢獻者之一的 Dave Page 回復到因為有大量的非法流量涌入 —— 他們決定永久關閉了原來非正式的 FTP 服務器,不再提供 rsync 同步選項,只允許通過 HTTP 訪問了。
![]()
PostgreSQL 作為世界上最流行的數據庫軟件,絕大多數用戶都是通過 PGDG 官方倉庫下載安裝預制的二進制成品軟件,而非從源碼編譯。而這個倉庫就托管在兩臺物理機上 —— 根據 PostgreSQL Infra Team 的統計,大概每天有 六千六百萬的請求(約每秒 750 次下載),每天約 10 TB 的數據傳輸。
![]()
https://www.pgevents.ca/events/pgconfdev2025/schedule/session/385-designing-and-implementing-a-monitoring-feature-in-postgresql/
而且這個決定就是在 PGConf.Dev 2025 最后一天進行的,他們還有個演講,說本來有四臺服務器,現在就剩兩臺了,前面套了個 CDN。然后一看這個流量太大吃不住,咔嚓一下 rsync / ftp 一關,全世界的 PostgreSQL 下游倉庫都斷了。 老實說,老馮覺得這是一件很扯淡的事情 —— 你把這些鏡像站都擋在外面,用戶到時候直接涌入原始上游,那流量不是更大了么。
![]()
但老實說,你還真沒法苛責他們什么,因為這就是開源的 STYLE —— 沒有質保 —— 畢竟人家也沒收錢,開發者沒有義務去一直做慈善。但從另一個角度來說這還真是卡了一把全球用戶的脖子:比如 17.5 修復的 CVE 漏洞,如果是用鏡像站的用戶,可能就沒法及時更新了。
老馮已經把這個問題反饋給了 阿里云鏡像站和 清華TUNA 鏡像站的維護者,看看最近能不能修復。比如用 HTTP 去拉取更新。如果短時間內沒法解決,老馮準備自己也把 PGDG 的倉庫給拉下來一部分,丟到 Cloudflare 上先做一個鏡像站。
![]()
從供應鏈安全的角度來看,Fork 魔改一個 PG 內核確實沒什么卵用。但維護一個自己控制的軟件二進制制成品倉庫對于運維自主可控確實有著關鍵意義。
![]()
老馮也一直在想要不自己在國內弄個鏡像站點,畢竟都已經搞了一個 Pigsty APT/YUM 倉庫,多放個 PG 也不是什么事兒。但其實阿里云和 TUNA 之前一直做的都不錯,所以一直也都是用的這兩家作為國內用戶的默認配置。
至于長期來看,其實俺重新編譯打包弄一個專門的 PostgreSQL 倉庫也未嘗不可,畢竟最近老馮也打包了好幾種 PG 分支內核,還有 PG 生態中 PGDG 沒有收錄的 250 多個擴展。在構建 APT / YUM 倉庫上已經是骨灰級打包俠了。不過,主要的問題還是維護太費時間,而且國內的流量費也太貴了。不過如果有金主贊助贊助不限流量的大帶寬服務器,老馮也很樂意額外用愛發發電。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.