MinIO的搭建

1.MinIO概念

MinIO是在GUN Affero通用公共許可證v3.0下發布的高性能的對象存儲。它是與Amazon S3云存儲服務兼容的API。使用MinIO為機器學習、分析和隱月宮程序數據工作負載構建高性能基礎架構。
MinIO對象存儲使用buckets(桶)來組織對象,桶類似于文件系統中的目錄/文件夾,可以存放任意數量的對象,它提供與 AWS S3 buckets 相同的功能。
bucket多版本存儲:MinIO支持同一個對象在一個桶中存在多個版本。

2.MinIO在CentOS 8上搭建

安裝(rpm方法):

  • MinIO Server
dnf install https://dl.min.io/server/minio/release/linux-amd64/minio-20210825004118.0.0.x86_64.rpm
  • MinIO Client
dnf install https://dl.min.io/client/mc/release/linux-amd64/mcli-20210727064619.0.0.x86_64.rpm
  • python minio SDK
pip install minio(需要更新系統)

啟動:

  • 添加環境變量
vim ~/.bash_profile
給path參數添加/usr/local/bin/
  • Server端
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password minio server /mnt/data --console-address ":9001"
  • Client端
mcli alias set myminio/ http://MINIO-SERVER MYUSER MYPASSWORD

添加防火墻端口9000和9001

firewall-cmd --permanent --add-port=9001/tcp --add-port=9000/tcp
firewall-cmd --reload

添加主機名

vim /etc/hosts
192.168.1.128 server1

之后就可以通過 server1:9000 來訪問 MinIO 控制臺了
后續還可以通過server2、server3來命名其他主機,從而可以通過server{1…3}來指定3個服務器。

3.分布式部署

條件:

  • 大于等于4個 drives/volumes
  • 由1-n個minio server 進程管理

特點:

  • 每個MinIO服務器都擁有完整的分布式拓撲圖,應用可以連接到部署中的任一臺節點,并執行S3 操作
  • 默認應用糾刪碼,提供健壯性,對象級的恢復比相似計數如RAID或復制,開銷更小
  • 基于配置好的 erasure code parity, 分布式部署m 服務器和n 磁盤每服務器可以在m/2 服務器上或 m*n/2個磁盤驅動上正常運行
  • 服務器端對象復制
  • 一次寫入多次讀鎖定
  • 對象版本控制

部署條件:

  • 網絡條件:節點間的雙向網絡通聯
  • 主機名:要求使用【序列編號】的主機名,需要構建必要的DNS主機名映射表
    例如:
    minio1.example.com
    minio2.example.com
    minio3.example.com
    minio4.example.com
  • 磁盤陣列:
    • 強烈推薦使用 JBOD 陣列(沒有冗余,區別于RAID),使用 RAID 不能提供minio附加的恢復和可用性優勢,并且會降低系統性能。
    • 推薦 xfs 格式的驅動,性能最佳
    • 在每個節點部署中,需要使用序列號編碼的驅動,且序號在不同節點間是可復制的。
      例如 4-drive/node 部署:
      /mnt/disk1
      /mnt/disk2
      /mnt/disk3
      /mnt/disk4
    • MinIO嚴格的 read-after-write 和 list-after-write 約束模型要求本地磁盤文件系統(例如xfs, ext4, 等)。
    • 對于NFS 或其他 網絡訪問存儲卷 minio不提供一致性
    • 如果部署需要使用網絡訪問存儲,NFSv4 是最好的選擇

部署

  1. 給每個節點安裝MinIO
  2. 添加TLS/SSL 證書
    MinIO 在MinIO Certs目錄探測到一個x.509 證書(.crt)和私鑰(.key)后,自動應用 TLS 1.2+
    certs在Linux上的 ${HOME}/.minio/certs中
    使用命令 minio server --cert-dir,可以覆蓋證書目錄參數
    (此過程是可選,但強烈建議)
  3. 運行 MinIO服務器進程
    在每個部署的節點上執行以下命令
    (部署了4個節點,主機名序列化:minio1.example, minio2.example, etc.)
    (每個節點由2個本地符屬磁盤,以序列化命名:/mnt/disk1, /mnt/disk2)
