文件

部署 MinIO:單節點多硬碟

此頁面上的程序涵蓋在單節點多硬碟 (SNMD) 配置中部署 MinIO。 SNMD 部署提供硬碟層級的可靠性和故障轉移/復原,但效能和擴展受到單一節點的限制。

對於生產環境,MinIO 強烈建議使用 多節點多硬碟(分散式) 拓撲進行部署,以獲得企業級效能、可用性和可擴展性。

先決條件

儲存需求

以下需求總結了 MinIO 硬體建議的儲存部分

使用本機儲存

直接附加儲存 (DAS) 比網路儲存(NASSANNFS)具有顯著的效能和一致性優勢。 MinIO 強烈建議將快閃儲存 (NVMe, SSD) 用於主要或「熱」資料。

使用 XFS 格式化硬碟

MinIO 強烈建議為儲存配置 XFS 格式化的硬碟。 MinIO 使用 XFS 作為內部測試和驗證套件的一部分,以提高在所有規模下的效能和行為的信心。

MinIO 測試也不建議任何其他檔案系統,例如 EXT4、BTRFS 或 ZFS。

使用一致的硬碟類型

MinIO 不區分硬碟類型,也不會從混合儲存類型中受益。每個集區都必須使用相同的類型 (NVMe, SSD)

例如,部署一個僅由 NVMe 硬碟組成的集區。如果您將某些硬碟部署為 SSD 或 HDD,MinIO 會將這些硬碟視為與 NVMe 硬碟相同。這可能會導致效能問題,因為某些硬碟具有不同或更差的讀/寫特性,並且無法以與 NVMe 硬碟相同的速率響應。

使用一致的硬碟大小

MinIO 將每個硬碟使用的容量限制為部署中最小的硬碟。

例如,部署一個由相同數量的 NVMe 硬碟組成的集區,這些硬碟具有相同的 7.68TiB 容量。如果您部署一個容量為 3.84TiB 的硬碟,MinIO 會將集區中的所有硬碟都視為具有較小的容量。

設定循序硬碟掛載

MinIO 使用 Go 擴展符號 {x...y} 來表示建立新部署時的一系列循序硬碟,其中部署中的所有節點都具有相同的一組已掛載硬碟。將硬碟掛載路徑配置為循序系列,以最好地支援此符號。例如,使用 /mnt/drive-n 的模式掛載硬碟,其中 n1 開始,並且每個硬碟遞增 1

跨重新啟動持久化掛載和映射磁碟機

使用 /etc/fstab 以確保在節點重新啟動時,磁碟機到掛載點的映射保持一致。

非 Linux 作業系統應使用對應的磁碟機掛載管理工具。

磁碟機的獨佔存取權

MinIO 要求 獨佔 存取權給予物件儲存的磁碟機或磁碟區。其他任何程序、軟體、腳本或人員都不應直接對提供給 MinIO 的磁碟機或磁碟區,或者 MinIO 放置在上面的物件或檔案執行任何操作。

除非 MinIO 工程部門指示,否則請勿使用腳本或工具直接修改、刪除或移動所提供磁碟機上的任何資料分片、同位分片或中繼資料檔案,包括從一個磁碟機或節點移動到另一個磁碟機或節點。此類操作極有可能導致廣泛的損壞和資料遺失,超出 MinIO 的修復能力。

記憶體需求

版本變更自 RELEASE.2024-01-28T22-35-53Z: MinIO 在啟動時會預先配置 2GiB 的系統記憶體。

MinIO 建議每個主機至少有 32GiB 的記憶體。請參閱 記憶體,以取得有關 MinIO 中記憶體配置的更多指導。

部署單節點多磁碟機 MinIO

以下程序部署由單個 MinIO 伺服器和多個磁碟機或儲存磁碟區組成的 MinIO。

1) 下載 MinIO 伺服器

開啟終端機並執行以下命令,使用 Homebrew 安裝最新的穩定版 MinIO 套件。

brew install minio/stable/minio

重要

如果您先前使用 brew install minio 安裝了 MinIO 伺服器,我們建議您改從 minio/stable/minio 重新安裝。

brew uninstall minio
brew install minio/stable/minio

開啟終端機,然後使用以下命令下載最新的穩定版 MinIO 二進位檔,將其設定為可執行檔,並將其安裝到系統 $PATH

curl -O https://dl.min.io/server/minio/release/darwin-arm64/minio
chmod +x ./minio
sudo mv ./minio /usr/local/bin/

開啟終端機,然後使用以下命令下載最新的穩定版 MinIO 二進位檔,將其設定為可執行檔,並將其安裝到系統 $PATH

curl -O https://dl.min.io/server/minio/release/darwin-amd64/minio
chmod +x ./minio
sudo mv ./minio /usr/local/bin/

2) 建立環境變數檔案

/etc/default/minio 建立一個環境變數檔案。對於 Windows 主機,請指定類似於 C:\minio\config 的 Windows 樣式路徑。MinIO 伺服器容器可以使用此檔案作為所有 環境變數 的來源。

