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,資料格式不需轉換:
- 備份資料目錄與舊的
minio.conf。 - 安裝 SILO 套件(第二節)。套件不會取代舊的 MinIO 安裝,但兩個服務不能同時執行;
silo.service啟動時會停止minio.service。 - 把
minio.conf的變數(MINIO_VOLUMES、MINIO_OPTS、MINIO_ROOT_USER、MINIO_ROOT_PASSWORD)搬到/etc/default/silo。 - 資料原本由 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
- 確認 SILO 運作正常之前,保留舊的 MinIO 執行檔與服務檔。回退時只要停止
silo、啟動minio,因為遷移沒有改動資料格式與擁有者。
長期建議把資料搬到專用目錄,並改用 silo 專用帳號執行,不要讓物件儲存以 root 身分運作。
七、使用注意事項
- SILO 不會自動更新,升級請下載新版套件安裝,並先閱讀該版本的發布說明。
- 與上游 MinIO 的相容性是盡力而為,建議固定版本、保留回退路徑。
- 這是由社群維護的專案,與 MinIO, Inc. 無關;授權為 AGPL-3.0,商業使用前請確認條款。