export MINIO_ROOT_USER = minio-u234
export MINIO_ROOT_PASSWORD=minio-secret-key-CHANGE-ME
*#export MINIO_SERVER_URL=https://minio.example.net*  *#export MINIO_KMS_SECRET_KEY=my-minio-encryption-key:bXltaW5pb2VuY3J5cHRpb25rZXljaGFuZ2VtZTEyMwo*
minio server [<u>https://minio{1…4}.example/mnt/disk{1…2}/</u>](https://minio{1…4}.example/mnt/disk{1…2}/) --console-address ":9001"

其中:

參數 含義
MINIO_ROOT_USER root 用戶的 access key
MINIO_ROOT_PASSWORD root 用戶的 secret key
MINIO_SERVER_URL MinIO Console 用于連接MinIO 服務器的 URL 主機名。如果指定不包含MinIO服務器主機IP地址的TLS 證書作為主題別名,則需要此變量。指定 TLS 證書SAN 條目中的一個覆蓋的主機名
MINIO_KMS_SECRET_KEY 用于加密MinIO后端的key。在生產環境中不要使用該設置,推薦使用MinIO 密鑰加密服務(KES)和外部密鑰管理系統(KMS)來應用加密功能。用 MINIO_KMS_KES_KEY_NAME 指定加密key的名字。(See KMS IAM/Config Encryption for more information.)
為所有節點指定相同加密key,
格式:<key-name>:<encryption-key>
key-name:隨意的字符串,如果之后你用專用KMS來管理加密keys,則必須指定,
encryption-key:32位 base64編碼的值,例如:
cat /dev/urandom |head -c 32 |base64 -
將這個key復制到安全的位置。MinIO需要用這個key來解碼后端
  1. 訪問 MinIO Console
    打開瀏覽器訪問任意MinIO hostnames 端口號9001來打開 MinIO Console 登陸界面,用 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD登陸
  2. 下一步
    用mcli 創建別名(alias
    創建用戶和策略來做訪問控制 Create users and policies to control access to the deployment.

推薦配置

  • 部署最小節點數:每個 server pool 最少4個節點和每服務器4 drives,該部署最多可以丟失4 drive和1個節點
  • 服務器硬件:
參數 配置
處理器 Dual Intel Xeon Scalable Gold CPUs with 8 cores per socket
內存 128GB of Memory per pod
網絡 Minimum of 25GbE NIC and supporting network infrastructure between nodes.
硬盤 SATA/SAS NVMe/SSD with a minimum of 8 drives per server.
Drives should be JBOD arrays with no RAID or similar technologies. MinIO recommends XFS formatting for best performance.
  • 網絡:
NIC bandwidth (Gbps) Estimated Aggregated Storage Throughput (GBps)
10GbE 1GBps
25GbE 2.5GBps
50GbE 5GBps
100GbE 10GBps
  • CPU分配:
Host NIC Bandwidth Recommended Pod vCPU
10GbE or less 8 vCPU per pod.
25GbE 16 vCPU per pod.
50GbE 32 vCPU per pod.
100GbE 64 vCPU per pod.
  • 內存分配
Total Host Storage Recommended Host Memory
Up to 1 Tebibyte (Ti) 8GiB
Up to 10 Tebibyte (Ti) 16GiB
Up to 100 Tebibyte (Ti) 32GiB
Up to 1 Pebibyte (Pi) 64GiB
More than 1 Pebibyte (Pi) 128GiB
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,837評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,196評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,688評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,654評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,456評論 6 406
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,955評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,044評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,195評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,725評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,608評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,802評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,318評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,048評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,422評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,673評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,424評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,762評論 2 372

推薦閱讀更多精彩內容