以下範例提供一個起始環境檔案

# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server.
# This user has unrestricted permissions to perform S3 and administrative API operations on any resource in the deployment.
# Omit to use the default values 'minioadmin:minioadmin'.
# MinIO recommends setting non-default values as a best practice, regardless of environment.

MINIO_ROOT_USER=myminioadmin
MINIO_ROOT_PASSWORD=minio-secret-key-change-me

# MINIO_VOLUMES sets the storage volumes or paths to use for the MinIO server.
# The specified path uses MinIO expansion notation to denote a sequential series of drives between 1 and 4, inclusive.
# All drives or paths included in the expanded drive list must exist *and* be empty or freshly formatted for MinIO to start successfully.

MINIO_VOLUMES="/data-{1...4}"

# MINIO_OPTS sets any additional commandline options to pass to the MinIO server.
# For example, `--console-address :9001` sets the MinIO Console listen port
MINIO_OPTS="--console-address :9001"

根據本機部署的需要,包含任何其他環境變數。 ..

版本新增自伺服器:RELEASE.2024-03-03T17-50-39Z

如果所有以下條件都成立,MinIO 會自動產生唯一的根憑證

  • KES 版本 2024-03-01T18-06-46Z 或更新版本正在執行

  • 尚未定義

    • MINIO_ROOT_USER 變數

    • MINIO_ROOT_PASSWORD 變數

  • :

當啟動時滿足這些條件時,MinIO 會使用 KMS 為部署產生唯一的根憑證,並使用 基於雜湊訊息驗證碼 (HMAC)

如果 MinIO 產生了此類憑證,則用於產生憑證的金鑰必須保持不變繼續存在。部署中的所有資料都使用此金鑰加密!

若要輪換產生的根憑證,請在 KMS 中產生新金鑰,然後使用新金鑰更新 MINIO_KMS_KES_KEY_NAME 的值。

3) 啟動 MinIO 部署

在本地主機上執行以下命令,以將 MinIO SNSD 部署作為前景程序啟動。您必須保持 Shell 或終端機工作階段開啟,以保持程序執行。

從終端機使用 minio server~/data 資料夾中啟動本機 MinIO 執行個體。如果需要,您可以將 ~/data 替換為使用者對 MinIO 執行個體具有讀取、寫入和刪除存取權的其他位置。

export MINIO_CONFIG_ENV_FILE=/etc/default/minio
minio server --console-address :9001
Status:         1 Online, 0 Offline.
API: http://192.168.2.100:9000  http://127.0.0.1:9000
RootUser: myminioadmin
RootPass: minio-secret-key-change-me
Console: http://192.168.2.100:9001 http://127.0.0.1:9001
RootUser: myminioadmin
RootPass: minio-secret-key-change-me

Command-line: https://minio.dev.org.tw/docs/minio/linux/reference/minio-mc.html
   $ mc alias set myminio http://10.0.2.100:9000 myminioadmin minio-secret-key-change-me

Documentation: https://minio.dev.org.tw/docs/minio/linux/index.html

API 區塊列出用戶端可以存取 MinIO S3 API 的網路介面和連接埠。Console 區塊列出用戶端可以存取 MinIO Web 主控台的網路介面和連接埠。

4) 連線到 MinIO 部署

您可以在慣用的瀏覽器中輸入 MinIO 伺服器 Console 區塊中的任何主機名稱或 IP 位址,例如 https://127.0.0.1:9001,來存取 MinIO 主控台。

使用在指定給容器的環境檔案中配置的 MINIO_ROOT_USERMINIO_ROOT_PASSWORD 登入。

MinIO Console displaying Buckets view in a fresh installation

您可以使用 MinIO 主控台執行一般管理工作,例如身分和存取管理、指標和記錄監視或伺服器組態。每個 MinIO 伺服器都包含其自己的內嵌 MinIO 主控台。

如果您的本機主機防火牆允許外部存取主控台連接埠,則同一網路上的其他主機可以使用本機主機的 IP 或主機名稱來存取主控台。

您可以使用 MinIO 用戶端 (mc) 通過終端機或 Shell 存取 MinIO 部署。請參閱 MinIO 用戶端安裝快速入門,以取得有關安裝 mc 的說明。

建立與 MinIO 部署對應的新 別名。指定 MinIO 伺服器 API 區塊中的任何主機名稱或 IP 位址,例如 https://127.0.0.1:9000

mc alias set myminio https://127.0.0.1:9000 myminioadmin minio-secret-key-change-me
  • myminio 替換為要用於別名的所需名稱。

  • myminioadmin 替換為指定給容器的環境檔案中的 MINIO_ROOT_USER 值。

  • minio-secret-key-change-me 替換為指定給容器的環境檔案中的 MINIO_ROOT_PASSWORD 值。

然後,您可以使用任何 mc 命令與容器互動。如果您的本機主機防火牆允許外部存取 MinIO S3 API 連接埠,則同一網路上的其他主機可以使用本機主機的 IP 或主機名稱來存取 MinIO 部署。