一、環(huán)境規(guī)劃
| 節(jié)點(diǎn) | IP地址 | 節(jié)點(diǎn)系統(tǒng) |
|---|---|---|
| minio-1 | 172.16.1.37 | Centos7.9.2009 |
| minio-2 | 172.16.1.38 | Centos7.9.2009 |
| minio-3 | 172.16.1.39 | Centos7.9.2009 |
二、環(huán)境準(zhǔn)備
2.1、更新yum repo,使用阿里云源。(所有節(jié)點(diǎn)操作)
- 備份內(nèi)置repo源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

image.png
- 從阿里云更新下載源
`curl -o /etc/yum.repos.d/CentOS-Base.repo http:``//[mirrors.aliyun.com/repo/Centos-7.repo](http://mirrors.aliyun.com/repo/Centos-7.repo)`

image.png
- 清理舊的更新源緩存,并更新新的更新源緩存
yum clean all
yum makecache
2.2、安裝vim、wget (所有節(jié)點(diǎn)操作)
yum -y install vim
yum -y install wget
2.3、關(guān)閉防火墻 (所有節(jié)點(diǎn)操作)
- 集群節(jié)點(diǎn)相互通信,關(guān)閉防火墻,避免出現(xiàn)不可預(yù)知故障。
systemctl stop firewalld
systemctl disable firewalld
2.4、查看三臺服務(wù)器數(shù)據(jù)盤 (所有節(jié)點(diǎn)操作)
-
數(shù)據(jù)盤沒有需要掛載使用。
image.png
2.5、使用腳本格式化數(shù)據(jù)盤,并掛載。(所有節(jié)點(diǎn)操作)
- 創(chuàng)建掛載目錄:mkdir /mnt/data
- 創(chuàng)建腳本:touch /opt/vdbtogpt.sh
- 執(zhí)行格式化掛載腳本。
- minio官網(wǎng)推薦xfs文件系統(tǒng)。
#!/bin/bash
# 實(shí)現(xiàn)系統(tǒng)中磁盤自動格式化掛載 vdb到/mnt/data
# 定義變量
DEVICE="/dev/vdb"
MOUNT_POINT="/mnt/data"
PARTITION="${DEVICE}1"
# 檢查掛載點(diǎn)是否存在,如果不存在則創(chuàng)建
if [ ! -d "$MOUNT_POINT" ]; then
echo "Creating directory $MOUNT_POINT"
sudo mkdir -p $MOUNT_POINT
fi
# 檢查是否已經(jīng)有分區(qū)存在
if ! sudo fdisk -l | grep -q "$PARTITION"; then
echo "Partition not found, creating partition on $DEVICE"
# 將數(shù)據(jù)盤分區(qū)表從DOS轉(zhuǎn)換為GPT
echo "正在將數(shù)據(jù)盤分區(qū)表從DOS轉(zhuǎn)換為GPT..."
parted -s $DEVICE mklabel gpt
if [ $? -ne 0 ]; then
echo "將數(shù)據(jù)盤轉(zhuǎn)換為GPT分區(qū)表時(shí)出錯(cuò)"
exit 1
fi
echo "數(shù)據(jù)盤已成功轉(zhuǎn)換為GPT分區(qū)表"
# 等待數(shù)據(jù)盤分區(qū)表更新完成
sleep 3
# 在數(shù)據(jù)盤上創(chuàng)建分區(qū)
echo "正在數(shù)據(jù)盤上創(chuàng)建分區(qū)..."
# 創(chuàng)建一個(gè)主分區(qū),占用整個(gè)數(shù)據(jù)盤空間,可以根據(jù)需要修改分區(qū)大小和數(shù)量
parted -s $DEVICE mkpart primary 0% 100%
if [ $? -ne 0 ]; then
echo "在數(shù)據(jù)盤上創(chuàng)建分區(qū)時(shí)出錯(cuò)"
exit 1
fi
echo "已在數(shù)據(jù)盤上成功創(chuàng)建分區(qū)"
# 等待分區(qū)表更新
sleep 3
# 格式化新分區(qū)
echo "Formatting new partition $PARTITION as xfs"
sudo mkfs.xfs $PARTITION
else
echo "Partition already exists: $PARTITION"
fi
# 掛載分區(qū)
echo "Mounting $PARTITION to $MOUNT_POINT"
sudo mount $PARTITION $MOUNT_POINT
# 寫入開機(jī)自動掛載
echo "$PARTITION $MOUNT_POINT xfs defaults 0 0" | sudo tee -a /etc/fstab
2.6、執(zhí)行腳本后,檢查掛載情況 (所有節(jié)點(diǎn)操作)
-
df -h
image.png -
cat /etc/fstab
image.png
2.7、修改主機(jī)名稱,保證3臺節(jié)點(diǎn)網(wǎng)絡(luò)互通 (所有節(jié)點(diǎn)操作)
# 官方建議使用相同路徑,便于啟動命令更簡潔
[root@localhost ~]# hostnamectl set-hostname minio-01.example.net
[root@localhost ~]# hostname
minio-01.example.net
# 修改/etc/hosts,保證各個(gè)主機(jī)名可解析
172.16.1.37 minio-01.example.net
172.16.1.38 minio-02.example.net
172.16.1.39 minio-03.example.net
2.8、時(shí)間同步
- 多節(jié)點(diǎn)系統(tǒng)必須保持時(shí)間和日期同步,以維持穩(wěn)定的節(jié)點(diǎn)間操作和交互。 確保所有節(jié)點(diǎn)定期同步到同一時(shí)間服務(wù)器
- 首先安裝ntp
yum install ntp
- 安裝完畢之后,啟動服務(wù)
<pre>systemctl start ntpd.service
- 設(shè)置開機(jī)自啟動
systemctl enable ntpd.service
- ntp服務(wù)端設(shè)置
- 第一臺服務(wù)器 172.16.1.37,作為ntpserver。
- 另外兩臺作為客戶端配置
vim /etc/ntp.conf
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 172.16.102.37

