准備工作
1.尋找國外minio官網,並安裝minio
2.格式化並掛載好硬盤
3.centos系統需要打開端口
4.下載配置mc和Prometheus(非必需)
安裝
安裝前准備,文件夾創建,控制台登入root賬戶(sudo su
)並進入根目錄(cd /
)
創建運行文件夾(mkdir /opt/minio
)
創建存儲文件夾(mkdir /mnt/minio
),進入后創建子文件夾data1
下載並賦予權限,進入運行文件夾
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
掛載硬盤
查看主機內存在的所有硬盤(fdisk -l
)
新掛載的硬盤可以根據大小區分'舉例sdf這塊盤',當運行格式化命令后(mkfs -t ext4 /dev/sdf
),運行(blkid
)可以查看到UUID,此時將硬盤掛載到儲存文件夾下的子文件夾data1。運行vim /etc/fstab
按 i 末尾追加UUID=d765d835-4989-4bff-8ae8-116c654d4bba /mnt/minio/data1 ext4 defaults 0 2
. 保存后重啟(reboot
).
測試運行minio
單機單磁盤
運行netstat -anpt
查看9000 9001端口是否被使用,docker容器容易占用。當然了,console和API使用的端口都是可以自由設置的,我只是用常見的9000和9001舉例。
進入運行文件夾,輸入 ./minio server --console-address :9001 --address :9000 >minio.log /mnt/minio/data1
./minio代表剛才下載並附權的那個文件。 --console-address :9001 代表將console頁面指定為9001端口訪問。 -- address :9000 指定API訪問端口。 >minio.log 表示當前文件夾下創建了一個日志文件。 /mnt/minio/data1表示指明在儲存文件夾里的位置
此模式下,不能自由的創建桶,個人使用的話可以手動在儲存文件夾下創建文件夾,即創建了桶。
單機多磁盤與分布式
單機多磁盤,4塊或4的倍數塊相同大小的磁盤。並自動引入糾刪碼模式。
./minio server --console-address :9001 --address :9000 >minio.log /mnt/minio/data1 /mnt/minio/data2 /mnt/minio/data3 /mnt/minio/data4
分布式部署,至少四個節點,運行相同minio配置。也是自動引入糾刪碼模式。
多節點分布式(節點為10.10.5.200~10.10.5.203 文件夾都為data1~data4)四個節點依次運行相同命令。(節點中相近版本可以組成分布式,沒限制必須所有節點minio版本一致)
./minio server --console-address :9001 --address :9000 >minio.log http:10.10.5.{200...203}/mnt/minio/data{1...4}
分布式部署還可以使用第五個節點對上述四點進行負載均衡配置,合並成一個連接訪問。
正式運行
在運行文件夾下執行vim startminio.sh
,
#!/bin/bash
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=12345678
/opt/minio/minio server --console-address :9001 --address :9000 /mnt/minio/data{1...4} >minio.log
賦予權限
chmod +x startminio.sh
創建開機執行服務
vim /usr/lib/systemd/system/minio.service
[Unit]
Description=Minio server
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/minio/startminio.sh
# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300
# Place temp files in a secure directory, not /tmp
PrivateTmp=true
[Install]
WantedBy=multi-user.target
賦予權限並開機啟動
chmod 644 /usr/lib/systemd/system/minio.service
systemctl daemon-reload
systemctl start minio.service
systemctl enable minio.service
打開防火牆中的9000與9001端口
查看狀態
systemctl status firewalld
查看已開放端口
firewall-cmd --list-all
開放9000端口
firewall-cmd --zone=public --add-port=9000/tcp --permanent
防火牆重載
firewall-cmd --reload
此時訪問http://10.10.5.200:9001,登錄admin,12345678,可以使用
安裝mc
還是進入國外minio官網,進入下載,附權,運行
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
./mc alias set myminio/ http://0.0.0.0:9000 admin 12345678
安裝運行Prometheus
下載,解壓,調整配置,運行
wget https://github.com/prometheus/prometheus/releases/download/v2.33.4/prometheus-2.33.4.linux-amd64.tar.gz
tar xvfz prometheus-2.33.4.linux-amd64.tar.gz.tar.gz
cd prometheus-2.33.4.linux-amd64
/opt/minio/mc admin prometheus generate myminio
這里的myminio是前文(./mc alias set myminio)中設置的。
復制scrape_configs之后的內容,追加到prometheus.yml末尾,注意格式縮進
scrape_configs:
- job_name: minio-job
bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQ3OTkzNTcwMDUsImlzcyI6InByb21ldGhldXMiLCJzdWIiOiJhZG1pbiJ9.7o0ewFRd7EbwWneh0Vg09R4UljwAL4B0zUKovBwWPlVfPkGxSe2l_DNnDPO-jwGBcn77LsxOaldRww7YAIlJjA
metrics_path: /minio/v2/metrics/cluster
scheme: http
static_configs:
- targets: ['0.0.0.0:9000']