minio-對象存儲部署

一、環(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)行。 您可以使用 groupadduseradd 創(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

3.9、到此,minio集群部署完成。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容