image.png
- 設(shè)置后,重啟ntpd服務(wù)
-
客戶端檢查時(shí)間同步狀態(tài):ntpq -p
image.png
三、開始安裝mino集群
3.1、下載指定rpm包(每個(gè)節(jié)點(diǎn))
- cd /opt
wget https://dl.min.io/server/minio/release/linux-amd64/minio-20241107005220.0.0-1.x86_64.rpm
3.2、安裝(每個(gè)節(jié)點(diǎn))
yum -y install minio-20241107005220.0.0-1.x86_64.rpm
3.3、創(chuàng)建一個(gè)環(huán)變變量配置文件在 /etc/default/minio 路徑. MinIO 服務(wù)使用此文件作為所有內(nèi)容的來源 環(huán)境變量 使用 MinIO 和 minio.service 文件。(每個(gè)節(jié)點(diǎn))
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin
# MINIO_VOLUMES sets the storage volume or path to use for the MinIO server.
MINIO_VOLUMES="http://minio-0{1...3}.example.net:9000/mnt/data/minio"
# 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"
3.4、創(chuàng)建用戶
- 默認(rèn)情況下,
minio.service文件以minio-user用戶和組的身份運(yùn)行。 您可以使用groupadd和useradd創(chuàng)建用戶和組。 - 下面的示例創(chuàng)建了用戶和組,并設(shè)置了權(quán)限 來訪問供 MinIO 使用的文件夾路徑。這些命令通常 需要 root (
sudo) 權(quán)限。
groupadd -r minio-user
useradd -M -r -g minio-user minio-user
chown minio-user:minio-user /mnt/data
3.5、修改數(shù)據(jù)目錄所屬組和用戶
chown minio-user:minio-user /mnt/data
3.6、啟動服務(wù)
systemctl daemon-reload
systemctl start minio
systemctl enable minio
systemctl status minio

image.png
3.7、登錄控制臺http://172.16.1.37:9001、http://172.16.1.38:9001、http://172.16.1.39:9001

image.png
3.8、上傳文件

image.png



