Ubuntu 22.04.1 LTS 安裝 SILO(MinIO 社群 fork)

更新 2026.09.21

SILO(MinIO 社群 fork)安裝與 systemd 服務設定

SILO 是由 Pigsty 社群維護的 MinIO fork,S3 與管理 API、MINIO_* 環境變數、磁碟格式都與 MinIO 相容。本文以 Linux 套件(RPM/DEB)在單機上安裝,套件已包含執行檔、systemd 服務與專用系統帳號,不需要手寫 service 檔。

一、首先準備資料目錄

#資料儲存目錄
mkdir -p /data/silo

日誌不需要另外建立目錄,服務日誌由 systemd journal 管理(見第四節)。

二、安裝

1、下載套件

到 Releases 頁面,在最新版本的 Assets 中下載對應系統與架構的套件。檔名格式如下(VERSION 為版本字串):

  • RPM:silo-VERSION-1PGSTY.ARCH.rpm
  • DEB:silo_VERSION-1PGSTY_ARCH.deb

每個發布版本都附有 SHA-256 checksum 與 GitHub build attestation,安裝前先驗證:

# 驗證 checksum(依 Release 頁面提供的 checksum 檔)
sha256sum -c CHECKSUM檔名 --ignore-missing

# 驗證 GitHub build attestation(需安裝 gh)
gh attestation verify --repo pgsty/silo 套件檔名

RPM 另外有 GPG 簽章,金鑰指紋為 9592A7BC 7A682E73 33376E09 E7935D8D B9BD8B20,匯入金鑰後才能用 rpmkeys --checksig 驗證。

2、安裝套件

# RHEL / Rocky / Fedora
sudo dnf install ./silo-VERSION-1PGSTY.x86_64.rpm

# Debian / Ubuntu
sudo apt install ./silo_VERSION-1PGSTY_amd64.deb

套件會安裝以下項目:

  • /usr/bin/silo:執行檔
  • silo.service:systemd 服務(Type=notify)
  • 建立系統帳號 silo 的 sysusers 定義
  • /etc/default/silo:設定檔(升級時不會被覆蓋)
  • LICENSE 與 NOTICE

3、設定資料目錄權限

sudo chown -R silo:silo /data/silo

若上述指令失敗,先用 id silo 確認帳號與群組名稱。

三、設定服務

1、編輯設定檔

sudo vim /etc/default/silo

silo.service 會先讀取 /etc/default/minio,再讀取 /etc/default/silo,後者的值優先。下面是單機部署的範例(實際變數以套件附的預設內容為準):

#指定資料儲存目錄(注意:這個目錄要存在且擁有相對應的權限)
MINIO_VOLUMES="/data/silo"

#監聽埠
# --address:是指定api的連接埠;--console-address:是指定控制台連接埠
MINIO_OPTS="--address :9000 --console-address :9090"

#管理員帳號與密碼,請換成自己的值,不要使用預設或範例密碼
MINIO_ROOT_USER="silo-admin"
MINIO_ROOT_PASSWORD="請換成足夠強度的密碼"

設定檔格式注意事項:

  • 這是 SILO 自己解析的格式,不是 shell 腳本,不支援變數展開與行內註解,註解必須獨立成行並以 # 開頭。
  • 未加引號的值會去除前後空白,需要保留空白時請用成對引號包住整個值。
  • 檔案內含密碼,請限制權限:
sudo chmod 600 /etc/default/silo

2、確認服務內容

systemctl cat silo

確認 EnvironmentFile、ExecStart 使用的變數與上面設定一致。

四、啟動並使用服務

#將服務設定為開機啟動並立即啟動
sudo systemctl enable --now silo

#查看服務目前狀態
systemctl status silo

#查看日誌
journalctl -u silo -f

#健康檢查(SILO 內建,正常時結束碼為 0)
silo healthcheck live

五、在瀏覽器中查看

例如我的IP位址是:192.168.30.5

在瀏覽器中輸入:http://192.168.30.5:9090

  • 使用者名稱:設定檔中的 MINIO_ROOT_USER
  • 密碼:設定檔中的 MINIO_ROOT_PASSWORD

六、從舊版 MinIO 遷移

如果已依舊版流程安裝過 MinIO(執行檔在 /usr/local/softs/minio/,資料在 /root/minio/data),可以就地換成 SILO,資料格式不需轉換:

  1. 備份資料目錄與舊的 minio.conf。
  2. 安裝 SILO 套件(第二節)。套件不會取代舊的 MinIO 安裝,但兩個服務不能同時執行;silo.service 啟動時會停止 minio.service。
  3. 把 minio.conf 的變數(MINIO_VOLUMES、MINIO_OPTS、MINIO_ROOT_USER、MINIO_ROOT_PASSWORD)搬到 /etc/default/silo。
  4. 資料原本由 root 擁有且放在 /root 底下,專用帳號 silo 無法存取。過渡期請用 drop-in 讓服務沿用原帳號,不要直接更改資料擁有者:
sudo mkdir -p /etc/systemd/system/silo.service.d
sudo vim /etc/systemd/system/silo.service.d/10-legacy-user.conf
[Service]
User=root
Group=root
sudo systemctl daemon-reload
sudo systemctl disable minio
sudo systemctl enable --now silo
  1. 確認 SILO 運作正常之前,保留舊的 MinIO 執行檔與服務檔。回退時只要停止 silo、啟動 minio,因為遷移沒有改動資料格式與擁有者。

長期建議把資料搬到專用目錄,並改用 silo 專用帳號執行,不要讓物件儲存以 root 身分運作。

七、使用注意事項

  • SILO 不會自動更新,升級請下載新版套件安裝,並先閱讀該版本的發布說明。
  • 與上游 MinIO 的相容性是盡力而為,建議固定版本、保留回退路徑。
  • 這是由社群維護的專案,與 MinIO, Inc. 無關;授權為 AGPL-3.0,商業使用前請確認條款。