? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ------>?? ?道 | 法 | 術 | 器 | 勢? ??<------
?
? ? ? ? ? ? ? ? ? ? ? ? ?
多臺服務器間免密登錄|免密拷貝
Cenos7 搭建Minio集群部署服務器(一)
Cenos7 搭建Minio集群Nginx統一訪問入口|反向動態代理(二)?
Spring Boot 與Minio整合實現文件上傳與下載(三)?
CentOS7的journalctl日志查看方法
MySQL8.xx一主兩從復制安裝與配置
?
附錄查看安裝的Minio版本:
[root@www minio_data]# ./minio -v
minio version RELEASE.2023-08-09T23-30-22Z (commit-id=eb55034dfe5ef82449796c83e3126b245c5aee05)
Runtime: go1.19.12 linux/amd64
License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Copyright: 2015-2023 MinIO, Inc.
[root@www minio_data]# ./minio -version
minio version RELEASE.2023-08-09T23-30-22Z (commit-id=eb55034dfe5ef82449796c83e3126b245c5aee05)
Runtime: go1.19.12 linux/amd64
License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Copyright: 2015-2023 MinIO, Inc.
?
企業級開源對象存儲(看看官網吹的牛B)
開源為云提供動力。開源為企業提供動力。開源為 MinIO 提供支持。每天都有成千上萬的客戶和社區成員信任 MinIO 在其部署中提供安全性、彈性、持久性和卓越運營。
主動,主動復制
對象存儲的主動、多站點復制是任務關鍵型生產環境的關鍵要求。MinIO是目前唯一提供它的供應商。MinIO 提供存儲桶級粒度,并支持同步和近同步復制,具體取決于架構選擇和數據變化率。
? ? ? ? ? ??
加密
在對象存儲領域,需要強大的加密才能在談判桌上占有一席之地。MinIO 通過最高級別的加密以及廣泛的優化提供更多功能,幾乎消除了通常與存儲加密操作相關的開銷。
? ? ? ? ? ??
自動化數據管理界面
數據是企業最關鍵的資產,因此必須在整個組織中輕松安全地使用,以便為每個人實現最大價值。因此,企業必須根據受眾的需求采用一系列數據接口方法。MinIO提供了一套選項來涵蓋數據驅動型企業中的每個角色,例如圖形用戶界面(GUI),命令行界面(CLI)和應用程序編程接口(API)。MinIO 的數據管理接口可互換運行,以提供精細、高性能和可擴展的對象存儲管理。
? ? ? ? ? ??
存儲桶和對象不變性
保護數據不被刪除(意外或故意)是涉及每個行業的關鍵合規性組件。MinIO 支持完整的功能范圍,包括對象鎖定、保留、法律保留、治理和合規性。MinIO 的存儲桶和對象不變性已通過Veeam 認證和驗證。
? ? ? ? ? ? ??
數據生命周期管理和分層
隨著數據的持續增長,針對訪問、安全性和經濟性進行共同優化的能力成為一項硬性要求,而不是可有可無。這就是生命周期數據管理的作用。MinIO 提供了一套獨特的功能來保護云內部和跨云的數據 - 包括公共云和私有云。
MinIO的企業數據生命周期管理工具,包括版本控制、對象鎖定和各種衍生組件,滿足多種用例。
? ? ? ? ? ? ?
可擴展性
縮放是一個維度概念,但它有一個真理:簡單縮放。MinIO 通過稱為服務器池的概念進行水平擴展(橫向擴展)。服務器池是一種結合了多個技術組件的方法。每個服務器池都是一組獨立的節點,具有自己的計算、網絡和存儲資源。
? ? ? ? ? ? ? ? ? ??
準備集群環境:? 準備四臺機器?(minio集群最少四臺)
? ? ? IP地址 | ? ?主機名稱 | ? ? ? minio數據存儲目錄 | ? ? ? ? ? minio掛載目錄 | 控制臺端口 |
192.168.1.100 | ? ?docker0 | ? ? ? /data/minio_data | ? ? ? ? /dev/sda2 | 控制臺端口:33806 |
192.168.1.101 | ? ?docker1 | ? ? ? /data/minio_data | ? ? ? ? /dev/sda2?| 控制臺端口:33807 |
192.168.1.102 | ? ?docker2 | ? ? ? /data/minio_data | ? ? ? ??/dev/sda2?| 控制臺端口:33808 |
192.168.1.103 | ? ?docker3 | ? ? ? /data/minio_data | ? ? ? ? /dev/sda2?| 控制臺端口:33809 |
一: 設置主機名稱:?
?vi /etc/hosts
192.168.1.100 ?docker0
192.168.1.101 ?docker1
192.168.1.102 ?docker2
192.168.1.103 ?docker3
cat /etc/hosts
?二:分別免密拷貝hosts文件到其他三臺機器
scp -pr hosts 192.168.1.101:/etc/
scp -pr hosts 192.168.1.102:/etc/
scp -pr hosts 192.168.1.103:/etc/
免密登錄?192.168.1.101 節點看看是否拷貝成功:
[root@www etc]# ssh 192.168.1.101
?三: 創建掛載磁盤路徑
mkdir -p /data/minio_data
掛載磁盤路徑到文件系統
注意:需要將新建的目錄掛在到對應的磁盤下,磁盤不掛載好,集群啟動會報錯,還需要注意的是掛載的文件系統至少要1G不然無法初始化導致集群報錯;
文件系統 容量 已用 可用 已用% 掛載點
[root@www minio_data]# df -h
四:將上面掛載磁盤路徑掛載到相應的文件系統上?
[root@www minio_data]# mount /dev/sda2 ?/data/minio_data/
查看掛載信息
? ?[root@www minio_data]# lsblk
?五:下載minio安裝包
? ? 服務器端安裝:
[root@www minio_data]# wget https://dl.min.io/server/minio/release/linux-amd64/minio
-bash: wget: 未找到命令
[root@www minio_data]# yum install wget
? ? ?客戶端安裝:
[root@www minio_data]# wget https://dl.min.io/client/mc/release/linux-amd64/mc
分別在minio_data目錄下創建兩個數據目錄data0,data1
[root@www minio_data]# mkdir -p /data/minio_data/{data0,data1}
再次確認掛載目錄是不是: /data/minio_data?
查看磁盤分區情況
[root@www minio_data]# fdisk -l
磁盤 /dev/sda:214.7 GB, 214748364800 字節,419430400 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0x000da74f
? ?設備 Boot ? ? ?Start ? ? ? ? End ? ? ?Blocks ? Id ?System
/dev/sda1 ? * ? ? ? ?2048 ? ? ?411647 ? ? ?204800 ? 83 ?Linux
/dev/sda2 ? ? ? ? ?411648 ? 304754687 ? 152171520 ? 83 ?Linux
/dev/sda3 ? ? ? 304754688 ? 409612287 ? ?52428800 ? 83 ?Linux
/dev/sda4 ? ? ? 409612288 ? 419430399 ? ? 4909056 ? ?5 ?Extended
/dev/sda5 ? ? ? 409614336 ? 419430399 ? ? 4908032 ? 82 ?Linux swap / Solaris
[root@www minio_data]# df -lh
文件系統 ? ? ? ?容量 ?已用 ?可用 已用% 掛載點
devtmpfs ? ? ? ?1.9G ? ? 0 ?1.9G ? ?0% /dev
tmpfs ? ? ? ? ? 1.9G ? ? 0 ?1.9G ? ?0% /dev/shm
tmpfs ? ? ? ? ? 1.9G ? 12M ?1.9G ? ?1% /run
tmpfs ? ? ? ? ? 1.9G ? ? 0 ?1.9G ? ?0% /sys/fs/cgroup
/dev/sda3 ? ? ? ?50G ?2.2G ? 48G ? ?5% /
/dev/sda2 ? ? ? 146G ?152M ?145G ? ?1% /home
/dev/sda1 ? ? ? 197M ?124M ? 74M ? 63% /boot
vmhgfs-fuse ? ? 1.3T ? 61G ?1.2T ? ?5% /mnt/hgfs
tmpfs ? ? ? ? ? 378M ? ? 0 ?378M ? ?0% /run/user/0
六,制作啟動腳本
? ? ? ?內容如下:
[root@www default]# cat /etc/default/minio?
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=admin123456
#數據掛載目錄
MINIO_VOLUMES="/data/minio_data"
# 注:--console-address ":33806"是用來指定minio端口的
MINIO_OPTS="--console-address 192.168.1.100:33806 --address 192.168.1.100:9666"
[root@www run]# cat /usr/lib/systemd/system/minio.service
?
[Unit]
Description=Minio
Documentation=https://docs.minio.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/data/minio_data/minio
[Service]
WorkingDirectory=/data/minio_data
User=root
Group=root
PermissionsStartOnly=true
EnvironmentFile=/etc/default/minio
ExecStartPre=/bin/bash -c "[ -n \"${MINIO_VOLUMES}\" ] || echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\""
ExecStart=/data/minio_data/minio server $MINIO_OPTS $MINIO_VOLUMES
StandardOutput=journal
StandardError=inherit
# Specifies the maximum file descriptor number that can be opened by this process*
LimitNOFILE=65536
# Disable timeout logic and wait until process is stopped*
TimeoutStopSec=0
# SIGTERM signal is used to stop Minio*
KillSignal=SIGTERM
SendSIGKILL=no
SuccessExitStatus=0
[Install]
WantedBy=multi-user.target
?
其中,“WorkingDirectory”為啟動腳本目錄,“ExecStart”為指定集群啟動腳本
將下載好的minio文件賦予權限
[root@www ~]# chmod +x /data/minio_data/minio
[root@www ~]# chmod +x /data/minio_data/mc
[root@www ~]# chmod +x /data/minio_data/data0
[root@www ~]# chmod +x /data/minio_data/data1
[root@www ~]# chmod +x /usr/lib/systemd/system/minio.service
cd /??
拷貝data目錄及該目錄下所有文件到其他三臺機器上:
分別在其他三臺機器上手動創建/data/minio_data/目錄: mkdir -p?/data/minio_data/,然后執行下面的命令進行拷貝
scp -r ./data/minio_data/*? docker1:/data/minio_data/
scp -r ./data/minio_data/* ?docker2:/data/minio_data/
scp -r ./data/minio_data/* ?docker3:/data/minio_data/
確認下是否已經拷貝過去:
分別在其他三臺機器上執行掛載點,掛載點好像不能拷貝.....
mount /dev/sda2 /data/minio_data/
拷貝啟動腳本到其他三臺機器
scp /usr/lib/systemd/system/minio.service docker1:/usr/lib/systemd/system/minio.service
scp /usr/lib/systemd/system/minio.service docker2:/usr/lib/systemd/system/minio.service
scp /usr/lib/systemd/system/minio.service docker3:/usr/lib/systemd/system/minio.service
scp /etc/default/minio docker1:/etc/default/minio
scp /etc/default/minio docker2:/etc/default/minio
scp /etc/default/minio docker3:/etc/default/minio
分別修改 docker1,?docker2,docker3? 主機上的?/etc/default/minio文件的控制臺端口與對應機器ip如下:
docker1:
[root@www ~]# cat ?/etc/default/minio
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=admin123456
MINIO_VOLUMES="/data/minio_data"
# 注:--console-address ":33807"是用來指定minio端口的
MINIO_OPTS="--console-address 192.168.1.101:33807 --address 192.168.1.101:9666"
docker2:
[root@www ~]# cat ?/etc/default/minio
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=admin123456
MINIO_VOLUMES="/data/minio_data"
# 注:--console-address ":33808"是用來指定minio端口的
MINIO_OPTS="--console-address 192.168.1.102:33808 --address 192.168.1.102:9666"
?
docker3? :?
[root@www minio_data]# cat ?/etc/default/minio
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=admin123456
MINIO_VOLUMES="/data/minio_data"
# 注:--console-address ":33809"是用來指定minio端口的
MINIO_OPTS="--console-address 192.168.1.103:33809 --address 192.168.1.103:9666"
?
啟動及查看狀態:
systemctl daemon-reload? #重新加載啟動文件
systemctl enable minio? #開機自啟動
systemctl start minio? #啟動
systemctl stop?minio? #停止
systemctl restart?minio? #重新啟動
systemctl status minio? #查看狀態
systemctl disable minio.service? #禁止機自啟動
查看所有已啟動的服務
systemctl list-units --type=service
分別對每臺機器執行如下命令:
systemctl daemon-reload? #加載服務配置文件
systemctl daemon-reload? #重新加載啟動文件
systemctl enable minio? #minio 開機自啟動
systemctl stop firewalld? # 停止防火墻
systemctl disable?firewalld # 禁用防火墻
http://192.168.1.100:33806/??
http://192.168.1.101:33807/
http://192.168.1.102:33808/
http://192.168.1.103:33809/
輸入admin/admin123456 即可查看相關配置
?至此,大功告成. 待續 Spring-Boot 整合Minio實現視頻及文件分布式存儲..................
[root@www ~]# ps ax|grep 'minio'
? 1152 ? ? ? ? ?Ssl ? ?0:03 /data/minio_data/minio server --console-address :33806 --address 0.0.0.0:9666 /data/minio_data
? 1912 pts/0 ? ?S+ ? ? 0:00 grep --color=auto minio
[root@www ~]# ps aux|grep minio
root ? ? ? 1152 ?0.4 ?4.1 1017104 158756 ? ? ? ?Ssl ?22:56 ? 0:03 /data/minio_data/minio server --console-address :33806 --address 0.0.0.0:9666 /data/minio_data
root ? ? ? 1914 ?0.0 ?0.0 112828 ? 984 pts/0 ? ?S+ ? 23:10 ? 0:00 grep --color=auto minio
上傳一張照片看看: 點擊上傳按鈕:上傳一張picture
?
上傳后點擊預覽:
?
??