MinIO是一个对象存储解决方案,它提供了一个与Amazon Web Services S3兼容的API,并支持所有核心S3特性。MinIO旨在部署在任何地方——公共云或私有云、裸机基础架构、协调环境和边缘基础架构。
分布式MinIO如何工作
Server Pool由多个Minio服务节点与其附属的多个磁盘构成。MinIO支持向现有MinIO集群中增加一个或多个Server Pool,从而实现水平扩容。
当MinIO中有多个可用的Server Pool时,单个对象总是写入其中的一个Server Pool,如果一个Server Pool发生故障,并不会影响其他Server Pool的读写。
minio server命令中通过指定HOSTNAME参数来表示一个Server Pool
下文将演示创建一个单独的Server Pool,包含2个minio服务器节点,每一个服务器节点拥有3个驱动器(磁盘),总共6块盘。
规划
一共2个minio服务器节点 oss{1...2} 172.26.150.86 LY-Orch-test-AP01 oss1 172.26.150.87 LY-Orch-test-AP02 oss2 每一个服务器节点拥有3个驱动器(磁盘) data{1...3}
先决条件
1、网络和防火墙每个节点都应该能够完全双向地访问部署中的所有其他节点。 2、连续主机名minio使用扩展符号{x...y}在创建服务器池时表示一系列连续的MinIO主机。 3、带有顺序挂载点的本地JBOD存储多节点系统必须保持同步的时间和日期,以保持稳定的节点间操作和交互。 4、时间同步多节点系统必须保持同步的时间和日期,以保持稳定的节点间操作和交互。
说明:各个minio节点安装配置步骤保持一致
1、创建minio数据盘
mkfs.xfs /dev/sdb mkfs.xfs /dev/sdc mkfs.xfs /dev/sddmkdir -p /data/{data1,data2,data3}[root@hd-iov-l3db-oss02 ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Wed Mar 10 15:11:41 2021 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/ol-root / xfs defaults 0 0 UUID=718976f7-a520-4a9f-8f90-e57ebc6e6abb /boot xfs defaults 0 0 /dev/mapper/ol-swap swap swap defaults 0 0 UUID="c717af95-08c6-4fcd-9574-fee634d12564" /data/data1 xfs defaults 0 2 UUID="9e4559e9-d1c0-4f0b-ba30-2a41b286240a" /data/data2 xfs defaults 0 2 UUID="27995a2a-132f-4b71-9d4c-426d4e7cf8c1" /data/data3 xfs defaults 0 2
2、MINIO SERVER 软件包下载与安装
mount -a chmod 755 minio mv minio /usr/bin/ groupadd oss useradd -g oss -s /sbin/nologin oss chmod 755 /data/ mkdir -p /oss/minio chmod 755 /oss/ chown oss:oss -R /oss/minio/ /data/data*
3、配置 /etc/hosts
cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.26.150.86 LY-Orch-test-AP01 oss1 172.26.150.87 LY-Orch-test-AP02 oss2
4、创建服务环境文件
cat /etc/default/minio.conf
MINIO_ROOT_USER=miniodba
MINIO_ROOT_PASSWORD=ivhsdiFFegg234FDvf#rf
MINIO_PROMETHEUS_AUTH_TYPE="public"
MINIO_VOLUMES="{1...2}:9000/data/data{1...3}"
MINIO_REGION_NAME="hd"
MINIO_BROWSER=on
MINIO_API_REQUESTS_MAX="1000"
MINIO_API_REQUESTS_DEADLINE="30s"
MINIO_OPTS="--console-address :9001"
5、Create the systemd Service File
cat /etc/systemd/system/minio.service
[Unit]
Description=MinIO
Documentation=
Wants=network-noline.target
After=network-noline.target
[Service]
WorkingDirectory=/oss/minio
User=oss
Group=oss
EnvironmentFile=-/etc/default/minio.conf
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]";then echo \"Variable MINIO_VOLUEMS not set in /etc/default/minio\";exit 1;fi"
ExecStart=/usr/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
Restart=always
LimitNOFILE=655360
LimitNPROC=655360
TasksMax=infinity
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
6、运行MinIO服务器进程
systemctl daemon-reload
systemctl start minio
systemctl status minio
7、MINIO CLIENT 软件包下载与安装
MINIO CLIENT:
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod 755 mc
mv mc /usr/bin/
8、配置mc alias
mkdir -p /root/.mc
cat >> /root/.mc/config.json << EOF
{
"version": "10",
"aliases": {
"ccsminio": {
"url": "
"accessKey": "miniodba",
"secretKey": "miniodba_9922.1xx15221ssPLUS",
"api": "S3v4",
"path": "auto"
}
}
}
EOF
9、mc 测试
[root@LY-Orch-test-AP01 ~]# mc alias list
ccsminio
URL :
AccessKey : miniodba
SecretKey : ivhsdiFFegg234FDvf#rf
API : S3v4
Path : auto
[root@LY-Orch-test-AP01 ~]# mc mb ccsminio/oss
Bucket created successfully `ccsminio/oss`.
[root@LY-Orch-test-AP01 ~]# mc cp /root/openssh-8.6p1.tar.gz ccsminio/oss
/root/openssh-8.6p1.tar.gz: 1.70 MiB / 1.70 MiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 35.66 MiB/s 0s
[root@LY-Orch-test-AP01 ~]#
10、console web 测试
访问 ,输入管理员账号密码